TandemMapper
Selection of k-mers
TandemMapper使用稀少的k-mer,即出现次数小于组装长度除以100kb的值。因为如果使用唯一的k-mer,它的密度可能会变化的特别明显,会导致某些区域的覆盖率下降或者不正确的映射。但由于长串联重复的组装可能会出错,一些罕见的k-mer可能是错误的组装序列上的,TandemMapper去掉在读取数据中出现频率低于5%和高于95%的k-mer,把剩下的这些k-mer称为solid k-mer。
TandemMapper将 定义为solid k-mer a,b在 read R 中的出现 则为在组装A的出现,我们只关心在R中出现一次的k-mer,只出现一次,但在组装的序列上可能会出现多次, 定义, 分别为a,b在R和A中的距离。记为一个匹配, 同样为匹配.
收集所有read中连续非重叠的唯一k-mer a,b,定义
distortion C = penalty的中值 + penalty 第三四分位数和第一四分位数的区别
另外 兼容compatible 当
(maxDistance 定义为两个连续的唯一k-mer在组装序列上的最大距离)
Tandemmapper module
给一个read,定义一个有向带权的兼容性图,顶点集代表read R 和组装 A 中所有匹配的solid k-mer。 如果在 R 中 a 在 b 前面且是兼容的,用边链接这两个顶点,定义这个变得权重为 premium是一个常量,选择最能够正确比对read最多的数字(默认0.1)。read R 和组装序列 A 的链定义为图中最长的路径,因为solid k-mer在 R中最多出现一次,所以chain中的k-mer不会出现多次。给定read的chain可以用来把read映射到组装序列上。Tandemmapper使用动态规划对每个read查找chain,过滤短的chain,并且在对每个保留下的chain的边界内部进行核苷酸级别的比对。