学一点儿基因组组装

1.下机数据质量控制

主要是针对低质量的reads和含有adapter的reads,我事先并不知道adapter序列,所以就只过滤了低质量的reads。采用的是华大开发的SOAPnuke(v1.5.6)。

SOAPnuke1.5.6 filter -d -S -n 0.1 --qualRate 0.3 --lowQual 12 -Q 2 -G -1 R1.fq.gz -2 R2.fq.gz -C out.R1.fq.gz -D out.R2.fq.gz

2.选择K-mer和基因组大小的评估

2.1选一个合适的K

kmergenie weizhi.list -k 71 -l 9 -s 2 -t 12

推荐值k=59

k=59时的kmer频数分布
2.2低深度区的reads纠错

wget https://nchc.dl.sourceforge.net/project/soapdenovo2/ErrorCorrection/SOAPec_v2.01.tar.gz
tar zxvf SOAPec_v2.01.tar.gz
rm -f SOAPec_v2.01.tar.gz
KmerFreq_AR -k 17 -t 10 -p weizhi weizhi.lst > kmerfreq.log 2> kmerfreq.err

$ ll
total 89M
-rw-r--r-- 1 huangsiyuan grp3   22 Nov  2 23:07 kmerfreq.err
-rw-r--r-- 1 huangsiyuan grp3 1.5K Nov  2 23:09 kmerfreq.log
-rw-r--r-- 1 huangsiyuan grp3  89M Nov  2 23:09 weizhi.freq.cz
-rw-r--r-- 1 huangsiyuan grp3  13K Nov  2 23:09 weizhi.freq.cz.len
-rw-r--r-- 1 huangsiyuan grp3  15K Nov  2 23:09 weizhi.freq.stat
-rw-r--r-- 1 huangsiyuan grp3  867 Nov  2 23:09 weizhi.genome_estimate
-rw-r--r-- 1 huangsiyuan grp3  112 Nov  2 23:00 weizhi.lst

$ less weizhi.genome_estimate
Lowfreq cutoff is: 7
Number of lowfreq Kmers species caused by sequencing errors: 20026657
Ratio in all kmer species: 0.781208
Number of lowfreq Kmers individuals caused by sequencing errors: 21720077
Ratio in all kmer individuals: 0.0809621#这四句能告诉我们什么信息
...
...
**********Summary Table**********#k=17时,估计的G=5993946bp
kmer    kmer_num        kmer_depth      genome_size     base_num        read_num        base_depth(X)   average_read_len        unique_kmer_number
17      268274496       41.1589 5993946 319374400       3193744 53.2828 100     25635515

$ less weizhi.freq.stat
#KmerSize: 17
#SpaceSeedSize: 0
#Kmer_theory_max_num: 17179869184
#Kmer_individual_num: 268274496
#Kmer_species_num: 25635515
#Filter_kmer_num: 0

#可以用来做kmer频数分布图
#Kmer_Frequence Kmer_Species_Number     Kmer_Species_Ratio      Kmer_Species_Accumulate_Ratio   Kmer_Individual_Number  Kmer_Individual_Ratio   Kmer_Individual_Accumulate_Ratio
1       18598993        0.725517        0.725517        18598993        0.0693282       0.0693282
2       1252004 0.0488387       0.774355        2504008 0.00933375      0.078662
3       125178  0.00488299      0.779238        375534  0.00139981      0.0800618
...
...
k=17

~/learn_assemble/soft/SOAPec_v2.01/bin/Corrector_AR -k 17 -l 3 -Q 33 -t 10 weizhi.freq.cz weizhi.freq.cz.len weizhi.lst >corr.cout 2>corr.cerr

$ ll -t #多了3个文件
total 89M
-rw-r--r-- 1 huangsiyuan grp3   48 Nov  2 23:39 corr.cerr
-rw-r--r-- 1 huangsiyuan grp3 1.3K Nov  2 23:39 corr.cout
-rw-r--r-- 1 huangsiyuan grp3  489 Nov  2 23:39 weizhi.lst.QC.xls

$ less weizhi.lst.QC.xls
==========*.cor.stat:==========
FileName        RawReads        RawBases        ResultReads     ResultBases     TrimmedReads    TrimmedBases    DeletedReads    BasesFilterRatio        EstimatedErrorRatio
out.R1.fq.gz    1596872 159687200       1594244 157816402       138460  1607998 2628    0.0117154       0.0040411
out.R2.fq.gz    1596872 159687200       1594162 157802937       138633  1613263 2710    0.0117997       0.00403655

