Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 序列比较功能未按预期工作_Python_Python 2.7_Bioinformatics_Biopython - Fatal编程技术网

Python 序列比较功能未按预期工作

Python 序列比较功能未按预期工作,python,python-2.7,bioinformatics,biopython,Python,Python 2.7,Bioinformatics,Biopython,业余Python程序员试图在这里学习,所以我想问一下我的脚本是怎么回事。我真的不知道哪里出了问题。(想想第24行或difference=“%s-%s[%d]”(seq1[i],seq2[i],i)) 该函数用于加载序列,重命名它们(该位起作用),然后将每个序列与参考序列(此处仅为文件中的第一个序列)进行比较,如果序列中的字母与参考不匹配,则打印差异和位置。但是,正如您在下面看到的,这不起作用 这是一个模型输入文件- 这是我得到的输出,这是不正确的,因为7065_8#4中的位置454实际上=p 7

业余Python程序员试图在这里学习,所以我想问一下我的脚本是怎么回事。我真的不知道哪里出了问题。(想想第24行或
difference=“%s-%s[%d]”(seq1[i],seq2[i],i)

该函数用于加载序列,重命名它们(该位起作用),然后将每个序列与参考序列(此处仅为文件中的第一个序列)进行比较,如果序列中的字母与参考不匹配,则打印差异和位置。但是,正如您在下面看到的,这不起作用

这是一个模型输入文件-

这是我得到的输出,这是不正确的,因为7065_8#4中的位置454实际上=p

7065_8#1    7065_8#1    
7065_8#1    7065_8#2    
7065_8#1    7065_8#3    
7065_8#1    7065_8#4    E-G [245]
7065_8#1    7065_8#5

解决这一问题的最佳方法无疑是将其分解为更小的部分,并对每个部分进行验证

以下是一个最小的差异实现:

def compare_sequences(seq1, seq2):
    for index, (a, b) in enumerate(zip(seq1, seq2)):
        if a != b:
            yield index, a, b
这就是它的工作原理:

print list(compare_sequences('abcdef', 'abddef'))
这让我

[(2, 'c', 'd')]
你可以用它作为一个简单的证明,它的工作。我建议您将输入隔离到函数中,并验证它是否按预期工作


也许输入中存在空白或换行符的问题,而您不希望输入的空白或换行符会使所有内容都丢失?

谢谢您的帮助,我看了一下,这似乎是输入文件的问题,而不是编码的问题。
[(2, 'c', 'd')]