利用biopython将cds序列翻译成蛋白序列

利用biopython将cds序列翻译成蛋白序列

将cds序列翻译成蛋白序列 , 由于不同的物种或者特殊的细胞器(线粒体等)的密码子存在差异,我们不能随便默认的进行翻译,这里的biopython可以根据我们的需要使用不同的密码子进行蛋白翻译,密码子见:

1.普通的密码子翻译,rna翻译成蛋白质

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> messenger_rna = Seq("AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG", IUPAC.unambiguous_rna)
>>> messenger_rna
Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())
>>> messenger_rna.translate()
Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))

2. cds序列翻译成蛋白序列

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> coding_dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG", IUPAC.unambiguous_dna)
>>> coding_dna
Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG', IUPACUnambiguousDNA())
>>> coding_dna.translate()
Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))

3.指定密码子翻译成蛋白序列


>>> coding_dna.translate(table="Vertebrate Mitochondrial")
Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))

或者用序号

>>> coding_dna.translate(table=2)
Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))

密码子表信息见:https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi


更多python编程可以学习:python语言入门到精通


批量运行示例代码:

from Bio.Seq import Seq
from Bio import SeqIO
from Bio.Alphabet import IUPAC
from Bio.SeqRecord import SeqRecord
import sys, os, argparse, os.path,re,math,time
parser = argparse.ArgumentParser(description='This script is used to translate cds to pep')
#parser.add_argument('-m','--map',help='Please input ref mapped id file',required=True)
parser.add_argument('-f','--fasta',help='Please fasta file',required=True)
parser.add_argument('-o','--out_dir',help='Please input complete out_put directory path',default = os.getcwd(),required=False)
parser.add_argument('-t','--table',type=int,default=1,help=' genetic code :https://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi, default table id 1',required=False)
parser.add_argument('-n','--name',default ='pep',required=False,help='Please specify the output, pep')
################################################################################
args = parser.parse_args()
dout=''
if os.path.exists(args.out_dir):
    dout=os.path.abspath(args.out_dir)
else:
    os.mkdir(args.out_dir)
    dout=os.path.abspath(args.out_dir)
output_handle = open(dout+'/'+args.name+'.fa', "w")
for rec in SeqIO.parse(args.fasta, "fasta"):
    rec.seq=rec.seq.translate(table=args.table)
    SeqIO.write(rec, output_handle, "fasta")
output_handle.close()
  • 发表于 2020-02-24 11:50
  • 阅读 ( 6940 )
  • 分类:python

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

658 篇文章

作家榜 »

  1. omicsgene 658 文章
  2. 安生水 328 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. 红橙子 78 文章
  6. CORNERSTONE 72 文章
  7. xun 67 文章
  8. rzx 67 文章