最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【ROSALIND】【練Python,學(xué)生信】30 鑒定不連續(xù)的DNA模序

2020-01-20 16:08 作者:未琢  | 我要投稿

如果第一次閱讀本系列文檔請先移步閱讀【ROSALIND】【練Python,學(xué)生信】00 寫在前面 ?謝謝配合~

題目:

鑒定不連續(xù)的DNA模序(Finding a Spliced Motif)

Given: Two DNA strings s and t (each of length at most 1 kbp) in FASTA format.

所給:兩條不超過1kb長的DNA序列s和t,以FASTA格式給出。

Return: One collection of indices of s in which the symbols of t appear as a subsequence of s. If multiple solutions exist, you may return any one.

需得:t作為s的子序列,其中的元素在s上出現(xiàn)的位置,如果存在多個解,只需要給出任意一個。

?

測試數(shù)據(jù)

>Rosalind_14

ACGTACGTGACG

>Rosalind_18

GTA

測試輸出

3 8 10

?

生物學(xué)背景

????????人類的基因組中存在外顯子和內(nèi)含子,內(nèi)含子在mRNA加工成熟的過程中被剪切掉。因此一些模序在原始的DNA鏈上可能是不連續(xù)的,在成熟的mRNA上才連接在一起。這給我們從基因組上分析模序帶來了困難。

?

數(shù)學(xué)背景

????????子序列(subsequence)是包含在另一條序列中的序列,但與子串(substring)不同,子序列中的字符在包含它的序列中可以是不連續(xù)的,只需要順序保持不變即可。例如ACG 是TATGCTAAGATC的子序列,出現(xiàn)的位置是2, 5, 9,顯然位置可以不唯一。

?

思路

????????我用兩層循環(huán)解決這個問題,第一層將子序列中的字符一個個取出來,第二層與另一字符串中的字符挨個比較。一旦找到相同的,就存儲當(dāng)前位置,并跳出第二層循環(huán),將子序列中下一個字符拿出來再按上述過程進(jìn)行比較。

?

代碼

def readfasta(lines):
???
"""讀入fasta格式文件的函數(shù)"""
??? seq = []
??? index = []
??? seqplast =
""
???
numlines = 0
???
for i in lines:
???????
if '>' in i:
??????????? index.append(i.replace(
"\n", "").replace(">", ""))
??????????? seq.append(seqplast.replace(
"\n", ""))
??????????? seqplast =
""
???????????
numlines += 1
???????
else:
??????????? seqplast = seqplast + i.replace(
"\n", "")
??????????? numlines +=
1
???????
if numlines == len(lines):
??????????? seq.append(seqplast.replace(
"\n", ""))
??? seq = seq[
1:]
???
return index, seq

?

?

f = open('rosalind_sseq.txt', 'r')
lines = f.readlines()
f.close()

[index, seq] = readfasta(lines)
subseq = seq[
1] # subseq存儲子序列
seq = seq[0]
i =
0
j = 0
n = '' # 用字符串的形式存儲位置
while i < len(subseq):
???
while j < len(seq):
???????
if subseq[i] == seq[j]: # 如果子序列中的這個字符在序列中
???????????
n = n + str(j + 1) + ' ' # 把當(dāng)前位置存儲在n中
???????????
j += 1
???????????
break # 不再比較子串這個字符是否與后續(xù)字符相同
???????
j += 1
???
i += 1

print(n)


【ROSALIND】【練Python,學(xué)生信】30 鑒定不連續(xù)的DNA模序的評論 (共 條)

分享到微博請遵守國家法律
东城区| 桑日县| 濮阳县| 鲁甸县| 六盘水市| 深圳市| 惠水县| 保靖县| 浠水县| 肥东县| 新巴尔虎右旗| 南华县| 扶绥县| 无为县| 徐水县| 富平县| 武汉市| 图片| 新化县| 吉安县| 内丘县| 台江县| 萍乡市| 静宁县| 芦溪县| 黄陵县| 芜湖市| 项城市| 且末县| 海伦市| 琼海市| 北京市| 栾城县| 鄱阳县| 西畴县| 娄烦县| 金华市| 常宁市| 大姚县| 岳阳市| 丹阳市|