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

歡迎光臨散文網(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)建的評論 (共 條)

分享到微博請遵守國家法律
昭苏县| 来安县| 河曲县| 无为县| 灵石县| 兰坪| 岳普湖县| 北碚区| 休宁县| 淮北市| 大同县| 疏勒县| 徐汇区| 自贡市| 文水县| 乌拉特前旗| 乌拉特中旗| 定南县| 蒲城县| 太仓市| 屏边| 伊通| 巩留县| 汾西县| 兴安县| 武胜县| 桑日县| 合肥市| 灵武市| 碌曲县| 平乐县| 来宾市| 榆社县| 韶山市| 仲巴县| 乌拉特中旗| 綦江县| 屯留县| 江都市| 应城市| 崇州市|