使用bismark进行甲基化分析并使用IGV对结果进行可视化

Bismark是进行甲基化分析过程中常用到的软件,可以将bisulfite处理后的测序reads比对到参考基因组上,得到参考基因组相应位置的甲基化水平。

我的甲基化数据为WGBS所测得的数据,使用Bismark call methylation分为以下几步:

1.处理WGBS测序数据,使用trimmomatic去接头;

2.为参考基因组建立索引;(基因组约450M,这一步用时15min);

bismark_genome_preparation  --bowtie2 yourdir  ##yourdir中存放genome

3.比对甲基化数据;(这步用时较久,每个个体大概花费3h)

nohup bismark --bowtie2 -N 0 -L 20 --quiet --un --ambiguous --bam --parallel 30 -o outdir  refdir -1 file1 -2 file2 &

4.去冗余;(0.5h)

nohup deduplicate_bismark -p -bam alignment_bam &

对3中比对的bam文件进行去冗余

5.提取甲基化信息;(4h)

nohup bismark_methylation_extractor -p --parallel 40 --comprehensive --no_overlap--bedGraph --cytosine_report --CX_context --split_by_chromosome --counts--buffer_size 20G --report --samtools_path yourpath/smrtlink_v9/smrtcmds/bin --genome_folder refdir bam    -o outdir &

##--split_by_chromosome参数可以将结果按照染色体拆分,便于后续可视化。

结果生成多个文件,主要使用每条染色体的甲基化文件,例:

*_bismark_bt2_pe.deduplicated.CX_report.txt.chrChr14.CX_report.txt

文件格式如下:

各列分别为:

<chromosome> <position> <strand> <count methylated> <count unmethylated> <C-context> <trinucleotide context>

第一列:染色体;

第二列:染色体上具体位点(以1开始);

第三列:正负链;

第四列:比对到该位点发生甲基化的reads数;

第五列:比对到该位点未发生甲基化的read数;

第六列:甲基化类型,有三种:CG, CHG, CHH;

第七列:该位点的三核苷酸序列;

6.IGV可视化

为了使用IGV进行可视化,需要构建bedgraph格式文件,bedgraph格式文件可以在IGV中对continuous-valued 数据进行可视化,适用于转录组数据或概率得分(The bedGraph format allows display of continuous-valued data in track format. This display type is useful for probability scores and transcriptome data. ),因此也适合展示甲基化率。bedgraph文件格式如下:

chromA  chromStartA  chromEndA  dataValueA chromB  chromStartB  chromEndB  dataValueB

第一列:染色体;

第二列:基因/位点在染色体上的起始位置;

第三列:基因/位点在染色体上的结束位置;

第四列:数值;(本次分析中为甲基化率)

bismark_methylation_extractor会生成一个总的bedgraph文件:

*_P_1_bismark_bt2_pe.deduplicated.bedGraph.gz

但该文件是整个基因组所有甲基化C位点,没有分CG/CHG/CHH信息,也不利于后续可视化,因此根据5提到的CX_report.txt(已按照染色体拆分)文件拆分CG,CHG,CHH三类甲基化后转换成bedgraph格式文件。

首先使用bismarkCXmethykit.pl脚本进行转换,转换后出现以CG_methykit.txt,CHG_methykit.txt,CHH_methykit.txt为后缀的拆分甲基化类型的文件,文件格式如下:

再使用R脚本转换成bedgraph文件,只需保留chr列,base列和freqC列,R脚本如下:

Args <- commandArgs(T)

Args[1]

myfile=read.table(Args[1],header=T)

outfile=sub("_P_1_bismark_bt2_pe.deduplicated.CX_report.txt.chrChr19.CX_report.txt", "",Args[1])

file_out=sub("_methykit.txt", ".bedgraph", outfile )   ###输出文件

chr<-as.character(myfile$chr)

pos<-as.integer(myfile$base)

pos2<-as.integer(myfile$base)

freq<-as.numeric(myfile$freqC)

outf<-data.frame(chr,pos,pos2,freq, check.names = F)   ###合并以上四列,check.names = F可以防止将字符串转化为其他内容。

outf$chr<-factor(outf$chr)

dim(myfile)

dim(outf)  ###检查一下新文件和原文件行数是否相等

write.table(outf, file=file_out, quote=F,col.names = F, row.names = F)  ##输出

转换后生成以CG.bedgraph/CHG.bedgraph/CHH.bedgraph为后缀的文件,文件内容如下:


符合IGV需求的格式,可以用于可视化。

##由于有时候整个基因组的bedgraph文件太大,我们只想看某条染色体的情况,可以先使用linux提取某条染色体以及某类C(CG/CHG/CHH)的信息,然后转成bedgraph格式。可以大大降低运行时间。

export PATH=/gpfs/home/fffu/anaconda3/envs/R4.2/bin:$PATH

###提取chrA01的CG信息

for file in ./*R_clean_1_bismark_bt2_pe.deduplicated.CX_report.txt

do

sample=${file##*/}

short=${sample%%R_clean_1_bismark_bt2_pe.deduplicated.CX_report.txt}

outall=$short"CG.report"

outchr1=$short"chr1_CG.report"

awk '$6 == "CG"' $file  > $outall

awk '$1 == "chrA01"' $outall  > $outchr1

done

### bismarkCXmethykit.pl计算甲基化率

for file in ./*chr1_CG.report

do

perl bismarkCXmethykit.pl $file

done

### bismarkCXmethykit.pl结果转为bedgraph结果

for file in ./*CG_methykit.txt

do

Rscript methykit2bedgraph.R  $file

done

###生成的结果可用于IGV可视化。

bismark介绍见官网:https://github.com/FelixKrueger/Bismark/tree/master/Docs

bedgraph介绍:

http://genome.ucsc.edu/goldenPath/help/bedgraph.html

bismarkCXmethykit.pl脚本参考:

https://www.jianshu.com/p/5c27908ff1e3

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

推荐阅读更多精彩内容