zoukankan      html  css  js  c++  java
  • Biopython 模块处理Seq序列 方法

    Biopython 模块
    1.序列 赋值
    Bio.Alphabet.IUPAC 提供蛋白质、DNA和RNA的基本定义,并提供扩展和定制基本定义的功能。
    1.1 DNA 字母表

    基本字母:IUPACUnambiguousDNA
    每种可能下的歧义字母:IUPACAmbiguousDNA
    修饰后的碱基:ExtendedIUPACDNA

    1.2 蛋白字母表
    基本的IUPACProtein类 包含常见的20中氨基酸
    ExtendedIUPACProtein类 包含除20种常见氨基酸外的其他氨基酸元素

    如:
    >>> from Bio.Seq import Seq
    >>> from Bio.Alphabet import IUPAC
    >>> my_seq = Seq("AGTACACTGGT", IUPAC.unambiguous_dna) #基本的DNA字母表
    >>> my_seq
    Seq('AGTACACTGGT', IUPACUnambiguousDNA())
    >>> my_seq.alphabet
    IUPACUnambiguousDNA()

    2 序列Seq方法
    1)字符串方法
    len(my_seq)
    迭代 如:
    >>> for index, letter in enumerate(my_seq):
    ... print index, letter
    lower()
    upper() 改变带小写
    count() 如: Seq("AAAA").count("AA")
    切片 如: my_seq[0::3] 取密码子第一的碱基
    str() 转换序列对象成字符串 如:
    >>> str(my_seq)
    'GATCGATGGGCCTATATAGGATCGAAAATCGC

    2)互补,方向互补
    complement() #互补
    reverse_complement() #反向互补方法
    >>> from Bio.Seq import Seq
    >>> from Bio.Alphabet import IUPAC
    >>> my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC", IUPAC.unambiguous_dna)
    >>> my_seq
    Seq('GATCGATGGGCCTATATAGGATCGAAAATCGC', IUPACUnambiguousDNA())
    >>> my_seq.complement() #互补
    Seq('CTAGCTACCCGGATATATCCTAGCTTTTAGCG', IUPACUnambiguousDNA())
    >>> my_seq.reverse_complement() #反向互补方法
    Seq('GCGATTTTCGATCCTATATAGGCCCATCGATC', IUPACUnambiguousDNA())

    3)转录
    transcribe()#将序列的T换成U,并调整字母表为RNA, 所以需是编码链用这方法
    模板链需先反向互补再转录 如: template_dna.reverse_complement().transcribe()
    >>> coding_dna
    Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG', IUPACUnambiguousDNA())
    >>> messenger_rna = coding_dna.transcribe() #将
    >>> messenger_rna
    Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())

    4)逆转录 即换U为T,转换字母表为DNA
    back_transcribe()

    5)translate() 将DNA/RNA翻译成蛋白序列,并转换蛋白字母表
    标准遗传密码 table id 1 ,默认使用1
    线粒体序列密码 table id 2

    注:终止密码子翻译成*
    仅翻译到阅读框的第一个终止密码子,然后停止 (这更符合自然现象)则to_stop=True。
    >>> coding_dna.translate()
    Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))
    >>> coding_dna.translate(to_stop=True)
    Seq('MAIVMGR', IUPACProtein())
    >>> coding_dna.translate(table=2)
    Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))
    >>> coding_dna.translate(table=2, to_stop=True)
    Seq('MAIVMGRWKGAR', IUPACProtein())

    3.Seq对象不可变即不可再次更改或删除,如需要则需要先转换成str或MutableSeq对象
    如:
    >>> mutable_seq = my_seq.tomutable()
    >>> mutable_seq
    MutableSeq('GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA', IUPACUnambiguousDNA())
    >>> new_seq = mutable_seq.toseq()
    >>> new_seq
    Seq('AGCCCGTGGGAAAGTCGCCGGGTAATGCACCG', IUPACUnambiguousDNA())

    4.字符串其实也可以应用Seq的方法,只是用Seq更规范数据格式。
    >>> from Bio.Seq import reverse_complement, transcribe, back_transcribe, translate
    >>> my_string = "GCTGTTATGGGTCGTTGGAAGGGTGGTCGTGCTGCTGGTTAG"
    >>> reverse_complement(my_string)
    'CTAACCAGCAGCACGACCACCCTTCCAACGACCCATAACAGC'
    >>> transcribe(my_string)
    'GCUGUUAUGGGUCGUUGGAAGGGUGGUCGUGCUGCUGGUUAG'
    >>> back_transcribe(my_string)
    'GCTGTTATGGGTCGTTGGAAGGGTGGTCGTGCTGCTGGTTAG'
    >>> translate(my_string)
    'AVMGRWKGGRAAG*'

    参考 Biopython Doc URL: http://biopython-cn.readthedocs.io/zh_CN/latest/cn/chr03.html

    本文来自博客园,作者:BioinformaticsMaster,转载请注明原文链接:https://www.cnblogs.com/koujiaodahan/p/8443508.html

  • 相关阅读:
    mscrm 2011 iframe中显示关联实体视图
    Microsoft Dynamic CRM 自定义重复检测功能
    sharepoint 在InfoPath中如何获取当前用户的信息(Profile)(转闪电)
    html页面展示语音流
    socketio请求示例
    RPC框架 redkale maven 打包搭建部署教程
    Nexus Repository Manager 3.0 安装与包上传 Maven、Nuget
    使用java代码配置 Spring Boot 中的 Spring Security 和 Rember me, Cookie记住密码
    CentOs 常用命令
    使用springrestdocs 自动生成接口文档
  • 原文地址:https://www.cnblogs.com/koujiaodahan/p/8443508.html
Copyright © 2011-2022 走看看