使用Biopython翻译核酸为蛋白序列

27,508

在plob论坛学习到不少知识,其中看到很多关于bioperl的文章,但是没有见到人们用biopython的。

所以在此分享一个简单代码,用来翻译核酸为蛋白序列。

注:需要Biopython库支持。


以下是脚本,可保存为TransNuc.py

[code lang="python"]
#!/usr/bin/python
from argparse import ArgumentParser
from Bio.Seq import Seq
from Bio import SeqIO
parser = ArgumentParser(description='This Script is to convert nucleotide to amino acid')
parser.add_argument('-i', action='store', dest='sequence', help='Input is direct sequence')
parser.add_argument('-f', action='store', dest='inputfile', help='Input is a fasta file')
parser.add_argument('-r', action='store', dest='reverse_complement', help='Input is file, Reverse Complement the seq')
parser.add_argument('-t', action='store', dest='set_table', default=11, type=int, help='Translation table, default=11')
result = parser.parse_args()
set_table = result.set_table

if result.sequence:
seq = Seq(result.sequence)
print seq.translate(table=set_table)
if result.inputfile:
fastas = SeqIO.parse(result.inputfile, 'fasta')
for fasta in fastas:
print '>' + fasta.id
print fasta.seq.translate(table=set_table)
if result.reverse_complement:
fastas = SeqIO.parse(result.reverse_complement, 'fasta')
for fasta in fastas:
print '>' + fasta.id
print fasta.seq.reverse_complement()

[/code]


使用TransNuc.py -h可显示帮助。

optional arguments:

-h, --help show this help message and exit

-i SEQUENCE Input is direct sequence

-f INPUTFILE Input is a fasta file

-r REVERSE_COMPLEMENT     Input is file, Reverse Complement the seq

-t SET_TABLE Translation table, default=11

 

评论  2  访客  2
    • prcao 0

      我以前也试着写着类似的程序,你程序中调取了argparse模块,这个是楼主自己写的嘛?哪里下载?

        • polangxin

          @ prcao argparse是python内置的,我用的2.7版本的。
          或者你用optparse也行。不过argparse功能更好些。

      发表评论

      匿名网友