Chip-seq上游分析流程学习(三)

文摘   2024-11-20 23:22   江西  

转录组数据对比之后是进行定量,而在chip-seq中后续的步骤是去除pcr重复,peaks calling,以及可视化。

本次分析步骤包括:环境部署——数据下载——查看数据(非过滤)——数据质控清洗——数据比对——去除pcr重复——peaks calling

分析步骤

1.延续上一个推文。数据比对,查看flagstat的比对结果
cat ./Z_Projects/chipseq/align/SRR30273120_flagstat.txt
  1. 45844006 + 0 in total (QC-passed reads + QC-failed reads):表示总共有 45,844,006 个读段(包含通过质量控制的读段和未通过的读段),这里没有未通过质量控制的读段。
  2. 45844006 + 0 primary:这里的 45,844,006 个读段都是主要比对(primary alignment)。主要比对表示每个读段的主要比对位置。
  3. 0 + 0 secondary:没有次级比对(secondary alignment),次级比对指的是同一读段在基因组上其他位置的次要比对。
  4. 0 + 0 supplementary:没有补充比对(supplementary alignment),补充比对通常用于跨多个位置的读段(如嵌合读段)。
  5. 0 + 0 duplicates:没有重复读段,重复读段通常是指 PCR 扩增时产生的冗余片段。
  6. 0 + 0 primary duplicates:没有主要重复读段,这意味着在比对过程中没有检测到重复读段。
  7. 44185647 + 0 mapped (96.38% : N/A):44,185,647 个读段(约占 96.38%)成功比对到参考基因组。这里的 N/A 表示没有适用的失败比对读段的比例。
  8. 44185647 + 0 primary mapped (96.38% : N/A):同样地,有 44,185,647 个主要读段比对成功(约 96.38%),表示比对效果非常好。
  9. 0 + 0 paired in sequencing:没有成对的读段,表示这是 单端测序的数据。
  10. 0 + 0 read1:没有 read1,这与单端测序的特征一致。如果是双端测序,read1 表示配对中的第一个读段。
  11. 0 + 0 read2:没有 read2,也表明数据来自 单端测序。
  12. 0 + 0 properly paired (N/A : N/A):没有正确配对的读段,因为这里使用的是单端测序数据,因此不适用。
  13. 0 + 0 with itself and mate mapped:没有读段和它的配对同时比对到基因组上,因为这是单端测序数据。
  14. 0 + 0 singletons (N/A : N/A):没有 单独比对的读段(即只有一端比对成功),因为这里不是双端测序。
  15. 0 + 0 with mate mapped to a different chr:没有读段的配对比对到不同的染色体上,因为是单端测序数据,所以不适用。
  16. 0 + 0 with mate mapped to a different chr (mapQ>=5):同样地,没有配对比对到不同染色体且比对质量分数大于等于 5 的读段,这是针对双端数据的统计。
2.去除PCR重复
# 创建文件
mkdir -p ${path}/rmdup
# 设定环境变量
export path="/home/lm/Z_Projects/chipseq"

nohup bash -c "
cat SRR_Acc_List.txt | while read id;
do
  echo \"Processing \${id}...\"
  samtools markdup -r \${path}/align/\${id}.bam \${path}/rmdup/\${id}_rmdup.bam
  samtools flagstat \${path}/rmdup/\${id}_rmdup.bam > \${path}/rmdup/\${id}_rmdup_flagstat.txt
done
"
 > run_log.txt 2>&1 &

查看flagstat的比对结果

cat ./rmdup/SRR30273120_rmdup_flagstat.txt
3.peaks calling(查找DNA结合位点)

在peaks calling分析之前可以先重命名样本,这样做的目的是1、用生物学特征去替换SRA数据库ID号,有助于我们了解每个样本是什么并做过什么处理。2、也可以发现有多少样本存在生物学重复,为后续合并合并做准备。

cd ~/chipseq/rename
vim rename.tsv

# 把如下内容输入进去,中间的空格是tab键
SRR30273118     control
SRR30273119     p300
SRR30273120     BRD4

# 然后按下ESC键并输入:wq保存且退出rename.tsv文件

cat以下文件,查看内容使用上述内容修改样本文件名称

export path="/home/lm/Z_Projects/chipseq"

for i in {1..3}
do
  id=$(cat rename.tsv | awk '{print $1}'| head -n $i | tail -1)
  filename=$(cat rename.tsv | awk '{print $2}'| head -n $i | tail -1)
  mv ${path}/rmdup/${id}_rmdup.bam ${path}/rename/${filename}.bam
  samtools sort ${path}/rename/${filename}.bam -o ${path}/rename/${filename}_sort.bam
done

在这里会按照不同的命名以及sort每组分别生成两个文件如果一个样品分成了多个lane进行测序,那么进行peaks calling的时候,需要把bam进行合并,使用samtools merge, 知道即可,这个数据集不需要,以下代码在正式使用时需要修改!!!merge之后的文件需要重新构建索引。

B站视频中示例代码-merge数据-这里不采用这个

mkdir mergeBam
cd align

# 不用循环
# samtools merge control.merge.bam control_1_trimmed.bam control_2_trimmed.bam

# 通常的循环处理方式
# 这里使用“_”进行分割,但是针对不同的数据需要采用不同的分割方式! 
ls *.bam | cut -d "_" -f 1 |sort -u |while read id do samtools merge 
../mergeBam/$id.merge.bam $id.bam; done

