search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

[Python]如何做基因體序列反轉互補 @ Saioyan梟夜 :: 痞客邦 ::

[Python]如何做基因體序列反轉互補

關鍵字:基因體序列、反轉、互補、IUPAC、for迴圈、字典dict、函數def

今天假設拿到一小段基因體序列"ATCCTTTCCATTATT",我們應該要如何將序列做反轉和互補的動作呢?

以下就直接以程式碼呈現,將功能寫入函數中再輸入一段序列後產出反轉互補序列

seq = 'ATCCTTTCCATTATT'
print(seq,'初始序列')
def reverse_complement(seq):
    seq=seq.upper()
    complement = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'K':'M','M':'K','R':'Y','Y':'R','S':'W','W':'W','B':'V','V':'B','H':'G','D':'C','X':'N','N':'N'}
    bases = list(seq)
    bases = bases[::-1]
    rc=[complement.get(base) for base in bases]
    bases = ''.join(rc)
    return bases
print(reverse_complement(seq),'反轉互補')

seq = 'ATCCTTTCCATTATT'是我們設定的初始序列

seq=seq.upper()是轉換字串裡的字元為大寫
complement是互補對應表,使用字典的key和value紀錄待轉換字元以及轉換後的字元,除了'A','T','C','G'以外的字是IUPAC CODE
bases = list(seq)是將字串轉換為清單,比如ATCC=>['A','T','C','C']
bases = bases[::-1]是將清單內的元素反過來讀取,比如['A','T','C','C']=>['C','C','T','A']
rc=[complement.get(base) for base in bases]是用圈將每個序列的字元進行互補轉換
bases = ''.join(rc)是重新將清單合併為字串
return bases是回傳參數到reverse_complement(seq)印出反轉互補序列
image
以上如何做基因體序列反轉互補介紹到這邊 ,其他Python教學可以參考以下網址,歡迎大家參考!!!


熱門推薦

本文由 kk665403pixnetnetblog 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