本周学习一下CHIP-seq。 并根据网上的教程,自己实践一下, 一方面是要为了弄清楚什么是chip-seq, 这个技术有什么用,另一个方面是想学习一下这个技术如何来实践, 本文参考的文章主要来自生信技能树,以及简书上的其他作者写的教程,由于每个人在做分析时,使用的操作系统不一样,所以网上的代码在自己的电脑上进行运行的时候经常出现问题,这需要每个人针对自己的情况进行分析和总结。 本次分析采用的系统是MACos 10.12.6。

先不谈CHIP-seq 的原理, 因为我正在学习中,后期将这部分内容补上。先根据文献提供的数据和网上的代码进行实际操作。

CHIP-seq能干什么?

明确每一类组蛋白或者转录因子在整个基因组上结合基因的位置
如果比较多个组蛋白在亚基,可以看这些亚基之间在基因组上结合的基因的包含关系,即用韦恩图展示这些组蛋白结合基因相互之间是否包含。
检查每一类组蛋白结合基因在TSS上的位置。
检查每一组(不同组蛋白之间结合相同的基因)在TSS上的位置。(这样可以看出缺少某一类组蛋白之后,基因是否表达,验证这个组蛋白具有的功能和意义)
不同组蛋白结合基因的功能(GO),及参与的代谢通路(KEGG)
可以研究每一个组蛋白targets 的基因的表达
第一步:从NCBI下载数据,并解压到本地电脑。 从NCBI的GEO dataset 中输入作者上传的GEO号码GSE42466,如下图所示:

在本文文章的哪里打对勾,并进入,之后看一看到文章的具体信息,包括作者的信息,以及实验方法,实验设计,实验上传的具体数据编号。如下所示:

在最后的一栏中找到本数据的SRA号码,点击进入,如下:

在上面作者提供的6个数据上打上对勾,并在右上侧的send to 这个框中选择file, 在format 中选择 runinfo. 点击生成文件,即可生成下载的文件,这个是个excel文件,包含了具体run的信息,我们需要的是run 的ID号码,打开EXCEL文件,并在download 那一列获取SRA号SRR620204。 这个号码用于下载。代码如下:

prefetch SRR620204
如果批量下载,则将上面的文件编号存放到一个文本文章中,如 sradata.txt ,下载代码如下:

prefetch --option-file sradata.txt #install prefetch first before run the code
之后用fastq-dump 软件进行解压,如下:

ls *sra |while read id; do fastq-dump –split-3 $id;done # --split-3的目的是如果文件包含两个以上文件,则分别命名,如果是一个文件则直接是文件原名,而不是根据reads 来进行拆分
以上可以获得本实验的的所有数据,但是在实际操作中,SRR620207一致下载不下来,原因不知道。 我暂且不比对此文件,在后期使用作者提供的文件。

第二步: 对原始数据进行质控,采用fastqc, multiqc 两个软件, fastqc对每个文件进行质控分析, multiqc对fastqc的结果进行整合,方便读者从总体上对数据质量进行把控。

ls *.fastq |while read id; do fastqc -t 3 $id; done
multiqc *fastqc.zip --pdf # multiqc 在我的电脑山无法生成PDF,虽然我按照说明书安装了pandoc, latex. 但依然不行.
根据multiqc的质控显示,本测序数据在3’端的数据质量不高,fastqc 也显示警告,原因是平均的碱基质量有点低,如下图所示:

因此在接下来比对的时候,我们要去掉3‘端质量不好的碱基,用bowtie2自动去掉。

第三步: 利用bowtie2(本次分析采用的是bowtie2-2.3.5)对数据进行mapping, 数据索引下载如下:

wget -4 -q ftp://ftp.ccb.jhu.edu/pub/data/bowtie2_indexes/mm10.zip
unzip mm10.zip
比对程序如下:

ls *.fastq|while read id;
do bowtie2 -p 3 -3 5 --local -x ~/src/GSE42466/data/chip-se/reference/mm10 -U $id | /opt/biosoft/samtools-1.3.1/samtools sort -O bam -o $id.bam;
done
比对后的总体结果如下:

SRR620204

19687027 reads; of these:

19687027 (100.00%) were unpaired; of these:

7960096 (40.43%) aligned 0 times8614711 (43.76%) aligned exactly 1 time3112220 (15.81%) aligned >1 times

59.57% overall alignment rate

SRR620205

20710168 reads; of these:

20710168 (100.00%) were unpaired; of these:

2716388 (13.12%) aligned 0 times12169372 (58.76%) aligned exactly 1 time5824408 (28.12%) aligned >1 times

86.88% overall alignment rate

SRR620206

21551927 reads; of these:

21551927 (100.00%) were unpaired; of these:

7316904 (33.95%) aligned 0 times10534163 (48.88%) aligned exactly 1 time3700860 (17.17%) aligned >1 times

