0

所以我有一个程序,它从数据库中获取一堆序列并将它们下载到一个 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
4

1 回答 1

2

我不熟悉图书馆,但我认为你建议的方式写成:

if all(c.upper() in 'ATGC' for c in seq_record.seq):
    pass # it's DNA
于 2012-11-01T15:30:27.583 回答