一篇PNAS Fig.1的复现

  • 文章链接:https://www.pnas.org/content/115/8/E1839.long
  • GSE编号:GSE102339
  • 特别提示:如果只是复现Fig1,不需要下载RNA-seq数据和非WT的ChIP-seq数据
  • 注1:运行本文中的脚本时建议均采用nohup bash name.sh &的方式
  • 注2:本文脚本默认存放在epi/script文件夹下
  • 注3:所有循环脚本运行前一定要用echo检查一下变量

1. 安装软件和下载数据(sra文件)

2. 建文件夹

mkdir sra raw clean align bw mergeBam peaks script

3. 准备config

# SraRunTable.txt是下载的,file.list是自己复制的
awk '{print $11,$13}' SraRunTable.txt |grep -v 'Run'|sort -k2,2|paste - file.list |awk '{print $1,$4}' > config
  • config做好了长这样


    config

4. sra转fq

  • 脚本
analysis_dir=../raw
sra=.sra
cat config|while read id;
do echo $id
arr=($id)
srr=${arr[0]}$sra
sample=${arr[1]}
fastq-dump -A $sample -O $analysis_dir --gzip --split-3 /trainee/ZJU/epi/sra/$srr
done

5. ChIP-seq过滤fq

  • 脚本
ls ../raw/ChIP*.gz | while read id;
do
trim_galore -q 25 --phred33 --length 25 -e 0.1 --stringency 4 -o ../clean $id
done

6. 准备trim_config_RNA

cd ../clean
ls ../raw/RNA*.fq.gz | paste - - > trim_config_RNA

7. RNA-seq过滤fq

  • 脚本
cat trim_config_RNA | while read sample;
do
arr=$sample
fq1=${arr[0]}
fq2=${arr[1]}
trim_galore -q 25 --phred33 --length 35 -e 0.1 --stringency 4  --paired -o ../clean $fq1 $fq2
done

8. ChIP-seq比对

  • 脚本
bowtie2_index=/trainee/ZJU/reference/index_bowtie2/dm6
ls ../clean/ChIP-Seq_*.gz | while read id;
do
file=$(basename $id)
sample=${file%%.*}
#echo $file $sample
bowtie2 -p 6 -x $bowtie2_index -U $id | samtools sort -O bam -@ 6 -o - > ../align/${sample}.bam
done

9. 准备RNA_bowtie2_config

cd ../align
ls ../clean/RNA*.fq.gz | paste - - > RNA_bowtie2_config

10. RNA-seq比对

  • 脚本
bowtie2_index=/trainee/ZJU/reference/index_bowtie2/dm6
cat RNA_bowtie2_config | while read sample;
do
arr=($sample)
fq1=${arr[0]}
fq2=${arr[1]}
file=$(basename $sample )
tmp=$(basename $fq1)
sample=${tmp%%_1_trimmed.fq.gz}
#echo $file $sample
bowtie2 -p 6 -x $bowtie2_index -1 $fq1 -2 $fq2 | samtools sort -O bam -@ 6 -o - > ../align/${sample}.bam
done

11. ChIP-seq比对去重

  • 脚本
ls ../align/ChIP*.bam | while read id
do
sample=${id%%.bam}
#echo $id $sample
samtools rmdup -s $id $sample.rmdup.bam
done

cd ../align
ls  *.rmdup.bam  | xargs -i samtools index {}
ls  *.rmdup.bam  | while read id ;do samtools flagstat $id > $(basename $id ".bam").stat ;done #basename的神奇用法
  • 自此,RNA-seq数据被我抛弃了

12. bam merge

cd align
ls  ChIP*.rmdup.bam|sed 's/_[0-9]_trimmed.rmdup.bam//g'|sort -u |while read id;do samtools merge ../mergeBam/$id.merge.bam $id*.rmdup.bam ;done

13. call peaks

cd align
ls  *_WT.merge.bam |cut -d"." -f 1 |while read id;
do
    if [ ! -s ${id}_summits.bed ];
    then
echo $id 
nohup macs2 callpeak -c  ChIP-Seq_Input_WT.merge.bam -t $id.merge.bam -f BAM -B -g dm -n $id --outdir ../peaks  2> $id.log &
    fi
done

14. peak转bed(for Fig.1A)

  • H3K27me3_peakdomain.bed从文章补充材料中获得
  • 脚本
intersectBed -a ChIP-Seq_Spps_WT_peaks.narrowPeak -b H3K27me3_peakdomain.bed -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Spps_inH3K27.bed
intersectBed -a ChIP-Seq_Pho_WT_peaks.narrowPeak -b H3K27me3_peakdomain.bed -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Pho_inH3K27.bed
intersectBed -a ChIP-Seq_Ph_WT_peaks.narrowPeak -b H3K27me3_peakdomain.bed -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Ph_inH3K27.bed
intersectBed -a ChIP-Seq_Psc_WT_peaks.narrowPeak -b H3K27me3_peakdomain.bed -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Psc_inH3K27.bed
intersectBed -a ChIP-Seq_Pc_WT_peaks.narrowPeak -b H3K27me3_peakdomain.bed -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Pc_inH3K27.bed
intersectBed -a ChIP-Seq_Ez_WT_peaks.narrowPeak -b H3K27me3_peakdomain.bed -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Ez_inH3K27.bed
  • 下一步在R中完成
