本文關(guān)鍵給大家介紹了通過自學python求已經(jīng)知道DNA模版的相輔相成DNA序列的實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪。
DNA序列
ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT
求其相輔相成DNA序列。
在微生物上DNA相輔相成編碼序列概述表述能夠表述為:A與T,C與G相輔相成,可以看作將以上編碼序列中已有的A用T取代,C用G取代,T用A取代,G用C取代,則其相輔相成編碼序列為:
TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA
根據(jù)上述表述,我可以利用replace()函數(shù)進行替換,將A用T替換,T用A替換,C用G替換,G用C替換,
簡述其代碼
my_dna="ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" #replace A with T sequence1=my_dna.replace('A','T') #replace T with A sequence2=sequence1.replace('T','A') #replace C with G sequence3=sequence2.replace('C','G') #replace G with C sequence4=sequence3.replace('G','C') #print the result of the final replacement print(sequence1) print(sequence2) print(sequence3) print(sequence4)
其輸出結(jié)果如下:
TCTGTTCGTTTTCGTTTTGTTTTTGCTTTCTTTCTTTTTTTTCGTTGCGTTCTT
ACAGAACGAAAACGAAAAGAAAAAGCAAACAAACAAAAAAAACGAAGCGAACAA
AGAGAAGGAAAAGGAAAAGAAAAAGGAAAGAAAGAAAAAAAAGGAAGGGAAGAA
ACACAACCAAAACCAAAACAAAAACCAAACAAACAAAAAAAACCAACCCAACAA
原始序列上進行替換
顯然結(jié)果是不正確的,我們在sequence1到sequence2中就已經(jīng)出現(xiàn)錯誤,誤把sequence1中A被替換之后變?yōu)門的序列,在sequence2中又被替換掉了,因此我們要轉(zhuǎn)變思路,保持只替換原本的序列,不進行多次替換,避免錯誤,我們可以嘗試每次只在原始序列上進行替換,嘗試代碼如下:
my_dna="ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" #replace A with T sequence=my_dna.replace('A','T') #replace T with A sequence2=my_dna.replace('T','A') #replace C with G sequence3=my_dna.replace('C','G') #replace G with C sequence4=my_dna.replace('G','C') print(sequence1) print(sequence2) print(sequence3) print(sequence4)
其輸出結(jié)果如下:
TCTGTTCGTTTTCGTTTTGTTTTTGCTTTCTTTCTTTTTTTTCGTTGCGTTCTT
ACAGAACGAAAACGAAAAGAAAAAGCAAACAAACAAAAAAAACGAAGCGAACAA
AGTGATGGATTAGGTATAGTATTTGGTATGATAGATATATATGGATGGGTTGAT
ACTCATCCATTACCTATACTATTTCCTATCATACATATATATCCATCCCTTCAT
顯然結(jié)果也是不正確的,因此,我們要引入中間變量,最后再把它做一個回環(huán),
也就是說引入四個臨時字母,然后每個變換2次,最后把最終結(jié)果輸出,其代碼可以為:
my_dna="ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" sequence1=my_dna.replace('A','H') sequence2=sequence1.replace('T','J') sequence3=sequence2.replace('C','K') sequence4=sequence3.replace('G','L') sequence5=sequence4.replace('H','T') sequence6=sequence5.replace('J','A') sequence7=sequence6.replace('K','G') sequence8=sequence7.replace('L','C') print(sequence8) 其結(jié)果為: TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA 利用upper()輸出大寫結(jié)果 至此得到了我們想要的結(jié)果,但這種方法顯然是有些復雜了,我們可以利用字符的大小寫來完成我們的工作,也就是利用小寫字母為臨時變量,最終利用upper()輸出大寫的結(jié)果就行了,其代碼和結(jié)果如下: my_dna="ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT" sequence1=my_dna.replace('A','t') print(sequence1) sequence2=sequence1.replace('T','a') print(sequence2) sequence3=sequence2.replace('C','g') print(sequence3) sequence4=sequence3.replace('G','c') print(sequence4) print(sequence4.upper())
其結(jié)果為:
tCTGtTCGtTTtCGTtTtGTtTTTGCTtTCtTtCtTtTtTtTCGtTGCGTTCtT
tCaGtaCGtaatCGatatGataaaGCataCtatCtatatataCGtaGCGaaCta
tgaGtagGtaatgGatatGataaaGgatagtatgtatatatagGtaGgGaagta
tgactagctaatgcatatcataaacgatagtatgtatatatagctacgcaagta
TGACTAGCTAATGCATATCATAAACGATAGTATGTATATATAGCTACGCAAGTA
至此我們的互補DNA序列得到了,也許有更好更簡潔的代碼。
結(jié)尾
盡管這是一個不起眼的測算程序流程,但是對于新手的我來說每次對源代碼的更新改造,即便是了解后注解都覺得是一場發(fā)展提高,總而言之編碼雖然不大,出手最關(guān)鍵!期待更多學學Pythod的發(fā)燒友不必像我這樣好高騖遠,學編程就是為了,思索,敲碼,思索,敲碼,敲碼,再敲碼,更多關(guān)于python求DNA模板互補序列的資料歡迎關(guān)注原網(wǎng)頁其他類似文章!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/128700.html
此篇文章關(guān)鍵給大家介紹了Python完成一階矩馬爾可夫過程形成任意DNA序列實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早漲薪?! ?.基本原理 針對DNA序列,一階矩馬爾可夫過程可以看作現(xiàn)階段堿基對的種類僅在于上一位堿基對種類。如下圖1所示,1條編碼序列的開始(由B逐漸)有可能是A、T、G、C4種堿基對(且概率同樣,均是0.25),若編碼序列某...
摘要:哈希表法復雜度時間空間思路最簡單的做法,我們可以把位移一位后每個子串都存入哈希表中,如果哈希表中已經(jīng)有這個子串,而且是第一次重復,則加入結(jié)果中。如果哈希表沒有這個子串,則把這個子串加入哈希表中。 Repeated DNA Sequences All DNA is composed of a series of nucleotides abbreviated as A, C, G, a...
摘要:第三代基因測序技術(shù)革新云計算的應用一位準媽媽,在懷孕周時,需要做唐氏兒的篩查,傳統(tǒng)唐篩的方式準確率低,如果結(jié)果顯示危險性高,那么準媽媽還需要做羊膜穿刺等進一步檢查。未來組目前已經(jīng)擁有兩臺第三代基因測序儀,而未來這一數(shù)字將增長至五臺。 第三代基因測序技術(shù)革新 云計算的應用一位準媽媽,在懷孕12-24周時,需要做唐氏兒的篩查,傳統(tǒng)唐篩的方式準確率低,如果結(jié)果顯示危險性高,那么準媽媽還需要做...
摘要:題目要求所有的都是有這四個字母組成的,比如。這個問題要求我們在一個序列中找到出現(xiàn)超過兩次的長度為的子序列。因為個字母意味著每個字母至少需要位才能表示出來。因為每個字符串對應的二進制長度為,小于整數(shù)的,因此是可行的。 題目要求 All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for...
摘要:狀態(tài)變量是被永久地保存在合約中。如何定義一個私有的函數(shù)呢這意味著只有我們合約中的其它函數(shù)才能夠調(diào)用這個函數(shù),給數(shù)組添加新成員。事件事件事件我們的合約幾乎就要完成了讓我們加上一個事件事件是合約和區(qū)塊鏈通訊的一種機制。 大愛loom!大愛loom!內(nèi)容整理自loom僵尸小游戲課程 一、合約 所有的 Solidity 源碼都必須冠以 version pragma — 標明 Solidity ...
閱讀 923·2023-01-14 11:38
閱讀 895·2023-01-14 11:04
閱讀 756·2023-01-14 10:48
閱讀 2055·2023-01-14 10:34
閱讀 961·2023-01-14 10:24
閱讀 840·2023-01-14 10:18
閱讀 510·2023-01-14 10:09
閱讀 588·2023-01-14 10:02