比較軟件:
- Jellyfish 2.3.0
- KMC 3.2.1
使用數(shù)據(jù):大腸桿菌基因組
### count速度對比
# 1.jellyfish
time jellyfish count -m 15 -o jf.Ecoli.15mer -c 3 -s 1G -t 16 Ecoli.fasta &
# real 73m41.868s
# user 23m1.113s
# sys 28m0.840s
time jellyfish dump -c -t jf.Ecoli.15mer > jf.Ecoli.15mer.count.txt
# real 0m2.000s
# user 0m1.864s
# sys 0m0.128s
time jellyfish histo jf.Ecoli.15mer > jf.Ecoli.15mer.histo &
# real 0m0.678s
# user 0m0.642s
# sys 0m0.028s
# 2.KMC
time kmc -k15 -m12 -t16 -b -fm -ci0 Ecoli.fasta kmc.Ecoli.15mer kmc_tmp &
# real 0m0.791s
# user 0m1.445s
# sys 0m0.691s
time kmc_tools transform kmc.Ecoli.15mer dump kmc.Ecoli.15mer.txt &
# real 0m0.387s
# user 0m0.277s
# sys 0m0.099s
time kmc_tools transform kmc.Ecoli.15mer histogram kmc.Ecoli.15mer.histo &
# real 0m0.198s
# user 0m0.121s
# sys 0m0.069s
但是histo文件似乎有一些不一樣。
1、jellyfish的Kmer頻數(shù)統(tǒng)計
1 4443336
2 52451
3 11609
4 2699
5 5669
6 223
7 136
8 761
9 485
10 32
2、KMC的Kmer頻數(shù)統(tǒng)計
1 4443345
2 52456
3 11610
4 2700
5 5668
6 223
7 136
8 760
9 486
10 32
再接著分析以下,越來越蒙了。
awk '{if($2=1) print $0}' jf.Ecoli.15mer.count.txt | less -S > jf.1.fre
# 4517632
awk '{if($2=1) print $0}' kmc.Ecoli.15mer.txt | less -S | > kmc.1.fre
# 4517652
但是總的來說,還是KMC來的更為快速。GenomeScope 2.0的作者也更加推薦KMC,應該也是對后續(xù)基因組大小評估等分析沒有什么影響。
為什么會出現(xiàn)上述結(jié)果不同的問題?
Jellyfish分析時,所使用的內(nèi)存,如果分配得不夠,那就是會出現(xiàn)上述結(jié)果不同的問題。
當Jellyfish分析時,所使用的內(nèi)存增加到16G時(而非1G),兩者的結(jié)果是相同的。
同時,給Jellyfish分配更多的內(nèi)存之后,其運行速度也會加快。
jellyfish count -m 15 -o jf.Ecoli.15mer -c 3 -s 16G -t 16 Ecoli.fasta
jellyfish histo jf.Ecoli.15mer > jf.Ecoli.15mer.histo
結(jié)果文件:
1 4443345
2 52456
3 11610
4 2700
5 5668
6 223
7 136
8 760
9 486
10 32