最详细的HiC-Pro使用记录及结果解读

Hi-C技术通过交联等实验步骤获得空间上相连的DNA片段,即物理位置上较远的DNA片段之间的互作信息。根据染色体内部的互作概率显著高于染色体之间的互作概率将不同的contig或者scaffold分成不同的染色体;根据在同一条染色体上,互作概率随着互作距离的增加而减少将同条染色体的contig或者scaffold进行排序和定向。

HiC-Pro是2015年发表的一款处理Hi-C数据用来辅助组装基因组的工具,也是现在主流应用的一款工具。记录一下自己如何使用这个软件的,之前的安装记录见另一篇文章Hic-Pro安装。

一.文件准备

需要准备参考基因组fasta文件,bowtie2建立的索引文件,含有酶切片段信息的bed文件,基因组大小信息的sizes文件,被比对的Hi-C的reads序列文件。

1.下载Hi-C Pro的测试数据及hg19参考基因组

http://nservant.github.io/HiC-Pro/QUICKSTART.html#test-dataset

参考基因组GCF_000001405.25_GRCh37.p13_genomic.fna.gz

2.建立bowtie2索引

使用bowtie2-build建立索引

bowtie2-build -f GCF_000001405.25_GRCh37.p13_genomic.fna.gzGCF_000001405.25_GRCh37.p13_genomic

# -f 指定参考基因组,空格后面接索引文件前缀,索引文件前缀和基因组名称最好一致;

结果生成6个bt2文件。

3. bed文件,使用digest_genome.py生成酶切片段文件。

digest_genome.py脚本在HiC-Pro-3.1.0/bin/utils目录下,正常对自己的数据使用命令行为:

python3 /HiC-Pro-3.1.0/bin/utils/digest_genome.py  hifi_canu.contigs.fasta-r dpnii -o hifi_canu.contigs.bed;

#-r 指定自己的酶切种类名称,大小写都可以。

酶的名称或序列,在代码给了如下字典,所以此处-r写^GATC或mboi(注意全小写字母)都可以,^为酶切位点。

测试数据已经建好了bed文件,在HiC-Pro-3.1.0/annotation目录下,HindIII_resfrag_hg19.bed。

第一列是序列名,这里不是原始输入的序列名,而是HiC-Pro自行指定的序列名,第二列和第三列相关,第三列是程序检测到的酶切位点对应序列的起始位置。例如,假设采用的酶是dnpii,那么参考基因组序列上GATC位点的起始位置。

4.sizes文件,记录基因组中每条contig/scaffold/chromosome的长度信息的文件

正常要对自己的数据使用samtools建立索引,

samtools faidx hifi_canu.contigs.fasta,

awk '{print $1 "\t" $2}' hifi_canu.contigs.fasta.fai > hifi_canu.contigs.sizes,

测试数据已建好了sizes文件,同bed文件在同一目录下,chrom_hg19.sizes。

这个文件记录了genome.fasta中序列长度信息。

5.整理reads目录结构

在HiCPro的源码中只会读入指定目录的子目录的文件,源码如下:

所以,建立reads目录结构如下:

注意:其中reads名称默认必须是_R1.fastq.gz和_R2.fastq.gz结尾的。

6.运行主程序HiC-Pro前修改config-hicpro.txt文件

将HiCPro安装目录下的config-hicpro.txt文件拷贝到脚本运行目录下,并进行修改。通常需修改的地方有以下几个,其中用前半部分参数非常重要,通常每次运行都要修改的。所有的参数官网有给出解释,地址链接为:http://nservant.github.io/HiC-Pro/MANUAL.html#manual

配置文件修改:

N_CPU,给定的CPU内存数,给的越多,运行的越快(根据服务器配置);

BOWTIE2_IDX_PATH,填写用bowtie2对reference建立索引所在目录,是目录,不是文件名,也不是前缀名;

REFERENCE_GENOME,填写比对的参考基因组前缀;

注意:REFERENCE_GENOME一定要和bowtie2建立的索引对应上;

GENOME_SIZE,前面生成的sizes文件;

GENOME_FRAGMENT,前面用digest_genome.py程序生成的bed文件;

LIGATION_SITE,酶切位点末端补平再次连接后形成的嵌合序列,例如HindIII,则为AAGCTAGCTT;如果是MboI则序列为GATCGATC;如果是dnpii,则为

剩下一些参数也很重要,要根据自己的需求进行修改,

LOGFILE, log 文件名称。

JOB_MEM, 内存大小,内存越大,计算越快;比如100gb或者1000M。

SORT_RAM = 1000M,我曾设置过3gb和200gb,结果都报错。

MIN_MAPQ: 最低的质量分数,用于筛选,表示低于该MAPQ值会被过滤。

BOWTIE2_GLOBAL_OPTIONS:默认GLOBAL比对设置。

BOWTIE2_LOCAL_OPTIONS:默认LOCAL比对设置。

MIN_FRAG_SIZE: 最小的理论酶切片段大小,eg. 100。

MAX_FRAG_SIZE: 最大的理论酶切片段大小,eg 100000,这范围越大,reads数越多。

MIN_INSERT_SIZE: 最小的文库片段大小,eg.100。

MAX_INSERT_SIZE: 最大的文库片段大小,eg.1000,HiC建库的插入片段长度一般在300-500bp。

BIN_SIZE:需要生成的矩阵分辨率(bp),也就是bin的长度,比如原文件中设置的20000 40000 150000500000 1000000,也就是20kb-1Mb之间,bin的值越小,分辨率越高,处理起来占用内存空间越大。

