三个 Alignment-Free 的 RNA-seq 表达量估计软件的 "Alignment" 逻辑
学位论文整得七七八八了。回首过去三四年,感觉“在技术上”落后的“大体同时”接触生信的朋友们。或者这就是人生,或许得到了什么,或许失去了什么。怀念过去,不是我的风格。
学业的事情多少要告一段落,也是时候做点自己想做的事情了。早上起来,翻了下几年前就注意到的 Alignment-Free 的转录组表达量估计软件,一直没啥时间看看。索性就都扫一眼,起码....搞清楚了就知道具体优劣,这样吹起牛来,就还是有点底气(换句话说,过去两三年跟朋友聊到这个,我都是基于猜测,认为就是kmer counts,然后就一顿胡扯,也没人拆穿我.....)
整体看了下,似乎主流就是 三个软件,两个门派。
门派一:Sailfish --> Rapman --> Salmon
门派二:...... Kallisto --> ...
当然,我最关心的还是 “Alignment-Free” 软件的 “Alignment” 问题。
Sailfish
应是三者中,最早发表的,nbt。直接从 Fig 1 就可以知道,把 参考序列 和 Reads 都打散 成 Kmers ,最后直接通过 Kmers 在转录本上的 Coverage 估算表达量(不用说方法,说了也白说,反正就是 EM,目前几乎所有转录表达量估计的,都是EM...就是大家写的模型有差别)
很明显,这个速度超快, Hash 计数.... 只能说神来之笔。
Kallisto
在 门派一 的 Sailfish nbt 文稿发表之后,门派二 的 Kallisto 的 nbt 文稿也发表了... 大家都是 NBT ,自然不会太差
这里只看 Figure,注意 红蓝绿 是三个转录本,黑棒棒是一个reads。空心圈圈是Kmer,实心圈圈是 reads 的Kmers。
从 Figure 可以看到,相比于前述的 Sailfish, Kallisto 考虑了 Kmers 的具体来源(也就是保留了 Reads 的概念)。
当然,Kallisto 仍然简单粗暴,如图,对于绝大部分 Reads(无错配),只看首位两个 Kmers 就可以确定 read 来源的转录本(虽然图示写的是三个)。
也因此,存在 Reads 概念,但只用了 Kmers counts 却没有mapping,最后表达量的话....所以就存在 Reads 长度参数需求。于是可以知道,为啥 Kallisto 相比于 Sailfish 在 SE 数据上需要多两个参数,即片段长度和标准差。自然,从逻辑上来说,纳入更多信息,Kaillisto 表现必然不会比 Sailfish 差。
Salmon
Emmm,坐以待毙不是大佬的日常。门派一 自然不会省油。很快,在 Bioinformatics 上发表了 Rapman, 提出了 quasi-mapping。
直接看 Fig 就知道,重点还是在于 Kmer。你不是说我不考虑 Reads吗?我现在就考虑,而且还做某种程度上的 Alignments (Mapping)的概念。这个 Mapping 怎么说呢... 我觉得和 bowtie2 的有点像。只是 b2 粗暴,而 rapman 精细了许多,几乎只用 hashing,直接省去大量不必要的比对(关键依旧在于,Rapman不需要精细位置,重点只在于确定来源)。看看文稿,多少也可以看到,rapman 中对 Kmer 搜索的逻辑参考了 kallisto (如跳过Kmers进行下一步搜索,在Kallisto中,则优先搜索首尾Kmers)。
基于 Rapman,门派一大佬这下不发 nbt 了,发 nmed,放出 Salmon。
从上图可以看出,其实 Salmon 重点已经不在 Alignmeng-Free 与否了,毕竟也接受常规对BAM。Salmon 的主要目的还是在于.... 快速定量,总的来说,有种 RSEM 的感觉。
很明显,Rapman (Salmon) 的 Alignmeng-Free(Mapping) 到底还是某种程度的 Alignment 了。因此,也获取了更多读段在转录本上的信息,既然信息越多,那么能搞的事情就越多。所以 Salmon 文稿的重点在于 “我能矫正bias,我更准”。
写在最后
没啥好说的。
Sailish 看来是不行了,毕竟是大佬自己又更新了(这个跟 Tophat2 的命运是一样的)。
Kaillisto 必然是可以的,看看别人的 gayhub 就知道了(看看 Bowtie1 的现状就清楚了)。
Salmon 没话说,必然也是优选,更不用说.... 引入了三种index模式(Emmm,自己说了更准嘛)
最后,Kaillisto 和 Salmon 都支持单细胞测序数据,所以啊。。。
Emmm,不想干活的时候,还是可以做点自己想做的,或者感兴趣的事情。