66.05% overall alignment rate

SRR620208

13291429 reads; of these:

13291429 (100.00%) were unpaired; of these:

5731176 (43.12%) aligned 0 times5235529 (39.39%) aligned exactly 1 time2324724 (17.49%) aligned >1 times

56.88% overall alignment rate

SRR620209

31218866 reads; of these:

31218866 (100.00%) were unpaired; of these:

5699289 (18.26%) aligned 0 times17025381 (54.54%) aligned exactly 1 time8494196 (27.21%) aligned >1 times

81.74% overall alignment rate

#############

比对完之后,利用IGV进行可视化,先用samtools进行index, 之后在IGV中导入,导入的时候选择BAM文件即可,INDEX文件也必须在bam文件相同的文件夹。

samtools index FGENESH_C15+B10.sorted.bam FGENESH_C15+B10.sorted.bai
从IGV上确实可以发现, chip-seq 测序完在有target 的地方有峰值,没有target的地方对照和实验都没有,如下所示:

之后,我们使用macs2进行peal calling, 在使用前请先安装macs2.

macs2 callpeak -c igG_old.sorted.bam -t Suz12.sorted.bam -q 0.05 -f BAM -g mm -n suz12 2> suz12.macs2.log
macs2 callpeak -c igG_old.sorted.bam -t Ring1B.sorted.bam -q 0.05 -f BAM -g mm -n Ring1B 2> Ring1B.macs2.log
macs2 callpeak -c igG.sorted.bam -t Cbx7.sorted.bam -q 0.05 -f BAM -g mm -n cbx7 2> cbx7.macs2.log
比对之后进行数据的作图和可视化,代码

ls bam |while read id;
do file=$(basename id);sample=id ); sample=id);sample={file%%.
};
echo $sample;
bamCoverage -b $id -o $sample.bw; ##–normalizeUsing RPKM -p 5
computeMatrix reference-point --referencePoint TSS -b 10000 -a 10000 -R mm10_ensenble_ref.bed -S KaTeX parse error: Expected group after '_' at position 33: …eros -o matrix1_̲{sample}TSS.gz --outFileSortedRegions regions1KaTeX parse error: Expected 'EOF', got '#' at position 28: …es.bed -p 20; #̲计算matrix 的时候特别慢…{sample}_TSS.gz -out ${sample}.png;
done
在这个时候,在我的macos 系统上出现了一个小插曲, 使用bamCoverage 的时候报错,原因如下:

可能的原因是没有找到相应的库,于是我重新安装了libssh2. 结果显示可以运行了。

此外在运行computeMatrix 的时候也报错,错误的原因是提供的bed文件有问题,于是,我有重新用gff文件制作了一个bed文件(注意:这个地方的gff文件必须和参考基因组是一直的,必须是针对这个参考基因组的gff3文件,在R中如果要用CHIPSeeker包进行注释的时候,当上面没有注释的数据库时,需要用GFF3文件来自己制作一个注释数据库,这个时候gff3也必须是同mapping时用的的参考基因组的注释文件),首先下载bedops软件,之后采用如下代码运行:

convert2bed --input=gff [–output=bed] <ensembl.mm10.gff3> mm10_ensembl_GFF3_genes.bed
#取上述bed文件的前三行即可
cut -f 1-3 mm10_ensembl_GFF3_genes.bed > mm10_ensenble_ref.bed
至此,所有要画图的文件都准备好了,用plotHeatmap进行画图,代码如下: 在这里我只画了cbx7的,由于计算comuteMatrix 太慢了。

plotHeatmap -m matrix.gz -out plotHeatmap.png --plotTitle “Heatmap”

也可以对多个文件整合在一起画,代码如下:

computeMatrix reference-point -p 28 --referencePoint TSS -b 2500 -a 2500 -S *bw -R mm10_ensembl_GFF3_genes.bed --skipZeros -o tmp4.mat.gz --outFileNameMatrix alBamFile
plotHeatmap -m tmp4.mat.gz -out tmp4.merge.png
plotProfile --dpi 720 -m tmp4.mat.gz -out tmp4.profile.pdf --plotFileFormat pdf --perGroup
plotHeatmap --dpi 720 -m tmp4.mat.gz -out tmp4.merge.pdf --plotFileFormat pdf
效果如下:

上面的图都是针对整个基因组上,所有基因在选定的TSS上下游画的,那可不可以对某一部分感兴趣的基因在所有的样本中进行展示,这是由于在注释的时候,发现不同类型的样本直接有相同的target基因,这些基因在TSS的上下游有什么变化,可以用deeptools展示吗? 在CHIPseeker 包中的是可以的。

用deeptools 展示相同的traget 的一部分基因可以采用以下策略结合CHIPseeker 和deeptools两种工具,首先找共有的基因,这个地方先的用CHIPseeker进行注释,对每个peak文件读取,代码如下:

