[实战1] Polycomb associates genome-wide with a specific RNA polymerase II variant, and regulates me...

写在前面:参考-# 给学徒ChIP-seq数据处理流程

目录
软件安装
[公共数据的获取---sratoolkit --prefetch ]
[得到fastq格式的测序数据----sratoolkit fastq-dump]
fastq数据的质量控制 ----fastqc;trim_galore 多参数
比对以及质控 ----bowtie建立索引;samtool格式转换
讨论去除PCR重复与否
[批处理合并多条lane的测序数据 ---samtools的merge命令]
使用macs2找peaks
[IGV可视化]
[IGV-bigWig和bedgraph文件详情]
deeptools可视化
使用R包注释
[使用Homer找motif]

流程-软件

1 需要的软件

下载,使用conda

source activate chipseq
# 可以用search先进行检索
conda install -y sra-tools  
conda install -y trim-galore  samtools
conda install -y deeptools homer  meme
conda install -y macs2 bowtie bowtie2 

2 数据获取
使用srr号+prefetch
默认下载地址:/home/yangjy/ncbi/public/sra
数据分析地址:/home/yangjy/chipseq_test/rawdata
移动一下:使用mv

(chipseq) [yangjy@GSCG01 ~]$ cd /home/yangjy/ncbi/public/sra
(chipseq) [yangjy@GSCG01 sra]$ ls
SRR391032.sra  SRR391033.sra  SRR391034.sra  SRR391041.sra  SRR391043.sra
(chipseq) [yangjy@GSCG01 sra]$ mv *.sra /home/yangjy/chipseq_test/rawdata
(chipseq) [yangjy@GSCG01 sra]$ ls #无文件,已移动
(chipseq) [yangjy@GSCG01 sra]$ cd #回到家目录
(chipseq) [yangjy@GSCG01 ~]$ cd /home/yangjy/chipseq_test/rawdata 
(chipseq) [yangjy@GSCG01 rawdata]$ ls
SRR391032.sra  SRR391033.sra  SRR391034.sra  SRR391041.sra  SRR391043.sra
(chipseq) [yangjy@GSCG01 rawdata]$ ls -lh #查看细节
total 2.3G
-rw-rw-r--. 1 yangjy yangjy 474M Jan 31 11:21 SRR391032.sra
-rw-rw-r--. 1 yangjy yangjy 473M Jan 31 12:15 SRR391033.sra
-rw-rw-r--. 1 yangjy yangjy 406M Jan 31 12:17 SRR391034.sra
-rw-rw-r--. 1 yangjy yangjy 322M Jan 31 12:29 SRR391041.sra
-rw-rw-r--. 1 yangjy yangjy 597M Jan 31 12:32 SRR391043.sra

批量建立文件夹 mkdir{sra,raw,qc,clean,align,peacks,motif}
3 得到fastq格式的测序数据
制作配置文件;即把srr号与基因组的名称对应起来:

RNAPII_S5P_1    SRR391032
RNAPII_S5P_2    SRR391033
RNAPII_S2P_1    SRR391034
H2Aub1_1            SRR391041
H3K36me3_1       SRR391043

用fastq-dump把sra格式转成fastq格式(fq格式)

ls *sra |while read id; do ~/miniconda3/envs/chipseq/bin/fastq-dump $id;done

实际情况

(chipseq) [yangjy@GSCG01 rawdata]$ which fastq-dump
~/miniconda3/envs/chipseq/bin/fastq-dump
(chipseq) [yangjy@GSCG01 rawdata]$ ls *sra |while read id; do ~/miniconda3/envs/chipseq/bin/fastq-dump $id;done
Read 13532944 spots for SRR391032.sra
Written 13532944 spots for SRR391032.sra
Read 13662812 spots for SRR391033.sra
Written 13662812 spots for SRR391033.sra
Read 26571408 spots for SRR391034.sra
Written 26571408 spots for SRR391034.sra
Read 9780305 spots for SRR391041.sra
Written 9780305 spots for SRR391041.sra
Read 12313493 spots for SRR391043.sra
Written 12313493 spots for SRR391043.sra
(chipseq) [yangjy@GSCG01 rawdata]$ ls
SRR391032.fastq  SRR391033.fastq  SRR391034.fastq  SRR391041.fastq  SRR391043.fastq
SRR391032.sra    SRR391033.sra    SRR391034.sra    SRR391041.sra    SRR391043.sra
(chipseq) [yangjy@GSCG01 rawdata]$ ls -lh
total 18G
-rw-rw-r--. 1 yangjy yangjy 2.6G Jan 31 14:56 SRR391032.fastq
-rw-rw-r--. 1 yangjy yangjy 474M Jan 31 11:21 SRR391032.sra
-rw-rw-r--. 1 yangjy yangjy 2.6G Jan 31 14:57 SRR391033.fastq
-rw-rw-r--. 1 yangjy yangjy 473M Jan 31 12:15 SRR391033.sra
-rw-rw-r--. 1 yangjy yangjy 5.0G Jan 31 14:58 SRR391034.fastq
-rw-rw-r--. 1 yangjy yangjy 406M Jan 31 12:17 SRR391034.sra
-rw-rw-r--. 1 yangjy yangjy 1.9G Jan 31 14:58 SRR391041.fastq
-rw-rw-r--. 1 yangjy yangjy 322M Jan 31 12:29 SRR391041.sra
-rw-rw-r--. 1 yangjy yangjy 2.9G Jan 31 14:59 SRR391043.fastq
-rw-rw-r--. 1 yangjy yangjy 597M Jan 31 12:32 SRR391043.sra

