基因组组装基因组组装基因组注释训练以及分析

用k-mer分析进行基因组调查:(四)用GenomeScope评

2022-06-16  本文已影响0人  生信技工

(全文约3500字)

【推荐】用Smudgeplot评估物种倍性后,用组合jellyfish+GenomeScope1.0做二倍体物种的基因组调查,用组合KMC+GenomeScope2.0做多倍体物种的基因组调查。

1. k-mer进行基因组调查的软件概况

k-mer进行基因组调查分为k-mer频数统计基因组特征评估两步。

推荐第一步获取k-mer频数分布表的命令:

  1. jellyfish
jellyfish count -C -m 21 -s 1000000000 -t 10 *.fastq -o sample.jf #计算k-mer频率,生成sample.jf
jellyfish histo -t 10 sample.jf > sample.histo #生成k-mer频数直方表sample.histo和k-mer直方图
  1. KMC
mkdir tmp
ls *.fastq.gz > FILES
kmc -k21 -t16 -m64 -ci1 -cs10000 @FILES kmcdb tmp #计算k-mer频率
kmc_tools transform kmcdb histogram sample.histo -cx10000 #生成k-mer直方图

2. GenomeScope概况

3. GenomeScope1.0 网页版【推荐】—— 适用于二倍体物种

GenomeScope1.0 网页版:http://qb.cshl.edu/genomescope

  1. 上传第一步获得的k-mer频数分布表sample.histo文件;

  2. 设置参数Kmer length为第一步选择的k-mer长度值,这里是17;

  3. 参数Read length为序列读长,一般为150;

  4. 参数Max kmer coverage默认是1000。

    建议按照物种情况修改,比如10000,以统计更准确。

    这个参数太小,可能造成过滤过多的Kmer,导致估计的基因组大小偏小的情况。

    这个参数太大则可能把高拷贝数量的DNA,比如叶绿体DNA,包括进Kmer的统计,造成GenomeScope算法的误差,所以还是不推荐使用-1或太大的值。

  5. 提交后几分钟就可以得到结果,保存结果图片可用于发表。

Figure 1. GenomeScope1.0结果示例

4. GenomeScope2.0 网页版 【推荐】 —— 适用于多倍体物种

GenomeScope2.0 网页版http://qb.cshl.edu/genomescope/genomescope2.0

GenomeScope2.0版本相较于1.0,进行了许多改进,主要是增加了多倍体物种的基因组调查,并提出Smudgeplot方法来估计基因组的倍性和基因组结构。

4.1. GenomeScope 2.0 使用步骤

  1. 上传第一步获得的k-mer频数分布表histo文件;

  2. 设置参数Kmer length为第一步选择的k-mer长度值,这里是17;

  3. 参数倍性Ploidy根据物种的倍性设定,默认是二倍体,设置成2;

  4. 参数Max k-mer coverage默认是-1,即不限制最大k-mer深度。

    建议按照物种情况修改,比如10000,以统计更准确。

    这个参数太小,可能造成过滤过多的Kmer,导致估计的基因组大小偏小的情况。

    这个参数太大则可能把高拷贝数量的DNA,比如叶绿体DNA,包括进Kmer的统计,造成GenomeScope算法的误差,所以还是不推荐使用-1或太大的值。

  5. 参数Average k-mer coverage for polyploid genome默认是-1,即不进行筛选,可以根据情况调整。

  6. 提交后几分钟就可以得到结果,保存结果图片可用于发表。

4.2. GenomeScope 2.0 结果

4.2.1. 二倍体结果

二倍体的GenomeScope 2.0 结果与GenomeScope 1.0 结果的主要不同之处在于杂合度结果(het)变成了2.0版本的代表基因型的aa和ab的比例,其中杂合基因型ab的比例即为杂合度。2.0结果中的p值代表设置的物种倍性。

Figure 2. GenomeScope2.0 二倍体结果示例

4.2.2. 区分异源四倍体同源四倍体

GenomeScope2.0添加了参数倍性Ploidy,可以评估多倍体的基因组特征。

  1. 四倍体共有两种可能的拓扑结构,代表着同源四倍体和异源四倍体,每种拓扑包含三种杂合基因型和一种纯合基因型,共有五种基因型。(五倍体有五种可能的拓扑,六倍体有十六种)

  2. 根据结果中杂合基因型的分布模式可以区分异源四倍体和同源四倍体。

