之前使用的是3D-DNA流程做Hi-C的輔助組裝,它的最大優(yōu)勢就是輸出結果可以對接下游的JBAT(juicerbox with Assembly Tools)進行手動矯正。然而它點缺陷也很明顯,處理速度不夠快,且對植物的優(yōu)化不行,同時目前許久不更新了。
最近我發(fā)現(xiàn)了一套新的組合,chromap + yahs 完全替代之前3D-DNA流程。它的依賴工具如下
- chromap: 高效Hi-C數(shù)據(jù)比對
- samtools: sam轉bam
- yahs: 另一個Hi-C scaffolding工具。糾錯上準確性高,排序上略強3d-dna,遠超SALSA2。
- juicer_tools: 用于輸出導入JuiceBox
chrompa, samtools, yahs可以直接用conda進行安裝,juicer_tools依賴Java環(huán)境,并需要單獨下載
conda create -n hic-scaffolding -c bioconda -c conda-forge chromap samtools yahs samtools assembly-stats openjdk
# 1.19.02版本就行了, 最新的3.0不向下兼容
wget https://s3.amazonaws.com/hicfiles.tc4ga.com/public/juicer/juicer_tools_1.19.02.jar
具體分析步驟如下,我們需要提供前期組裝結果,以及Hi-C數(shù)據(jù)
contigsFasta=/到/你的/contig.fa的路徑
r1Reads=/到/你的/Hi-C R1測序的路徑
r2Reads=/到/你的/Hi-C R2測序的路徑
第一步,數(shù)據(jù)比對
# 建立索引
samtools faidx $contigsFasta
chromap -i -r $contigsFasta -o contigs.index
# alignment
chromap \
--preset hic \
-r $contigsFasta \
-x contigs.index \
--remove-pcr-duplicates \
-1 $r1Reads \
-2 $r2Reads \
--SAM \
-o aligned.sam \
-t 50
# 排序
samtools view -bh aligned.sam | samtools sort -@ 50 -n > aligned.bam
rm aligned.sam
按照read的名字進行排序和按照位置排序或未排序的結果會有一些不同。
第二步,又快又好的scaffolding。默認只需要兩個輸入,組轉的contig.fa和比對的bam,和C語言一樣簡潔。
yahs $contigsFasta aligned.bam
在輸出結果中
- inital_break 表示糾錯的中間輸出
- _scaffolds_final.agp和_scaffolds_final.fa則是最終結果
對于輸出結果,我們希望進行可視化,此時可以使用yahs提供的jucier工具
第三步,為juicer_tools準備輸入
juicer pre -a -o out_JBAT \
yahs.out.bin \
yahs.out_scaffolds_final.agp \
$contigsFasta.fai
# -o out_JBAT表示輸出文件名的前綴
一共包括如下幾個文件
- out_JBAT.assembly
- out_JBAT.assembly.agp
- out_JBAT.hic
- out_JBAT.liftover.agp
- out_JBAT.txt
out_JBAT.txt就作為下游的輸入
JUICER=/路徑/到/juicer_tools_1.19.02.jar
asm_size=$(awk '{s+=$2} END{print s}' $contigsFasta.fai)
java -Xmx36G -jar $JUICER \
pre out_JBAT.txt out_JBAT.hic <(echo "assembly ${asm_size}")
輸出的out_JBAT.hic就可以導入到JBAT進行組裝,導出為out_JBAT.review.assembly
將手動修改的結果傳遞給juicer,進行scaffolding。
juicer post -o out_JBAT out_JBAT.review.assembly out_JBAT.liftover.agp contigs.fa
輸出結果為 out_JBAT.FINAL.agp, out_JBAT.FINAL.fa