zoukankan      html  css  js  c++  java
  • python实现DNA序列字符串转换,互补链,反向链,反向互补链

    在生物信息学分析中,经常对DNA序列进行一系列操作,包括子序列截取,互补序列获取,反向序列获取,反向互补序列获取。在python语言中,可编写如下函数完成这些简单功能。

    子序列截取

    python中对序列截取使用字符串切片功能就可以完成,例如:

    >>> seq="ATGATATAGtatatatgCAAGAGg"
    >>> subseq = seq[1:6]
    >>> subseq
    "TGATA"

    注意,切片操作是“0-base”的,包左不包右。

    互补序列获取

    比较常见的做法是定义一个碱基替换字典,如下所示:

    def complement(s):
        basecomplemt = {
             "A":"T",
              "T":"A",
              "G":"C",
              "C":G",
              "a":"t",
              "t":"a",
              "g":"c",
              "c":"g",
              }
        letters = list(s)
        letters = [basecomplement[base] for base in letters]
        return ''.join(letters)

    使用python3字符串使用的translate方法

    def complement(seq):
        return seq.translate(str.maketrans('ACGTacgtRYMKrymkVBHDvbhd', 'TGCAtgcaYRKMyrkmBVDHbvdh'))

    python2 string包中的maketrans方法

    from string import maketrans
    
    def complement(seq):
        return seq.translate(maketrans('ACGTacgtRYMKrymkVBHDvbhd', 'TGCAtgcaYRKMyrkmBVDHbvdh'))

    反向互补序列获取

    def revcomp(seq): 
        return complement(seq)[::-1]

    参考资料

    DNA反向互补序列获取

  • 相关阅读:
    进程,进程
    hmac和socketserver
    下载Eclipse、下载Java各个版本,来这里就对了
    Java循环语句怎么用?经典排序算法见真知
    CSS基本语法
    Html属性标签
    HTML标记大全参考手册
    composer 安装Laravel (win10)
    composer 安装(win)
    GIT
  • 原文地址:https://www.cnblogs.com/yahengwang/p/9332561.html
Copyright © 2011-2022 走看看