最近纽约复工,因为每天要做实验(还得全程戴口罩,非常闷得慌),比不了之前每天都在家可以为所欲为的自学生信,所以更新也少了很多~
Hi-C的技术相关背景学习笔记我在之前有写过(Hi-C技术的初步了解)。本篇笔记按照哈佛医学院贴在网上的教程走一遍流程,虽然这个教程是2018年的,但我觉得仍然很有参考价值。具体可参考网址:https://github.com/hms-dbmi/hic-data-analysis-bootcamp
(一)下载练习文件
根据教程,你需要先下载练习用的fastq文件和相关基因组索引文件:
# download input fastq files下载fastq练习文件
$ wget https://s3.amazonaws.com/4dn-dcic-public/hic-data-analysis-bootcamp/input_R1.fastq.gz
$ wget https://s3.amazonaws.com/4dn-dcic-public/hic-data-analysis-bootcamp/input_R2.fastq.gz
$ ll
-rw------- 1 fy04 fy04 27701813 May 16 2018 input_R1.fastq.gz
-rw------- 1 fy04 fy04 27626086 May 16 2018 input_R2.fastq.gz
#解压fastq文件
$ gunzip input_R1.fastq.gz
$ gunzip input_R2.fastq.gz
$ ll
-rw------- 1 fy04 fy04 98637520 May 16 2018 input_R1.fastq
-rw------- 1 fy04 fy04 91381760 May 16 2018 input_R2.fastq
# download bwa genome index下载bwa的基因组索引文件,你也可以自己构建
$ wget https://s3.amazonaws.com/4dn-dcic-public/hic-data-analysis-bootcamp/hg38.bwaIndex.tgz
$ tar -xzf hg38.bwaIndex.tgz
$ rm hg38.bwaIndex.tgz
$ ll
-rw------- 1 fy04 fy04 17478 May 11 2018 hg38.fasta.amb
-rw------- 1 fy04 fy04 27715 Dec 8 2016 hg38.fasta.ann
-rw------- 1 fy04 fy04 3099922624 Dec 8 2016 hg38.fasta.bwt
-rw------- 1 fy04 fy04 774980637 Dec 8 2016 hg38.fasta.pac
-rw------- 1 fy04 fy04 1549961320 Dec 8 2016 hg38.fasta.sa
# download chromsizes
$ wget https://s3.amazonaws.com/4dn-dcic-public/hic-data-analysis-bootcamp/hg38.mainonly.chrom.size
这时你应该下好的文件有:
然后可以简单的查看一下我们下载的文件:
#查看fastq文件
$ head ./input_R1.fastq
@1
GATCACACCACTGCACTCCAGCCTGGGCGACAGAGCAAGACTCTATCTCAAAAAAAAAAAAAAAAATCAAGAAATAATGGCTGAAAATTTCCAAAATTTG
+1
AABBBFFFB@BFGGGFFGGGFGGHHHCGCGGGGHFBGCFFGFFFHHHHHGHGBEE0EEE/EEEEEE03?F33BF4BEB22?2/B2BFD22FFDFGHFCG2
@2
CATCAGAAGGATGGATCCCTTGTGCTACCCATTTTATAGTCACAAACACGTTCCTCACTCCCTGACCCCTGGCAACCACTAATGGGTTTTTCATCTCTGT
+2
CCCCCFFFFFFFGGGGGGGGGGHHHHHHHHHHHHHHHHHHHGHHHHHHHGHHHHHHHGHHHHHHHHHHGGGHHHHHHGGHHEGHHGFFGGGHHHHHHHHE
@3
CTTTTTTTTGTAAAATGAGAAAGCTGGATGAAAGGATCTCTAAGGTCCCTTCACCTTTGAAATCTGATAACTCTAAGGTTTAATTTCCTCATCTGTCAAA
#查看基因组大小文件
$ head ./hg38.mainonly.chrom.size
chr1 248956422
chr2 242193529
chr3 198295559
chr4 190214555
chr5 181538259
chr6 170805979
chr7 159345973
chr8 145138636
chr9 138394717
chr10 133797422
(二)bwa比对
上面的文件都下载好后,就可以按照官方给出的流程PPT走分析流程了:
https://hms-dbmi.github.io/hic-data-analysis-bootcamp/#1
第一步当然就是比对了。在Hi-C的分析流程里,比对使用的软件是bwa。这不同于以往使用的bowtie2、hisat2和STAR(比对软件STAR的使用)。bwa软件的官方网站请见:here。
#这里用bwa比对后,直接使用管道符号把sam文件转成bam文件
$ bwa mem -SP5M -t8 hg38.fasta input_R1.fastq input_R2.fastq | samtools view -bhS - > output.bam
#-t8: use 8 cores
#-SP5M : Hi-C-specific options
#查看bam文件
$ samtools view output.bam | less -S
1 97 chr7 99922629 48 49M1I50M = 76330531 -23592008 GATCACACCACTGC
1 145 chr7 76330531 60 92M = 99922629 23592008 AGTACAGATGGTCTAACTCAGT
2 113 chrY 56859590 26 100M chrUn_GL000216v2 129167 0 ACAGAGATGAAAAACCCATTAG
2 177 chrUn_GL000216v2 129167 0 92M chrY 56859590 0 TTATCCATATATTCACCTGTCT
3 81 chr10 110772888 60 100M = 110908302 135316 TTTGACAGATGAGGAAATTAAACCTTAGAG
3 161 chr10 110908302 60 92M = 110772888 -135316 NGACATCTTTTTCTCCTATCACAAGGATAT
4 97 chr18 65855270 60 83M1I16M = 63677027 -2178190 TTTTACAGAAATCA
(三)过滤
把上面得到的bam文件进行过滤。过滤这一步官网使用的软件是pairsamtools
(这个软件现已更名为pairtools
)。
pairtools软件官网:https://readthedocs.org/projects/pairtools/downloads/pdf/latest/
这里主要是要生成.pairs
文件。这里涉及到Hi-C的技术原理,请参看我之前的文章(Hi-C技术的初步了解),先简单的了解Hi-C的样品取样流程,这里更容易理解,文字可能不好表达,请意会:
而pairtools在这一步是干嘛的呢?见下图:
安装pairtools:
$ conda install -c conda-forge -c bioconda pairtools
或者
$ pip install pairtools
接下来就是过滤步骤了:
#读取bam文件,并生成Hi-C pairs
$ samtools view -h output.bam | pairtools parse -c hg38.mainonly.chrom.size -o parsed.pairsam
#对.pairsam文件进行sort
$ pairtools sort --nproc 8 -o sorted.pairsam parsed.pairsam
#查看输出文件
$ less -S parsed.pairsam
这时你查看的文件应该是长这样:
(四)去重
这一步仍然需要用pairtools这个软件。
$ pairtools dedup --mark-dups -o deduped.pairsam sorted.pairsam
(五)Select
根据pair类型筛选pairs。
$ pairtools select \
'(pair_type == "UU") or (pair_type == "UR") or (pair_type == "RU")' \
-o filtered.pairsam deduped.pairsam
(六)拆分文件
把上面得到的.pairsam
文件拆分成.pairs
文件和.sam
文件。
$ pairtools split --output-pairs output.pairs filtered.pairsam
#查看output.pairs文件
$ less -S output.pairs
(七)对pairs文件建立索引以及查找区域内的pairs
这一步需要用到的软件是:pairix
pairix软件官方网址:https://github.com/4dn-dcic/pairix
首先安装pairix:
$ conda install -c bioconda pairix
#把上一步得到的output.pairs文件进行压缩,得到gz文件
$ bgzip output.pairs
#建立索引
$ pairix -f output.pairs.gz
#可以试着查询一下染色体某一区域内的pairs
$ pairix output.pairs.gz 'chr2:1-60000000|chr4:5000000-6000000'
156768 chr2 16158981 chr4 5970814 - + UU
448703 chr2 31363676 chr4 5157768 + + UU
199145 chr2 44090655 chr4 5811114 - - UU
#上面的各列代表: readID chr1 pos1 chr2 pos2 strand1 strand2 pair_type
(八)Binning! (生成contact矩阵)
这一步需要用的软件是:cooler。软件官网:https://github.com/mirnylab/cooler。
首先安装cooler:
$ conda install -c conda-forge -c bioconda cooler
输入文件需要: pairs文件, chromsize文件
输出文件 : cool文件
bin大小 : 比如5000 (高分辨率), 500000 (低分辨率)
$ cooler cload pairix hg38.mainonly.chrom.size:50000 output.pairs.gz output.cool
INFO:cooler.cli.cload:Using 8 cores
INFO:cooler.create:Creating cooler at "output.cool::/"
INFO:cooler.create:Writing chroms
INFO:cooler.create:Writing bins
......
INFO:cooler.create:Writing indexes
INFO:cooler.create:Writing info
INFO:cooler.create:Done
利用cooler读取cool文件:
$ cooler dump -t pixels --header --join -r chr19 output.cool
chrom1 start1 end1 chrom2 start2 end2 count
chr19 250000 300000 chr19 250000 300000 4
chr19 250000 300000 chr19 300000 350000 1
chr19 250000 300000 chr19 350000 400000 1
chr19 250000 300000 chr19 5300000 5350000 1
chr19 250000 300000 chr19 6900000 6950000 1
......#这里你会发现最后一列是count,并且都是整数
#上面各列代表:chrom1 start1 end1 chrom2 start2 end2 value
(九)标准化
我们在做RNA-seq和CHIP-seq以及其他各种高通量测序实验分析中,都有一步是标准化。Hi-C也一样。需要把上面我们得到的这个output.cool
文件进行标准化。
#标准化
$ cooler balance output.cool
# 查看输出文件(w/ -b for normalized matrix)
$ cooler dump -t pixels --header --join -r chr19 -b output.cool
chrom1 start1 end1 chrom2 start2 end2 count balanced
chr19 250000 300000 chr19 250000 300000 4
chr19 250000 300000 chr19 300000 350000 1
chr19 250000 300000 chr19 350000 400000 1
......
chr19 900000 950000 chr19 1300000 1350000 1 0.323781
chr19 900000 950000 chr19 2600000 2650000 1 0.249956
......
#标准化后会多出一列
(十)Aggregation! (For HiGlass view)
这一步是为了进行后续使用HiGlass进行可视化的。这一步会生成一个多分辨率的cool文件。
$ cooler zoomify output.cool
后续的可视化可以按照教程https://docs.higlass.io/higlass_docker.html操作了。哈佛的这个Hi-C流程的可视化使用的是Higlass,也有其他的可视化软件。比如Juicebox和WashU Epigenome Browser。之后如果用的到的话会再仔细的深入研究一下使用方法。