library(ChIPseeker)
library(org.Mm.eg.db)
library(TxDb.Mmusculus.UCSC.mm10.knownGene)
library(VennDiagram)

cbx7 <- readPeakFile(“cbx7_peaks.narrowPeak.bed”)
ring1B <- readPeakFile(“ring1B_peaks.narrowPeak.bed”)
suz12 <- readPeakFile(“suz12_peaks.narrowPeak.bed”)

cbx7_peakAnno <- annotatePeak(cbx7, tssRegion = c(-2500, 2500), TxDb = TxDb.Mmusculus.UCSC.mm10.knownGene, annoDb=“org.Mm.eg.db”)
ring1B_peakAnno <- annotatePeak(ring1B, tssRegion = c(-2500, 2500), TxDb = TxDb.Mmusculus.UCSC.mm10.knownGene, annoDb=“org.Mm.eg.db”)
suz12_peakAnno <- annotatePeak(suz12, tssRegion = c(-2500, 2500), TxDb = TxDb.Mmusculus.UCSC.mm10.knownGene, annoDb=“org.Mm.eg.db”)

common_gene <- Reduce(intersect, list(cbx7=as.data.frame(cbx7_peakAnno)geneId,ring1B=as.data.frame(ring1BpeakAnno)geneId, ring1B=as.data.frame(ring1B_peakAnno)geneId,ring1B=as.data.frame(ring1Bp​eakAnno)geneId,
suz12=as.data.frame(suz12_peakAnno)$geneId))

cbx7_common <- cbx7_df[cbx7_df$geneId %in% common_gene, 1:12][,1:3] ## 这些common gene 在cbx7中的 peak位置,基因只有2955个,但是这些peak位置很多。
head(cbx7_common)
seqnames start end
1 chr1 3062894 3063062
2 chr1 3671191 3671347
3 chr1 3671842 3671960
4 chr1 4491542 4493590
5 chr1 4493643 4493888
6 chr1 4494395 4494544

write.table(cbx7_common,file=“cbx7_commen.bed”,row.names = F,quote = F,col.names = F,sep="\t")
将上面保存的bed文件用于计算矩阵,用deeptools,如下:
computeMatrix reference-point -p 3 --referencePoint TSS -b 2500 -a 2500 -S Cbx7.bw -R cbx7_commen.bed --skipZeros -o
commongene_cbx7.mat.gz --outFileNameMatrix commengenecbx7
plotHeatmap -m commongene_cbx7.mat.gz -out commongene.png

这样就能将cbx7上的commeon gene 做出来heatmap

上边左边是2500多个共有的基因的peak, 右边的是所有基因的peak做的

chipseek 注释peak

library(ChIPseeker)
library(GenomicFeatures)
library(GenomicRanges)
library(rtracklayer)
gffRangdata<-import.gff("~/src/GSE42466/data/chip-se/reference/ensembl.mm10.gff3") #获取本地下载的参考基因组的gff3文件,自己生成txdb
myRanges<-as(gffRangdata,“GRanges”) ##获得GRanges对象
txdb<-makeTxDbFromGRanges(myRanges)
cbx7<-readPeakFile("~/ncbi/public/sra/igv_check/cbx7_peaks.narrowPeak.bed")#这个地方是macs2产生的peak文件,但最好是改名加bed后缀,不然在R中转化为数据框的时候,第一列的抬头有错位,目前还不知道是什么原因。
peak_cbx7<-annotatePeak(cbx7,tssRegion = c(-2500,2500),TxDb = txdb,addFlankGeneInfo = T,flankDistance = 5000)
Long coding RNA 注释

##载入lincRNA注释文件
library(ChIPseeker)
#source(“https://bioconductor.org/biocLite.R”)
#biocLite(“TxDb.Hsapiens.UCSC.hg19.lincRNAsTranscripts”)
library(“TxDb.Hsapiens.UCSC.hg19.lincRNAsTranscripts”)
lincRNA_txdb=TxDb.Hsapiens.UCSC.hg19.lincRNAsTranscripts

##读入bed文件
HSC <- readPeakFile(“hsc478_summits.bed”)
HSC_lincRNA <- annotatePeak(HSC, TxDb=lincRNA_txdb)

visualazition

plotAnnoBar(HSC_lincRNA)

Visualize Genomic Annotation

upsetplot(HSC_lincRNA, vennpie=TRUE)
参考文章

https://www.jianshu.com/p/af3e492a84a9

https://mp.weixin.qq.com/s/_A0rHldzEgVk7bgwt457qQ

https://www.jianshu.com/p/a7b6ce208f98

http://www.bioinfo-scrounger.com/archives/365