注意:
这里的SRRxxx.sra格式转换后为*.fastq格式,用--gzip就能输出*.fastq.gz格式, 能够节省空间的同时也不会给后续比对软件造成压力, 比对软件都支持。
可以使用

ls *sra |while read id; do ~/miniconda3/envs/chipseq/bin/fastq-dump --gzip --split-3 $id -O ./fastq/;done

结果:

(chipseq) [yangjy@GSCG01 rawdata]$ cd fastq/
(chipseq) [yangjy@GSCG01 fastq]$ ls -lh
total 3.7G
-rw-rw-r--. 1 yangjy yangjy 736M Jan 31 16:21 SRR391032.fastq.gz
-rw-rw-r--. 1 yangjy yangjy 741M Jan 31 16:25 SRR391033.fastq.gz
-rw-rw-r--. 1 yangjy yangjy 855M Jan 31 16:31 SRR391034.fastq.gz
-rw-rw-r--. 1 yangjy yangjy 508M Jan 31 16:34 SRR391041.fastq.gz
-rw-rw-r--. 1 yangjy yangjy 879M Jan 31 16:39 SRR391043.fastq.gz
/home/yangjy/chipseq_test/fastq     移动后*.fastq.gz所在位置

4 fastq数据的质量控制
使用trim_galore软件进行质控
先使用fastqc看一下;[对照]

ls *.gz | while read id ; do /home/yangjy/miniconda3/envs/chipseq/bin/fastqc $id -O ../qc/;done

可以先看一下质量:

(chipseq) [yangjy@GSCG01 fastq]$ cd ../qc/
(chipseq) [yangjy@GSCG01 qc]$ ls -lh
total 2.8M
-rw-rw-r--. 1 yangjy yangjy 244K Jan 31 17:34 SRR391032_fastqc.html# 打开
-rw-rw-r--. 1 yangjy yangjy 330K Jan 31 17:34 SRR391032_fastqc.zip
-rw-rw-r--. 1 yangjy yangjy 243K Jan 31 17:34 SRR391033_fastqc.html# 打开
-rw-rw-r--. 1 yangjy yangjy 331K Jan 31 17:34 SRR391033_fastqc.zip
-rw-rw-r--. 1 yangjy yangjy 220K Jan 31 17:35 SRR391034_fastqc.html# 打开
-rw-rw-r--. 1 yangjy yangjy 272K Jan 31 17:35 SRR391034_fastqc.zip
-rw-rw-r--. 1 yangjy yangjy 248K Jan 31 17:36 SRR391041_fastqc.html# 打开
-rw-rw-r--. 1 yangjy yangjy 327K Jan 31 17:36 SRR391041_fastqc.zip
-rw-rw-r--. 1 yangjy yangjy 265K Jan 31 17:37 SRR391043_fastqc.html# 打开
-rw-rw-r--. 1 yangjy yangjy 366K Jan 31 17:37 SRR391043_fastqc.zip

fastqc报告
[!黄色为警告;× 红色为报错;]

这个时候选择trim_galore软件进行过滤,单端测序数据的代码如下;

ls *.gz | while read id ; do 
nohup 
/home/yangjy/miniconda3/envs/chipseq/bin/trim_galore $id -q 20 --phred33 --stringency 3 --length 20 -e 0.1 --paired fq --gzip -o ../clean/ & 
done 

较慢,于是放在后台处理。

结果:
(base) [yangjy@GSCG01 clean]$ ls -lh
total 3.6G
-rw-rw-r--. 1 yangjy yangjy   20 Jan 31 21:16 fq_trimmed.fq.gz
-rw-rw-r--. 1 yangjy yangjy 1.5K Jan 31 21:16 fq_trimming_report.txt
-rw-rw-r--. 1 yangjy yangjy 2.7K Jan 31 21:03 SRR391032.fastq.gz_trimming_report.txt
-rw-rw-r--. 1 yangjy yangjy 703M Jan 31 21:03 SRR391032_trimmed.fq.gz
-rw-rw-r--. 1 yangjy yangjy 2.7K Jan 31 21:06 SRR391033.fastq.gz_trimming_report.txt
-rw-rw-r--. 1 yangjy yangjy 709M Jan 31 21:06 SRR391033_trimmed.fq.gz
-rw-rw-r--. 1 yangjy yangjy 2.4K Jan 31 21:10 SRR391034.fastq.gz_trimming_report.txt
-rw-rw-r--. 1 yangjy yangjy 843M Jan 31 21:10 SRR391034_trimmed.fq.gz
-rw-rw-r--. 1 yangjy yangjy 2.7K Jan 31 21:12 SRR391041.fastq.gz_trimming_report.txt
-rw-rw-r--. 1 yangjy yangjy 491M Jan 31 21:12 SRR391041_trimmed.fq.gz
-rw-rw-r--. 1 yangjy yangjy 3.1K Jan 31 21:16 SRR391043.fastq.gz_trimming_report.txt
-rw-rw-r--. 1 yangjy yangjy 844M Jan 31 21:16 SRR391043_trimmed.fq.gz

再次进行QC,看看处理情况;尤其时质量差的时候

5 比对以及质控 ----bowtie建立索引;samtool格式转换
参考基因组bowtie2_indexes官网
参考基因组及注释下载

下载小鼠 [fasta格式的压缩文件] (迅雷下载较快,使用winSCP上传)
 解压(tar)合并(cat)建立索引(bowtie2-build)
得到---> Output files: "mm10.*.bt2"  # 输出的文件格式:mm10.*.bt2
  inflating: mm10.1.bt2
  inflating: mm10.2.bt2
  inflating: mm10.3.bt2
  inflating: mm10.4.bt2
  inflating: mm10.rev.1.bt2
  inflating: mm10.rev.2.bt2
  inflating: make_mm10.sh

