圖論解油瓶分油問題_一個很有趣的de novo圖論算法

56f8f963610a29834d2d24fbddda50ef.png

首先,小編先給大家介紹一些關于組裝的歷史。大家肯定也知道,這個組裝技術的發展是依賴于測序技術的。首先在一代測序的時候,測序數據量較少,成本較高,人們對于組裝的結首先,小編先給大家介紹一些關于組裝的歷史。大家肯定也知道,這個組裝技術的發展是依賴于測果預期也比較低,弄到contig水平就可以啦,還有就是這個組裝的物種基因組都偏小。因此那個時候的組裝軟件都是基于overlap的。然后呢,二代測序技術來了,數據量超高,成本也便宜啦。科研工作者就想啊,現在都二代了,這個組裝的預期得提高啊,得與時俱進啊。但是基于overlap的組裝不了太長,而且超級慢,又加之,二代數據量太多,overlap扛不住啊。因此有人就開發出了基于圖論的組裝算法。然后呢,三代測序技術這兩年出來了,科學家一看,我x,這么長的read,那還搞毛圖論的算法,直接簡單粗暴點,用overlap多簡單,于是基于overlap的軟件又火了,去年一個三代基于圖論的軟件發表,將基于圖論的組裝再次放在了風口浪尖。

大家好,我是生信人小編XIXI,與青壬同學遙相呼應地,坐標魔都西南……平時做項目總會遇到一些很有意思的文章或者算法,或者一些很有用的工具,會有拍案叫絕的沖動(當然更多時候有想摔桌子的沖動),所以呢希望能通過這個平臺和大家一起分享。

最近有在看一些關于從頭拼接(de novo)相關的文章。De novo的方法大部分是當基因組、轉錄組或者蛋白組信息缺失嚴重或者想要研究修飾的時候使用,它可以不用借助任何參考組直接進行推測拼接,但相對來說準確度會比較低一些。

其實不難發現,大部分de novo的文章都是基于圖論分析,比如大部分基因組和轉錄組de novo;蛋白組的質譜數據分析屬于“看圖說話”,以前的很多工具也是基于圖論,最近有出來很多基于機器學習的工具,運行速度也有大幅提升,如果大家感興趣后邊也可以給大家講講。

最近想使用SOAPdenovo-Trans來進行RNA-seq的de novo分析

所以對它的原理及運行過程進行了一下簡單摸索。在轉錄組方面,如果是測序比較完全的生物,大多數人是會選擇將測序的read直接匹配到參考基因組上邊的(還記得大明湖畔的Tophat和cufflinks么);但是如果是一些參考基因組缺失的或者基因組非常龐大的物種,de novo的方法則可以很好地解決這個問題。

De Bruijn graph (DBG)可以說基本是大部分組裝方法的核心所在,有很大一部分的轉錄組拼接軟件(Oases,SOAPdenovo-Trans等)都是依賴于這個算法的。這里給大家做一個比較通俗的介紹。

比如我們手上有真實的RNA序列AUCGAAUCCCGAA,通過 RNA-seq可以得到的6條read:

9a9ced7d42aa9dc1e5921523b5e25a14.png

那怎么從這6個小片段推導出它真實的序列信息呢?(如果你一眼看出來了,請原諒我寬容地排列整齊……)

首先,假如我們設定K-mers為3-mers,也就是說我們可以將所有的read都切割3個堿基長度的子序列,如下:

cb6bc0c8b1adf158fc8510513da563c5.png

接著,我們可以將每個子序列都可以看成一個結點,每個read中的子序列結點可以依次用箭頭連接,依次建立這樣一張有向圖:

3c29ae210e8589d24ed280da98428291.png

最后一張即為最終的de Bruijn graph (DBG)。那么怎么通過這張圖得到相應的序列呢?

學過圖論的旁友們大概可以會心一笑,那就是解歐拉路徑(Eulerian Tour)!也就是在最后這張圖里使得每條路徑被經過且僅經過一次。這個例子里可以很簡單的可以看出來(真實的案例里大約看的出來算我輸……):

bb2490249ac003918ff0dfa555d06197.png

串起來就可以得到:AUCGAAUCCCGAA,也就是我們最開始的RNA序列了!具體解歐拉途徑的算法圖論中應該會有比較多的討論,有興趣的大神可以親手實現一下。

在該算法中K的選擇是有一定講究的,一般來說K小于等于最短read的長度,如果太短拼接效果又會比較差。SOAPdenovo-Trans中一般會設定~35作為K值。

De Bruijn graph的組裝方法相對時間復雜度比較低,為O(min(N,G)),G=genome length,N= total length of reads,與重疊方法的拼接過程相比可以大大節約時間成本;但它存在的問題是很可能你得到的路徑和你輸入的read是不匹配的,另外對于重復序列的處理也不是很棒。

更多套路,生信分析需求,請加微信:13895744602

歡迎關注生信人

TCGA | 小工具 | 數據庫 |組裝| 注釋 | 基因家族 | Pvalue

基因預測 |bestorf | sci | NAR | 在線工具 | 生存分析 | 熱圖

生信不死 | 初學者 | circRNA | 一箭畫心| 十二生肖 | circos

舞臺|基因組 | 黃金測序 | 套路 | 雜談組裝 | 進化 | 測序簡史

661fa90391f6562c3c28c48c889d2930.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272023.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272023.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272023.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pip show pip可以查看pip的版本以及升級pip到最新版本

輸入命令:pip show pip可以查看pip的版本,如果不是最新版最后會有提示如下: 輸入命令:python -m pip install --upgrade pip可以升級pip到最新版本。

盤點程序員開發遇到的30個問題

