在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
1F
我以前也试着写着类似的程序,你程序中调取了argparse模块,这个是楼主自己写的嘛?哪里下载?
B1
@ prcao argparse是python内置的,我用的2.7版本的。
或者你用optparse也行。不过argparse功能更好些。