我是python新手,我试图解决一个问题,我得到了一些dna序列,例如:
sequences = ["GAGGTAAACTCTG", "TCCGTAAGTTTTC", "CAGGTTGGAACTC", "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),'
依此类推到索引中的每个位置。 我试图让它一次检查所有的位置,而不是手动做每个位置
很接近,但需要跟踪索引,而不是单个查找
这将同时迭代每个索引,并为每个核苷酸出现添加一个索引
输出:
您发布的代码只是部分代码,但是您对每个索引迭代了一次
sequences
。您可以使用zip
在一次过程中对它们进行计数(即使最后您必须读取每个字符一次,因此我的解决方案只更改读取顺序):{}的内容是:
依此类推,您可以看到所有序列一次读取一个字符,结果是:
如果序列的长度不同,可以使用^{}
用另一个字符填充较短的序列
干杯
相关问题 更多 >
编程相关推荐