Bismark软件使用入门

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

一、甲基化文库建库原理

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

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

  • 一种是先片段化,然后末修,加上特殊处理的接头(甲基化的)后,进行CT转化,之后进行扩增,如下图:



    该文库为链特异性文库,使用bismark默认参数比对即可。

  • 另一种是先CT转换,然后扩增加接头,如下图。



    该文库为非链特异性文库,需要使用PBAT文库参数。

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

  • 测序read1都是来自于原始的基因组,经历了C->T转化,来自于正链的叫OT,负链叫OB;
  • 测序read2都是来自于原始基因组的互补链,经历了G->A转换,称之为CTOT或者CTOB。

二、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.比对

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

  • 输入目录:已经建立好的索引目录,即基因组索引步骤中的索引目录
  • 输入文件:测序reads,fastq格式
  • 其余参数都是可选,自行调整使用

输出包括:

  • 比对的结果,BAM文件
  • 报告文件:包含各种统计信息和甲基化统计结果
2.2.1、比对原理

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


  • 左边的C->T,是原始链的转化方式,然后跟两种参考基因组进行比对,得到OT和OB的结果;
  • 右边的G->A,是扩增链的转化方式,然后跟两种参考基因组进行比对,得到CTOT和CTOB的结果;

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

推荐阅读更多精彩内容