所以我有一个程序,它从数据库中获取一堆序列,并将它们下载到一个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发布于 2012-11-01 23:30:28
我不熟悉这个库,但我认为您的建议是这样写的:
if all(c.upper() in 'ATGC' for c in seq_record.seq):
pass # it's DNAhttps://stackoverflow.com/questions/13180041
复制相似问题