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

楼主  收藏   举报   帖子创建时间:  2018-03-07 00:00 回复:1 关注量:140

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

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

注:需要Biopython库支持。


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


#!/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()


使用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

  • ***2polangxin 2013-03-08 11:01
    #1

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