甲基化分析生信

Bismark软件使用入门

2021-08-22  本文已影响0人  生信阿拉丁

作者:马可菠萝 童蒙
编辑:angelica

一、甲基化文库建库原理

借助重亚硫酸盐(Bisulfite)转换的方法被认为是金标准,该化学试剂会将未甲基化的C进行转化,胞嘧啶(C)转换为尿嘧啶(U),后续的PCR扩增过程U会被胸腺嘧啶(T)替代,而,甲基化的C则不受影响。在了解如何使用Bismark之前,需要先了解DNA甲基化文库的结构。

通常,甲基化文库构建方法有两种:

通常而言,甲基化建库均为链特异性方式构建:

二、bismark比对分析

bismark的分析分为三步:
基因组索引构建:需要将基因组进行相应的转换,模拟bisulfite处理后基因组,这样才能用于比对。在每个新物种比对之前,都需要进行该处理。bismark内部默认调用bowite软件进行比对。
序列比对:输入为下机序列、基因组和比对参数,bismark会输出比对结果和甲基化检测的结果,默认格式为BAM,同时还会有一个统计报告。
甲基化位点提取:这一步是可选的,会利用bismark的比对结果来获得甲基化信息。这一步会把甲基化分为不同的类别(CG,CHG和CHH),获得链特异性信息,并且提供过滤参数;也可以对甲基化信息进行调整,或者进行更多的深入分析。

01.基因组索引

使用bismark_genome_preparation来对基因组进行处理,输入是给定的目录,目录里面是.fa或者.fasta文件。

bismark会生成两个目录,一个是C->T转换的基因组,一个是G->A转换的基因组共两套基因组,之后可以用bowtie2-build来建立索引。

特别注意,索引路径中必需包含一个基因组文件。
运行命令示例如下:

bismark_genome_preparation
    --path_to_bowtie /path/bowtie2/  这里使用bowtie2
    <path_to_genome_folder>   索引路径
     --verbose   输出log信息

索引输出目录结果如下:

Bisulfite_Genome
├── CT_conversion
│   ├── BS_CT.1.bt2
│   ├── BS_CT.2.bt2
│   ├── BS_CT.3.bt2
│   ├── BS_CT.4.bt2
│   ├── BS_CT.rev.1.bt2
│   ├── BS_CT.rev.2.bt2
│   └── genome_mfa.CT_conversion.fa
└── GA_conversion
    ├── BS_GA.1.bt2
    ├── BS_GA.2.bt2
    ├── BS_GA.3.bt2
    ├── BS_GA.4.bt2
    ├── BS_GA.rev.1.bt2
    ├── BS_GA.rev.2.bt2
    └── genome_mfa.GA_conversion.fa

02.比对

比对的过程需要提供两个信息

输出包括:

2.2.1、比对原理

一般情况下,由于建库的时候会产生四种可能性的序列,原始的正链(OT),原始的互补链(OB),原始正链的互补链(CTOT),原始互补链的互补链(CTOB),因此bismark会进行进行四条路线的比对,如下图。


上面示意图提到建库方式是有方向性的,因此bismark只需要进行两次比对即可,而不需要进行4次的比对,如果文库是非链特异性文库,需要加上--non_directional的参数,bismark会进行4次比对,选择最优的结果进行输出。

针对先转化后加接头的文库(PBAT),常见如单细胞甲基化文库,需要添加--pbat参数进行比对。

2.2.2、运行bismark
bismark 
    --bowtie2  使用bowtie2
    -N 0       允许错配数目
    --un       过滤多处匹配reads
    -o         输出目录
    <genome_folder>  索引路径
    -1 read_1.fq.qz  测序read1
    -2 read_2.fq.gz  测序read2

03.输 出

bam文件:可以利用SeqMonk进行可视化;也可以用于继续的去除dup等
比对输出路径示例如下:

# 样本:A
A_P_R1_bismark_bt2_pe.bam
A_P_R1_bismark_bt2_PE_report.txt
A_P_R2.fq.gz_unmapped_reads_1.fq.gz
A_P_R2.fq.gz_unmapped_reads_2.fq.gz

比对输出路径中包含一个比对后的文件(BAM格式)和一个比对报告文件以及未比对到参考基因组上的reads文件(--un参数)。

若测序数据为双端数据文件中会有PE或pe标签,若为单端数据则会有SE或se字符加以区别。

针对链特异性文库,若进行单端比对read1使用bismark单端参数即可,read2需要添加--pbat参数;而非链特异性文库--pbat参数的使用则相反。

通常,若某物种比对率较低,可先进行双端比对同时输出未必对的reads,随后使用未比对的read1和read2分别进行单端比对并合并输出的BAM文件,作为下游的输入。

比对报告文件示例如下:

Bismark report for: A_P_R1.fq.gz and A_P_R2.fq.gz
Bismark was run with Bowtie 2 against the bisulfite genome of /Index/ with the specified options: -q --score-min L,0,-0.2 --reorder --ignore-quals --no-mixed --no-discordant --dovetail --maxins 1000
Option '--directional' specified (default mode): alignments to complementary strands (CTOT, CTOB) were ignored (i.e. not performed)

Final Alignment report
======================
Sequence pairs analysed in total:  43930319
Number of paired-end alignments with a unique best hit: 26314484
Mapping efficiency:  60.0%
Sequence pairs with no alignments under any condition:  16147263
Sequence pairs did not map uniquely:  1468572
Sequence pairs which were discarded because genomic sequence could not be extracted:    2

