對組裝之后的三代基因組進行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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM