图论解油瓶分油问题_一个很有趣的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.mzph.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、我不知道该删掉还是重写回归曾经写的源代码,总有一种想要重新返工的冲动,逻辑性差,冗余代码多,让人难以理解。但是,如果功能没出现问题,千万不要去修改。这是我经常要面对的困扰,相信也困扰了…

saas是什么意思_为什么越来越多的人选择SaaS模式的crm客户管理系统?

SaaS近几年在国内逐渐升温,很多企业管理者都开始了解SaaS是什么意思,SaaS是企业根据需要,从SaaS提供商获取软件使用权的,直接通过互联网就可进行操作。对于我国大多数中小企业来说,选择SaaS模式的crm客户管理系统也许是…

趣漫揭秘!中国程序员生存现状?

如果没有程序员,整个虚拟世界都会消失不见。全中国7亿多网民,再也不能愉快滴发自拍,看视频,打游戏,甚至连打电话都成了一种幻想。绝大部分电子设备都会变成废铁,人类的生活将完全倒退到70多年以前。程序员贡…

一个App完成入门篇(五)- 完成新闻页面

本节教程将介绍如何用DeviceOne简单而高效的完成一个新闻页面。 导入项目数据模板分离MVVM模型自定义事件展示新闻九宫格展示将要学习的demo效果图如下所示 1. 导入完整项目 本节示例demo请参考下载地址,可以导入到设计器中学习。 为了方便大家理解页面结构&#xf…

程序员职业规划

每个程序员的职业生涯无非以下几种情况:一、帮别人挣钱(打工)不管你是刚入职的小兵,还是管人的经理,甚至是唬人的总监,都属于这一阶段。通常程序员在这一阶段的职业发展分两条线,专家&#xff0…

电脑处理器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…

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编译当今时代,网络世界处处充满了危机,对于网络用户来说,能够对各种类型的恶意软件进行了解,也许有助于在网上冲浪的过程中保全自身。病毒计算机…

SpringCloud和SprigBoot之间的依赖关系怎么看

SpringCloud官网地址 https://spring.io/projects/spring-cloud 不推荐使用了,推荐用最新的是Hoxton版本 打开下面提供的网页 https://start.spring.io/actuator/info 使用解析工具查看 https://tool.lu/json/ 查看json串返回的结果 { "git": { …

微软最强命令行工具 Windows Terminal,强势霸榜GitHub

命令提示符也是算 Windows 系统的一大特色了,相信很多人刚看到这白底黑字的界面都有点哭笑不得吧,好在后来微软陆续推出了Powershell、cmd之类的命令行工具,来提供一些更加高级的功能如今微软更进一步,放出一大招,正式…

修改Windows远程桌面3389端口

3389端口是Windows 2000(2003) Server 远程桌面的服务端口,可以通过这个端口,用“远程桌面”等连接工具来连接到远程的服务器,如果连接上了,输入系统管理员的用户名和密码后,将变得可以像操作本机一样操作远程的电脑,因…