考虑到开放阅读框架,将CDS的FASTA文件翻译成蛋白质

2024-04-29 09:01:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份关于核苷酸序列的FASTA文件。我需要把它们翻译成蛋白质,但要考虑到3个阅读框(即+1'ATG',+2'TG',+3'G')。如果阅读框是+1,这个使用BioPython的简单代码可以完美地完成任务。但对于剩下的两个,它给出了不同的翻译。有没有办法在BioPython中指定阅读框架?在

输入文件

>contig20
TGGATCGGCGAGACCGACTCCGAGCGCGCCGACGTCGCCAAGGGATGGGCGTCCCTCCAGGTAAACCAACCCT
CTTCCCATCAAATTCTTTTTACCATGCAATATAGTCGTCGGTGTCGATCACTGTCATGCATATGGATTGGATT
AAACATGTCGCGGTCTCGTCGTTGCACGTTTCTTTCTTGCTTAACCACCTACCAATAGCAGCTGGTTGTAGCT
AGGTCGCTGCTGGGGATTGAAATCTTCAGCTTTAAGATGACAGCGACGACGCCATGGTCGGTCGCCCGGTCGT
GATCACCTACTCCAATTTACTGGAAAAATGATGATTTGTAAACGTGCATGCATGTTCCTTCAACCTTTTGTTA

所需的输出文件

^{pr2}$

脚本

from Bio.SeqRecord import SeqRecord
def make_protein_record(nuc_record):
"""Returns a new SeqRecord with the translated sequence (default table)."""
    return SeqRecord(seq = nuc_record.seq.translate(), \
                 id = "trans_" + nuc_record.id, \
                 description = "translation of CDS, using default table")

from Bio import SeqIO
proteins = (make_protein_record(nuc_rec) for nuc_rec in \
        SeqIO.parse("file.fasta", "fasta"))
SeqIO.write(proteins, "translations.fasta", "fasta")

Tags: 文件fromimportdefaultmaketableseqrecordrecord
1条回答
网友
1楼 · 发布于 2024-04-29 09:01:52

你就不能这么做吗

from Bio.Seq import translate

contig = 'TGGATCGGCGAGACCGACTCCGAGCGCGCCGACGTCGCCAAGGGATGGGCGTCCCTCCAGGTAAACCAACCCT'
print 'ORF 1'
print translate(contig)
print 'ORF 2'
print translate(contig[1:])
print 'ORF 3'
print translate(contig[2:])

会产生

^{pr2}$

相关问题 更多 >