三维互作这块的两大巨头是juicer 和 hic-pro,这两个东西确实都很久了,一个基于BWA一个基于Bowtie。说实话个人很讨厌这种把比对软件捆绑在一起的pipeline,特别不灵活,所以我在想有没有办法能够把这两块拆开来,看看这两年有没有更好的更顺手的三维互作这块的工具。你别说,还真找到了。
全文新版发在git上了(https://github.com/gotouerina/3dpipeline),这个是当时做的笔记,部分可能改了,以git上的为准;
比对这块先选chromap。 chromap也是李恒写的,质量有保障,支持多线程比对。
先对参考基因组建索引
chromap -i -r ref.fasta -o index
再比对
chromap --preset hic -r ref.fasta -x index R1.fq.gz -2 R2.fq.gz -t 50 -o aln.pairs
pair格式长这样
输出的是pair格式,pair格式再load进cooler, cooler一行pip就能装,如果环境冲突了conda弄一个新的python环境
先需要一个chrome.size文件,这个很好做
samtools faidx ref.fasta | cuf -f 1,2 > ref.chrome.size
bgzip aln.pairs.gz
pairix aln.pairs.gz #pairix需要自己现场下一个
cooler cload pairix ref.chrome.size:50000 aln.pairs.gz ref.cool #这一步需要索引,需要用pairix建
下游的分析考虑用hicexplorer做一下, hicexplore应该可以同时做AB区室, loop, TAD这三大件。hicexplorer读取的事h5和cool格式,cool格式转H5会出现一点问题,所以暂时不转
继续做一些下游处理
cooler balance ref.cool #标准化
cooler zoomify ref.cool #生成不同窗口大小
cooler ls cahirinus.mcool #查看含有的分辨率情况
最后做个性化分析,前面这几步可通过上面写的3dGenomics.pl脚本实现
一、A/B区室
hicPCA -m ref.cool::/resolutions/50000 --outFileName pca1.bw pca2.bw --format bigwig --pearsonMatrix pearson.h5
这里第一主成分是区室,需要根据基因密度或者GC校正一下符号
二、找TAD
hicFindTADs -m ref.cool::/resolutions/50000 --outPrefix hic_corrected --numberOfProcessors 16 --correctForMultipleTesting fdr
三、找loop
hicDetectLoops -m ref.cool::/resolutions/50000 -o loops.bedgraph --maxLoopDistance 2000000 --windowSize 10 --peakWidth 6 --pValuePreselection 0.05 --pValue 0.05
如果是比较两个样本之间的差异TAD, 则需要对互作进行标准化,用hicNormalize和hicCorrectMatrix,这部分虽然我会但是懒得写,请自行探索