两种拓扑
  1. GenomeScope2.0的四倍体结果

在GenomeScope 2.0 的结果中,如果杂合基因型aaab的比例大于aabb,则认为该物种是异源四倍体;如果杂合基因型aaab的比例小于aabb,则认为该物种是同源四倍体。

image.png

5. GenomeScope1.0本地版 —— 适用于二倍体物种

GenomeScope1.0的本地版是用一个R脚本实现的,在GenomeScope github可以下载genomescope.R脚本,下载后把genomescope.R文件加入环境变量即可使用。。

Rscript genomescope.R sample.histo k-mer_length read_length output_dir [kmer_max] [verbose]

必需参数:

6. GenomeScope2.0本地版 —— 适用于多倍体物种

6.1. 下载和安装

git clone https://github.com/tbenavi1/genomescope2.0.git #下载
cd genomescope2.0/
mkdir ~/R_libs #创建主目录下的R_libs文件夹用于安装本地R库
echo "R_LIBS=~/R_libs/" >> ~/.Renviron #创建/编辑.Renviron文件,使得R在创建的R_libs文件夹加载库
Rscript install.R #安装

安装后把目录下的genomescope.R文件加入环境变量即可使用。

6.2. 使用

genomescope.R -i histogram_file -o output_dir -k k-mer_length

参数:

7. GenomeScope实践经验

  1. 实际使用中发现,GenomeScope1.0和2.0常常估算差异较大。建议二倍体还是使用GenomeScope1.0。

8. Smudgeplot

Smudgeplot是2020年与GenomeScope2.0一起发表的用于估计物种的倍性的软件。开发者计划接下来把Smudgeplot整合进GenomeScope。

8.1. Smudgeplot原理

Smudgeplot从k-mer数据库中提取杂合k-mer对,然后训练杂合k-mer对。

通过比较k-mer对覆盖度的总数(CovA + CovB)和相对覆盖度(CovB / (CovA + CovB)),统计杂合k-mers对的数量,Smudgeplot可以解析基因组结构。

8.2. Smudgeplot安装

  1. 依赖

依赖是tbenavi1/KMCGenomeScope2.0

  1. 安装

conda install -c bioconda smudgeplot #conda安装

8.3. Smudgeplot使用

  1. 用KMC计算k-mer频率,生成k-mer直方图
mkdir tmp
ls *.fastq.gz > 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命令参数:

kmc_tools命令参数:

  1. 选择覆盖阈值
L=$(smudgeplot.py cutoff kmcdb_k21.hist L)
U=$(smudgeplot.py cutoff kmcdb_k21.hist U)
echo $L $U # these need to be sane values
  1. 提取阈值范围的k-mers,计算k-mer pairs
kmc_tools transform kmcdb -ci"$L" -cx"$U" reduce kmcdb_L"$L"_U"$U"
smudge_pairs kmcdb_L"$L"_U"$U" kmcdb_L"$L"_U"$U"_coverages.tsv kmcdb_L"$L"_U"$U"_pairs.tsv > kmcdb_L"$L"_U"$U"_familysizes.tsv
kmc_tools transform kmcdb -ci"$L" -cx"$U" dump -s kmcdb_L"$L"_U"$U".dump
smudgeplot.py hetkmers -o kmcdb_L"$L"_U"$U" < kmcdb_L"$L"_U"$U".dump
  1. 生成污点图(smudgeplot)

smudgeplot.py plot kmcdb_L"$L"_U"$U"_coverages.tsv

生成两个基础的污点图,一个log尺度,一个线性尺度。

8.4. Smudgeplot结果

image.png

8.5. Smudgeplot的KMC结果用于GenomeScope进行基因组调查

Rscript genomescope.R kmcdb_k21.hist <k-mer_length> <read_length> <output_dir> [kmer_max] [verbose]

9. references

  1. GenomeScope 1.0 github:https://github.com/schatzlab/genomescope
  2. GenomeScope 2.0 github:https://github.com/tbenavi1/genomescope2.0
  3. GenomeScope 1.0 paper:https://academic.oup.com/bioinformatics/article/33/14/2202/3089939
  4. GenomeScope 2.0 + Smudgeplot paper:https://www.nature.com/articles/s41467-020-14998-3
  5. Smudgeplot github:https://github.com/KamilSJaron/smudgeplot
上一篇 下一篇

猜你喜欢

热点阅读