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反向互補序列獲取


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM