Chip-seq数据分析流程

1、数据质量评估与过滤

使用fastqc进行数据的测序质量评估、运行结束后生成一个*.html网页文件,一个*.zip压缩文件

fastqc *.fq.gz

使用trimmomatic对测序数据进行过滤,剔除测序质量不好的数据

##下载Trimmomatic
wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip

##解压
unzip Trimmomatic-0.39.zip

##运行Trimmomatic (双端测序)
java -jar Trimmomatic-0.39/trimmomatic-0.39.jar -threads 8 PE -phred33 input_forward.fq.gz input_reverse.fq.gz output_forward_paired.fq.gz output_forward_unpaired.fq.gz output_reverse_paired.fq.gz output_reverse_unpaired.fq.gz ILLUMINACLIP:Trimmomatic-0.39/data/TruSeq3-PE.fa:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:36

This will perform the following:
-Remove adapters (ILLUMINACLIP:TruSeq3-PE.fa:2:30:10)
-Remove leading low quality or N bases (below quality 3) (LEADING:3)
-Remove trailing low quality or N bases (below quality 3) (TRAILING:3)
-Scan the read with a 4-base wide sliding window, cutting when the average quality per ---base drops below 15 (SLIDINGWINDOW:4:15)
-Drop reads below the 36 bases long (MINLEN:36)

2、bowtie2构建参考基因组索引,运行完成后得到六个索引文件

bowtie2-build  <要生成的索引文件前缀名>

3、使用bowtie2比对

##比对
bowtie2 -p 10 -k 1 -N 1 -x index -1 reads1.fq -2 reads2.fq -S out.sam 

##将sam文件转换成bam文件
samtools view -bS out.sam > out.bam

##将bam文件排序
samtools sort out.bam -o out.sorted.bam

##去除PCR重复
samtools rmdup -s out.sorted.bam out.sorted.rmdup.bam

4、macs2 callpeak

##使用macs2 callpeak
macs2 callpeak -t out.sorted.rmdup.bam -c control.sorted.rmdup.bam -f BAM -g hs -n chip.out -B -p 1e-3

##查看callpeak的数量
wc -l *.bed

##使用samtools生成基因组的fai索引,用于peak的可视化
samtools faidx genome.fasta

运行完成后生成6个文件

Chip-seq数据分析流程_第1张图片

5、IGV可视化

打开IGV -> genome -> Create.genome file

在FASTA file 处输入基因组序列(基因组序列文件和fai索引文件需要在一起),在Gene file处输入macs2生成的bed文件,点击OK。

6、Peak 注释

##peak注释需使用ChIPseeker,安装:
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("ChIPseeker")

##确认安装成功
library(ChIPseeker)

##将macs2生成的bed文件和参考基因组的gff文件移动到一个新的建文件夹

##查看R工作目录
getwd()

##切换R工作目录
setwd("目标路径")

##构建基因组注释库
library(GenomicFeatures)
spompe <- makeTxDbFromGFF('genome.gff')


##加载ChIPseeker包
library(ChIPseeker)

##单个bed样本注释
##读取bed文件
peak <- readPeakFile('test.bed')
##进行注释
peakAnno <- annotatePeak(peak, tssRegion = c(-3000, 3000), TxDb = spompe)

##输出结果
write.table(peakAnno, file = 'peak.txt',sep = '\t', quote = FALSE, row.names = FALSE)

##查看注释结果
peakAnno

##可视化作图
plotAnnoBar(peakAnno)
vennpie(peakAnno)
plotAnnoPie(peakAnno)
plotDistToTSS(peakAnno)

##多个bed样本注释
##读取bed文件
peak1 <- readPeakFile('test1.bed')
peak2 <- readPeakFile('test2.bed')
peaks <- list(peak1 = peak1, peak2 = peak2)

##进行注释
peakAnnoList <- lapply(peaks, annotatePeak, TxDb = spompe, tssRegion = c(-3000, 3000), addFlankGeneInfo = TRUE, flankDistance = 5000)

##分别输出结果
write.table(peakAnnoList[1], file = 'peak1.txt',sep = '\t', quote = FALSE, row.names = FALSE)
write.table(peakAnnoList[2], file = 'peak2.txt',sep = '\t', quote = FALSE, row.names = FALSE)

##查看注释结果
peakAnnoList[[1]]
peakAnnoList[[2]]

##可视化作图
plotAnnoBar(peakAnnoList)
vennpie(peakAnnoList[[1]])
vennpie(peakAnnoList[[2]])
plotAnnoPie(peakAnnoList[[1]])
plotAnnoPie(peakAnnoList[[2]])
plotDistToTSS(peakAnnoList)

运行结束后会在运行目录下生成名为peak.txt的文件(名字为输出结果那一步设置的file = 'peak.txt')里面记载着peak附近的基因位点、距离TSS位置以及其他信息。将内容剪贴进excel 提取出基因位点或在linux环境下提取基因位点(geneId、transcriptId)即可。

你可能感兴趣的:(r语言,python)