使用python / biopython翻译混合的fasta文件

时间:2012-11-01 15:13:50

标签: python biopython fasta

所以我有一个程序从数据库中取出一堆序列并将它们下载到fasta文件中。问题是这些序列可能是蛋白质,也可能是dna。我正在将大型fasta文件分成许多小的fasta文件,一旦我有序列,我需要它们都是蛋白质。所以我想测试每一个,看看它是否是蛋白质。

如果他们都是蛋白质,我很好,如果他们都是dna,我有一种优雅的方式来翻译它们,但我需要找到一种方法来测试每个新的fasta文件,翻译它和将翻译替换为dna文件

这是我到目前为止所拥有的:

from Bio import Entrez, SeqIO  
from Bio.Seq import Seq

record_iter = SeqIO.parse(open(output_file), 'fasta')
for seq_record in record_iter:
    outfile = '{0}.fa'.format(seq_record.id)
    count = SeqIO.write(seq_record,outfile,'fasta')
    xmlfile = '{0}.xml'.format(seq_record.id)
    print xmlfile   # Added this to show it's working, not stalled.
    if...
    #and here is where i would somehow test each "outfile" to see if it's dna or protein and then do something different with each one.  

我已经尝试将它设置为一个字符串(我认为),我不能使用字母表,因为这不是fasta的格式化方式,我尝试过其他一些东西。无论如何,任何帮助将不胜感激。

对于那些不熟悉的人来说,fasta文件的格式如下:

>here is a bunch of identification information about the sequence after the carat.
GAAATTTGAGGCGTTCGCTGTGCAGTGAAAAGTGAGACTTTCTACTGTTCGCGTAGAAAGTGCAATAACC
AAGCCACCCACTCAGTGCCCAGACTAGCAACACAAGTCCGGCAAAATGGGAATCAAGTTCCTGGAAGTTA
TCAAACCGTTCTGCAGTATACTGCCGGAAATCGCAAAACCGGAGCGCAAGATCCAATTCAGGGAGAAAGT
GCTATGGACTGCGATCACCCTGTTCATCTTCCTGGTGTGCTGCCAGATCCCGCTTTTCGGTATCATGAGC
TCAGACTCGGCGGATCCCTTCTACTGGATCCGTGTGATCCTGGCCTCCAACCGTGGTACGCTCATGGAGC
TGGGTATCTCGCCCATCGTGACCTCTGGCCTCATTATGCAGCTGCTGGCCGGAGCA

1 个答案:

答案 0 :(得分:2)

我对图书馆并不熟悉,但我认为你的建议方式是:

if all(c.upper() in 'ATGC' for c in seq_record.seq):
    pass # it's DNA