library(ChIPseeker)

  library(ggplot2)

  library(dplyr)

  library(org.Mm.eg.db)

  require(TxDb.Mmusculus.UCSC.mm10.knownGene)

  txdb <- TxDb.Mmusculus.UCSC.mm10.knownGene#TxDb文件

  #f <- getSampleFiles()[[4]]#.bed文件,这里用包里的测试数据

  DM1 <- "C:\Users\admin\Desktop\sbed\sum\WT_DM1_rmdup_summits.bed"

  DM2 <- "C:\Users\admin\Desktop\sbed\sum\WT_DM2_rmdup_summits.bed"

  GM1 <- "C:\Users\admin\Desktop\sbed\sum\WT_GM1_rmdup_summits.bed"

  GM2 <- "C:\Users\admin\Desktop\sbed\sum\WT_GM2_rmdup_summits.bed"

  files <-list(DM1=DM1,DM2=DM2,GM1=GM1,GM2=GM2)

  library(devtools)

  #install_github("js229/Vennerable",force = TRUE)

  #require(Vennerable, character.only = TRUE)

  #library(devtools)

  #install_github("js229/Vennerable",force = TRUE)

  #绘制第1个样本peaks在染色体上的分布

  covplot(files[[1]])

  #分别绘制不同样本上的peaks分布图

  require(GenomicFeatures)

  peak1<-GenomicRanges::GRangesList(DM1=readPeakFile(files[[1]]),

  DM2=readPeakFile(files[[2]]))

  covplot(peak1, weightCol="V5") + facet_grid(chr ~ .id)

  peak2<-GenomicRanges::GRangesList(GM1=readPeakFile(files[[3]]),

  GM2=readPeakFile(files[[4]]))

  covplot(peak2, weightCol="V5") + facet_grid(chr ~ .id)

  #关注部分染色体

  covplot(peak1, weightCol="V5", chrs=c("chr17", "chr18"), xlim=c(4e7, 5e7)) + facet_grid(chr ~ .id)

  covplot(peak2, weightCol="V5", chrs=c("chr17", "chr18"), xlim=c(4e7, 5e7)) + facet_grid(chr ~ .id)
中文telegram的版下载的网址在哪呢
  ## GRangesList is also supported and can be used to compare coverage of multiple bed files.##GRangesList可用来比较多个bed文件。

  peakDM=GenomicRanges::GenomicRangesList(DM1=readPeakFile(files[[1]]),DM2=readPeakFile(files[[2]]))

  p=covplot(peakDM)

  print(p)
