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

Python 找出一个核苷酸在同一位置出现的次数

Python 找出一个核苷酸在同一位置出现的次数,python,python-3.x,bioinformatics,biopython,dna-sequence,Python,Python 3.x,Bioinformatics,Biopython,Dna Sequence,我是python新手,我试图解决一个问题,我得到了一些dna序列,例如: sequences=[“GAGGTAACTCTG”、“TCCGTAAGTTTC”、“CAGTTGGAATC”、“ACAGTCAGTTCAC”、“TAGGTCATTACAG”、“TAGGTACTGATGC”] 我想知道核苷酸“A”在所有这些序列的每个位置上的次数(答案应该是“A”):[1,4,1,0,0,3,4,1,1,3,0,2,0]。 我想做的是: 'A_pos = {"A":[sum(int(i[0

我是python新手,我试图解决一个问题,我得到了一些dna序列,例如:
sequences=[“GAGGTAACTCTG”、“TCCGTAAGTTTC”、“CAGTTGGAATC”、“ACAGTCAGTTCAC”、“TAGGTCATTACAG”、“TAGGTACTGATGC”]

我想知道核苷酸“A”在所有这些序列的每个位置上的次数(答案应该是“A”):[1,4,1,0,0,3,4,1,1,3,0,2,0]。 我想做的是:

'A_pos = {"A":[sum(int(i[0]=="A") for i in sequences), sum(int(i[1]=="A") for i in sequences), sum(int(i[2]=="A") for i in sequences),'
依此类推到索引中的每个位置。
我试图让它一次检查所有位置,而不是手动执行每个位置。

您发布的代码只是部分代码,但您对每个索引迭代了一次序列。您可以使用
zip
(即使最后您必须读取每个字符一次,因此我的解决方案只会更改读取顺序)在一次过程中对它们进行计数:

s
的内容包括:

('G', 'T', 'C', 'A', 'T', 'T')
('A', 'C', 'A', 'C', 'A', 'A')
('G', 'C', 'G', 'A', 'G', 'G')
依此类推,您可以看到所有序列一次读取一个字符,结果是:

[1, 4, 1, 0, 0, 3, 4, 1, 1, 3, 0, 2, 0]
如果序列的长度不同,可以使用 用另一个字符填充较短的序列


干杯

很接近,但需要跟踪索引,而不是单个查找

[sum(x[i] == "A" for x in sequences) for i in range(len(sequences[0]))]

这将同时迭代每个索引,并为每个核苷酸出现添加一个索引

result = {'A': 13*[0], 'G': 13*[0], 'T': 13*[0], 'C': 13*[0]}
for index, sequence in enumerate(zip(*sequences)):
    for nucleotide in sequence:
        result[nucleotide][index] += 1
输出:

{'A': [1, 4, 1, 0, 0, 3, 4, 1, 1, 3, 0, 2, 0], 'G': [1, 0, 4, 6, 0, 0, 1, 3, 1, 0, 0, 1, 2], 'T': [3, 0, 0, 0, 6, 1, 0, 2, 3, 3, 2, 3, 0], 'C': [1, 2, 1, 0, 0, 2, 1, 0, 1, 0, 4, 0, 4]}

那么你的问题是什么?这种方法行不通吗?如果是这样的话,你会得到什么样的结果呢?这个方法是有效的,我试着通过检查所有的索引,用一个简单的代码行来缩短代码。交叉张贴:太好了!谢谢
{'A': [1, 4, 1, 0, 0, 3, 4, 1, 1, 3, 0, 2, 0], 'G': [1, 0, 4, 6, 0, 0, 1, 3, 1, 0, 0, 1, 2], 'T': [3, 0, 0, 0, 6, 1, 0, 2, 3, 3, 2, 3, 0], 'C': [1, 2, 1, 0, 0, 2, 1, 0, 1, 0, 4, 0, 4]}