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

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

【ROSALIND】【練Python,學(xué)生信】60 同一基因中的共存模序

2021-09-03 18:35 作者:未琢  | 我要投稿

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

題目:

在基因中搜尋不相交的模序(Finding Disjoint Motifs in a Gene)

?

Given: A text DNA string s of length at most 10 kbp, followed by a collection of n (n≤10) DNA strings of length at most 10 bp acting as patterns.

所給:一條DNA序列s,長度不超過10kb。一組長度不超過10bp的DNA短序列,數(shù)目n不超過10。

Return: An n×n matrix M for which Mj,k=1 if the jth and kth pattern strings can be interwoven into s and Mj,k=0 otherwise.

需得:一個n×n的矩陣M,如果第j個和第k個短序列可以“融合”成s,則Mj,k=1,否則Mj,k=0。

?

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

GACCACGGTT

ACAG

GT

CCG

測試輸出

0 0 1

0 1 0

1 0 0

?

生物學(xué)背景

? ? ? ? 在之前的題目中,我們已經(jīng)了解了模序(motif)的概念。模序并不一定單獨存在,在同一個位置可能存在多個模序。在本題中,我們的目的是定位兩個“不相交(disjoint)”的模序。

? ? ? ??何為 “不相交”?舉例來說,兩個序列"ACAG" 和"CCG"可以融合(interweave)成序列"GACCACGGTT"。但不能融合為” GACCACAAAAGGTT"因為其中插入了4個“A”。同理,盡管"ACACG"是ACAG 和CCG的最短公共超序列(詳見49 求解最短公共超序列),但卻不是由它們?nèi)诤隙鴣淼?,因為字符出現(xiàn)了重合,不滿足“不相交”。

?

思路

? ? ? ??我解決本題的思路是:把兩個序列所有能融合成的序列枚舉出來,然后在長DNA序列中查找,能找到就說明可以融合。

? ? ? ??因此,本題的關(guān)鍵代碼是createstraing函數(shù),在這個函數(shù)中,我用遞歸的方法,生成兩個序列的所有融合序列,為了保存這個序列集合,我在函數(shù)外定義了一個列表res,相當于一個全局變量,這樣createstraing函數(shù)運行完后,我可以在函數(shù)外使用res中儲存的序列。

? ? ? ??隨后,我就可以把res中的序列依次拿出來,用python定義的find函數(shù)在長DNA序列中進行查找。用循環(huán)實現(xiàn)短序列的兩兩融合比較,就可以完成題目要求。


代碼


【ROSALIND】【練Python,學(xué)生信】60 同一基因中的共存模序的評論 (共 條)

分享到微博請遵守國家法律
遂昌县| 五指山市| 巨鹿县| 葫芦岛市| 钦州市| 徐汇区| 伊宁县| 连城县| 洛南县| 太仓市| 双牌县| 泾阳县| 廊坊市| 芜湖县| 荥阳市| 辰溪县| 高邑县| 牡丹江市| 太湖县| 扶沟县| 昌宁县| 凉城县| 齐齐哈尔市| 思南县| 泸西县| 凤冈县| 丰原市| 武邑县| 密山市| 衡水市| 大庆市| 阜宁县| 普兰店市| 古田县| 乌兰察布市| 衢州市| 涞源县| 镇巴县| 铜川市| 桃江县| 浙江省|