Python实现基因序列比对并统计匹配对、错配数方法咨询
解决方法
核心逻辑
你只需要初始化一个数值类型的计数器变量,每次识别到错配时给计数器加1即可,同时可以顺便计算匹配数量。另外注意你原代码的索引逻辑有问题:循环变量i从0开始迭代时,i-1会得到-1,会错误读取序列的最后一位,需要修正索引逻辑。
可直接运行的代码
# 初始化错配计数器 mismatch_count = 0 # 取两条序列中更短的长度作为比对范围,避免索引越界 align_length = min(len(my_list[0]), len(my_list[1])) for i in range(align_length): # 直接用i作为索引即可,不需要减1 if my_list[0][i] != my_list[1][i]: print("mismatch") mismatch_count += 1 # 匹配数 = 总比对长度 - 错配数 match_count = align_length - mismatch_count # 输出统计结果 print(f"错配总数量:{mismatch_count}") print(f"匹配总数量:{match_count}")
测试序列运行结果
针对你给出的两条测试序列:
my_list[0]:CAGGTGGTGAT(长度11)my_list[1]:--CAGGTGTGAT(长度13)
运行代码后输出错配数量为3,匹配数量为8。
内容的提问来源于stack exchange,提问作者anastasia
相关产品推荐
相关产品推荐

