用python计算字典中的基因突变

2024-06-25 05:40:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的数据:

>;abc12
ATCGACAG

>;def34
ACCGACG公司

等等

我把每一个基因都存储在一个字典里,以gt;开头的行作为值。所以字典是类似于{'abc12':'atcgag'等的东西

现在我希望能够比较每个基因,这样它就可以计算出每个位点的A、T、C或G的数量。在

我唯一能想到的就是把字典分解成每个核苷酸站点的列表,并使用zip()和一个计数器。这是最好的方法吗?如果是的话,我如何将字典分解为每个站点的列表?在


Tags: 数据gt列表数量字典站点格式基因
3条回答

使用^{}

>>> from collections import Counter
>>> Counter('ATCGACAG')
Counter({'A': 3, 'C': 2, 'G': 2, 'T': 1})
>>> Counter('ACCGACG')
Counter({'C': 3, 'A': 2, 'G': 2})
s1 = "ATCGACAG"
s2 = "ACCGACG"   
alignment = [s1[i] if s1[i] == s2[i] else "-" for i in range(len(min([s1,s2],key=len)))]
print "".join(alignment)
A-CGAC-

有没有理由不使用生物圈?在

from Bio import AlignIO
alignment =AlignIO.read("alignment.fas", "fasta")
n=0
while n<len(alignment[0]):
    A=alignment[:,n].count('A')
    C=alignment[:,n].count('C')
    G=alignment[:,n].count('G')
    T=alignment[:,n].count('T')
    gap=alignment[:,n].count('-')

    print "at position %s there are %s A's, %s C's, %s G's, %s T's and %s gaps" % (n, A, C, G, T, gap)
    n=n+1

确保您有一个真正的对齐方式(即序列长度相同)。
p、 我为印刷声明的丑陋格式道歉。。。在

这就回来了

^{pr2}$

相关问题 更多 >