对组装之后的三代基因组进行polish

一:利用pilon软件进行二代数据对三代数据polish

准备数据 :

  1. 三代数据组装好的基因组文件:draft.fa
  2. illumina的双端测序数据经过质控之后的数据:read1_fq.gz read2_fq.gz

比对(bwa)

构建索引

$bwa index -p index/draft draft.fa

  

  • 比对并排序
  • $bwa mem -t 16 index/draft raed1_fq.gz read2_fq.gz |samtools sort -@ 10 -O bam -o align.bam
  • 对比对好的bam文件建索引
  • $samtools index -@ 10 align.bam
    
  • 标记重复 

$sambamba markup -t 10 align.bam align_markup.bam

 

过滤高质量比对的reads

$samtools view -@ 10 -q 30 align_markup.bam >align_filter.bam
$samtools index -@ 10 align_filter.bam

使用pilon进行polish 

java -Xmx10G -jar pilon-1.23.jar --genome draft.fa --frags align_filter.bam --fix snp,indels --output pilon_polished --vcf & >pilon.log

  

  • pilon的参数
  • --frags: 表示输入的是1kb以内的paired-end文库,
  • --jumps表示 大于1k以上的mate pair文库,
  • --bam则是让软件自己猜测
  • -vcf: 输出一个vcf文件,包含每个碱基的信息
  • --fix: Pilon将会处理的内容,基本上选snps和indels就够了
  • --variant: 启发式的变异检测,等价于--vcf
  • --fix all,breaks, 如果是polish不要使用该选项
  • --minmq: 用于Pilon堆叠的read最低比对质量,默认是0。

二:可用 samtools, arrow, pbmm2, pbindex 用三代Pacbio组装后的结果 进行polish

准备数据

  • 组装得到的基因组文件raw_assembly.fa [falcon, canu, mecat2 以及flye等软件只对三代数据进行组装得到的组装结果
  • 公司给的raw bam文件【类似这样的XXX.subreads.bam】
由于GenomicConsensus只能在Python上运行,所以已经被gcpp取代了,因此最后一步arrow也可以用gcpp运行:
gcpp用法与GenomicConsensus类似,参数都类似,所以最后一步可以改为:


$gcpp -j 16 -r assembly.fa -o variants.vcf -o consensus.fasta map.pacbio.bam

  

三. 最后使用quickmerge对多个软件拼接的结果进行合并,来提高组装质量

最简单的就是直接运行quickmerge的一个py脚本

$merge_wrapper.py hybrid_assembly.fasta self_assembly.fasta

  

还有一种是分步运行

$nucmer -l 100 -p out1 -t 8 reference.fa query.fa
$delta-filter -i 95 -r -q out.delta > out.rq.delta
$quickmerge -d out.rq.delta -q query.fa -r reference.fa -hco 5.0 -c 1.5 -l 520000 -ml 10000

 

一般-l选择引用(-r)程序集的N50作为初始值,-ml一般大于5000。

这里讲一下nucmer和delta-filter都是mumer里面的程序包,quickmerge里面自带了mummer,要是想进一步了解也可以自己下载:mummer官网github的mummer

 

  • nucmer参数及用法
    $nucmer  [options]  <Reference>  <Query>
    
    -l|minmatch       设置单个匹配的最小长度(默认20)
    -p|prefix         设置输出文件的前缀(默认为out)  
  • delta-filter参数及用法
  • $delta-filter  [options]  <deltafile>
    
    -i float         设置最小对齐标识[0,100],默认为0
    -r               允许query overlaps(多对多)
    -q               允许reference overlaps(多对多)
    

      

1 可以 merge 两种不同组装方法的三代组装结果 (e.g. one generated with PBcRor canu and another generated with FALCON).

2 You can run Ka-kit's finisherSC after running quickmerge to improve the contiguity even further.

3 组装merge前后的Assembly polishing with Quiver and pilon is strongly recommended.

来源:

https://www.jianshu.com/p/b5b420d1eb17

https://github.com/mahulchak/quickmerge/wiki

对组装之后的三代基因组进行polish

原文地址:https://www.cnblogs.com/bio-mary/p/12851347.html