kmer
2023-05-31 本文已影响0人
LET149
kmer在基因组和转录组的拼接过程中发挥巨大作用
kmer是一段固定长度的序列,这个长度由使用者自己定义,序列基础是测得的序列,其中的k表示序列的长度,如序列长度为5bp则可写成5-mer
以下是一个具体的例子
Read: AGATCGAGTG #从第一个碱基开始,每次取三个碱基,每次步移1个碱基,直到取道最后一个三碱基
3-mers: AGA GAT ATC TCG CGA GAG AGT GTG #上面的read计算得来的所有3-mers
kmer的用途
- 序列拼接
- 由同一段read得到的kmer是可以完全拼接起来的,相邻两个kmer之间的overlap碱基数为(k-1),基于kmer的拼接算法能计算节省内存进而节省计算时间。
- 产生kmer是De Bruijn Graph拼接算法的必要步骤。
- De Bruijn Graph拼接算法是Velvet、Abyss、SOAPdenovo等拼接软件的核心算法。
- 评估基因组大小
n = (L - K) + 1
n : 每段read产生kemr的数量
L : 每段read的长度(bp)
K : kmer的长度
利用kmer反推基因组长度并不是完全线性的,有时候存在一部分误差。
kmer长度要求
- kmer不能太短,它的长度既需要能够使其携带足够的基因组的信息
- kmer不能太长,要短到可以进行后续的错误矫正。
- 除此之外,一个read中小的片段被分割之后还不会丢失原来reads 的前后位置信息。