如何使用python计算帧中密码子的数量(biopython)

时间:2013-11-24 15:10:12

标签: python bioinformatics biopython

我有以下脚本来计算基因文件中的密码子数量(codon.list.csv)(test.fasta),然而它不管帧数都计算所有密码子,我想只计算每个密码子第0帧,(ATG,TAT,TAT,TAA)。例如:

>test1
ATGTATTATTAA

ATG:1 TAT:2 TAA:1

目前我的剧本正在计算TGT,ATT,TTA等......我不需要。

我认为这会更容易,但我无法纠正......

任何建议都会很棒!

from Bio import  SeqIO
mRNA_sequences = "test.fasta"

in_seq_handle = open(mRNA_sequences)
seq_dict = SeqIO.to_dict(SeqIO.parse(in_seq_handle, "fasta"))
in_seq_handle.close()
seq_dict_keys =  seq_dict.keys()

dict_sequences2={} 
dict_codons = {}

contig_file = open("codon.list.csv")
for line in contig_file:
    gene_id = line[0:3]
    for sequence in seq_dict.values():
        seqstring = sequence.seq

        if dict_hepts.has_key((line[:-1])):
            dict_codons[(line[:-1])] += seqstring.count(gene_id)
        else:
            dict_codons[(line[:-1])] = seqstring.count(gene_id)

print dict_codons

1 个答案:

答案 0 :(得分:1)

这个怎么样:

a = 'ATGTATTATTAA'

codons = (a[n:n+3] for n in xrange(0,len(a),3)) # creates generator

dict_codons = {}

for codon in codons:
    if dict_codons.has_key(codon):
        dict_codons[codon] += 1
    else:
        dict_codons[codon] = 1

print dict_codons

简而言之,此代码生成一个生成第0帧密码子的生成器, 并计算它们以将数据存储在字典中。