使用命令:
cd 到align目录下(相对于目录)

ls ../clean/*.gz |while read id;
do
file=$(basename $id )
sample=${file%%.*}
echo $file $sample
bowtie2 -p 5 -x /home/yangjy/project/epi/align/reference/mm10 -U  $id | samtools sort  -O bam  -@ 5 -o - > ${sample}.bam
done

参数解读:
-p 5 指5个线程;
-x 索引文件,不是参考基因组本身,是使用bowtie built 后的文件,参考;-x 后面接着gene-index,需要指定路径(/home/yangjy/project/epi/align/reference/)及其共用文件名(mm10)
-U 后面接着fastq格式的文件(单末端测序参数)
注:命令把bowtie2 生成的sam文件通过管道|传递到samtools,将sam转换为bam文件,省去中间sam文件的空间占用
双末端测序使用:
bowtie2 -p 5 -3 5 --local -x mm10 -1 example_1.fastq -2 example_2.fastq -S example.sam
然后再将SAM 文件转为 BAM 文件:
samtools sort example.sam > example.bam

处理中:
H2Aub1_1_trimmed.fq H2Aub1_1_trimmed   # 处理输出名称
9208673 reads; of these:
  9208673 (100.00%) were unpaired; of these:
    239111 (2.60%) aligned 0 times
    6227498 (67.63%) aligned exactly 1 time
    2742064 (29.78%) aligned >1 times
97.40% overall alignment rate
[bam_sort_core] merging from 0 files and 5 in-memory blocks....
结果:
(chipseq) [yangjy@GSCG01 align]$ ls -l
total 3342040
drwxrwxr-x. 2 yangjy yangjy       122 Feb  2 20:51 index
-rw-rw-r--. 1 yangjy yangjy 526164473 Jan 21 14:16 H2Aub1_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 873489325 Jan 21 14:26 H3K36me3_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 765203056 Jan 21 14:51 RNAPII_S2P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 620491240 Jan 21 14:59 RNAPII_S5P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 636886282 Jan 21 15:02 RNAPII_S5P_2_trimmed.bam

6 对bam文件进行QC----- samtools 【samtools flagstat 】

cd ~/project/epi/align
ls  *.bam  |xargs -i samtools index {}   # 需要构建索引
ls  *.bam  | while read id ;do (nohup samtools flagstat $id > $(basename $id ".bam").stat & );done

nohup 命令&
得到:后缀为.bai的文件

-rw-rw-r--. 1 yangjy yangjy 502M Jan 21 14:16 H2Aub1_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 3.0M Feb  2 21:44 H2Aub1_1_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy 834M Jan 21 14:26 H3K36me3_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 2.8M Feb  2 21:44 H3K36me3_1_trimmed.bam.bai
drwxrwxr-x. 2 yangjy yangjy  122 Feb  2 20:51 index
-rw-rw-r--. 1 yangjy yangjy 730M Jan 21 14:51 RNAPII_S2P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 2.6M Feb  2 21:44 RNAPII_S2P_1_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy 592M Jan 21 14:59 RNAPII_S5P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 3.7M Feb  2 21:44 RNAPII_S5P_1_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy 608M Jan 21 15:02 RNAPII_S5P_2_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 3.7M Feb  2 21:44 RNAPII_S5P_2_trimmed.bam.bai

以及:后缀为.stat的文件

total 3358004
-rw-rw-r--. 1 yangjy yangjy 526164473 Jan 21 14:16 H2Aub1_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy   3109504 Feb  2 21:44 H2Aub1_1_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy       386 Feb  2 21:48 H2Aub1_1_trimmed.stat
-rw-rw-r--. 1 yangjy yangjy 873489325 Jan 21 14:26 H3K36me3_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy   2912232 Feb  2 21:44 H3K36me3_1_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy       388 Feb  2 21:48 H3K36me3_1_trimmed.stat
drwxrwxr-x. 2 yangjy yangjy       122 Feb  2 20:51 index
-rw-rw-r--. 1 yangjy yangjy 765203056 Jan 21 14:51 RNAPII_S2P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy   2697544 Feb  2 21:44 RNAPII_S2P_1_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy       388 Feb  2 21:48 RNAPII_S2P_1_trimmed.stat
-rw-rw-r--. 1 yangjy yangjy 620491240 Jan 21 14:59 RNAPII_S5P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy   3805200 Feb  2 21:44 RNAPII_S5P_1_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy       388 Feb  2 21:48 RNAPII_S5P_1_trimmed.stat
-rw-rw-r--. 1 yangjy yangjy 636886282 Jan 21 15:02 RNAPII_S5P_2_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy   3789176 Feb  2 21:44 RNAPII_S5P_2_trimmed.bam.bai
-rw-rw-r--. 1 yangjy yangjy       388 Feb  2 21:48 RNAPII_S5P_2_trimmed.stat

7 讨论去除PCR重复与否
参考文章:
仔细探究picard的MarkDuplicates 是如何行使去除PCR重复reads功能的
仔细探究samtools的rmdup是如何行使去除PCR重复reads功能的

在bam文件夹下:
ls  *.bam  | while read id ;do (nohup samtools markdup -r $id $(basename $id ".bam").mergeBam  & );done

得到:

(chipseq) [yangjy@GSCG01 align]$ ls -l *.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 474047646 Feb  2 21:59 H2Aub1_1_trimmed.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 830716373 Feb  2 22:00 H3K36me3_1_trimmed.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 632581765 Feb  2 22:00 RNAPII_S2P_1_trimmed.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 368497642 Feb  2 21:59 RNAPII_S5P_1_trimmed.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 371445769 Feb  2 21:59 RNAPII_S5P_2_trimmed.rmdup.bam

通过查看*.stat 文件:

(chipseq) [yangjy@GSCG01 align]$ cat H2Aub1_1_trimmed.stat  #使用cat查看
9208673 + 0 in total (QC-passed reads + QC-failed reads)
0 + 0 secondary                                            0条比对到第二个地方;
0 + 0 supplementary
0 + 0 duplicates
8969562 + 0 mapped (97.40% : N/A)               #比对率97.40% 
0 + 0 paired in sequencing 
0 + 0 read1                             因为是单端
0 + 0 read2
0 + 0 properly paired (N/A : N/A)   
0 + 0 with itself and mate mapped
0 + 0 singletons (N/A : N/A)
0 + 0 with mate mapped to a different chr
0 + 0 with mate mapped to a different chr (mapQ>=5)

来自于网页(https://www.biostars.org/p/333465/)

45084184 + 0 in total (QC-passed reads + QC-failed reads)
4717987 + 0 secondary
0 + 0 supplementary
0 + 0 duplicates
45084184 + 0 mapped (100.00%:-nan%)
40366197 + 0 paired in sequencing
20273012 + 0 read1
20093185 + 0 read2
39146254 + 0 properly paired (96.98%:-nan%)
39644363 + 0 with itself and mate mapped
721834 + 0 singletons (1.79%:-nan%)
260722 + 0 with mate mapped to a different chr
235361 + 0 with mate mapped to a different chr (mapQ>=5)

解读:
QC-passed reads的数量为9208673,未通过的0;意味着一共有9208673条reads
下面都是0?? 可能是单端测序的原因(双末端测序下载应该有一侧有数值)
注: 可以使用 multiqc 对 *.stat 进行可视化

可以再对*.rmdup.bam 进行统计:【samtools flagstat 】

ls  *.rmdup.bam  |xargs -i samtools index {}   只有建立索引,才能进行--统计 ;得到后缀为.bai 的文件
ls  *.rmdup.bam  | while read id ;do (nohup samtools flagstat $id > $(basename $id ".bam").stat & );done

综上两个*.bam 文件:

(chipseq) [yangjy@GSCG01 align]$ ls -lh *.bam
-rw-rw-r--. 1 yangjy yangjy 502M Jan 21 14:16 H2Aub1_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 453M Feb  2 21:59 H2Aub1_1_trimmed.rmdup.bam #去除PCR重复的 
-rw-rw-r--. 1 yangjy yangjy 834M Jan 21 14:26 H3K36me3_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 793M Feb  2 22:00 H3K36me3_1_trimmed.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 730M Jan 21 14:51 RNAPII_S2P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 604M Feb  2 22:00 RNAPII_S2P_1_trimmed.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 592M Jan 21 14:59 RNAPII_S5P_1_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 352M Feb  2 21:59 RNAPII_S5P_1_trimmed.rmdup.bam
-rw-rw-r--. 1 yangjy yangjy 608M Jan 21 15:02 RNAPII_S5P_2_trimmed.bam
-rw-rw-r--. 1 yangjy yangjy 355M Feb  2 21:59 RNAPII_S5P_2_trimmed.rmdup.bam

由此,可以对这些*.bam文件进行peak calling
此前,对【一个样品分成了多个lane进行测序】情况可以把bam进行合并(merge)。
使用:samtools merge 参数;
参看比对率: grep 'N/A' *.stat |grep %

(chipseq) [yangjy@GSCG01 align]$  grep 'N/A' *.stat |grep %
H2Aub1_1_trimmed.rmdup.stat:7744878 + 0 mapped (97.01% : N/A)
H2Aub1_1_trimmed.stat:8969562 + 0 mapped (97.40% : N/A)
H3K36me3_1_trimmed.rmdup.stat:11007740 + 0 mapped (98.82% : N/A)
H3K36me3_1_trimmed.stat:11737364 + 0 mapped (98.89% : N/A)
RNAPII_S2P_1_trimmed.rmdup.stat:18461592 + 0 mapped (96.32% : N/A)
RNAPII_S2P_1_trimmed.stat:25018815 + 0 mapped (97.26% : N/A)
RNAPII_S5P_1_trimmed.rmdup.stat:6042684 + 0 mapped (95.30% : N/A)
RNAPII_S5P_1_trimmed.stat:11801448 + 0 mapped (97.53% : N/A)
RNAPII_S5P_2_trimmed.rmdup.stat:6123727 + 0 mapped (96.43% : N/A)
RNAPII_S5P_2_trimmed.stat:12182337 + 0 mapped (98.18% : N/A)

注意格式:常用的mapping软件bwa & sam格式简介


samtools view

(base) [yangjy@GSCG01 dum]$ samtools view H2Aub1.merge.rmdup.bam | cut -f 1 | sort | uniq -c | wc -l
18090450

8 MACS 找call peak
有了*.bam文件后就可以进行call了

macs2包含一系列的子命令,其中最主要的就是callpeak, 官方提供了使用实例

macs2 callpeak -t ChIP.bam -c Control.bam -f BAM -g hs -n test -B -q 0.01

各个参数的意义:
-t: 实验组的输出结果
-c: 对照组的输出结果
-f: -t和-c提供文件的格式,可以是”ELAND”, “BED”, “ELANDMULTI”, “ELANDEXPORT”, “ELANDMULTIPET” (for pair-end tags), “SAM”, “BAM”, “BOWTIE”, “BAMPE” “BEDPE” 任意一个。如果不提供这项,就是自动检测选择。
-g: 基因组大小, 默认提供了hs, mm, ce, dm选项, 不在其中的话,比如说拟南芥,就需要自己提供了。
-n: 输出文件的前缀名
-B: 会保存更多的信息在bedGraph文件中,如fragment pileup, control lambda, -log10pvalue and -log10qvalue scores
-q: q值,也就是最小的PDR阈值, 默认是0.05。q值是根据p值利用BH计算,也就是多重试验矫正后的结果。
-p: 这个是p值,指定p值后MACS2就不会用q值了。
-m: 和MFOLD有关,而MFOLD和MACS预构建模型有关,默认是5:50。

处理:

cd bam 文件目录
使用命令:

macs2 callpeak -c  Control_1_trimmed.bam -t H3K36me3_1_trimmed.bam -f BAM -B -g mm -n H3K36me3
# macs2 callpeak -c  -t  -f BAM -B -g mm -n testname

注:chipseq环境下的macs一直报错;
退出conda环境,使用命令---> 成功

(base) [yangjy@GSCG01 align1]$ conda list macs2
packages in environment at /home/yangjy/miniconda3:
#########
Name                    Version                   Build  Channel
macs2                     2.2.7.1          py38h0213d0e_1    https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda

处理时的信息参考
得到文件:

-rw-rw-r--. 1 yangjy yangjy 565332244 Feb  3 20:40 H3K36me3_control_lambda.bdg
-rw-rw-r--. 1 yangjy yangjy     99001 Feb  3 20:39 H3K36me3_model.r
-rw-rw-r--. 1 yangjy yangjy    264716 Feb  3 20:40 H3K36me3_peaks.narrowPeak
-rw-rw-r--. 1 yangjy yangjy    302627 Feb  3 20:40 H3K36me3_peaks.xls
-rw-rw-r--. 1 yangjy yangjy    179908 Feb  3 20:40 H3K36me3_summits.bed
-rw-rw-r--. 1 yangjy yangjy 689424712 Feb  3 20:40 H3K36me3_treat_pileup.bdg

文件解读:
1 Excel文件
前几行为运行命令以及信息
后面从左到右分别是染色体,peak的起始终止位置,长度,峰值位置,高度,pvalue值记忆富集程度

(base) [yangjy@GSCG01 peaks]$ cat H2Aub1_peaks.xls
This file is generated by MACS version 2.1.0.20150731
Command line: callpeak -c Control.merge.bam -t H2Aub1.merge.bam -f BAM -B -g mm -n H2Aub1 --outdir ../peaks
ARGUMENTS LIST:
name = H2Aub1
format = BAM
ChIP-seq file = ['H2Aub1.merge.bam']
control file = ['Control.merge.bam']
effective genome size = 1.87e+09
band width = 300
model fold = [5, 50]
qvalue cutoff = 5.00e-02
Larger dataset will be scaled towards smaller dataset.
Range for calculating regional lambda is: 1000 bps and 10000 bps
Broad region calling is off
tag size is determined as 49 bps
total tags in treatment: 22199430
tags after filtering in treatment: 17515747
maximum duplicate tags at the same position in treatment = 1
Redundant rate in treatment: 0.21
total tags in control: 14660284
tags after filtering in control: 12331048
maximum duplicate tags at the same position in control = 1
Redundant rate in control: 0.16
d = 83
alternative fragment length(s) may be 83 bps
chr     start   end     length  abs_summit      pileup  -log10(pvalue)  fold_enrichment -log10(qvalue)  name
chr1    4492658 4492755 98      4492668 11.97   9.08008 6.48398 4.02077 H2Aub1_peak_1
chr1    4492851 4493214 364     4493158 14.78   16.26556        10.20087        8.94022 H2Aub1_peak_2
chr1    4493287 4493599 313     4493468 9.15    9.39303 6.56103 4.02077 H2Aub1_peak_3
chr1    4496519 4496628 110     4496554 8.45    7.41898 5.67787 2.72721 H2Aub1_peak_4
chr1    4497051 4497263 213     4497103 9.86    9.39303 7.01601 4.02077 H2Aub1_peak_5

2 BED文件
染色体,peak的起始终止位置,

(base) [yangjy@GSCG01 mergeBam]$ less RNAPII_S5P_summits.bed
chr1    3150842 3150843 RNAPII_S5P_peak_1       8.17172
chr1    3953635 3953636 RNAPII_S5P_peak_2       4.27895
chr1    4085551 4085552 RNAPII_S5P_peak_3       9.22983
............................
chrY    90834489        90834490        RNAPII_S5P_peak_56933   7.80872
chrY    90835530        90835531        RNAPII_S5P_peak_56934   6.31523
chrY    90837388        90837389        RNAPII_S5P_peak_56935   6.23419
chrY    90838538        90838539        RNAPII_S5P_peak_56936   12.47469
chrY    90839706        90839707        RNAPII_S5P_peak_56937   5.36220
chrY    90840114        90840115        RNAPII_S5P_peak_56938   6.03569

可以使用wc -l *.bed 查看一下每个基因有多少个peaks

       0 Control_summits.bed
    1089 H2Aub1_summits.bed
   40846 H3K36me3_summits.bed
   26027 Ring1B_summits.bed
   41816 RNAPII_8WG16_summits.bed
   19973 RNAPII_S2P_summits.bed
   56942 RNAPII_S5P_summits.bed
   72262 RNAPII_S7P_summits.bed

MockIP是control,所以它自己跟自己比较,是没有peaks的;

NAMEpeaks.xls: 以表格形式存放peak信息,虽然后缀是xls,但其实能用文本编辑器打开,和bed格式类似,但是以1为基,而bed文件是以0为基.也就是说xls的坐标都要减一才是bed文件的坐标
NAMEpeaks.narrowPeak NAMEpeaks.broadPeak 类似。后面4列表示为, integer score for display, fold-change,-log10pvalue,-log10qvalue,relative summit position to peak start。内容和NAMEpeaks.xls基本一致,适合用于导入R进行分析
NAMEsummits.bed:记录每个peak的peak summits,也就是记录极值点的位置。MACS建议用该文件寻找结合位点的motif
NAME_model.r,能通过NAME_model.r作图,得到是基于你提供数据的peak模型
参考:https://www.jianshu.com/p/2b8e2ea26665


9 将BAM文件转化为bw文件,使用deeptools

deeptools提供bamCoveragebamCompare进行格式转换,为了能够比较不同的样本,需要对先将基因组分成等宽分箱(bin),统计每个分箱的read数,最后得到描述性统计值。对于两个样本,描述性统计值可以是两个样本的比率,或是比率的log2值,或者是差值。如果是单个样本,可以用SES方法进行标准化

bamCoverage的基本用法
`bamCoverage -b test.bam -o test.bw

 activate chipseq
bamCoverage -e 170 -bs 10 -b ap2_chip_rep1_2_sorted.bam -o ap2_chip_rep1_2.bw
# ap2_chip_rep1_2_sorted.bam是前期比对得到的BAM文件
得到的bw文件就可以送去IGV/Jbrowse进行可视化。
参数使用 -e/--extendReads和-bs/--binSize 即拓展原来的read长度,且设置分箱的大小

如果需要以100为分箱,并且标准化到1x,且仅统计某一条染色体区域的正链,输出格式为bedgraph

bamCoverage -e 170 -bs 100 -of bedgraph -r Chr4:12985884:12997458 --normalizeTo1x 100000000 -b 02-read-alignment/ap2_chip_rep1_1_sorted.bam -o chip.bedgraph
bamCompare和bamCoverage类似
需要提供两个样本,并且采用SES方法进行标准化,多了--ratio参数。

首先把bam文件转为bw文件,详情:wig、bigWig和bedgraph文件详解

cd  bam文件目录下
 activate chipseq
ls  *.bam  |xargs -i samtools index {}  # 如果没有索引,需要先建立索引
ls *.bam |while read id;do
nohup bamCoverage --normalizeUsing CPM -b $id -o ${id%%.*}.bw & 
done 

参数 --normalizeUsing CPM


以上的bed,bdg 以及bw 文件可以载入IGV进行可视化;
head *.bed 查看
通过:awk '{print $1":"$2"-"$3}' RNAPII_S5P_summits.bed |head可以在屏幕显示出 chr 和坐标信息;输入IGV来检查这个位置的peaks
bw文件反应bam的测序深度


10 查看TSS附件信号强度:使用deeptools
需要下载参考的注释文件tss的bed格式
下载方法
首先对单一样本绘图:

使用computeMatrix函数对tss上下10kb(10000)计算信号强度
mkdir -p  ~/project/epi/tss 
cd  ~/project/epi/tss 
computeMatrix reference-point  --referencePoint TSS  -p 15  \
-b 10000 -a 10000    \
-R /home/yangjy/project/epi/peaks/mm10.tss.bed  \
-S /home/yangjy/project/epi/align/mergeBam/H2Aub1.bw  \
--skipZeros  -o matrix1_test_TSS.gz  \
--outFileSortedRegions regions1_test_genes.bed  输出文件
进行批量处理:
## 
both plotHeatmap and plotProfile will use the output from   computeMatrix
plotHeatmap -m matrix1_test_TSS.gz  -out test_Heatmap.png
plotHeatmap -m matrix1_test_TSS.gz  -out test_Heatmap.pdf --plotFileFormat pdf  --dpi 720  
plotProfile -m matrix1_test_TSS.gz  -out test_Profile.png
plotProfile -m matrix1_test_TSS.gz  -out test_Profile.pdf --plotFileFormat pdf --perGroup --dpi 720 
bed=/home/yangjy/project/epi/peaks/mm10.tss.bed
for id in /home/yangjy/project/epi/align/mergeBam/*.bw ;
do
echo $id
file=$(basename $id )
sample=${file%%.*}
echo $sample
computeMatrix reference-point  --referencePoint TSS  -p 15  \
-b 2000 -a 2000    \
-R $bed   \
-S $id  \
--skipZeros  -o matrix1_${sample}_TSS_2K.gz  \
--outFileSortedRegions regions1_${sample}_TSS_2K.bed
plotHeatmap -m matrix1_${sample}_TSS_2K.gz  -out ${sample}_Heatmap_2K.png
plotHeatmap -m matrix1_${sample}_TSS_2K.gz  -out ${sample}_Heatmap_2K.pdf --plotFileFormat pdf  --dpi 720
plotProfile -m matrix1_${sample}_TSS_2K.gz  -out ${sample}_Profile_2K.png
plotProfile -m matrix1_${sample}_TSS_2K.gz  -out ${sample}_Profile_2K.pdf --plotFileFormat pdf --perGroup --dpi 720
done

输出:

-rw-rw-r--. 1 yangjy yangjy 10108967 Jan 27 09:46 Ring1B_Heatmap_10K.pdf
-rw-rw-r--. 1 yangjy yangjy  1093343 Jan 27 09:44 Ring1B_Heatmap_10K.png
-rw-rw-r--. 1 yangjy yangjy  4434818 Jan 27 00:33 Ring1B_Heatmap_2K.pdf
-rw-rw-r--. 1 yangjy yangjy   639686 Jan 27 00:32 Ring1B_Heatmap_2K.png
-rw-rw-r--. 1 yangjy yangjy   392676 Jan 27 09:47 Ring1B_Profile_10K.pdf
-rw-rw-r--. 1 yangjy yangjy    38805 Jan 27 09:46 Ring1B_Profile_10K.png
-rw-rw-r--. 1 yangjy yangjy   385755 Jan 27 00:33 Ring1B_Profile_2K.pdf
-rw-rw-r--. 1 yangjy yangjy    35869 Jan 27 00:33 Ring1B_Profile_2K.png

图片:


Control_Profile_2K.png

为了统计全基因组范围的peak在基因特征的分布情况,也就是需要用到computeMatrix计算,用plotHeatmap以热图的方式对覆盖进行可视化,用plotProfile以折线图的方式展示覆盖情况。

computeMatrix具有两个模式:scale-region和reference-point。前者用来信号在一个区域内分布,后者查看信号相对于某一个点的分布情况。无论是那个模式,都有有两个参数是必须的,-S是提供bigwig文件,-R是提供基因的注释信息。还有更多个性化的可视化选项。

11 使用R包对找到的peaks文件进行注释(还不熟悉)
12 peaks相关基因集的注释

homer软件来 寻找motif
homer软件处理的原理:参考

先准备好格式化文件,再使用命令;
1 提供包含基因组坐标的文件 比如 peak文件或BED文件
2 分析peak文件中富集的motif:
findMotifsGenome.pl -size

  • 简单例子:
    findMotifsGenome.pl ERpeaks.txt hg18 ER_MotifOutput/ -size 200 -mask
    -mask 使用repeated-mask序列
    -size 设置motif长度
    -len : motif的长度设置,默认8,10,12,越大越消耗计算资源。

  • 处理后得到的文件

homerMotifs.motifs <#> : these are the output files from the de novo motif finding, separated by motif length, and represent separate runs of the algorithm.
homerMotifs.all.motifs : Simply the concatenated file composed of all the homerMotifs.motifs<#> files.
motifFindingParameters.txt :         记录执行findMotifsGenome.pl的命令
knownResults.txt :                   记录motif的统计数据,text file(open in EXCEL).
seq.autonorm.tsv :                    autonormalization statistics for lower-order oligo normalization.
homerResults.html :                   de novo motif finding的格式化输出
  • 文件解读:
    1 txt文件: 记录执行findMotifsGenome.pl的命令以及motif的统计数据,
(chipseq) [yangjy@GSCG01 motif]$ cat H2Aub1.annLog.txt

        Peak file = homer_peaks.tmp
        Genome = mm10
        Organism = mouse
        Peak/BED file conversion summary:
                BED/Header formatted lines: 0
                peakfile formatted lines: 1089
                Duplicated Peak IDs: 0

        Peak File Statistics:
                Total Peaks: 1089
                Redundant Peak IDs: 0
                Peaks lacking information: 0 (need at least 5 columns per peak)
                Peaks with misformatted coordinates: 0 (should be integer)
                Peaks with misformatted strand: 0 (should be either +/- or 0/1)

        Peak file looks good!

        Reading Positions...
        -----------------------
        Finding Closest TSS...
        Annotating:....................
                Annotation      Number of peaks Total size (bp) Log2 Ratio (obs/exp)    LogP enrichment (+values depleted)
                3UTR    38.0    20746162        2.146   -29.987
                miRNA   0.0     31126   -0.018  0.013
                ncRNA   22.0    3439613 3.950   -42.243
                TTS     20.0    27176332        0.830   -4.492
                pseudo  0.0     540203  -0.291  0.224
                Exon    205.0   34540955        3.842   -376.610
                Intron  400.0   947608369       0.028   -1.128
                Intergenic      163.0   1564039797      -1.990  464.277
                Promoter        183.0   30063639        3.878   -339.028
                5UTR    58.0    2354993 5.895   -184.382
                snoRNA  0.0     19      -0.000  0.000
                rRNA    0.0     5631    -0.003  0.002
        NOTE: If this part takes more than 2 minutes, there is a good chance
                your machine ran out of memory: consider hitting ctrl+C and rerunning
                the command with "-noann"
        To capture annotation stats in a file, use "-annStats " next time
        Annotating:....................
                Annotation      Number of peaks Total size (bp) Log2 Ratio (obs/exp)    LogP enrichment (+values depleted)
                3UTR    38.0    20746162        2.146   -30.001
                Other   0.0     7154386 -1.989  2.964
                RC?     0.0     10979   -0.007  0.005
                RNA     0.0     113962  -0.066  0.047
                miRNA   0.0     31126   -0.018  0.013
                ncRNA   22.0    3439613 3.950   -42.252
                TTS     20.0    27176332        0.831   -4.497
                LINE    0.0     521060815       -8.076  240.272
                LINE?   0.0     8168    -0.005  0.003
                srpRNA  0.0     43307   -0.026  0.018
                SINE    0.0     193760064       -6.452  83.282
                RC      0.0     65629   -0.039  0.027
                tRNA    0.0     266147  -0.151  0.110
                DNA?    0.0     142070  -0.082  0.059
                pseudo  0.0     540203  -0.291  0.224
                DNA     1.0     28358286        -3.553  9.244
                Exon    205.0   34540955        3.842   -376.698
                Intron  243.0   601725627       -0.035  1.055
                Intergenic      103.0   784206321       -1.656  135.581
                Promoter        183.0   30063639        3.879   -339.106
                5UTR    58.0    2354993 5.895   -184.408
                snoRNA  0.0     19      -0.000  0.000
                LTR?    0.0     192563  -0.111  0.080
                scRNA   0.0     577291  -0.309  0.239
                CpG-Island      206.0   3107258 7.324   -865.124
                Low_complexity  1.0     18489411        -2.936  5.514
                LTR     3.0     292929648       -5.336  115.531
                Simple_repeat   6.0     55283218        -1.931  10.524
                snRNA   0.0     236859  -0.135  0.098
                Unknown 0.0     1234764 -0.596  0.511
                SINE?   0.0     29758   -0.018  0.012
                Satellite       0.0     3685416 -1.338  1.526
                rRNA    0.0     165655  -0.096  0.069
        Counting Tags in Peaks from each directory...
        Organism: mouse
        Loading Gene Informaiton...
readline() on closed filehandle IN at /home/yangjy/miniconda3/envs/chipseq/bin/annotatePeaks.pl line 3741,  line 2178.
readline() on closed filehandle IN at /home/yangjy/miniconda3/envs/chipseq/bin/annotatePeaks.pl line 3751.
        Outputing Annotation File...
        Done annotating peaks file

2 xls文件:记录染色体,起始位点,链+/-, peaks落在什么位置(UTR, promoter-TSS,exon , intron),距TSS最近PromoterID的注释距离...等。

(chipseq) [yangjy@GSCG01 motif]$ head H2Aub1.peakAnn.xls
PeakID (cmd=annotatePeaks.pl homer_peaks.tmp mm10)      Chr     Start   End     Strand  Peak Score      Focus Ratio/Region Size Annotation      Detailed Annotation  Distance to TSS Nearest PromoterID      Entrez ID       Nearest Unigene Nearest Refseq  Nearest Ensembl Gene Name       Gene Alias      Gene Description     Gene Type
H2Aub1.log_peak_2       chr1    4493157 4493158 +       0       NA      exon (NM_001289464, exon 3 of 4)        exon (NM_001289464, exon 3 of 4)        4197NM_001289464
H2Aub1.log_peak_62      chr10   19849898        19849899        +       0       NA      intron (NM_029529, intron 1 of 1)       intron (NM_029529, intron 1 of 1)    1561    NM_029529
H2Aub1.log_peak_141     chr11   96354139        96354140        +       0       NA      promoter-TSS (NR_155303)        promoter-TSS (NR_155303)        -745NR_155303
H2Aub1.log_peak_1020    chr9    32542410        32542411        +       0       NA      promoter-TSS (NM_008026)        promoter-TSS (NM_008026)        -958NM_008026
H2Aub1.log_peak_269     chr13   112651870       112651871       +       0       NA      intron (NM_010029, intron 1 of 20)      intron (NM_010029, intron 1 of 20)   440     NM_001145885
H2Aub1.log_peak_129     chr11   93099621        93099622        +       0       NA      5' UTR (NM_028296, exon 1 of 9) 5' UTR (NM_028296, exon 1 of 9) 331 NM_028296
H2Aub1.log_peak_442     chr18   64346742        64346743        +       0       NA      intron (NM_194268, intron 1 of 1)       intron (NM_194268, intron 1 of 1)    6378    NM_194268

3 homer*.motifs文件:
每个motif信息是一块,均以>开头。>所在行的信息以tab分隔。 motif首行信息解释:

>ACCTGCTTGAAA   19-ACCTGCTTGAAA 10.757736       -456.639967     0       T:120.0(0.46%),B:1.8(0.01%),P:1e-198
0.997   0.001   0.001   0.001
0.001   0.995   0.001   0.003
0.001   0.997   0.001   0.001
0.001   0.001   0.001   0.997
0.003   0.001   0.995   0.001
0.001   0.997   0.001   0.001
0.001   0.001   0.001   0.997
0.003   0.001   0.003   0.993
0.001   0.001   0.997   0.001

一致性序列:如图上的>ACCTGCTTGAAA
Motif名称:如图上的19-ACCTGCTTGAAA
比值检测概率的log值:10.757736
P-value得log值: -456.639967
占位符:如上图得0,不具有任何信息

逗号分隔得富集信息,如:T:120.0(0.46%),B:1.8(0.01%),P:1e-198

其中富集信息的解读: T:120.0(0.46%),B:1.8(0.01%),P:1e-198

  • T表示带有该motif的目标序列在总的目标序列(target)中得百分比
  • B表示带有该motif的背景序列在总的背景序列(background)中得百分比
  • P表示最终富集的p-value

逗号分隔的motif统计信息,如:Tpos:68.2,Tstd:51.5,Bpos:123.7,Bstd:43.3,StrandBias:3.0,Multiplicity:1.00

  • Tpos:motif在目标序列中的平均位置
  • Tstd:motif在目标序列中位置的标准差
  • Bpos:motif在背景序列中的平均位置
  • Bstd:motif在背景序列中位置的标准差
  • StrandBias: 链偏好性,在正义链上的motif数与反义链motif数的比值的log
  • Multiplicity:具有一个或多个结合位点的序列中每个序列的平均出现次数;(大于等于1)

其他可视化软件:
1 ngs.plot

bam文件建立索引
根据功能原件的基因组坐标索引bam文件
计算功能原件区域富集信号丰度

参考画图:富集轮廓图和热图

2 将peakAnn.xls文件导入到本地,通过excel透视功能进行可视化

ATAC参考:https://www.it610.com/article/1224820226680524800.htm
callpeaks文件 解读: https://blog.csdn.net/sunyu_03/article/details/82633799
热图软件 deeptools:https://blog.csdn.net/xiaomotong123/article/details/108734727

你可能感兴趣的:([实战1] Polycomb associates genome-wide with a specific RNA polymerase II variant, and regulates me...)