在进行基因组组装之前,对基因组进行简单的评估,以获取基因组大小、杂合度、重复序列等特征有助于我们概括性的了解将要获取的基因组的大致信息。K-mer analysis是快速对基因组的上述概况进行评估的常用方法。
一、K-mer analysis
1、什么是K-mer
?
K-mer:这个词可以拆分成两部分来看,其中 K 代表多少个碱基,而 mer 则代表片段;所以 K-mer 即表示 K 个碱基长度的短片段。例如:21-mer表示 K = 21 bp 短片段(Fig. 1)。
Fig. 1: K-mer的划分。
2、K-mer 分析
K-mer分析
:就是把测序获得每个的read每隔一个碱基取 K 个碱基长度的片段(K-mer),并统计所有reads生成的 k-mers 的种类和数目,并制成频率分布,从而获取基因组的概括性信息。
如下图(Fig. 2)是基于木犀科的丁香(Syringa oblata)的全基因组(2 n)测序数据进行k-mer分析得到的结果。
Fig.2: Syringa oblata基因组的k-mer分析。
二、使用jellyfish进行k-mer分析
jellyfish是一款通过Hash table存储数据的k-mer分析软件,可多线程运行,且只占较小内存。
1、安装及配置
在下载时记得下载2.0+
版本,因为2.0以下的版本支持的k-mer长度范围较小,但是2.0以上则无k值的限制。
从Github主页下载:
#从Github下载
wget https://github.com/gmarcais/Jellyfish/releases/download/v2.3.0/jellyfish-2.3.0.tar.gz
解压并进入目录:
#解压
tar -zxvf jellyfish-2.3.0.tar.gz
#进入目录
cd jellyfish-2.3.0/
配置环境变量,编译并安装:
./configure --prefix=$HOME
make -j 4
make install
查看是否安装成功(出现相关的版本信息):
jellyfish --version
2、简单使用
jellyfish软件具有多个子命令:
命令 | 功能 |
---|---|
count | 计算k-mer分布 |
merge | 合并hash结果 |
dump | 输出带有计数信息的k-mer清单 |
stats | 显示部分k-mer的hash的统计结果 |
histo | 生成k-mers出现次数的直方图数据 |
query | 查询特定k-mer序列出现的次数 |
cite | 软件相关文章引用信息 |
men | 快速评估count 命令所需的内存量 |
count
是jellyfish实现主要功能的命令,使用格式为:
#计算input.fasta的k-mer分布
jellyfish count -m 22 -o output -c 3 -s 10000000 -t 32 input.fasta
子命令 count
几个重要的参数:
参数 | 功能 |
---|---|
-m | k值,即k-mer的长度,单位bp |
-o | 输出文件名前缀 |
-c | 最大值为
2
7
=
128
2^{7}=128
27=128。对于测序数据,最好达到coverage的两倍,比如10
×
\times
×的测序结果使用-c 5 ,即
2
5
>
20
2^{5}>20
25>20。 |
-s | 初始hash大小,估计方法:-s 对应的值约等于
(
G
+
k
×
n
)
/
0.8
(G+k\times n)/0.8
(G+k×n)/0.8,此参数太小会生成中间文件 |
-t | 计数时使用的线程数 |
-C | 当不知道序列的方向时,需要添加此参数,即同时统计两个方向的k-mer |
3、具体例子
这里使用的是丁香(Syringa oblate)的全基因组测序数据(SRR号:SRR16093229),根据文章内容,将k值设定为25进行分析。
(1)k-mer counting
#进行k = 25的k-mer计数
jellyfish count -m 25 -o S_oblata_WGS_single.jf -c 6 -s 1724000000 -t 32 S_oblata_WGS_single.fasta
结果文件:S_oblata_WGS_single.jf
(2)查看部分统计学信息
#查看部分统计学信息
jellyfish stats S_oblata_WGS_single.jf
(3)转换为.histo
文件
在取得结果后,为了后续使用GenomeScope进行下游分析,需要将结果转换为直方图,即.histo
文件
#转换为直方图格式
jellyfish histo -t 10 S_oblata_WGS_single.jf > S_oblata_WGS_single.histo
(4)查看结果的相关信息
如果间隔时间过长,忘记了分析时候设置的信息,可以使用info
命令查看结果的有关信息。
#查看结果有关信息
jellyfish info S_oblata_WGS_single.jf
Ending!!
相关文章:
Ma B, Wu J, Shi TL, Yang YY, Wang WB, Zheng Y, Su SC, Yao YC, Xue WB, Porth I, El-Kassaby YA, Leng PS, Hu ZH, Mao JF. Lilac (Syringa oblata) genome provides insights into its evolution and molecular mechanism of petal color change. Commun Biol. 2022 Jul 9;5(1):686. doi: 10.1038/s42003-022-03646-9. PMID: 35810211; PMCID: PMC9271065.