zoukankan      html  css  js  c++  java
  • 对组装之后的三代基因组进行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

  • 相关阅读:
    NumPy:数组计算
    Matplotlib模块:绘图和可视化
    量化投资与Python
    vue-cli脚手架(框架)
    vue 之webpack打包工具的使用
    vue之node.js的简单介绍
    es6简单介绍
    ECMAScript 6 入门
    爬虫框架之Scrapy
    angular5使用httpclient时解决跨域问题
  • 原文地址:https://www.cnblogs.com/bio-mary/p/12851347.html
Copyright © 2011-2022 走看看