所以我有一个程序从数据库中取出一堆序列并将它们下载到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
答案 0 :(得分:2)
我对图书馆并不熟悉,但我认为你的建议方式是:
if all(c.upper() in 'ATGC' for c in seq_record.seq):
pass # it's DNA