FMtree
FMtree copied to clipboard
人基因组中,长模式 (len=30,Occ为1时,FMtree是否还有效?
程博士好,读了您的文章FMtree,很有收获. 我理解,当一个pattern有多个Occ时,FMtree将排位邻近的Occ一起做LF跳步,可以提高访问bwt串的数据局部性,即cache更有效,减少访存时间. 当人基因组中,取长30的模式时,绝大多数模式都只有1处Occ,这样的长模式,FMtree应该就起不到加速作用了. 看到文章中结果部分,FMtree仍比未优化的FM-index快了8倍,不太理解是什么原因?或者是我理解错了,FMtree是对多个(上千)模式的Occ一起处理?这样可以避免单个长模式Occ为1的情况.
是的,当长度较长的时候,很多pattern的occ只有1。但是有很小比例的pattern的occ依然非常的大,而这部分pattern的occ占比能占到总比例的90%以上。因此这些高频的pattern在总时间占比上依然非常的高。而且现在Grch38上是缺失了大量的repeat区域的,如果考虑这些高度重复的区域,高频pattern占比会更高。不过如何使用的确是个问题,因为现在的short read mapper倾向于直接把这些高频pattern丢弃。
明白了,找全模式下,要对所有Occ做定位,少量高频模式的定位占大部分时间。目前多数short read mapper是找最优. 还有个问题,FMtree应该是对同一个patter的多个Occ进行批量处理的吧? 而不是对多个patter的Occ进行批量处理 (因为patter不同,SA排位区间也不同,FMtree在这种情况下起不到优化作用. 是这样的吗?
是的。理论上是可以对多个pattern同时处理,但是这样从方法的角度上来说没有什么太大意义,FMtree本身是一个轻量的方法。我自己感觉随着reference genome越来越全,重复区域很多都被包含进去,也许best-mapping以后也不一定完全丢弃所有高频的seed。
好的,这下清楚多了. 感谢程博士.
: ) 这个问题还是很有意思的,希望以后真的有用