https://mp.weixin.qq.com/s/vWTf59KDs1lp_sQXjEhI_g
————————————————
版权声明:本文为CSDN博主「samhuairen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/samhuairen/article/details/88718431

CHIP-seq 分析笔记相关推荐

  1. 报文分析笔记---常见wireshark报文标记

    文章目录 报文分析笔记---常见wireshark报文标记 Fragmented IP protocol Packet size limited during capture TCP Previous ...

  2. 2.View绘制分析笔记之onMeasure

    今天主要学习记录一下Android View绘制三部曲的第一步,onMeasure,测量. 起源 在Activity中,所有的View都是DecorView的子View,然后DecorView又是被V ...

  3. 用户行为分析笔记(一):概述

    今天有人问我会不会推荐算法,回到家里反复思考了下(其实就是一个会与不会的回答,为啥我还要反复思量下了?),我发现自己从事软件开发工作这么多年,大小项目无数,但是如果从做应用角度换句话说我做了哪些提高人 ...

  4. 重载内核全程分析笔记

    标 题: [原创]重载内核全程分析笔记 作 者: Speeday 时 间: 2013-08-20,20:19:46 链 接: http://bbs.pediy.com/showthread.php?t ...

  5. oracle10g cssd日志,【案例】Oracle CSSD进程HANG导致RAC节点重启原因分析笔记

    [案例]Oracle CSSD进程HANG导致RAC节点重启原因分析笔记 时间:2016-11-04 19:20   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracl ...

  6. NJ4X源码阅读分析笔记系列(一)——项目整体分析

    NJ4X源码阅读分析笔记系列(一)--项目整体分析 NJ4X是什么 参见NJ4X的官网:http://www.nj4x.com/ Java and .Net interfaces to support ...

  7. SharpDevelop源码分析笔记(一)

    SharpDevelop自动命令启动UI部分(看SharpDevelop源码分析笔记随想) 参见:Fbt2008的大作  SharpDevelop源码分析笔记(一) 源文档 <http://ww ...

  8. NJ4X源码阅读分析笔记系列(三)—— nj4x-ts深入分析

    NJ4X源码阅读分析笔记系列(三)-- nj4x-ts深入分析 一.系统的工作流程图(模块级) 其工作流程如下(以行情获取为例): 应用端向Application Server发起连接 应用服务器调用 ...

  9. 【转载】Instagram架构分析笔记

    原文地址:http://chengxu.org/p/401.html Instagram 架构分析笔记 全部 技术博客Instagram团队上个月才迎来第 7 名员工,是的,7个人的团队.作为 iPh ...

  10. CSMA/CD协议分析笔记

    CSMA/CD协议分析笔记 CSMA/CD(carrier sense multiple access with collision detection) 文章目录 CSMA/CD协议分析笔记 前言 ...

最新文章

  1. Tableau必知必会之如何快速制作 词云(文字云)
  2. java实现人脸识别源码【含测试效果图】——DaoImpl层(BaseDaoUtilImpl)
  3. zend studio php 5.5,PHP - 下载 - Zend Studio 5.5
  4. mysql初始化主机名无法解析
  5. 实验4 数据库的连接查询
  6. 转载--如何使用# ## ... _ _VA_ARGS_ _
  7. python3 csv以追加方式写入_从拉入的JSON d向CSV追加和或写入
  8. 如何把Excel文件数据导入在SQL中
  9. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(五)——无源与有源电流镜
  10. 西门子触摸屏脚本程序_西门子触摸屏程序如何上传
  11. ZEMAX | 使用点扩散函数的衍射极限成像系统的分辨率
  12. 全网最全最稳定中文ISBN信息查询api接口
  13. i7z – 用来查看CPU状况
  14. 如何设置Mac电脑的DNS
  15. 服务器mysql修改数据库密码_怎么修改mysql数据库服务器密码
  16. leetcode 给N x 3网络图涂色的方案数
  17. nokogiri 足球比赛数据
  18. 【Redis集群专题】「集群技术三部曲」介绍一下常用的Redis集群机制方案的原理和指南(入门篇)
  19. 第4章 控制执行流程
  20. 我叫mt4服务器维护中,我叫MT4:7月11日凌晨维护公告

热门文章

  1. Jenkins教程:使用Jenkins进行持续集成
  2. 截屏自动合成一张长图_拼长图有了新姿势,全自动的截图拼接:Tailor
  3. matlab ofdm qpsk,Matlab关于ofdm系统qpsk调制、awgn信道下的仿真
  4. vivado入门教程
  5. html 字体思源_网页使用思源字体 CSS
  6. 汽车零部件开发工具巨头V公司全套应用层UDS协议栈源代码
  7. 财务总监的秘密:不用代码和Excel,10分钟做出高大上财务分析
  8. python win32com模块
  9. 厨房电器机械EN60335-2-14检测标准及项目
  10. android 微信地址选择,安卓微信位置实时修改