Number of sequence pairs with unique best (first) alignment came from the bowtie output:
CT/GA/CT:   13199639   ((converted) top strand)
GA/CT/CT:   0  (complementary to (converted) top strand)
GA/CT/GA:   0  (complementary to (converted) bottom strand)
CT/GA/GA:   13114843  ((converted) bottom strand)

Number of alignments to (merely theoretical) complementary strands being rejected in total:     0

Final Cytosine Methylation Report
=================================
Total number of C's analysed: 1191141867

Total methylated C's in CpG context: 33527315
Total methylated C's in CHG context: 17696056
Total methylated C's in CHH context: 68376839
Total methylated C's in Unknown context: 97299

Total unmethylated C's in CpG context: 20813883
Total unmethylated C's in CHG context: 239796745
Total unmethylated C's in CHH context: 810931029
Total unmethylated C's in Unknown context:  301701

C methylated in CpG context: 61.7%
C methylated in CHG context: 6.9%
C methylated in CHH context: 7.8%
C methylated in unknown context (CN or CHN): 24.4%

Bismark completed in 0d 7h 30m 40s

报告展示了唯一比对上的read对数目等信息(Final Alignment report部分)以及有reads支持发生甲基化的C的数目统计(Final Cytosine Methylation Report部分),注意这里并非真正意义上的甲基化C,仍需要下游的分析。

04.去除duplicated序列

由于PCR的扩增,可能会存在比对到基因组相同位置的序列,重复测序的序列需要被去除。如果是RRBS文库,建议不要进行这一步骤。

对于单选测序序列,去dup的时候,会根据染色体、起始坐标和链的方向来确定是否是duplication;
对于双端测序序列,Read1的染色体、起始坐标,Read2的起始坐标会用于去除duplication。需要注意的是,去dup的时候需要注意read1和read2是相邻的,而不是按照坐标排序的。
去除dup的参数示例如下:

deduplicate_bismark 
    -p A_P_R1_bismark_bt2_pe.bam   bismark比对输出的bam文件 
    --bam                          bam格式输出
    --samtools_path <samtools_dir> SAMtools软件路径
    --output_dir <out_dir>         输出路径

输出路径会生成一个去除dup后的bam文件和一个去除dup的统计文件。

三、提取甲基化位点

使用bismark_methylation_extractor来提取每个C位点的甲基化的情况,结果文件可以导入到SeqMonk中。
可以使用--bedGraph,来产生bedgraph和coverage的文件;--count可以产生count文件,输出每个CpG位点的深度文件。

bismark_methylation_extractor
    --pair-end         指定双端数据
    --comprehensive    输出CHG CHH CpG的甲基化信息
    --no-overlap       去除reads重叠区域的bias
    --bedGraph         输出bedGraph文件
    --counts           每个C上甲基化reads和非甲基化reads的数目
    --report           一个甲基化summay
    --cytosine_report  输出全基因组所有CpG
    --genome_folder    <path_to_reference_genome>
    input.bam          输入文件
    -o >output_dir>    输出路径

bismark对不同状态的胞嘧啶进行了约定并记录到了BAM文件和中间文件中:

X 代表CHG中甲基化的C
x  代笔CHG中非甲基化的C
H 代表CHH中甲基化的C
h  代表CHH中非甲基化的C
Z  代表CpG中甲基化的C
z  代表CpG中非甲基化的C
U 代表其他情况的甲基化C(CN或者CHN)
u  代表其他情况的非甲基化C (CN或者CHN)

bismark_methylation_extractor的一个非常重要的输出文件为全基因组胞嘧啶报告文件(*CX_report.txt),该文件是一个非常核心的记录胞嘧啶深度信息的文件,可进行甲基化水平的计算、区域甲基化信号文件的转化、差异甲基化水平的计算等。
文件示例如下:

chr1    14716   +       1       6       CG      CGT
chr1    14717   -       10      1       CG      CGA
chr1    14741   +       2       1       CG      CGG
chr1    14742   -       0       1       CG      CGC

各列信息解释如下:
第1列 : 染色体编号
第2列 : 染色体起始位置
第3列 : 正负链信息
第4列 : 甲基化碱基数目
第5列 : 非甲基化碱基数目
第6列 : CG/CHG/CHH
第7列 : C背景序列

基于该文件可进行单个胞嘧啶位点的甲基化水平(C/C+T)计算,比如第一行:甲基化是水平为1/(1+6);针对指定区域的甲基化水平计算则取区域内的胞嘧啶的总C/(总C+总T)即可。

四、bismark的优缺点

4.1、优点

(1)比对和mC Calling比较准确,受众广泛,使用率很高
(2)软件维护性好,更新快,bug修复及时
(3)软件成体系,集成了比对、去重、mC Calling分析

4.2、缺点

(1)比对和mC Calling速度慢,真的很慢,可以通过拆分输入数据为小份作为输出和增大计算资源解决。
(2)bismak相匹配的直接进行下游甲基化水平、图形可视化等分析的套件较少,需要自行计算或进行格式转化作为第三方软件的输入。
(3)说明文档不够系统和详细,在”外行“看来理解从建库到mC Calling有一定的挑战。

bismark的结果只是研究甲基化信息的第一步也是关键的一步。未来,期望bismark在速度上,和在对甲基化水平层面分析的支持上多一下改进。

五、参考资料

  1. https://github.com/FelixKrueger/Bismark
  2. https://github.com/FelixKrueger/Bismark/tree/master/Docs
  3. https://www.epigenesys.eu/images/stories/protocols/pdf/20120720103700_p57.pdf
上一篇下一篇

猜你喜欢

热点阅读