• bio1_序列操作


     目录:
    1.DNA---RNA---protein互相转换



    图片

    图片

    # -*- coding: utf-8 -*-
    
    
    '''
    
    实际的生物学上的转录过程是将模板链反向互补(TCAG → CUGA)生成mRNA。但是,
    
    在Biopython和生物信息学领域,我们通常会直接利用编码链,因为我们可以通过 T → U的转换获得mRNA。
    
    
    '''
    
    
    
    
    from Bio.Seq import Seq
    
    from Bio.Alphabet import IUPAC
    
    from Bio.SeqUtils import GC
    
    from Bio.Alphabet import generic_alphabet
    
    
    #生成序列
    
    my_seq = Seq("AGTACACTGGT")
    
    
    '''
    
    my_seq
    
    Out[5]: Seq('AGTACACTGGT', Alphabet())
    
    
    print my_seq
    
    AGTACACTGGT
    
    '''
    
    my_seq.alphabet
    
    '''
    
    Out[7]: Alphabet()
    
    '''
    
    #互补
    
    my_seq.complement()
    
    '''
    
    Out[8]: Seq('TCATGTGACCA', Alphabet())
    
    '''
    
    
    #反向互补
    
    my_seq.reverse_complement()
    
    '''
    
    Out[9]: Seq('ACCAGTGTACT', Alphabet())
    
    '''
    
    my_seq = Seq('GATCGATGGGCCTATATAGGATCGAAAATCGC', IUPAC.unambiguous_dna)
    
    #计算G和C的概率
    
    GC(my_seq)
    
    '''
    
    Out[13]: 46.875
    
    '''
    
    
    str(my_seq)
    
    '''
    
    Out[14]: 'GATCGATGGGCCTATATAGGATCGAAAATCGC'
    
    '''
    
    
    protein_seq = Seq("EVRNAK", IUPAC.protein)
    
    dna_seq = Seq("ACGT", IUPAC.unambiguous_dna)
    
    #不同性质序列叠加会报错
    
    #protein_seq + dna_seq
    
    #转化为通用的字母表后,不同序列可以叠加
    
    protein_seq.alphabet = generic_alphabet
    
    dna_seq.alphabet = generic_alphabet
    
    
    protein_seq + dna_seq
    
    '''Out[27]: Seq('EVRNAKACGT', Alphabet())'''
    
    
    
    
    #创建DNA序列的 编码链
    
    coding_dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG", IUPAC.unambiguous_dna)
    
    #模板链(反向互补)
    
    template_dna = coding_dna.reverse_complement()
    
    '''template_dna
    
    Seq('CTATCGGGCACCCTTTCAGCGGCCCATTACAATGGCCAT', IUPACUnambiguousDNA())'''
    
    
    # transcribe 转录方法将编码链转录成对应的mRNA
    
    messenger_rna = coding_dna.transcribe()
    
    '''
    
    Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())
    
    '''
    
    
    #Seq 对象还包含了从mRNA逆向转录为DNA编码链的方法。同样,这仅仅是从U → T的替代并伴随着字母表的变化
    
    messenger_rna.back_transcribe()
    
    '''
    
    Out[30]: Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG', IUPACUnambiguousDNA())
    
    '''
    
    
    #继续使用在转录那个小节中的例子,现在让我们将这个mRNA翻译成相对应的 蛋白质序列
    
    #rna编码和DNA编码都可以翻译成对应蛋白质
    
    protein_seq1=messenger_rna.translate()
    
    '''
    
    Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))
    
    '''
    
    #直接从DNA翻译为蛋白质
    
    protein_seq2=coding_dna.translate()
    
    
    #DNA重编程,使用mutable函数
    
    my_seq = Seq("GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA", IUPAC.unambiguous_dna)
    
    mutable_seq = my_seq.tomutable()
    
    '''
    
    Out[38]: MutableSeq('GCCATTGTAATGGGCCGCTGAAAGGGTGCCCGA', IUPACUnambiguousDNA())
    
    '''
    
    #更改DNA编码
    
    mutable_seq[5] = "C"
    
    '''
    
    MutableSeq('GCCATCGTAATGGGCCGCTGAAAGGGTGCCCGA', IUPACUnambiguousDNA())
    
    '''
    
    mutable_seq.remove("T")
    
    mutable_seq.reverse()
    
    mutable_seq
    

    python机器学习生物信息学,博主录制,2k超清
    腾讯课堂报名入口

    网易云课堂报名入口

    (腾讯课堂新营业,报名可领取20元优惠券)

    (原创课程,版权所有,项目合作QQ:231469242,微信公众号:pythonEducation)

  • 相关阅读:
    每日分享!JavaScript中的表单事件
    每日分享!~ 如何解决获取卷曲高度的问题,document.body.scrollTop为什么在pc端拿不到值
    Unhandled rejection Error: EACCES: permission denied, open '
    每日分享!canvas的使用~
    每日分享!JavaScript的鼠标事件(11个事件)
    每日分享!~ 使用js原生方式对拖拉元素(鼠标的事件)
    每日分享!~ JavaScript(拖拽事件)
    每日分享!~ JavaScript(js数组如何在指定的位置插入一个元素)
    每日分享!~ vue JavaScript中为什么可以读取到字符串的长度!(包装对象)
    let和var以及const有什么区别
  • 原文地址:https://www.cnblogs.com/webRobot/p/14095713.html
Copyright © 2020-2023  润新知