(全文约1300字)
1. k-mer基因组调查的软件概况
k-mer基因组调查分为和两步。
- KMC第一步可以实现k-mer频数统计。
- KMC的结果sample.histo可以用在GenomeScope实现基因组特征评估的第二步。
2. KMC 简介
- KMC是用来从的FASTQ/FASTA文件中计算k-mers的基于KMC二进制数据库程序。
- KMC是波兰的Silesian University of Technology算法和软件学院REFRESH Bioinformatics Group开发工具。
- 第三个版本于2017年发布,KMC3。
- KMC主要基于C语言的程序。
3. KMC 安装
-
版本
有两个版本KMC,第一版一般使用,Smudgeplot第二个版本用于评估物种倍性。
- 一个是REFRESH Bioinformatics Group的refresh-bio/KMC。
- 一个是GenomeScope2.0的开发团队tbenavi1修改的tbenavi1/KMC
-
下载
在KMC download找对应系统的最新版本KMC下载解压缩软件即可使用。
mkdir KMC && cd KMC wget https://github.com/refresh-bio/KMC/releases/download/v3.2.1/KMC3.2.1.linux.tar.gz #下载最新版本KMC tar -xzf KMC3.2.1.linux.tar.gz #解压缩和解包,生成bin文件夹和include文件夹
-
使用
解压缩后bin目录下会包含可执行文件,可直接使用,建议加入环境变量,包括:
- bin/kmc:计算k-mer频数的主程序
- bin/kmc_dump:在kmc在生成数据库中列出k-mers的程序
- bin/kmc_tools:允许操作kmc数据库程序
4. KMC 运行
用KMC计算k-mer频率,生成k-mer直方表和频数k-mer直方图。
- 运行
mkdir tmp #创建临时文件夹 ls *.fastq.gz > FILES #用于分析clean reads将路径保存到文件中FILES中 kmc -k21 -t16 -m64 -ci1 -cs10000 @FILES kmcdb tmp #计算k-mer频率 kmc_tools transform kmcdb histogram sample.histo -cx10000 #生成k-mer频数直方表sample.histo和k-mer直方图
- kmc命令参数
- -k21:k-mer长度设置为21
- -t16:线程16
- -m64:内存64G,设置使用RAM范围为1-1024。
- -ci1 -cs10000:统计k-mer coverages覆盖范围为[1-10000]。
- @FILES:保存输入文件列表的文件名称FILES
- kmcdb:KMC数据库输出文件名前缀
- tmp:临时目录
- kmc_tools命令参数
- -cx10000:存储在直方图文件中counter的最大值。
-
结果
生成的sample.histo可用于第二步GenomeScope的分析。
5. 基因组特征评估
获得k-mer频数分布表sample.histo后
- 推荐用GenomeScope1.0或者GenomeScope2.0或者GenomeScopeR脚本用于基因组特征评估和绘图。
- 也可直接用R绘制sample.histo频率分布直方图/频率分布曲线。
5.1. GenomeScope 网页版
5.1.1. GenomeScope1.0 网页版 —— 适用于二倍体物种
- 在GenomeScope1.0 网页版上传前一步获得的k-mer频数分布表sample.histo文件。
- 设置参数k-mer length选择第一步k-mer这是17;参数Read length序列读长一般为150;最后一个参数Max kmer coverage建议修改为更大的10000,统计更多k-mers。
- 结果显示了基因组基因组大小、杂合度、重复率等信息。
5.1.2. GenomeScope2.0 网页版 —— 适用于多倍体物种
GenomeScope2.0 网页版也是类似的步骤。
5.2. R绘制
- R绘制k-mer基因组特征初步检查频数分布曲线。
- 获得kmer_plot.png基因组的大小可以根据曲线的峰值来计算和估计。
#R 脚本示例 kmer <- read.table('sample.histo') kmer <- subset(kmer, V1 >=5 & V1 <=500) #绘制5-500频率范围的数据 Frequency <- kmer$V1 Number <- kmer$V2 png('kmer_plot.png') plot(Frequency, Number, type = 'l', col = 'blue') dev.off()
6. references
- KMC3 paper:https://academic.oup.com/bioinformatics/article/33/17/2759/3796399
- refresh-bio/KMC:https://github.com/refresh-bio/KMC
- tbenavi1/KMC github:https://github.com/tbenavi1/KMC