library(regioneR)
library(ChIPpeakAnno)
Psc <- toGRanges("Psc_inH3K27.bed")
Spps <- toGRanges("Spps_inH3K27.bed")
Pho <- toGRanges("Pho_inH3K27.bed")
ol <- findOverlapsOfPeaks(Psc, Spps, Pho, maxgap=1,connectedPeaks="min")
pdf("Psc_Spps_Pho_overlap.pdf",width=5,height=5)
makeVennDiagram(ol, totalTest=2500)
dev.off()
  • 成品


    Fig.1A

15. bam转bw(for Fig.1C)

  • 脚本
ls ../mergeBam/*_WT.merge.bam | while read fq1;
do
sample=${fq1%%.bam}
samtools index $fq1
bamCoverage -b $fq1 -o $sample.bw --normalizeUsing RPKM -p 5
done
#第一次运行这个脚本没有在bw文件夹里看到预期的输出结果,其实是代码有一个小问题,一开始没有发现这个问题就是因为没有完全养成echo检查的习惯
  • 载入IGV后查看基因Abd-B,成品


    Fig.1B

16. deeptools可视化(for Fig.1B)

16.1. step1

  • 按文章要求进行log2处理的脚本
ls ../mergeBam/*_WT.merge.bam | while read fq1;
do
tmp=$(basename $fq1)
sample=${tmp%%.bam}
samtools index $fq1
bamCompare -b1 $fq1 -b2 ChIP-Seq_Input_WT.merge.bam --operation log2 -of bigwig -o ../bw/$sample.log2.bw -p 2
done

16.2. step2

  • 思路是把Spps,Cg,Pho的peak merge到一起,形成一个reference,然后分别将上面三个peak和这个reference做intersectBed,也就是把三个的peak对应成一个标准模式
mergePeaks ChIP-Seq_Spps_WT_peaks.narrowPeak ChIP-Seq_Pho_WT_peaks.narrowPeak ChIP-Seq_Psc_WT_peaks.narrowPeak | cut -f2- > reference.bed
intersectBed -a reference.bed -b ChIP-Seq_Spps_WT_peaks.narrowPeak -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Spps_standard.bed
intersectBed -a reference.bed -b ChIP-Seq_Pho_WT_peaks.narrowPeak -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Pho_standard.bed
intersectBed -a reference.bed -b ChIP-Seq_Psc_WT_peaks.narrowPeak -c|awk 'BEGIN{OFS="\t"}{if($NF>0){print $1,$2,$3}}' > Fig1/Psc_standard.bed

16.3. step3

  • 使用网页工具把每一个区域的位点信息做成一个bed文件

16.4. step4

computeMatrix reference-point  --referencePoint center  -p 6 -b 5000 -a 5000 -R ../peaks/Fig1/veen_result/all_3.bed ../peaks/Fig1/veen_result/Pho_Spps.bed ../peaks/Fig1/veen_result/Spps_Psc.bed ../peaks/Fig1/veen_result/Pho_Psc.bed ../peaks/Fig1/veen_result/only_Spps.bed ../peaks/Fig1/veen_result/only_Pho.bed ../peaks/Fig1/veen_result/only_Psc.bed -S ChIP-Seq_Spps_WT.merge.log2.bw ChIP-Seq_Pho_WT.merge.log2.bw ChIP-Seq_Ez_WT.merge.log2.bw ChIP-Seq_Ph_WT.merge.log2.bw ChIP-Seq_Psc_WT.merge.log2.bw ChIP-Seq_Pc_WT.merge.log2.bw --skipZeros  -o ../peaks/Fig1/b/all_center.gz
plotHeatmap -m all_center.gz  -out all_Heatmap.png --colorList "blue,white,red" --zMin -2 --zMax 2 --whatToShow "heatmap only" --regionsLabel G1 G2 G3 G4 G5 G6 G7 --samplesLabel Spps Pho Ez Ph Psc Pc
  • 成品


    Fig.1B

最后,向大家隆重推荐生信技能树的一系列干货!

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

推荐阅读更多精彩内容

  • 在实战之前,首先对CHIP-seq分析做一些了解,以下是从各个地方copy过来综合起来的,有些散乱,是我认为重要以...
    生信start_site阅读 10,884评论 0 59
  • 理解ChIP-Seq 到了目前这个水平,我学习新的高通量数据分析流程时已经不再考虑代码应该如何写的问题了。我更多要...
    xuzhougeng阅读 66,650评论 11 153
  • 画完鸭子,觉得客厅背景搞定,一下没有目标了,觉得画啥都可以,这下挑不出想画什么了,于是从学习的角度,请老师...
    绿罗裙28阅读 1,715评论 2 2
  • 土生文化馆今年新开了筹备多年的娘惹刺绣和珠绣展览。藏品丰富,让无缘去槟城一睹娘惹绣品之姿的我了却一桩憾事。 对新加...
    吴大颠儿阅读 8,660评论 0 4
  • 夜渐凉,月如霜。 风声啸,心已殇。 忆往昔,乐如猖。 看今朝,独恋裳。 —木子墨儿
    木子墨儿阅读 421评论 0 0