MATRIX_FORMAT:生成矩阵的形式,可选参数为:complete、asis、upper和lower,默认值为upper,表示保留上半部分。如果后续还要做A/B compartment分析的话,需修改成complete,否则会影响PCA分析的结果。

二.运行命令主程序

time /public/home/lq/software/HiC-Pro-3.1.0/bin/HiC-Pro \

-c/public/home/lq/script/denovo/HiC-Pro/test/config-hicpro.txt \

-i /public/home/lq/hlong/denovo/hicpro/test/02.reads \

-o /public/home/lq/software/HiC-Pro-3.1.0/test/hicpro_test

运行到Combine R1/R2 alignment files 时报错了,后换成自己的数据就没事了。

整个过程共11步,用了6h多,这还是我的小数据的测试用的时间。

三.结果解析

所有的输出,都在自己运行软件的时候指定的out文件夹下面,结果目录如下:

bowtie_results:比对结果所在目录;
hic_results:hic矩阵及分析结果所在目录;
logs:存放分析日志;
rawdata:链接了原始数据;tmp:存放中间文件。

bowtie_results目录下共有三个文件夹:

bwt2:存放合并后的bam文件和统计结果;

bwt2_global:存放全局比对结果;

bwt2_local:存放局部比对结果;

hic_results目录下面有四个文件夹:

data:存放valid pair reads及其他无效数据文件;

matrix:存放不同分辨率矩阵文件;

pic:存放统计分析图片;

stats:存放统计表;

hic_result/data目录中的文件:

hic_result/data目录中的文件

allVaildPairs:合并后的Valid pairs数据
DEPairs:Dangling end pairs数据
DumpPairs:实际片段长度和理论片段长度不同的数据
REPairs:酶切片段重新连接的pairs
FiltePairs:基于min/max insert/fragment size过滤的pairs,MAPQ过低的pairs;SCPairs:片段自连的pairs

hic_result/matrix目录

matrix:存放不同分辨率矩阵文件, 分为raw和iced文件,raw: 初始的关联矩阵iced:ice校正后的矩阵,供后续分析使用。

hic_result/pic目录

plotHiCContactRanges_Example1.pdf有效互作中各类型比例图;

plotHiCFragmentSize_Example1.pdf有效互作的片段大小分布图;

plotMappingPairing_Example1.pd合并后双端比对过滤结果图;

hic_result/stats目录:

hic_result/stats目录

1.LZ-3-15-1_allValidPairs.mergestat

这个文件主要记录的是valid pairs中去除PCR duplication后,trans比对(比对到reference中不同序列)和cis比对(比对到reference中同一条序列)的情况。

其中valid_interaction与xx.mRSstat文件中一致;valid_interaction_rmdup表示去除PCR duplication后的valid interaction。

Valid interaction rmdup = Trans interaction + Cis interaction

2. LZ-3-15-1.mpairstat

这个文件主要记录的是reads对的情况,包括

两端均未比对上的reads pair(Unmapped_pairs):3980707      16.746

只有一端比对上的reads pair(Pairs_with_singleton):7666170      32.249

低质量的reads pair(Low_qual_pairs):0      0.0

唯一比对reads pair(Unique_paired_alignments):4945079      20.803

Unique paired alignments用于后续分析

3. LZ-3-15-1.mRSstat

这个文件主要记录的是过滤掉的invalid Hi-C products,包括Dangling end pairs、Religation pairs、Self Cycle pairs、Dumped pairs等,如下图所示

4. LZ-3-15-1_R1.mmapstat和LZ-3-15-1_R2.mmapstat

它们记录了PE reads分开比对的结果。

以R1.mmapstat文件为例:

total_R1是总的R1 reads;

mapped_R1有由两个部分组成,分别为:

第一步 (HiCPro称为global alignment)比对上的reads pair(即global_R1),

第二步比对(HiCPro称为local alignment)比对上的reads对(即local_R1)。

具体关系如下:

Total reads = Unmapped pairs + Pairs with singleton + Low qual pairs + Unique paired alignments

四.报错信息及修改

1.在进行到 Run quality checks for all samples时报错了,进入Makefile文件中查看脚本181行内容,发现是在运行make_plots.sh脚本时出现错误,

参考Github上ISSUEs上链接:https://github.com/nservant/HiC-Pro/issues/163

发现我的dixon_2M.allValidPairs是空的,该文件在/hic_results/data/dixon_2M目录下,原因有可能是因为自己下载的参考基因组的染色体编号和作者提供的bed文件不配套。换自己的数据后就没事了

2.参数设置

后改成3gb

五.参考

Ref1: https://wap.sciencenet.cn/blog-2970729-1182259.html

主程序HiC-Pro可以单线程来跑(不使用--parallel选项),或者采用多线程来跑(使用--parallel选项)

/PATH/TO/HiC-Pro_2.11.1/bin/HiC-Pro --input /PATH/TO/02.reads/ --output hicpro_output --conf /PATH/TO/config-hicpro.txt --parallel

 Ref2: https://blog.csdn.net/qq_50637636/article/details/120827491

Ref3: https://www.jianshu.com/p/facec96ee6ac

Ref3: Nicolas Servant, Nelle Varoquaux, Bryan R. Lajoie. et al. HiC-Pro: an optimized and flexible pipeline for Hi-C data processing. Genome Biology. 2015.

本文使用 文章同步助手 同步

你可能感兴趣的:(最详细的HiC-Pro使用记录及结果解读)