Hi-C分析练习(从fastq文件到contact矩阵)

最近纽约复工,因为每天要做实验(还得全程戴口罩,非常闷得慌),比不了之前每天都在家可以为所欲为的自学生信,所以更新也少了很多~

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。之后如果用的到的话会再仔细的深入研究一下使用方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352