在对一个基因组进行组装之前,都要对其进行基因组survery,判断其大小,杂合度等;常用方法有流式,或者基于二代测序k-mer估计
软件安装
## 安装jellyfish
conda install jellyfish
## 安装genomescope
git clone https://github.com/schatzlab/genomescope
简单使用
jellyfish 统计kmer频数
jellyfish count -m 21 -s 20G -t 20 -o 21mer_out -C <(zcat test_1.fq.gz) <(zcat test_2.fq.gz)
# -m k-mers的K
# -s Hash大小, 根据文件大小确定
# -t 线程
# -o 输出前缀
# -C 统计正负链
jellyfish histo -o 21mer_out.histo 21mer_out
上述得到kmer频数结果
GenomeScope进行绘图并统计
Rscript genomescope.R kmer.histo 21 150 test
# 参数
21: kmer大小
150: reads长度
test:输出结果
结果
运行GenomeScope后主要查看一下两个结果
- summary.txt
- plot.png
vi summary.txt
GenomeScope version 1.0
k = 21
property min max
Heterozygosity 0.117342% 0.119832%
Genome Haploid Length 599,017,010 bp 599,199,173 bp
Genome Repeat Length 319,371,964 bp 319,469,086 bp
Genome Unique Length 279,645,046 bp 279,730,086 bp
Model Fit 90.2117% 98.3323%
Read Error Rate 0.17102% 0.17102%
上述结果统计了基因组大小,重复片段,杂合度等等
plot.png 为可视化结果,如下
蓝色区域是实际观测到的kmer分布,红色线条下方是一些频数很低的kmer,这些kmer被认为是测序错误,黑色线条下方被认为是可靠的kmer数据,只拿这部分数据来评估基因组的大小,垂直的虚线认为是kmer的几个峰值,黄色线条下方的区域认为是非重复区域的大小。
只有一个主峰,说明该物种杂合度不高,基因组大小(G)计算方法为:
G = Knum/Kdepth
其中 Kdepth 为K-mer的期望测序深度,Knum为K-mer的总数。 通常将K-mer深度分布曲线的峰值作为其期望深度。
基因组的杂合性和使得来自杂合片段的K-mer深度较纯合区段降低50%。如果目标基因组有一定的杂合性,会在k-mer深度分布曲线主峰位置(c)的1/2处(c/2)出现一个小峰。杂合度越高,该峰越明显。
网页版GenomeScope
除了linux版本外,还提供了网页版本 http://genomescope.org/
打开后,将jellyfi的结果直接拖拽后即可;
点击submit即可,稍等几分钟后即可得到结果