五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

【ROSALIND】【練Python,學(xué)生信】38 求解最長(zhǎng)公共子序列

2020-01-28 10:27 作者:未琢  | 我要投稿

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

題目:

尋找共有的經(jīng)剪接模序(Finding a Shared Spliced Motif)

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

所給:兩條長(zhǎng)度不超過(guò)1kb的DNA序列s和t,以FASTA給出。

Return: A longest common subsequence of s and t. (If more than one solution exists, you may return any one.).

需得:s和t的最長(zhǎng)公共子序列(如果不止一個(gè),給出任一個(gè)即可)。

?

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

>Rosalind_23

AACCTTGG

>Rosalind_64

ACACTGTGA

測(cè)試輸出

AACTGG

?

背景

????????在30 鑒定不連續(xù)的DNA模序中我們核酸剪接以及不連續(xù)模序的概念,為了找到兩條序列間不連續(xù)的相同子序列,我們需要求解最長(zhǎng)公共子序列。

?

思路

????????這里的方法其實(shí)和24 求解最長(zhǎng)遞增子序列完全一樣,代碼也基本是從那道題復(fù)制過(guò)來(lái)的。求最長(zhǎng)遞增子序列的問(wèn)題實(shí)質(zhì)就是求所給序列和原先的連續(xù)遞增序列的最長(zhǎng)公共子序列。本題思路和代碼不再作解釋,詳細(xì)請(qǐng)參考24 求解最長(zhǎng)遞增子序列。

?

代碼

def LCSQ(s1, s2):
???
"""用動(dòng)態(tài)規(guī)劃求解最長(zhǎng)公共子序列的函數(shù)"""
???
m, n = len(s1), len(s2)
??? dp = [[[
"", 0] for j in list(range(n + 1))] for i in list(range(m + 1))]
???
for i in list(range(1, m + 1)):
??????? dp[i][
0][0] = s1[i - 1]
???
for j in list(range(1, n + 1)):
??????? dp[
0][j][0] = s2[j - 1]

???????
for i in list(range(1, m + 1)):
???????????
for j in list(range(1, n + 1)):
???????????????
if s1[i - 1] == s2[j - 1]:
??????????????????? dp[i][j] = [
'↖', dp[i - 1][j - 1][1] + 1]
???????????????
elif dp[i][j - 1][1] > dp[i - 1][j][1]:
??????????????????? dp[i][j] = [
'←', dp[i][j - 1][1]]
???????????????
else:
??????????????????? dp[i][j] = [
'↑', dp[i - 1][j][1]]

??????? s3 = []
??????? i = m
??????? j = n
???????
while i > 0 and j > 0:
???????????
if dp[i][j][0] == '↖':
??????????????? s3.append(dp[i][
0][0])
??????????????? i -=
1
???????????????
j -= 1
???????????
elif dp[i][j][0] == '←':
??????????????? j -=
1
???????????
elif dp[i][j][0] == '↑':
??????????????? i -=
1
???????
s3 = s3[::-1]
???????
return s3


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

[index, seq] = readfasta(lines)
seq1 = seq[
0]
seq2 = seq[
1]
res = []
res = LCSQ(seq1, seq2)
res =
''.join(res)
# print(res)
f = open('output.txt', 'w')
f.write(res)
f.close()

?


【ROSALIND】【練Python,學(xué)生信】38 求解最長(zhǎng)公共子序列的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
阜南县| 高青县| 洞口县| 晋城| 仲巴县| 新化县| 彝良县| 巩义市| 丹江口市| 绥宁县| 波密县| 长武县| 大厂| 易门县| 蒙自县| 房山区| 道孚县| 嵩明县| 三台县| 独山县| 乐至县| 九龙坡区| 青海省| 静宁县| 遵义市| 汉川市| 扬中市| 沁水县| 沂水县| 金坛市| 宽甸| 苍溪县| 郎溪县| 专栏| 五大连池市| 枞阳县| 特克斯县| 新邵县| 青田县| 松桃| 焦作市|