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

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

【ROSALIND】【練Python,學(xué)生信】56 De Bruijn圖的構(gòu)建

2021-04-29 19:05 作者:未琢  | 我要投稿

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

題目:

De Bruijn圖的構(gòu)建(Constructing a De Bruijn Graph)

?

Given: A collection of up to 1000 (possibly repeating) DNA strings of equal length (not exceeding 50 bp) corresponding to a set S of (k+1)-mers.

所給:一個含有(k+1)-mer的集合S,其中至少包含1000條(可能有重復(fù))DNA序列,長度均相等且不超過50 bp。

Return: The adjacency list corresponding to the de Bruijn graph corresponding to S∪Src.

需得:由S∪Src組成的De Bruijn圖對應(yīng)的鄰接表。

?

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

TGAT

CATG

TCAT

ATGC

CATC

CATC

測試輸出

(ATC, TCA)

(ATG, TGA)

(ATG, TGC)

(CAT, ATC)

(CAT, ATG)

(GAT, ATG)

(GCA, CAT)

(TCA, CAT)

(TGA, GAT)

?

生物學(xué)背景

? ? ? ? 在二代測序中,所得數(shù)據(jù)的總長度將比基因組本身長得多。所以將測序的覆蓋度定義為基因組中每個核苷酸出現(xiàn)的平均次數(shù)。換句話說,如果30億bp基因組的總測序長度是300億bp,那么我們獲得的測序覆蓋度是10x。因為我們要處理數(shù)量如此巨大的短的測序片段,必然需要合適的算法將短片段拼接起來,De Bruijn就是最常用的二代測序拼接算法。具體介紹可參考下面的文章:https://blog.csdn.net/Emmett_Bioinfo/article/details/109274974。

? ? ? ??有關(guān)k-mer的介紹請參考23 按字母順序排列的K-mer

?

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

? ? ? ??有關(guān)De Bruijn圖的介紹可以參考下面這篇文章:https://zhuanlan.zhihu.com/p/57177938。簡單來說,De Bruijn圖是一個展示符號序列之間重疊關(guān)系的有方向的示意圖。在二代測序數(shù)據(jù)處理中, 測序片段(reads)打斷成為長度為k的核酸片段(k-mer),隨后根據(jù)k-mer間重復(fù)的部分構(gòu)建De Bruijn 圖,得到最優(yōu)化路徑從而實現(xiàn)序列的拼接。

? ? ? ??假設(shè)S是某DNA序列的(k+1)-mer組成的集合,Src是S中序列的反向互補序列組成的集合。則這兩者的并集S∪Src 對應(yīng)的De Bruijn 圖Bk有如下特點:

1)Bk中的結(jié)點為S∪Src中的(k+1)-mer所包含的k-mers。(Nodes of Bk correspond to all k-mers that are present as a substring of a (k+1)-mer from S∪Src.)

2)Bk中的邊由如下方式產(chǎn)生:S∪Src中的每個(k+1)-mer(用r表示),形成有向邊(r[1:k],r[2:k+1])。(Edges of Bk are encoded by the (k+1)-mers of S∪Src in the following way: for each (k+1)-mer r in S∪Src, form a directed edge (r[1:k], r[2:k+1]).)

?

思路

這道題是對之前k-mer和集合知識的小小回顧。我的方法是先得到S∪Src,然后取出其中的每個元素分別得到k-mer即可,寫法較簡單,請參考代碼和注釋。


代碼



【ROSALIND】【練Python,學(xué)生信】56 De Bruijn圖的構(gòu)建的評論 (共 條)

分享到微博請遵守國家法律
大冶市| 赤峰市| 靖江市| 万州区| 明溪县| 上蔡县| 德惠市| 江川县| 阿克陶县| 新邵县| 阳江市| 沧源| 凉城县| 同德县| 湖北省| 滨海县| 灌南县| 社旗县| 泽库县| 荆州市| 贵州省| 岫岩| 嘉义县| 中江县| 合山市| 贵阳市| 城固县| 三穗县| 久治县| 清流县| 灵丘县| 赤水市| 卓尼县| 大厂| 化德县| 新郑市| 枣庄市| 庆云县| 福建省| 华蓥市| 五寨县|