BS-Seq(3) -- 数据比对并提取甲基化位点
这里我们使用的软件是bismark ,但是需要调用bowtie2,所以先将这两个软件下载好,解压运行。
构建甲基化比对基因组文件
#软件安装
conda install -c bioconda bismark bowtie2
#基因组
wget https://hgdownload.cse.ucsc.edu/goldenpath/hg19/bigZips/hg19.fa.gz
gunzip hg19.fa.gz
bismark_genome_preparation /home/jimmy/my_data/ref_data/hg19
运行成功后,会在fasta 所在目录生成如下的目录结构
├── 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
可以看到,分别对CT和GA转换的基因组建立了bowtie2的索引。
比对
# paired-end data
bismark --genome /home/jimmy/my_data/ref_data/hg19 -1 read1.fastq.gz -2 read2.fastq.gz -p 4 -o ./ 2>test.log
# single-end data
bismark --genome /home/jimmy/my_data/ref_data/hg19 test_data.fastq -p 4 -o ./ 2>test.log
# 输出
├── test_data_bismark_bt2.bam
└── test_data_bismark_bt2_SE_report.txt
查看BAM文件 samtools view test_data_bismark_bt2.bam | head -n5 :
SRR020138.15024317_SALK_2029:7:100:1672:902_length=86 16 chr1 57798677 42 50M * 0 0 TTCTTTCCCATCCCATAAATCCTAAAAATAATAAAAAATCATCCCCAAAT @@:AC@<=+@?+8)@BCCCA=6BCCCCCCCCCCCCCCCCACB=<88BCCA NM:i:11 MD:Z:14G2G6G0G0G0G4G1G1G0G10G1 XM:Z:..............z..h......hhhh....h.h.hh..........h. XR:Z:CT XG:Z:GA
SRR020138.15024318_SALK_2029:7:100:1672:137_length=86 0 chr12 129774096 8 50M * 0 0 AAAAAAAAAAAAAAGAAAAAAAAGAAAAAGAAAAGGAAAAGTAAAAAAAA =@CAA=@B@CB=98%:AB?>@56/=3<=<)>B@:*=:=61%,<A@@1+12 NM:i:2 MD:Z:41C5G2 XM:Z:.........................................h........ XR:Z:CT XG:Z:CT
SRR020138.15024319_SALK_2029:7:100:1672:31_length=86 0 chr2 10166575 42 50M * 0 0 ATTTTGTTATAGAGTGGGGTATTTTCGGGAAGAAGGAGGAGGAGTGTATT BCCCCBCCCCA?:=ACCBCABCCCCCBCCA??5=9@4BB@;??B@BABBA NM:i:8 MD:Z:1C1C5C9C2C0C22C1C1 XM:Z:.h.x.....x.........h..hh.Z....................h.x. XR:Z:CT XG:Z:CT
SRR020138.15024320_SALK_2029:7:100:1672:1164_length=86 16 chr5 28344472 8 50M * 0 0 CACAAAATATCAACACCCCTAAACCCCACATTATTCAAAAATCAATTATA @@@BBBA@A9=A@<?::2:<CB@?=:BBAC??CB@@BBBBC>:ACABCAB NM:i:11 MD:Z:4G1G1G3G9G9G5G0G0G1T4G2 XM:Z:....x.h.h...x.........h.........h.....hhh......h.. XR:Z:CT XG:Z:GA
SRR020138.15024321_SALK_2029:7:100:1672:433_length=86 0 chr14 38711099 42 50M * 0 0 TTTTGAGTAGAGAAGTTAGTATTTTAGGGAATTTTTGATTTTTTTAAGTT BCCBB?B@@A>@-4BBB:7@BBBCBBC@@=A@BCACA;BCBBCBB@@@BB NM:i:14 MD:Z:0C0C13C0C6C0C6C0C1C3C0C1C0C1C5 XM:Z:hh.............hx......hx......hh.x...hh.hh.h..... XR:Z:CT XG:Z:CT
甲基化call字符串对于BS-read中不涉及胞嘧啶的每个位置都用一个点 . 代替,或包含以下不同的胞嘧啶甲基化的字母 (大写=甲基化,小写=未甲基化) :
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)
. # 该位置不是胞嘧啶
去除重复
deduplicate_bismark -s --bam test_data_bismark_bt2.bam
# 输出
├── test_data_bismark_bt2.deduplicated.bam
└── test_data_bismark_bt2.deduplication_report.txt
#-p paired-end
# -s single-end
甲基化位点提取
默认情况下,软件会自动根据 甲基化的C的类型 (CpG, CHG, CHH) 和 比对到四条链上 (OT, OB, CTOT, CTOB) 两个因素生成结果文件。
OT – original top strand
CTOT – complementary to original top strand
OB – original bottom strand
CTOB – complementary to original bottom strand
bismark_methylation_extractor -s --gzip --bedGraph --buffer_size 10G --cytosine_report --comprehensive --genome_folder /home/jimmy/my_data/ref_data/hg19 test_data_bismark_bt2.bam 2>extracor.log
#参数:
#-p paired-end
# -s single-end
#--comprehensive 将可能的甲基化信息都输出,包括CHG,CHH,CpG
#--no_overlap:对于双端读取,read_1和read_2理论上是可能重叠的。这个选项避免了重复的甲基化计算了2次。虽然这消除了对序列片段中心更多甲基化的计算偏差。
#--bedGraph:输出bedGraph文件
#--cytosine_report:输出全基因组所有的CpG。
#--counts 计算bedGraph中有每个C上甲基化reads和非甲基化reads的数目
#--buffer_size 指定内存
#--report :产生甲基化的summary 文件
#--genome_folder:参考基因组的路径
#-o:输出文件路径
生成处理报告
bismark2report --dir ./ --alignment_report test_data_bismark_bt2_SE_report.txt
--dir指定结果的输出目录
--alignment_report 指定比对产生的report文件的路径
所有结果文件
CHG_context_test_data_bismark_bt2.deduplicated.txt.gz
CHH_context_test_data_bismark_bt2.deduplicated.txt.gz
CpG_context_test_data_bismark_bt2.deduplicated.txt.gz
test_data_bismark_bt2.deduplicated.bedGraph.gz
test_data_bismark_bt2.deduplicated.bismark.cov.gz
test_data_bismark_bt2.deduplicated.CpG_report.txt.CpG_report.txt.gz
test_data_bismark_bt2.deduplicated_splitting_report.txt
test_data_bismark_bt2.deduplicated.cytosine_context_summary.txt
test_data_bismark_bt2.deduplicated.M-bias.txt
SW480-WGBS_bismark_bt2.deduplicated_splitting_report.html
结果解读
--cytosine_report参数会根据当前目录下的信息文件生成一个HTML格式的报告文件,即test_data_bismark_bt2_SE_report.html文件,它包括了比对信息,甲基化信息,M-bias等,可以对数据有一个大概的认知(下图只展示了一部分):
image.png
image.png
同时因为使用了--comprehensive,所以结果合并正反链的数据后会输出CpG/CHG/CHH三种类型的甲基化文件,包含了胞嘧啶所有的组合形式,但实际上我们自然最关注的是CpG位点的甲基化。其中
CpG_context_test_data_bismark_bt2.deduplicated.txt即CpG甲基化位点的文件。
head CpG_context_test_data_bismark_bt2.deduplicated.txt
Bismark methylation extractor version v0.19.0
SRR020138.15024317_SALK_2029:7:100:1672:902_length=86 - 1 57333019 z
SRR020138.15024319_SALK_2029:7:100:1672:31_length=86 + 2 10026473 Z
SRR020138.15024331_SALK_2029:7:100:1673:1282_length=86 + 11 78025243 Z
SRR020138.15024343_SALK_2029:7:100:1673:202_length=86 + 10 121617231 Z
SRR020138.15024357_SALK_2029:7:100:1673:879_length=86 - 4 75173715 z
SRR020138.15024361_SALK_2029:7:100:1673:235_length=86 - 2 130768889 z
SRR020138.15024368_SALK_2029:7:100:1673:123_length=86 + 10 106402850 Z
SRR020138.15024376_SALK_2029:7:100:1673:1908_length=86 - 12 124097382 z
SRR020138.15024380_SALK_2029:7:100:1673:397_length=86 + 8 95038627 Z
# 第一列为测序信息
# 第二列为甲基化状态 + 代表甲基化 -代表未甲基化
# 第三列代表chromosome
# 第四列代表location
# 第五列代表methylation call,简单来说大写的就是甲基化的(因为还有CHG,CHH的数据,分别对应x, X , h, H)
test_data_bismark_bt2.deduplicated.bismark.cov文件则给了每个位点的甲基化比例,为下一步确定CpG岛提供了基础,其数据形式如下:
$head test_data_bismark_bt2.deduplicated.bismark.cov
1 975476 975476 100 1 0
1 975488 975488 100 1 0
1 975490 975490 100 1 0
1 2224487 2224487 100 1 0
1 2224489 2224489 100 1 0
1 2224514 2224514 100 1 0
1 2224520 2224520 100 1 0
1 2313220 2313220 0 0 1
1 9313902 9313902 100 1 0
1 9313914 9313914 100 1 0
# 第一列代表chromosome
# 第二,三列代表location
# 第四列代表甲基化百分比
# 第五列代表甲基化数目
# 第六列代表未甲基化数目
test_data_bismark_bt2.deduplicated.CpG_report.txt.CpG_report.txt文件则是背景信息:
$head test_data_bismark_bt2.deduplicated.CpG_report.txt.CpG_report.txt
1 10469 + 0 0 CG CGC
1 10470 - 0 0 CG CGA
1 10471 + 0 0 CG CGG
1 10472 - 0 0 CG CGC
1 10484 + 0 0 CG CGG
1 10485 - 0 0 CG CGG
1 10489 + 0 0 CG CGC
1 10490 - 0 0 CG CGG
1 10493 + 0 0 CG CGC
1 10494 - 0 0 CG CGG
# 第一列为chromosome
# 第二列为location
# 第三列为strand
# 第四,五列为甲基化和非甲基化的碱基数目
# 第六列为CG
# 第七列为背景(第一个C延伸两个碱基)
其它参数
bam2nuc
bismark2summary
coverage2cytosine
NOMe_filtering
filter_non_conversion
# 有需要的可以自信探索 --help or manual
此处根据测序数据得到了甲基化位点的信息,但是后续DML以及DMR的确定还需要R包的使用,以及后续的可视化还以探索以下包:
image.png
Methy-Pipe: An Integrated Bioinformatics Pipeline for Whole Genome Bisulfite Sequencing Data Analysis
2014年出的一个pipeline,分析作图一条龙,有兴趣的同学安排一下。