官网telegram的的的最新下载方法
  #Peak可视化

  peak <-readPeakFile(files[[1]])

  ##getPromoters函数准备启动子窗口

  promoter <- getPromoters(TxDb=txdb, upstream=3000, downstream=3000)

  ##getTagMatrix函数把peaks比对到启动子窗口上

  tagMatrix <- getTagMatrix(peak, windows=promoter)

  tagHeatmap(tagMatrix, xlim =c(-3000, 3000), color="red") #一个图

  peakHeatmap(files, TxDb=txdb, upstream=5000, downstream=5000, color=rainbow(length(files)))#正确的 有四个图

  plotAvgProf(tagMatrix, xlim=c(-3000, 3000),xlab="Genomic Region (5'->3')", ylab = "Read Count Frequency") #结合强度图

  #用peakheatmap函数查看多个样本TSS上下游3kb区域内peak的分布情况:

  #tagMatrixList <- lapply(files, getTagMatrix, windows=promoter)

  #peakHeatmap(tagMatrixList, TxDb=txdb, upstream=3000, downstream=3000, color=rainbow(length(files)))

  #peakHeatmap(files, 最新的中文的telegram的下载网站在哪里 TxDb=txdb, upstream=3000, downstream=3000, color=rainbow(length(files)))

  ##lapply函数进行批量处理

  tagMatrixList <- lapply(files, getTagMatrix, windows=promoter)

  ##conf定义置信区间,facet决定从上到下还是从左往右

  plotAvgProf(tagMatrixList, xlim =c(-3000, 3000), conf=0.95, resample=500, facet="row")

  #注释主体

  x <- annotatePeak(files[[1]], tssRegion=c(-1000, 1000), TxDb=txdb)#x为输出对象

  as.GRanges(x) %>% head(5)

  y <- annotatePeak(files[[1]], tssRegion=c(-1000, 1000),addFlankGeneInfo = TRUE,flankDistance = 5000,annoDb='org.Mm.eg.db',TxDb=txdb)#x为输出对象

  as.GRanges(y) %>% head(5)

  ##write.table(y,"C:\Users\admin\Desktop\DM1.csv",row.names=FALSE,col.names=TRUE,sep=",")

  peakAnno <- annotatePeak(files[[1]], tssRegion =c(-3000, 3000),TxDb=txdb, annoDb="org.Hs.eg.db")

  plotAnnoPie(peakAnno)

  peakAnnoList <- 官方的最新版telegram下载的网站 lapply(files, annotatePeak,

  TxDb =txdb,tssRegion=c(-3000, 3000))

  plotAnnoBar(peakAnnoList)

  ####附加功能

  '''

  library(clusterProfiler)

  ##另外,之前的功能注释,只是注释一个蛋白ChIP峰,其实也可以多个ChIP实验进行比较:

  genes = lapply(peakAnnoList, function(i) as.data.frame(i)$geneId)

  names(genes) = sub("_", "

  ", names(genes))

  compKEGG <- compareCluster(geneCluster   = genes,

  data=?

  fun           = "enrichKEGG",

  pvalueCutoff  = 0.05,

  pAdjustMethod = "BH")

  dotplot(compKEGG, showCategory = 15, title = "KEGG Pathway Enrichment Analysis")

  '''

  ###

  ##以上就是ChIPseeker的全部可视化功能了,下面画个不同ChIP实验的峰的重叠图(韦恩图)就结束了。

  genes= lapply(peakAnnoList, function(i) as.data.frame(i)$geneId)

  vennplot(genes,by="gplots")

  vennplot(genes[1:4],by="Vennerable") #注意这里没有"Vennerable"包/函数。我没安装上。所以画不出来,画出来后应该是彩色的。

  #ID转换 获取基因名字

  s.SYMBOL<- bitr(z$geneID, fromType="ENTREZID", toType= "SYMBOL",OrgDb="org.Mm.eg.db")

  head(s.SYMBOL)

  DM1.SYMBOL<- bitr(genes$ DM1, fromType="ENTREZID", toType= "SYMBOL",OrgDb="org.Mm.eg.db")

  head(DM1.SYMBOL)

  DM2.SYMBOL<- bitr(genes$ DM2, fromType="ENTREZID", toType= "SYMBOL",OrgDb="org.Mm.eg.db")

  head(DM2.SYMBOL)

  GM1.SYMBOL<- bitr(genes$ GM1, fromType="ENTREZID", toType= "SYMBOL",OrgDb="org.Mm.eg.db")

  head(GM1.SYMBOL)

  GM2.SYMBOL<- bitr(genes$ GM2, fromType="ENTREZID", toType= "SYMBOL",OrgDb="org.Mm.eg.db")

  head(GM2.SYMBOL)中文telegram的版地址在哪呢

  #####go富集合和kegg富集

  library(DOSE)

  #GO富集分析

  ego_cc <- enrichGO(gene = DM2.SYMBOL[,1], #使用entrezID作为输入

  OrgDb=org.Mm.eg.db,

  ont = "CC",

  pAdjustMethod = "BH",

  minGSSize = 1,

  pvalueCutoff = 0.05,

  qvalueCutoff = 0.05,

  readable = TRUE

  )

  barplot(ego_cc, showCategory=15, title="GO_Enrichment") #条状图,按p从小到大排的

  dotplot(ego_BP,title="EnrichmentGO_CC_dot") #点图,按富集的数从大到小的

  #write.table(as.data.frame(ego_cc@result),file="…….test_CC.txt",sep=" ")

  #KEGG富集分析

  kk <- enrichKEGG(gene = geneEntrezID[,2],

  organism ="mouse",

  pvalueCutoff = 0.05,

  qvalueCutoff = 0.01,

  minGSSize = 1,

  use_internal_data =FALSE

  )

  # write.table(as.data.frame(kk@result), file="test_kk.txt",sep=" ")

  dotplot(kk, showCategory = 15, title = "KEGG Pathway Enrichment Analysis")

  #下面是另外一个版本的,这个命令是人的数据可以运行

  ##另外,之前的功能注释,只是注释一个蛋白ChIP峰,其实也可以多个ChIP实验进行比较:

 telegram官网的最新版下载地址在哪呢 genes = lapply(peakAnnoList, function(i) as.data.frame(i)$geneId)

  names(genes) = sub("_", "

  ", names(genes))

  compKEGG <- compareCluster(geneCluster   = genes,

  fun           = "enrichKEGG",organism="mmu",

  pvalueCutoff  = 0.05,

  pAdjustMethod = "BH")###这个命令是人的数据可以运行##小鼠的要加上mmu才行,默认是人的

  dotplot(compKEGG, showCategory = 15, title = "KEGG Pathway Enrichment Analysis")

  compGO <- compareCluster(geneCluster   = genes,

  fun           = "enrichGO",OrgDb='org.Mm.eg.db',

  pvalueCutoff  = 0.05,

  pAdjustMethod = "BH")###这个命令是人的数据可以运行##小鼠的要加上mmu才行,默认是人的

  dotplot(compGO, showCategory = 15, title = "GO Enrichment Comparison")

  plotDistToTSS(peakAnno,

  title="Distribution of transcription factor-binding loci

  relative to TSS")

  plotDistToTSS(peakAnnoList)

  genes <- lapply(peakAnnoList, function(i)

  as.data.frame(i)$geneId)

  vennplot(genes[1:4])

  #######part2

  ##由于某些注释重叠,因此用户可能希望查看具有重叠的完整注释,这可以通过vennpie功能部分解决。

  vennpie(peakAnno)

  ##另外用upsetR可以查看完整注释和重叠

  upsetplot(peakAnno)

  ##两张图可以结合在一起

  upsetplot(peakAnno, vennpie=TRUE) #此图老报错说我Rstudio画板太小。。。。

  ## TF结合位点相对于TSS的可视化分布

  ## 前面的annotatePeak已经计算了从峰(结合位点)到最近基因的TSS的距离。接下来可以用plotDistToTSS函数可视化其分布。

  #plotDistToTSS(peakAnno,

  #              title="Distribution of transcription factor-binding loci

  relative to TSS")

  ## 从下图可以看出20%多的peaks(结合位点)离邻近基因的TSS距离小于1kb,而50%的结合位点离TSS的距离大于100kb。

  ##说实话这几个分布图,我很难理解其意义,如何从图中找出此图的目的,及作为实验研究的切入点,我感到困惑,还需多看文献。

  ##一旦获得带注释的最近基因,我们就可以通过整合生物本体论提供的生物学知识,进行功能富集分析,以鉴定这些基因中的主要生物学主题。例如例如,GO将基因注释为生物过程、分子功能和细胞成分。KEGG将基因注释为途径,DO将基因与人类疾病联系起来,而Reactome则将基因注释为途径和反应。下面的例子是以Reactome进行演示,其余GO、KEGG、DO亦可。

  #BiocManager::install('ReactomePA')

  #library(ReactomePA)####这个是人类的才有用

  ##注意,enrichPathway是ReactomePA包里的一个函数,因此富集的是Reactome,而非KEGG。

  #pathway1 <- enrichPathway(as.data.frame(peakAnno)$geneId)

  #head(pathway1, 2)

  #dotplot(pathway1)

  ###用测序片段进行功能富集!!此处的原理类似seq2pathway这个包,详细情况可以去Y叔的公众号看一下

  gene <- seq2gene(peak, tssRegion = c(-1000, 1000), flankDistance = 3000, TxDb=txdb)

  pathway2 <- enrichPathway(gene)

  head(pathway2, 2)

  ###前面的“plotAvgProf”和“tagHeatmap”函数可以接受tagMatrix文件并可视化ChIP实验。而“plotAvgProf2”和“peakHeatmap”可以接受bed文件,并作同样的工作。

  # promoter <- getPromoters(TxDb=txdb, upstream=3000, downstream=3000)

  # tagMatrixList <- lapply(files, getTagMatrix, windows=promoter)

  ##

  ## to speed up the compilation of this vigenette, we load a precaculated tagMatrixList

  #data("tagMatrixList")

  plotAvgProf(tagMatrixList, xlim=c(-3000, 3000))

  #读入具体文件

  DM1bed <- readPeakFile(DM1)

  DM1V5<-DM1bed@elementMetadata@listData$V5

  DM2bed <- readPeakFile(DM2)

  DM2V5<-DM2bed@elementMetadata@listData$V5

  GM1bed <- readPeakFile(GM1)

  GM1V5<-GM1bed@elementMetadata@listData$V5

  GM2bed <- readPeakFile(GM2)

  GM2V5<-GM2bed@elementMetadata@listData$V5

  pcagmdm <- list(DM1V5=DM1V5,DM2V5=DM2V5, GM1V5=GM1V5,GM2V5=GM2V5)

  #package ggbiplot

  #install.packages("devtools", repos="http://mirror.lzu.edu.cn/CRAN/") #指定镜像

  #library(devtools)

  #install_github("vqv/ggbiplot",force=T)

  library(ggbiplot)

  #用prcomp函数进行PCA分析,需要对数据进行scale即均一化。

  pcagmdm.pca <- prcomp(pcagmdm, scale. = TRUE)

  summary(pacgmdm.pca)

seo