#然后就能在存放数据的目录下面看到reads校正后重新生成的fq文件
-rw-r--r-- 1 huangsiyuan grp3 136M Nov  2 23:39 out.R1.fq.gz.cor.pair_1.fq.gz#最好重新命个名
-rw-r--r-- 1 huangsiyuan grp3 470K Nov  2 23:39 out.R1.fq.gz.cor.single.fq.gz
-rw-r--r-- 1 huangsiyuan grp3 141M Nov  2 23:39 out.R2.fq.gz.cor.pair_2.fq.gz
-rw-r--r-- 1 huangsiyuan grp3 134M Nov  2 17:26 out.R1.fq.gz
-rw-r--r-- 1 huangsiyuan grp3 140M Nov  2 17:26 out.R2.fq.gz
-rw-r--r-- 1 huangsiyuan grp3 135M Nov  2 16:40 R2.fq.gz
-rw-r--r-- 1 huangsiyuan grp3 129M Nov  2 16:40 R1.fq.gz

现在重新画一下kmer频数分布图

~/learn_assemble/soft/SOAPec_v2.01/bin/KmerFreq_AR -k 17 -t 10 -p weizhi weizhi.lst >kmerfreq.log 2>kmerfreq.err

和前面那个同名文件相比,Ratio降低得非常明显
$ less weizhi.freq.stat
#Kmer_Frequence Kmer_Species_Number     Kmer_Species_Ratio      Kmer_Species_Accumulate_Ratio   Kmer_Individual_Number  Kmer_Individual_Ratio   Kmer_Individual_Accumulate_Ratio
1       10730   0.00190359      0.00190359      10730   4.06186e-05     4.06186e-05
2       2304    0.000408749     0.00231234      4608    1.74436e-05     5.80622e-05
3       1537    0.000272676     0.00258502      4611    1.7455e-05      7.55172e-05
$ less weizhi.genome_estimate
#这次估计是G=5968689
k=17, 好看多了

在低深度区的reads纠错这一步中,我用的都是k=17,主要是因为SOAPec_v2.01中只提供了几种k的情况,此外我觉得k的值不影响对测序错误reads的校正。
我用校正后的fq1,fq2重新用kmergenie预测了一下,这一次k值更大了,变成了65,于是我就很疑惑,kmergenie到底有没有用?k值又应该怎么选取呢?

3.SOAPdenovo2组装

其实到这一步,我还是不确定k应该选多少,kmergenie推荐的值有些大,前面的讨论中k=17画出来的图很好且G更接近真实情况(我事先已经知道G的大概值),文献上有选35的,所以很迷。
最终决定选k=17,27,37,47,57分别组装一下再比较,好在基因组并不大。

~/learn_assemble/soft/SOAPdenovo2/SOAPdenovo-63mer pregraph -s ./my.config -p 4 -K 17 -o ./weizhi > pregraph.log
~/learn_assemble/soft/SOAPdenovo2/SOAPdenovo-63mer contig -g ./weizhi -D 1 -M 3 -p 4 > contig.log
~/learn_assemble/soft/SOAPdenovo2/SOAPdenovo-63mer map -s ./my.config -p 4 -g ./weizhi > map.log
~/learn_assemble/soft/SOAPdenovo2/SOAPdenovo-63mer scaff -p 4 -g ./weizhi -F >scaff.log

可以看出,k=47时两个N50比较大,组装的效果相比较而言更好。当然到这里组装工作并没有做完,仅仅凭借N50也不能给组装的结果评个好坏。注意到k从47到57,scaffoldN50变大了,但Scaffold_Num,Contig_Num,ContigN50均变差了,这一点是比较反常的。于是又选k=49,51,53,55组装了一下。



到这儿我猜测,k从小到大会经过一个合适值,过了这个值,N50的表现就会变差。但这个值并不一定就是最终要选取的值,拿我的这个例子来说,就不能说k=47最好,也不能说以k=47组装出来的基因组最好。还是得看生物学层面的意义,没准儿这个生物本身的基因组就是6.1k而不是5.9k。
所以才需要采取多种评价体系:

  • 比如看看组装出来的基因组是否含有公认的核心基因集,涵盖多少;
  • 将fq数据比对到组装出来的基因组上,看比对率是多少;
  • 看看GC-depth图上的点是否聚集得比较好(理论上应该聚在一起,如果明显分成几类,说明可能存在污染)。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容