Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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_Bioinformatics_Rosalind - Fatal编程技术网

Python:多个一致序列

Python:多个一致序列,python,bioinformatics,rosalind,Python,Bioinformatics,Rosalind,从dna序列列表开始,我必须得到所有可能的共识(结果) 每个位置核苷酸频率最高的序列)序列。如果在某些位置,核苷酸 同样的最高频率,我必须获得所有可能的最高频率组合。 作为回报,我还必须有配置文件矩阵(一个矩阵,每个序列的每个核苷酸的频率) 这是到目前为止我的代码(但它只返回一个一致序列): (如你所见,在第四位,C和G的得分相同,这意味着我必须获得两个一致的序列) 是否可以修改此代码以获得 所有可能的序列,或者你能解释一下逻辑(伪代码)如何获得正确的结果吗 提前非常感谢 我相信有更好的方法,但

从dna序列列表开始,我必须得到所有可能的共识(结果) 每个位置核苷酸频率最高的序列)序列。如果在某些位置,核苷酸 同样的最高频率,我必须获得所有可能的最高频率组合。 作为回报,我还必须有配置文件矩阵(一个矩阵,每个序列的每个核苷酸的频率)

这是到目前为止我的代码(但它只返回一个一致序列):

(如你所见,在第四位,C和G的得分相同,这意味着我必须获得两个一致的序列)

是否可以修改此代码以获得 所有可能的序列,或者你能解释一下逻辑(伪代码)如何获得正确的结果吗


提前非常感谢

我相信有更好的方法,但这是一个简单的方法:

bestseqs = [[]]
for i in range(n):
    d = {N:profile[N][i] for N in ['T','G','C','A']}
    m = max(d.values())
    l = [N for N in ['T','G','C','A'] if d[N] == m]
    bestseqs = [ s+[N] for N in l for s in bestseqs ]

for s in bestseqs:
    print(''.join(s))

# output:
ATGGAACT
ATGCAACT

目前您的代码只打印最后一个序列,而不是一致性序列谢谢,Ohad,对不起,我已修复了我的代码,现在应该返回一致性序列。(但只有一个,因此主要问题仍然存在:)。关于你的答案,输出必须显示整个两个序列you@3lli0t不客气。你应该接受答案。
bestseqs = [[]]
for i in range(n):
    d = {N:profile[N][i] for N in ['T','G','C','A']}
    m = max(d.values())
    l = [N for N in ['T','G','C','A'] if d[N] == m]
    bestseqs = [ s+[N] for N in l for s in bestseqs ]

for s in bestseqs:
    print(''.join(s))

# output:
ATGGAACT
ATGCAACT