推文中示例代码—笔者所分析的数据虽然不需要合并,但还是按照这个步骤去重新生成文件并构建索引

mkdir intersect
cd intersect
cat id_norep.tsv # 这个文件电脑上手动处理会更快

不需要合并数据代码如下

cp -r ./rename/*_sort.bam ./intersect/

path="/home/lm/Z_Projects/chipseq"

cat ${path}/intersect/id_norep.tsv | while read id;
do
  index_file="${path}/intersect/${id}_sort.bam"  # Target index file path

  # Index the BAM file and specify the index file's location
  samtools index $index_file
done > ${path}/indexing_output.log 2>&1 &

如果需要合并代码如下,但要进行修改

path="/home/lm/Z_Projects/chipseq"

cat ${path}/intersect/id_norep.tsv | while read id;
do
  bedtools intersect -a ${path}/rename/${id}_rep1_sort.bam -b ${path}/rename/${id}_rep2_sort.bam > ${path}/intersect/${id}_intersect.bam
  samtools index ${path}/intersect/${id}_intersect.bam
done

# bedtools intersect参数:
# -a 需要合并的文件1
# -b 需要合并的文件2
使用macs2正式进行peak calling分析

Peak Calling 分析 通常用于识别染色质免疫共沉淀测序(ChIP-Seq)、开放染色质测序(ATAC-Seq)或其他类似实验中的基因组区域(称为峰或peaks),这些区域通常代表了蛋白质-基因组相互作用位点或活跃的染色质区域。

这些峰是指在基因组特定区域中测序读数显著富集的区域,通过Peak Calling 方法,可以从背景噪声中提取这些生物学信号。

path="/home/lm/Z_Projects/chipseq"

cd ${path}
mkdir macs2

for i in {1..3}
do
  id_p300=$(cat ${path}/intersect/id_norep.tsv | grep "p300" | head -n ${i} | tail -1)
  id_BRD4=$(cat ${path}/intersect/id_norep.tsv | grep "BRD4" | head -n ${i} | tail -1)
  
  macs2 callpeak -t ${path}/intersect/${id_p300}_sort.bam \
    --control ${path}/intersect/control_sort.bam \
    -g hs --outdir ${path}/macs2 \
    -n ${id_p300}_intersect -q 0.01
  
  macs2 callpeak -t ${path}/intersect/${id_BRD4}_sort.bam \
    --control ${path}/intersect/control_sort.bam \
    -g hs --outdir ${path}/macs2 \
    -n ${id_BRD4}_intersect -q 0.01

done > ${path}/macs2_output.log 2>&1 &

# macs2 callpeak参数:
# -t 输入文件
# --control 对照组文件。
# -g 基因组大小。输入具体的数字(如1.0e+9或1000000000)。
# 对于人、小鼠、线虫或果蝇,可以分别用hs、mm、ce或dm。
# --outdir 输出文件的路径
# -n 文件名前缀
# -q Q值
bamCoverage
mkdir bamCoverage
path="/home/lm/Z_Projects/chipseq"
for i in {1..3}
do
  id_p300=$(cat ${path}/intersect/id_norep.tsv | grep "p300" | head -n ${i} | tail -1)
  id_BRD4=$(cat ${path}/intersect/id_norep.tsv | grep "BRD4" | head -n ${i} | tail -1)
  
  bamCoverage --binSize 10 -p 15 --normalizeUsing RPKM -b ${path}/intersect/${id_p300}_sort.bam -o ${path}/bamCoverage/${id_p300}.bw
  bamCoverage --binSize 10 -p 15 --normalizeUsing RPKM -b ${path}/intersect/${id_BRD4}_sort.bam -o ${path}/bamCoverage/${id_BRD4}.bw
done > ${path}/bamCoverage.log 2>&1 &
  1. --binSize 10:设置 bin 的大小为 10 bp,这是计算覆盖度时使用的数据区块大小。
  2. -p 15:指定并行处理的线程数为 15,提高处理速度。
  3. --normalizeUsing RPKM:一共有RPKM,CPM,BPM,RPGC,None这几种方式,选择使用 RPKM 方法标准化数据。
    -b {id_p300}_sort.bam 和 -b {id_BRD4}_sort.bam:指定输入的 BAM 文件,根据提取的 ID 动态指定。
    -o {id_p300}.bw 和 -o {id_BRD4}.bw:指定输出的 BigWig 文件路径和名称。

既往推文

  1. 转录组上游分析流程(一):转录组上游分析流程(一)
  2. 转录组上游分析流程(二):转录组上游分析流程(二)
  3. 转录组上游分析流程(三):转录组上游分析流程(三)
  4. 转录组上游分析流程(四):转录组上游分析流程(四)

参考资料

  1. 生信技能树:https://mp.weixin.qq.com/s/KOFd60USQdKY2C4Sc4OIvA
  2. 生信学习日记:https://mp.weixin.qq.com/s/z-qbVZqo-cKT3Tfv4LT6OQ
  3. Tobin笔记:https://mp.weixin.qq.com/s/Uf8GgK4kZAWbRKKoh6IiyA
  4. 老俊俊的生信笔记:https://mp.weixin.qq.com/s/pfRiLhP8ONMNGcUI06IPog
  5. 生信媛:https://mp.weixin.qq.com/s/iHnogzM6QSu8tlImE26_Wg

致谢:感谢曾老师以及生信技能树团队全体成员。

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -


生信方舟
执着医学,热爱科研。站在巨人的肩膀上,学习和整理各种知识。
 最新文章