一篇文章学会ChIP-seq分析(上)
写在前面:《一篇文章学会ChIP-seq分析(上)》《一篇文章学会ChIP-seq分析(下)》为生信菜鸟团博客相关文章合集,共九讲内容。带领你从相关文献解读、资料收集和公共数据下载开始,通过软件安装、数据比对、寻找并注释peak、寻找motif等ChIP-seq分析主要步骤入手学习,最后还会介绍相关可视化工具。
第一讲:文献选择与解读
文献;CARM1 Methylates Chromatin Remodeling Factor BAF155 to Enhance Tumor Progression and Metastasis
我很早以前想自学CHIP-seq的时候关注过这篇文章,那时候懂得还不多,甚至都没有仔细看这篇文章就随便下载了数据进行分析,也只是跑一些软件而已。这次仔细阅读这篇文章才发现里面门道很多,尤其是ChIP-seq的实验基础和表观遗传学的生物学基础知识。
作者首先实验证明了用small haripin RNA来knockout CARM1 只能达到90%的敲除效果,有趣的是,对CARM1的功能影响非常小,说明只需要极少量的CARM1就可以发挥很好的作用,因此作者通过zinc finger nuclease这种基因组编辑技术设计了100%敲除CARM1的实验材料。(当然,现在有更好的基因编辑技术啦)
这样就能比较CARM1有无时各种蛋白被催化状态了,其中SWI/SNF(BAF) chromatin remodeling complex 染色质重构复合物的一个亚基 BAF155,非常明显的只有在CARM1这个基因完好无损的细胞系里面才能被正常的甲基化。作者证明了BAF155是CARM1这个基因非常好的一个底物, 而且通过巧妙的实验设计,证明了BAF155这个蛋白的第1064位氨基酸(R) 是 CARM1的作用位点。
因为早就有各种文献说明了SWI/SNF(BAF) chromatin remodeling complex 染色质重构复合物在癌症的重要作用, 所以作者也很自然想探究BAF155在癌症的功能详情,这里作者选择的是ChIP-seq技术。BAF155是作为SWI/SNF(BAF) chromatin remodeling complex 染色质重构复合物的一个组分,必然neng 直接或者间接的结合DNA咯。而ChIP-seq技术最适合来探究能直接或者间接结合DNA的蛋白的功能,所以作者构造了一种细胞系(MCF7),它的BAF155蛋白的第1064位氨基酸(R) 突变而无法被CARM1这个基因催化而甲基化,然后比较突变的细胞系和野生型细胞系的BAF155的两个ChIP-seq结果,这样就可以研究BAF155是否必须要被CARM1这个基因催化而甲基化后才能行使生物学功能。
作者用me-BAF155特异性抗体+western bloting 证明了正常的野生型MCF7细胞系里面有~74%的BAF155被甲基化。
有一个细胞系SKOV3,可以正常表达除了BAF155之外的其余14种SWI/SNF(BAF) chromatin remodeling complex 染色质重构复合物,而不管是把突变的细胞系和野生型细胞系的BAF155混在里面都可以促进染色质重构复合物的组装,所以甲基化与否并不影响这个染色质重构复合物的组装,重点应该研究的是甲基化会影响BAF155在基因组其它地方结合。
结果显示,突变的细胞系和野生型细胞系种BAF155在基因组结合位置(peaks)还是有较大的overlap的,重点是看它们的peaks在各种基因组区域(基因上下游,5,3端UTR,启动子,内含子,外显子,基因间区域,microRNA区域)分布情况的差别,还有它们距离转录起始位点的距离的分布区别,还有它们注释到的基因区别,已经基因富集到什么通路等等。
虽然作者在人的细胞系(MCF7)上面做ChIP-seq,但是在老鼠细胞系(MDA-MB-231)做了mRNA芯片数据分析,BAF155这个蛋白的第1064位氨基酸(R) 突变细胞系和野生型细胞系,用的是Affymetrix HG U133 Plus 2.0这个常用平台。
which was hybridized to Affymetrix HG U133 Plus 2.0 microarrays containing 54,675 probesets for >47,000 transcripts and variants, including 38,500 human genes.
To identify genes differentially expressed between MDA-MB-231-BAF155WT and MDA-MB-231-BAF155R1064K
表达矩阵下载地址:http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4004525/bin/NIHMS556863-supplement-03.xlsx
我简单摘抄作者ChIP-seq数据的生物信息学分析结果
- All samples were mapped from fastq files using BOWTIE [-m 1 -- best] to mm9 [UCSCmouse genome build 9]
- Sequences were mapped to the human genome (hg19) using BOWTIE (--best –m 1) to yield unique alignments
- Peaks were called by using HOMER [http://biowhat.ucsd.edu/homer/] and QuEST [http://mendel.stanford.edu/sidowlab/downloads/quest/].
用到的软件有
- *QuEST 2.4 *(Valouev et al., 2008) was run using the recommend settings for transcription factor (TF) like binding with the following exceptions: kdebandwith=30, regionsize=600, ChIP threshold=35, enrichment fold=3, rescue fold=3.
- *HOMER *(Heinz et al., 2010) analysis was run using the default settings for peak finding. False Discovery Rate (FDR) cut off was *0.001 (0.1%) for all peaks. * The tag density for each factor was normalized to 1x107 tags and displayed using the UCSC genome browser.
- Motif analysis (de novo and known), was performed using the* HOMER software and Genomatix. *
- *Peak overlaps *were processed with HOMER and Galaxy (Giardine et al., 2005).
- *Peak comparisons *between replicates were processed with EdgeR statistical package in R
以上就是我们接下来需要学习的流程化分析步骤,下面我给一个主要流程的截图,但主要是实验是如何设计
这里有一个文章发表了关于CHIP-seq的流程的:http://biow.sb-roscoff.fr/ecolebioinfo/protected/jacques.van-helden/ThomasChollierNatProtoc2012peak-motifs.pdf
同时我还推荐大家看几篇相关文献
- Genome-wide maps of chromatin state in pluripotent and lineage-committed cells. http://www.nature.com/nature/journal/v448/n7153/pdf/nature06008.pdf
- Mapping and analysis of chromatin state dynamics in nine human cell types(GSE26386): http://www.nature.com/nature/journal/v473/n7345/full/nature09906.html
- Promiscuous RNA binding by Polycomb Repressive Complex 2 http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3823624/pdf/nihms517229.pdf
第二讲:资料收集
CHIP-seq的确是非常完善的NGS流程,各种资料层出不穷。
大家首先可以看下面几个完整流程的PPT来对CHIP-seq流程有个大致的印象,我对前面提到的文献数据处理的几个要点,就跟下面这个图片类似。
- QuEST is a statistical software for analysis of ChIP-Seq data with data and analysis results visualization through UCSC Genome Browser. http://www-hsc.usc.edu/~valouev/QuEST/QuEST.html
- peak calling 阈值的选择: http://www.nature.com/nprot/journal/v7/n1/figtab/nprot.2011.420F2.html
- MeDIP-seq and histone modification ChIP-seq analysis http://crazyhottommy.blogspot.com/2014/01/medip-seq-and-histone-modification-chip.html
- 2011-review-CHIP-seq-high-quaility-data: http://www.nature.com/ni/journal/v12/n10/full/ni.2117.html?message-global=remove
- 不同处理条件的CHIP-seq的差异peaks分析: http://www.slideshare.net/thefacultyl/diffreps-automated-chipseq-differential-analysis-package
- 一个实际的CHIP-seq数据分析例子: http://www.biologie.ens.fr/~mthomas/other/chip-seq-training/
- http://biow.sb-roscoff.fr/ecolebioinfo/trainingmaterial/chip-seq/documents/presentation_chipseq.pdf
- http://ecole-bioinfo-aviesan.sb-roscoff.fr/sites/ecole-bioinfo-aviesan.sb-roscoff.fr/files/files/chipseqCarlHerrmannRoscoff2015.pdf
- http://ecole-bioinfo-aviesan.sb-roscoff.fr/sites/ecole-bioinfo-aviesan.sb-roscoff.fr/files/files/defrance-ChIP-seq_annotation.pdf
然后下面的各种资料,是针对CHIP-seq流程的各个环境的,还有一些是针对于表观遗传学知识
- ppt : http://159.149.160.51/epigenmilano/epigenbarozzi.pdf
- best practise: http://bioinformatics-core-shared-training.github.io/cruk-bioinf-sschool/
- pipeline : https://github.com/shenlab-sinai/chip-seq_preprocess
- https://sites.google.com/site/anshul...e/projects/idr ## samtools view -b -F 1548 -q 30 chipSampleRep1.bam
- pipeline : http://daudin.icmb.utexas.edu/wiki/index.php/ChIPseqprepand_map
- pipeline : https://github.com/BradyLab/ChipSeq/blob/master/chipseq.sh
- https://github.com/crukci-bioinformatics/chipseq-pipeline
- https://github.com/ENCODE-DCC/chip-seq-pipeline
- Hands-on introduction to ChIP-seq analysis - VIB Training http://www.biologie.ens.fr/~mthomas/other/chip-seq-training/
- video(A Step-by-Step Guide to ChIP-Seq Data Analysis Webinar) : http://www.abcam.com/webinars/a-step-by-step-guide-to-chip-seq-data-analysis-webinar
- Using ChIP-Seq to identify and/or quantify bound regions (peaks)http://barcwiki.wi.mit.edu/wiki/SOPs/chipseqpeaks
- http://jura.wi.mit.edu/bio/education/hottopics/ChIPseq/ChIPSeqHotTopics.pdf
- http://pedagogix-tagc.univ-mrs.fr/courses/ASG1/practicals/chip-seq/mapping_tutorial.html
- 公开课: https://www.coursera.org/learn/galaxy-project/lecture/FUzcg/chip-sequence-analysis-with-macs
- EBI的教程:https://www.ebi.ac.uk/training/online/course/ebi-next-generation-sequencing-practical-course/chip-seq-analysis/chip-seq-practical
- 中国台湾教程:http://lsl.sinica.edu.tw/Services/Class/files/20151118475_2.pdf 徐唯哲 Paul Wei-Che HSU
- peak finder软件大全: http://wodaklab.org/nextgen/data/peakfinders.html
- https://www.encodeproject.org/documents/049704a4-5c58-4631-acf1-4ef152bdb3ef/@@download/attachment/LearningChromatinStatesfromChIP-seq_data.pdf
- https://bioshare.bioinformatics.ucdavis.edu/bioshare/download/47aq5pp5mzza5vb/PDFs/TuesdayMBChIP-Seq_Intro.pdf
- paper: Large-Scale Quality Analysis of Published ChIP-seq Data http://www.g3journal.org/content/4/2/209.full
- paper: Chip-seq data analysis: from quality check to motif discovery and more http://ccg.vital-it.ch/var/sibapril15/cases/landt12/strandcorrelation.html
- Workshop hands on session(RNA-Seq / ChIP-Seq ) : https://hpc.oit.uci.edu/biolinux/handson.docx
- http://www.gqinnovationcenter.com/documents/bioinformatics/ChIPseq.pptx
- paper supplement : http://genome.cshlp.org/content/suppl/2015/10/02/gr.192005.115.DC1/Supplemental_Information.docx
- http://www.illumina.com/documents/products/datasheets/datasheetchipsequence.pdf
- http://www.ncbi.nlm.nih.gov/pubmed/22130887 "Analyzing ChIP-seq data: preprocessing, normalization, differential identification, and binding pattern characterization."
- http://www.ncbi.nlm.nih.gov/pubmed/22499706 "Normalization, bias correction, and peak calling for ChIP-seq." (stat heavy)
- http://www.ncbi.nlm.nih.gov/pubmed/24244136 "Practical guidelines for the comprehensive analysis of ChIP-seq data."
- http://www.ncbi.nlm.nih.gov/pubmed/25223782 "Identifying and mitigating bias in next-generation sequencing methods for chromatin biology."
- http://www.ncbi.nlm.nih.gov/pubmed/24598259 "Impact of sequencing depth in ChIP-seq experiments."
- figures: https://github.com/shenlab-sinai/ngsplot
可视化工具
bioconductor系列工具和教程 :
- http://faculty.ucr.edu/~tgirke/HTMLPresentations/Manuals/WorkshopDec610_2012/Rchipseq/Rchipseq.pdf
- http://bioinformatics-core-shared-training.github.io/cruk-bioinf-sschool/Day4/chipqc_sweave.pdf
- http://bioconductor.org/packages/release/bioc/html/chipseq.html
- http://bioconductor.org/help/workflows/chipseqDB/
- http://bioconductor.org/help/workflows/generegulation/
- http://bioconductor.org/help/course-materials/2009/EMBLJune09/Practicals/chipseq/BasicChipSeq.pdf
公司教程
第三讲:公共数据下载
这一步跟自学其它高通量测序数据处理一样,就是仔细研读paper,在里面找到作者把原始测序数据放在了哪个公共数据库里面,一般是NCBI的GEO,SRA,本文也不例外,然后解析样本数,找到下载链接规律。
## step1 : download raw data> cd ~> mkdir CHIPseq_test && cd CHIPseq_test> mkdir rawData && cd rawData> ## batch download the raw data by shell script :> for ((i=593;i<601;i++)) ;do wget [ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRP033/SRP033492/SRR1042](ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRP033/SRP033492/SRR1042)$i/SRR1042$i.sra;done
很容易就下载了8个测序文件,每个样本的数据大小,测序量如下
> 621M Jun 27 14:03 SRR1042593.sra (16.9M reads)> 2.2G Jun 27 15:58 SRR1042594.sra (60.6M reads)> 541M Jun 27 16:26 SRR1042595.sra (14.6M reads)> 2.4G Jun 27 18:24 SRR1042596.sra (65.9M reads)> 814M Jun 27 18:59 SRR1042597.sra (22.2M reads)> 2.1G Jun 27 20:30 SRR1042598.sra (58.1M reads)> 883M Jun 27 21:08 SRR1042599.sra (24.0M reads)> 2.8G Jun 28 11:53 SRR1042600.sra (76.4M reads)
虽然下载的SRA格式数据也是一个很流行的标准,但它只是数据压缩的标准,几乎没有软件能直接跟SRA的格式的测序数据来进行分析,我们需要转成fastq格式,代码如下:
> ## step2 : change sra data to fastq files.> ## cell line: MCF7 // Illumina HiSeq 2000 // 50bp // Single ends // phred+33> ## [http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE52964](http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE52964)> ## [ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRP033/SRP033492](ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRP033/SRP033492)> ls *sra |while read id; do ~/biosoft/sratoolkit/sratoolkit.2.6.3-centos_linux64/bin/fastq-dump $id;done> rm *sra
解压的详情如下,可以看到SRA格式有6~9倍的压缩了,比zip格式压缩的2~3倍高多了
## 621M --> 3.9G## 2.2G --> 14G## 541M --> 3.3G## 2.4G --> 15G
第四讲:必要软件安装及结果下载
博文的顺序有点乱,因为怕读到前面的公共测序数据下载这篇文章的朋友搞不清楚,我如何调用各种软件的,所以我这里强势插入一篇博客来描述这件事,当然也只是略过,我所有的软件理论上都是安装在我的home目录下的biosoft文件夹,所以你看到我一般安装程序都是:
cd ~/biosoftmkdir macs2 && cd macs2 ##指定的软件安装在指定文件夹里面
这只是我个人的安装习惯,因为我不是root,所以不能在linux系统下做太多事,我这里贴出我所有的软件安装代码:
## pre-step: download sratoolkit /fastx_toolkit_0.0.13/fastqc/bowtie2/bwa/MACS2/HOMER/QuEST/mm9/hg19/bedtools## http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software## http://www.ncbi.nlm.nih.gov/books/NBK158900/## Download and install sratoolkitcd ~/biosoftmkdir sratoolkit && cd sratoolkitwget http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.6.3/sratoolkit.2.6.3-centos_linux64.tar.gz#### Length: 63453761 (61M) [application/x-gzip]## Saving to: "sratoolkit.2.6.3-centos_linux64.tar.gz"tar zxvf sratoolkit.2.6.3-centos_linux64.tar.gz## Download and install bedtoolscd ~/biosoftmkdir bedtools && cd bedtoolswget https://github.com/arq5x/bedtools2/releases/download/v2.25.0/bedtools-2.25.0.tar.gz## Length: 19581105 (19M) [application/octet-stream]tar -zxvf bedtools-2.25.0.tar.gzcd bedtools2make## Download and install PeakRangercd ~/biosoftmkdir PeakRanger && cd PeakRangerwget https://sourceforge.net/projects/ranger/files/PeakRanger-1.18-Linux-x86_64.zip/## Length: 1517587 (1.4M) [application/octet-stream]unzip PeakRanger-1.18-Linux-x86_64.zip~/biosoft/PeakRanger/bin/peakranger -h## Download and install bowtiecd ~/biosoftmkdir bowtie && cd bowtiewget https://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.2.9/bowtie2-2.2.9-linux-x86_64.zip/download#Length: 27073243 (26M) [application/octet-stream]#Saving to: "download" ## I made a mistake here for downloading the bowtie2mv download bowtie2-2.2.9-linux-x86_64.zipunzip bowtie2-2.2.9-linux-x86_64.zipmkdir -p ~/biosoft/bowtie/hg19_indexcd ~/biosoft/bowtie/hg19_index# download hg19 chromosome fasta fileswget http://hgdownload.cse.ucsc.edu/goldenPath/hg19/bigZips/chromFa.tar.gz# unzip and concatenate chromosome and contig fasta filestar zvfx chromFa.tar.gzcat *.fa > hg19.farm chr*.fa## ~/biosoft/bowtie/bowtie2-2.2.9/bowtie2-build ~/biosoft/bowtie/hg19_index/hg19.fa ~/biosoft/bowtie/hg19_index/hg19## Download and install BWAcd ~/biosoftmkdir bwa && cd bwahttp://sourceforge.net/projects/bio-bwa/files/tar xvfj bwa-0.7.12.tar.bz2 # x extracts, v is verbose (details of what it is doing), f skips prompting for each individual file, and j tells it to unzip .bz2 filescd bwa-0.7.12makeexport PATH=$PATH:/path/to/bwa-0.7.12 # Add bwa to your PATH by editing ~/.bashrc file (or .bash_profile or .profile file)# /path/to/ is an placeholder. Replace with real path to BWA on your machinesource ~/.bashrc# bwa index [-a bwtsw|is] index_prefix reference.fastabwa index -p hg19bwaidx -a bwtsw ~/biosoft/bowtie/hg19_index/hg19.fa# -p index name (change this to whatever you want)# -a index algorithm (bwtsw for long genomes and is for short genomes)## Download and install macs2## // https://pypi.python.org/pypi/MACS2/cd ~/biosoftmkdir macs2 && cd macs2wget ~~~~~~~~~~~~~~~~~~~~~~MACS2-2.1.1.20160309.tar.gztar zxvf MACS2-2.1.1.20160309.tar.gzcd MACS2-2.1.1.20160309python setup.py install --user#################### The log for installing MACS2:Creating ~/.local/lib/python2.7/site-packages/site.pyProcessing MACS2-2.1.1.20160309-py2.7-linux-x86_64.eggCopying MACS2-2.1.1.20160309-py2.7-linux-x86_64.egg to ~/.local/lib/python2.7/site-packagesAdding MACS2 2.1.1.20160309 to easy-install.pth fileInstalling macs2 script to ~/.local/binFinished processing dependencies for MACS2==2.1.1.20160309############################################################~/.local/bin/macs2 --helpExample for regular peak calling:macs2 callpeak -t ChIP.bam -c Control.bam -f BAM -g hs -n test -B -q 0.01Example for broad peak calling:macs2 callpeak -t ChIP.bam -c Control.bam --broad -g hs --broad-cutoff 0.1## Download and install homer (Hypergeometric Optimization of Motif EnRichment)## // http://homer.salk.edu/homer/## // http://blog.qiubio.com:8080/archives/3024## pre-install: Ghostscript,seqlogo,blatcd ~/biosoftmkdir homer && cd homerwget http://homer.salk.edu/homer/configureHomer.plperl configureHomer.pl -installperl configureHomer.pl -install hg19
一般来说,对我这样水平的人来说,软件安装就跟家常便饭一样,没有什么问题了,但如果你是初学者呢,肯定没那么轻松,所以请加强学习,我无法在这里讲解太具体的知识了。
所有软件安装完毕后就可以下载文章对这些ChIP-seq的处理结果了,这个很重要,检验我们是否重复了人家的数据分析过程。
## step3 : download the results from paper## http://www.bio-info-trainee.com/1571.htmlmkdir paper_results && cd paper_resultswget ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE52nnn/GSE52964/suppl/GSE52964_RAW.tartar xvf GSE52964_RAW.tarls *gz |xargs gunzip## step4 : run FastQC to check the sequencing quality.##这里可以看到我们下载的原始数据已经被作者处理好了,去了接头,去了低质量序列ls *.fastq | while read id ; do ~/biosoft/fastqc/FastQC/fastqc $id;done## Sequence length 51## %GC 39## Adapter Content passedThe quality of the reads is pretty good, we don't need to do any filter or trimmkdir QC_resultsmv *zip *html QC_results/
编辑校对:思考问题的熊
- 快速入门系列--WCF--03RESTFUL服务与示例
- SQL练习之不破坏应用程序现有查询的修改模式
- 快速入门系列--WCF--02消息、会话与服务寄宿
- JavaScript之面向对象学习二(原型属性对象与in操作符)获取对象中所有属性的方法
- 快速入门系列--深入理解C#
- “家庭贷款”域名Home.loans已经建站为家庭贷款相关的网站
- 微信亿级用户异常检测框架的设计与实践
- 程序员必知的6点编程秘诀,编程三板斧将解决90%问题!
- JavaScript之面向对象学习三原型语法升级
- 腾讯入局物业管理,欲改造传统服务?
- JavaScript之面向对象学习五(JS原生引用类型Array、Object、String等等)的原型对象介绍
- SQL学习之分组数据Group by
- SQL学习之数据列去空格函数
- 采用DIV+CSS布局对SEO优化有何好处?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法