1、我不知道該刪掉還是重寫回歸曾經寫的源代碼,總有一種想要重新返工的沖動,邏輯性差,冗余代碼多,讓人難以理解。但是,如果功能沒出現問題,千萬不要去修改。這是我經常要面對的困擾,相信也困擾了…

20159320《網絡攻防實踐》第5周教材總結

web應用程序安全攻防 應用程序體系結構以及其安全威脅 1、三層架構:表示層、業務邏輯層和數據層 2、體系結構:瀏覽器、web服務器、web應用程序、數據庫、傳輸協議HTTP/HTTPS 3、web應用安全威脅:針對瀏覽器和終端用戶的web瀏覽安全、針對傳輸…

saas是什么意思_為什么越來越多的人選擇SaaS模式的crm客戶管理系統?

SaaS近幾年在國內逐漸升溫,很多企業管理者都開始了解SaaS是什么意思,SaaS是企業根據需要,從SaaS提供商獲取軟件使用權的,直接通過互聯網就可進行操作。對于我國大多數中小企業來說,選擇SaaS模式的crm客戶管理系統也許是…

趣漫揭秘!中國程序員生存現狀?

如果沒有程序員,整個虛擬世界都會消失不見。全中國7億多網民,再也不能愉快滴發自拍,看視頻,打游戲,甚至連打電話都成了一種幻想。絕大部分電子設備都會變成廢鐵,人類的生活將完全倒退到70多年以前。程序員貢…

一個App完成入門篇(五)- 完成新聞頁面

本節教程將介紹如何用DeviceOne簡單而高效的完成一個新聞頁面。 導入項目數據模板分離MVVM模型自定義事件展示新聞九宮格展示將要學習的demo效果圖如下所示 1. 導入完整項目 本節示例demo請參考下載地址,可以導入到設計器中學習。 為了方便大家理解頁面結構&#xf…

程序員職業規劃

每個程序員的職業生涯無非以下幾種情況:一、幫別人掙錢(打工)不管你是剛入職的小兵,還是管人的經理,甚至是唬人的總監,都屬于這一階段。通常程序員在這一階段的職業發展分兩條線,專家&#xff0…

python getattrribute_python操作對象屬性

getattrgetattr(a,b)的作用就和a.b是一樣的。那么這個內建函數有什么作用呢,最方便的無疑是使用它來實現工廠方法(Factory Method)模式。參數說明:object:對象的實例name:字符串,對象的成員函數的名字或者成員變量defa…

電腦處理器i5和i7的區別,如何選擇?

對于好多正在準備入手筆記本的朋友們來說,電腦的配置參數真的是讓人眼花繚亂,一些看不懂的數字和英文碼看得人心煩,i5和i7的區別究竟在哪里那?處理器中央處理器(英文Central ProcessingUnit,CPU&#xff09…

c++ map的存儲結構_「軟帝學院」java集合類框架map及相關常見問題二

Map接口 通過查看Map接口描述,發現Map接口下的集合與Collection接口下的集合,它們存儲數據的形式不同,如下圖。 Collection中的集合,元素是孤立存在的(理解為單身),向集合中存儲元素采用一個個元素的方式存儲。 Map中的…

Windows 下 Conda install 安裝出現CondaHTTPError: HTTP 000 CONNECTION FAILED for url解決措施

在使用Conda install 安裝庫的時候出現以下錯誤 原因是使用的是國外的鏡像,切換至國內鏡像就可以解決啦 在cmd 中輸入下面命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes…

盤點谷歌瀏覽器9項隱藏的實用功能

谷歌 Chrome 瀏覽器一直以速度、簡潔和安全為用戶所熟知。除此之外,Chrome 的其他功能也非常強大,為了進一步提高工作效率,讓我們一一揭曉它的那些隱藏技能吧。1、同時登入多個賬戶用戶擁有多個谷歌賬戶(工作用或個人用&#xff0…

正則10-18

轉載于:https://www.cnblogs.com/XACOOL/p/5357652.html

華為手機下拉菜單沒了_用了三年才知道華為錄屏這么強大!再不會用,手機錢打水漂了...

現在的手機錄屏操作可不少,但是像華為手機這樣好用的可不多了!用了好幾年華為才知道,原來它的錄屏操作這么逆天,今天我就來給大家科普科普:華為錄屏的那些事兒!1、快捷錄屏直播錄屏講究的就是新鮮熱乎&…

程序員下班電腦不關機的5大原因,你中招了嗎?

不管是周圍的程序員朋友還是網上的很多程序員朋友,在下班后都是習慣不關電腦的,針對這一發現,小編收集了部分網友的意見,看看身為程序員的你是不是也是這樣的呢?1、你知道:開機要打開十個左右的應用&#x…

【matlab】將matlab中數據輸出保存為txt或dat格式

將matlab中數據輸出保存為txt或dat格式 總結網上各大論壇,主要有三種方法。 第一種方法:save(最簡單基本的) 具體的命令是:用save *.txt -ascii x x為變量 *.txt為文件名,該文件存儲于當前工作目錄下,再打開…

mysql數據庫算法_數據庫:MySQL索引背后的數據結構及算法原理【轉】

原文:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL數據庫為研究對象,討論與數據庫索引相關的一些話題。特別需要說明的是,MySQL支持諸多存儲引擎,而各種存儲引擎對索引的支持也各不相同&#…

Anaconda詳細安裝及安裝Scrapy框架

Anacond的介紹 Anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。 因為包含了大量的科學包,Anaconda 的下載文件比較大(約 531 MB),如果只需要某些包,或者需要節…

時下流行的9種惡意軟件,你都了解嗎?

來自:FreeBuf.COM*參考來源:csoonline,Karunesh91編譯當今時代,網絡世界處處充滿了危機,對于網絡用戶來說,能夠對各種類型的惡意軟件進行了解,也許有助于在網上沖浪的過程中保全自身。病毒計算機…