乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      生信技能樹GEO數(shù)據(jù)挖掘直播配套筆記

       健明 2022-04-18

      眾所周知,我們【生信技能樹】團(tuán)隊(duì)這些年一直在身體力行的推廣馬拉松學(xué)習(xí)理念,目前唯一可行的生物信息學(xué)入門策略!60個(gè)小時(shí)的線上全網(wǎng)直播視頻課程,連續(xù)4個(gè)星期,每個(gè)星期5天,每天的晚上8~11點(diǎn)的3個(gè)小時(shí)互動(dòng)授課(周三、周日休息)

      與十萬人一起學(xué)生信,你值得擁有下面的學(xué)習(xí)班:

      同期也安排了助教和實(shí)習(xí)生一起協(xié)助整理講師的直播授課時(shí)間線和授課內(nèi)容相關(guān)筆記,提煉內(nèi)容梗概方便學(xué)員們查漏補(bǔ)缺,精準(zhǔn)復(fù)現(xiàn)!

      下面是( GEO數(shù)據(jù)挖掘  )直播配套筆記
      一、背景了解

      芯片數(shù)據(jù):首選limma 。

      二代測序(RNA_seq):如果是counts 可選擇limma的voom算法或者edgeR或者DESeq2。 如果是FPKM或TPM可選擇limma,注意:edgeR和DESeq2只能處理count注意:count做差異分析計(jì)算上下調(diào),F(xiàn)PKM或TPM進(jìn)行下游可視化

      二. GEO 數(shù)據(jù)處理流程

      0.需要安裝各種包

      if(!require("BiocManager")) install.packages("BiocManager",update = F,ask = F)
      options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
      cran_packages <- c('tidyr',
       'tibble',
       'dplyr',
       'stringr',
       'ggplot2',
       'ggpubr',
       'factoextra',
       'FactoMineR',
       'devtools',
       'cowplot',
       'patchwork',
       'basetheme',
       'paletteer',
       'AnnoProbe',
       'ggthemes',
       'VennDiagram',
       'tinyarray'
      Biocductor_packages <- c('GEOquery',
       'hgu133plus2.db',
       'ggnewscale',
       "limma",
       "impute",
       "GSEABase",
       "GSVA",
       "clusterProfiler",
       "org.Hs.eg.db",
       "preprocessCore",
       "enrichplot",
       "ggplotify")

      for (pkg in cran_packages){
        if (! require(pkg,character.only=T) ) {
       install.packages(pkg,ask = F,update = F)
       require(pkg,character.only=T
        }
      }


      for (pkg in Biocductor_packages){
        if (! require(pkg,character.only=T) ) {
       BiocManager::install(pkg,ask = F,update = F)
       require(pkg,character.only=T
        }
      }

      #前面的所有提示和報(bào)錯(cuò)都先不要管。主要看這里
      for (pkg in c(Biocductor_packages,cran_packages)){
        require(pkg,character.only=T
      }
      #沒有任何提示就是成功了,如果有warningxx包不存在,用library檢查一下。
      #library報(bào)錯(cuò),就單獨(dú)安裝。

      1. 下載數(shù)據(jù)

      #數(shù)據(jù)下載
      rm(list = ls())
      library(GEOquery)
      #先去網(wǎng)頁確定是否是表達(dá)芯片數(shù)據(jù),不是的話不能用本流程。
      gse_number = "GSE56649"
      eSet <- getGEO(gse_number, destdir = '.', getGPL = F)
      class(eSet)
      length(eSet)
      eSet = eSet[[1]]
      #(1)提取表達(dá)矩陣exp
      exp <- exprs(eSet)
      dim(exp)
      exp[1:4,1:4]
      #檢查矩陣是否正常,如果是空的就會(huì)報(bào)錯(cuò),空的和有負(fù)值的、有異常值的矩陣需要處理原始數(shù)據(jù)。
      #如果表達(dá)矩陣為空,大多數(shù)是轉(zhuǎn)錄組數(shù)據(jù),不能用這個(gè)流程(后面另講)。
      #自行判斷是否需要log
      exp = log2(exp+1)
      boxplot(exp)
      # 將原始數(shù)據(jù)標(biāo)準(zhǔn)化(針對畫出的圖水平不一致)
      exp =normalizeBetweenArrays(exp)
      boxplot(exp)

      #(2)提取臨床信息
      pd <- pData(eSet)
      #(3)讓exp列名與pd的行名順序完全一致
      p = identical(rownames(pd),colnames(exp));p
      if(!p) exp = exp[,match(rownames(pd),colnames(exp))]
      #(4)提取芯片平臺編號
      gpl_number <- eSet@annotation;gpl_number
      save(gse_number,pd,exp,gpl_number,file = "step1output.Rdata")

      2. 進(jìn)行分組

      Q:如何進(jìn)行分組? A:三種方法:芯片中最常用的是str_detect()函數(shù);轉(zhuǎn)錄組數(shù)據(jù)中最常用的是Group = c(rep(“RA”,times=13),rep(“control”,times=9))注意:需要把Group轉(zhuǎn)換成因子,并設(shè)置參考水平,指定levels,對照組在前,處理組在后

      # Group(實(shí)驗(yàn)分組)和ids(探針注釋)
      rm(list = ls())  
      load(file = "step1output.Rdata")
      library(stringr)
      # 標(biāo)準(zhǔn)流程代碼是二分組,多分組數(shù)據(jù)的分析后面另講
      # 生成Group向量的三種常規(guī)方法,三選一,選誰就把第幾個(gè)邏輯值寫成T,另外兩個(gè)為F。如果三種辦法都不適用,可以繼續(xù)往后寫else if
      if(F){
        # 1.Group----
        # 第一種方法,有現(xiàn)成的可以用來分組的列
        Group = pd$`disease state:ch1` 
      }else if(F){
        # 第二種方法,自己生成
        Group = c(rep("RA",times=13),
         rep("control",times=9))
        Group = rep(c("RA","control"),times = c(13,9))
      }else if(T){
        # 第三種方法,使用字符串出理的函數(shù)獲取分組
        Group=ifelse(str_detect(pd$source_name_ch1,"control"),
         "control",
         "RA")
      }

      # 需要把Group轉(zhuǎn)換成因子,并設(shè)置參考水平,指定levels,對照組在前,處理組在后
      Group = factor(Group,levels = c("control","RA"))
      Group

      #2.探針注釋的獲取-----------------
      #捷徑
      library(tinyarray) # 這個(gè)包為生信技能樹老師所寫
      find_anno(gpl_number)
      ids <- AnnoProbe::idmap('GPL570')
      #四種方法,方法1里找不到就從方法2找,以此類推。
      #方法1 BioconductorR包(最常用)
      gpl_number 
      #http://www./1399.html
      if(!require(hgu133plus2.db))BiocManager::install("hgu133plus2.db")
      library(hgu133plus2.db)
      ls("package:hgu133plus2.db")
      ids <- toTable(hgu133plus2SYMBOL)
      head(ids)
      # 方法2 讀取GPL網(wǎng)頁的表格文件,按列取子集
      ##https://www.ncbi.nlm./geo/query/acc.cgi?acc=GPL570
      if(F){
        #注:表格讀取參數(shù)、文件列名不統(tǒng)一,活學(xué)活用,有的表格里沒有symbol列,也有的GPL平臺沒有提供注釋表格
        b = read.table("GPL570-55999.txt",header = T,
        quote = "\"",sep = "\t",check.names = F)
        colnames(b)
        ids2 = b[,c("ID","Gene Symbol")]
        colnames(ids2) = c("probe_id","symbol")
        ids2 = ids2[ids2$symbol!="" & !str_detect(ids2$symbol,"http:///"),]
      }

      # 方法3 官網(wǎng)下載注釋文件并讀取
      ##http://www./support/technical/byproduct.affx?product=hg-u133-plus
      # 方法4 自主注釋 
      #https://mp.weixin.qq.com/s/mrtjpN8yDKUdCSvSUuUwcA
      save(exp,Group,ids,gse_number,file = "step2output.Rdata")

      3.PCA和熱圖

      Q:畫PCA和熱圖需要使用什么樣的數(shù)據(jù),使用什么函數(shù)呢? A:(1)PCA:加載FactoMineR和factoextra包,使用PCA()和 fviz_pca_ind()函數(shù);數(shù)據(jù):需要對exp矩陣進(jìn)行t轉(zhuǎn)換,將行名設(shè)置為樣本名,列名設(shè)置為基因名,并轉(zhuǎn)換成數(shù)據(jù)框的形式,此外,這里還需要輸入分組信息。 (2)熱圖:加載pheatmap()包,數(shù)據(jù)一般使用log(count+1),這樣畫出來的圖較顯著。

      rm(list = ls())  
      load(file = "step1output.Rdata")
      load(file = "step2output.Rdata")
      #輸入數(shù)據(jù):exp和Group
      #Principal Component Analysis
      #http://www./english/articles/31-principal-component-methods-in-r-practical-guide/112-pca-principal-component-analysis-essentials

      # 1.PCA 圖----
      dat=as.data.frame(t(exp))
      library(FactoMineR)
      library(factoextra) 
      dat.pca <- PCA(dat, graph = FALSE)
      pca_plot <- fviz_pca_ind(dat.pca,
       geom.ind = "point"# show points only (nbut not "text")
       col.ind = Group, # color by groups
       palette = c("#00AFBB""#E7B800"),
       addEllipses = TRUE# Concentration ellipses
       legend.title = "Groups"
      )
      pca_plot
      save(pca_plot,file = "pca_plot.Rdata")

      # 2.top 1000 sd 熱圖---- 
      cg=names(tail(sort(apply(exp,1,sd)),1000))
      n=exp[cg,]

      # 直接畫熱圖,對比不鮮明
      library(pheatmap)
      annotation_col=data.frame(group=Group)
      rownames(annotation_col)=colnames(n) 
      pheatmap(n,
         show_colnames =F,
         show_rownames = F,
         annotation_col=annotation_col
      )

      # 按行標(biāo)準(zhǔn)化
      pheatmap(n,
         show_colnames =F,
         show_rownames = F,
         annotation_col=annotation_col,
         scale = "row",
         breaks = seq(-3,3,length.out = 100)
         ) 
      dev.off()

      # 關(guān)于scale的進(jìn)一步學(xué)習(xí):zz.scale.R

      按行標(biāo)準(zhǔn)化

      關(guān)于scale的進(jìn)一步學(xué)習(xí)

      上面的因?yàn)樾忻腔?,所以對行進(jìn)行標(biāo)準(zhǔn)化,是為了讓基因在不同的樣本中進(jìn)行標(biāo)準(zhǔn)化。

      require(stats)
      # 1.示例數(shù)據(jù)
      x <- matrix(sample(1:30,30), ncol = 6)
      rownames(x) = paste0("gene",1:5)
      colnames(x) = paste0("sample",1:6)

      # 2.標(biāo)準(zhǔn)化
      scale(x) #函數(shù)只能按列標(biāo)準(zhǔn)化,但是我們需要按行
      x
      y = t(scale(t(x)))

      # 3.標(biāo)準(zhǔn)化前后,某gene的表達(dá)量點(diǎn)圖比較,大小趨勢不變。

      par(mfrow = c(2,2))
      plot(x[1,])
      plot(y[1,])
      plot(x[2,])
      plot(y[2,])

      zz.去重方式

      Q:為什么要去重,各種去重方法對結(jié)果有什么影響 A:去重是因?yàn)樾忻胁荒苡兄貜?fù)值,所以需要先將基因名去重,然后再將這個(gè)基因名作為行名。各種去重方法沒有好壞的定論,一般都可以使用

      rm(list = ls())
      load("step2output.Rdata")
      #保留最大值
      exp2 = exp[ids$probe_id,]
      identical(ids$probe_id,rownames(exp2))
      ids = ids[order(rowSums(exp2),decreasing = T),]
      ids = ids[!duplicated(ids$symbol),];nrow(ids)
      # 拿這個(gè)ids去inner_join

      #求平均值
      rm(list = ls())
      load("step2output.Rdata")
      exp3 = exp[ids$probe_id,]
      rownames(exp3) = ids$symbol
      exp3[1:4,1:4]
      exp4 = limma::avereps(exp3)

      # 此時(shí)拿到的exp4已經(jīng)是一個(gè)基因?yàn)樾忻谋磉_(dá)矩陣,直接差異分析,不再需要inner_join 

      4.GEG

      在這個(gè)部分才進(jìn)行id轉(zhuǎn)換,不過也可以提到熱圖之前,不過在求差異基因后,再進(jìn)行ID轉(zhuǎn)換,熱圖可以直接畫上調(diào)和下調(diào)基因了

      rm(list = ls()) 
      load(file = "step2output.Rdata")
      #差異分析,用limma包來做
      #需要表達(dá)矩陣和Group,不需要改
      library(limma)
      design=model.matrix(~Group)
      fit=lmFit(exp,design)
      fit=eBayes(fit)
      deg=topTable(fit,coef=2,number = Inf)

      #為deg數(shù)據(jù)框添加幾列
      #1.加probe_id列,把行名變成一列
      library(dplyr)
      deg <- mutate(deg,probe_id=rownames(deg))
      #2.加上探針注釋
      ids = ids[!duplicated(ids$symbol),]
      #其他去重方式在zz.去重方式.R
      deg <- inner_join(deg,ids,by="probe_id")
      nrow(deg)

      #3.加change列,標(biāo)記上下調(diào)基因
      logFC_t=1
      P.Value_t = 0.05
      k1 = (deg$P.Value < P.Value_t)&(deg$logFC < -logFC_t)
      k2 = (deg$P.Value < P.Value_t)&(deg$logFC > logFC_t)
      deg <- mutate(deg,change = ifelse(k1,"down",ifelse(k2,"up","stable")))
      table(deg$change)
      #4.加ENTREZID列,用于富集分析(symbol轉(zhuǎn)entrezid,然后inner_join)
      library(clusterProfiler)
      library(org.Hs.eg.db)
      s2e <- bitr(deg$symbol, 
         fromType = "SYMBOL",
         toType = "ENTREZID",
         OrgDb = org.Hs.eg.db)#人類
      #其他物種http:///packages/release/BiocViews.html#___OrgDb
      deg <- inner_join(deg,s2e,by=c("symbol"="SYMBOL"))
      save(Group,deg,logFC_t,P.Value_t,gse_number,file = "step4output.Rdata")

      5.繪圖

      Q1:畫火山圖需要什么數(shù)據(jù) A1:需要差異分析后的數(shù)據(jù),即DESeq2、edgeR、limma分析后的數(shù)據(jù),需要使用logFC、P.Value。需要加載ggplot2包

      Q2:如何畫基因的相關(guān)性圖? A2:需要加載corrplot包,然后篩選自己想要的基因和它在各組的表達(dá)量,M = cor(t(exp[g,])),具體看代碼

      Q3:如何拼圖? A3:如果使用ggplot2畫出來的圖,可以加載patchwork包,如果是其他,可以使用plot_grid()函數(shù),具體如下

      rm(list = ls()) 
      load(file = "step1output.Rdata")
      load(file = "step4output.Rdata")
      #1.火山圖----
      library(dplyr)
      library(ggplot2)
      dat  = deg[!duplicated(deg$symbol),]

      p <- ggplot(data = dat, 
         aes(x = logFC, 
       y = -log10(P.Value))) +
        geom_point(alpha=0.4, size=3.5
       aes(color=change)) +
        ylab("-log10(Pvalue)")+
        scale_color_manual(values=c("blue""grey","red"))+
        geom_vline(xintercept=c(-logFC_t,logFC_t),lty=4,col="black",lwd=0.8) +
        geom_hline(yintercept = -log10(P.Value_t),lty=4,col="black",lwd=0.8) +
        theme_bw()
      p

      for_label <- dat%>% 
        filter(symbol %in% c("HADHA","LRRFIP1"))

      volcano_plot <- p +
        geom_point(size = 3, shape = 1, data = for_label) +
        ggrepel::geom_label_repel(
       aes(label = symbol),
       data = for_label,
       color="black"
        )
      volcano_plot

      #2.差異基因熱圖----

      load(file = 'step2output.Rdata')
      # 表達(dá)矩陣行名替換
      exp = exp[dat$probe_id,]
      rownames(exp) = dat$symbol
      if(F){
        #全部差異基因
        cg = dat$symbol[dat$change !="stable"]
        length(cg)
      }else{
        #取前10上調(diào)和前10下調(diào)
        library(dplyr)
        dat2 = dat %>%
       filter(change!="stable") %>%
       arrange(logFC)
        cg = c(head(dat2$symbol,10),
         tail(dat2$symbol,10))
        }
      n=exp[cg,]
      dim(n)

      #差異基因熱圖
      library(pheatmap)
      annotation_col=data.frame(group=Group)
      rownames(annotation_col)=colnames(n) 
      heatmap_plot <- pheatmap(n,show_colnames =F,
       scale = "row",
       #cluster_cols = F, 
       annotation_col=annotation_col,
       breaks = seq(-3,3,length.out = 100)

      heatmap_plot
      #拼圖
      library(patchwork)
      library(ggplotify)
      volcano_plot +as.ggplot(heatmap_plot)

      # f <- volcano_plot +as.ggplot(heatmap_plot)
      # ggsave(f,filename = "./pin.pdf",width = 15,height = 15)

      # 3.感興趣基因的相關(guān)性----
      library(corrplot)
      g = deg$symbol[1:10# 換成自己感興趣的基因
      g

      M = cor(t(exp[g,]))
      pheatmap(M)

      library(paletteer)
      my_color = rev(paletteer_d("RColorBrewer::RdYlBu"))
      my_color = colorRampPalette(my_color)(10)
      corrplot(M, type="upper",
         method="pie",
         order="hclust"
         col=my_color,
         tl.col="black"
         tl.srt=45)
      library(cowplot)
      cor_plot <- recordPlot() 

      # 拼圖
      load("pca_plot.Rdata")
      plot_grid(pca_plot,cor_plot,
       volcano_plot,heatmap_plot$gtable)
      dev.off()
      #保存
      pdf("deg.pdf")
      plot_grid(pca_plot,cor_plot,
       volcano_plot,heatmap_plot$gtable)
      dev.off()

      火山圖

      在火山圖的基礎(chǔ)上,找到特定的基因

      差異基因熱圖

      將火山圖和熱圖拼起來

      感興趣基因的相關(guān)性

      進(jìn)一步拼圖

      6.富集分析(可看RNA_Seq和多個(gè)芯片分析,那里畫的圖好看)

      #富集分析所有圖表默認(rèn)都是用p.adjust,富集不到可以退而求其次用p值,在文中說明即可 Q:富集分析需要使用到什么數(shù)據(jù) A:(1)如果僅僅是畫條帶圖和氣泡圖,那么只使用基因的ENTREZID值即可;(2)如果需要畫弦圖(Goplot包),需要Term,logFC,symbol (3)畫Heatmap-like functional classification,Gene-Concept Network,需要geneList 和ego。 (4)畫。

      rm(list = ls())  
      load(file = 'step4output.Rdata')
      library(clusterProfiler)
      library(ggthemes)
      library(org.Hs.eg.db)
      library(dplyr)
      library(ggplot2)
      library(stringr)
      library(enrichplot)

      # 1.GO 富集分析----

      #(1)輸入數(shù)據(jù)
      gene_up = deg$ENTREZID[deg$change == 'up'
      gene_down = deg$ENTREZID[deg$change == 'down'
      gene_diff = c(gene_up,gene_down)

      #(2)富集
      #以下步驟耗時(shí)很長,設(shè)置了存在即跳過
      if(!file.exists(paste0(gse_number,"_GO.Rdata"))){
        ego <- enrichGO(gene = gene_diff,
         OrgDb= org.Hs.eg.db,
         ont = "ALL",
         readable = TRUE)
        ego_BP <- enrichGO(gene = gene_diff,
         OrgDb= org.Hs.eg.db,
         ont = "BP",
         readable = TRUE)
        #ont參數(shù):One of "BP", "MF", and "CC" subontologies, or "ALL" for all three.
        save(ego,ego_BP,file = paste0(gse_number,"_GO.Rdata"))
      }
      load(paste0(gse_number,"_GO.Rdata"))  ## 這個(gè)很有用

      #(3)可視化
      #條帶圖
      barplot(ego)
      #氣泡圖
      dotplot(ego)

      dotplot(ego, split = "ONTOLOGY", font.size = 10
        showCategory = 5) + 
        facet_grid(ONTOLOGY ~ ., space = "free_y",scales = "free_y") + 
        scale_y_discrete(labels = function(x) str_wrap(x, width = 45))

      #geneList 用于設(shè)置下面圖的顏色
      geneList = deg$logFC
      names(geneList)=deg$ENTREZID

      #(3)展示top通路的共同基因,要放大看。
      #Gene-Concept Network
      cnetplot(ego,categorySize="pvalue", foldChange=geneList,colorEdge = TRUE)
      cnetplot(ego, showCategory = 3,foldChange=geneList, circular = TRUE, colorEdge = TRUE)
      #Enrichment Map,這個(gè)函數(shù)最近更新過,版本不同代碼會(huì)不同

      Biobase::package.version("enrichplot")

      if(T){
        emapplot(pairwise_termsim(ego)) #新版本
      }else{
        emapplot(ego)#舊版本
      }
      #(4)展示通路關(guān)系 https://zhuanlan.zhihu.com/p/99789859
      #goplot(ego)
      goplot(ego_BP)

      #(5)Heatmap-like functional classification
      heatplot(ego,foldChange = geneList,showCategory = 8)

      # 2.KEGG pathway analysis----
      #上調(diào)、下調(diào)、差異、所有基因
      #(1)輸入數(shù)據(jù)
      gene_up = deg[deg$change == 'up','ENTREZID'
      gene_down = deg[deg$change == 'down','ENTREZID'
      gene_diff = c(gene_up,gene_down)

      #(2)對上調(diào)/下調(diào)/所有差異基因進(jìn)行富集分析

      if(!file.exists(paste0(gse_number,"_KEGG.Rdata"))){
        kk.up <- enrichKEGG(gene   = gene_up,
       organism  = 'hsa')
        kk.down <- enrichKEGG(gene   =  gene_down,
         organism  = 'hsa')
        kk.diff <- enrichKEGG(gene   = gene_diff,
         organism  = 'hsa')
        save(kk.diff,kk.down,kk.up,file = paste0(gse_number,"_KEGG.Rdata"))
      }
      load(paste0(gse_number,"_KEGG.Rdata"))

      #(3)看看富集到了嗎?https://mp.weixin.qq.com/s/NglawJgVgrMJ0QfD-YRBQg
      table(kk.diff@result$p.adjust<0.05)
      table(kk.up@result$p.adjust<0.05)
      table(kk.down@result$p.adjust<0.05)

      #(4)雙向圖
      # 富集分析所有圖表默認(rèn)都是用p.adjust,富集不到可以退而求其次用p值,在文中說明即可
      down_kegg <- kk.down@result %>%
        filter(pvalue<0.05) %>% #篩選行
        mutate(group=-1#新增列

      up_kegg <- kk.up@result %>%
        filter(pvalue<0.05) %>%
        mutate(group=1)

      source("kegg_plot_function.R")
      g_kegg <- kegg_plot(up_kegg,down_kegg)
      g_kegg
      #g_kegg +scale_y_continuous(labels = c(2,0,2,4,6))

      # 3.GSEA作kegg和GO富集分析----
      #https://www./xiaojiewanglezenmofenshen/dbwkg1/ytawgg

      #(1)查看示例數(shù)據(jù)
      data(geneList, package="DOSE")
      #(2)將我們的數(shù)據(jù)轉(zhuǎn)換成示例數(shù)據(jù)的格式
      geneList=deg$logFC
      names(geneList)=deg$ENTREZID
      geneList=sort(geneList,decreasing = T)
      #(3)GSEA富集
      kk_gse <- gseKEGG(geneList  = geneList,
         organism  = 'hsa',
         verbose   = FALSE)
      down_kegg<-kk_gse[kk_gse$pvalue<0.05 & kk_gse$enrichmentScore < 0,];down_kegg$group=-1
      up_kegg<-kk_gse[kk_gse$pvalue<0.05 & kk_gse$enrichmentScore > 0,];up_kegg$group=1
      #(4)可視化
      g2 = kegg_plot(up_kegg,down_kegg)
      g2
      # 4.能看懂的資料越來越多----
      # GSEA學(xué)習(xí)更多:https://www./docs/share/a67a180f-dd2b-4f6f-96c2-68a4b86fe862?#
      # 富集分析學(xué)習(xí)更多:http:///clusterProfiler-book/index.html
      # 弦圖:https://www./xiaojiewanglezenmofenshen/dbwkg1/dgs65p
      # GOplot:https://mp.weixin.qq.com/s/LonwdDhDn8iFUfxqSJ2Wew
      # 網(wǎng)上的資料和寶藏?zé)o窮無盡,學(xué)好R語言慢慢發(fā)掘~

      # 弦圖
      ego1 <- data.frame(ego_BP) 
      colnames(ego1)
      ego1 <- ego1[1:10,c(1,2,8,6)] 
      ego1$geneID <- str_replace_all(ego1$geneID,"/",","
      names(ego1)=c("ID","Term","Genes","adj_pval")
      ego1$Category = "BP"
      head(ego1)
      genes = data.frame(ID=deg$symbol,
       logFC=deg$logFC)
      head(genes)

      # 開始畫弦圖
      library(GOplot)
      circ <- circle_dat(ego1,genes)
      chord <- chord_dat(data=circ, genes=genes,process = ego1$Term) 

      f2 <- GOChord(chord, space = 0.01, gene.order = 'logFC', gene.space = 0.15, gene.size = 3)
      ggsave(f2,filename = "./xiantu.pdf",width = 17,height = 18)

      kegg_plot_function.R里面的代碼

      ### ---------------
      ###
      ### Create: Jianming Zeng
      ### Date: 2018-07-09 20:11:07
      ### Email: jmzeng1314@163.com
      ### Blog: http://www./
      ### Forum:  http://www./thread-1376-1-1.html
      ### CAFS/SUSTC/Eli Lilly/University of Macau
      ### Update Log: 2018-07-09  First version
      ###

      ### Update: Xiaojie Liang
      ### Date: 2021-07-12 23:38:07
      ### Email: liangxiaojiecom@163.com
      ### ---------------
      library(ggthemes)
      library(ggplot2)
      kegg_plot <- function(up.data,down.data){
        dat=rbind(up.data,down.data)
        colnames(dat)
        dat$pvalue = -log10(dat$pvalue)
        dat$pvalue=dat$pvalue*dat$group 
        
        dat=dat[order(dat$pvalue,decreasing = F),]
        
        gk_plot <- ggplot(dat,aes(reorder(Description, pvalue), y=pvalue)) +
       geom_bar(aes(fill=factor((pvalue>0)+1)),stat="identity", width=0.7, position=position_dodge(0.7)) +
       coord_flip() +
       scale_fill_manual(values=c("#0072B2""#B20072"), guide="none") +
       labs(x="", y="" ) +
       theme_pander()  +
       theme(panel.grid.major = element_blank(),
       panel.grid.minor = element_blank(),
       #axis.ticks.x = element_blank(),
       axis.line.x = element_line(size = 0.3, colour = "black"),#x軸連線
       axis.ticks.length.x = unit(-0.20"cm"),#修改x軸刻度的高度,負(fù)號表示向上
       axis.text.x = element_text(margin = margin(t = 0.3, unit = "cm")),##線與數(shù)字不要重疊
       axis.ticks.x = element_line(colour = "black",size = 0.3) ,#修改x軸刻度的線 
       axis.ticks.y = element_blank(),
       axis.text.y  = element_text(hjust=0),
       panel.background = element_rect(fill=NULL, colour = 'white')
       )
      }

      條帶圖

      點(diǎn)圖

      Gene-Concept Network

      展示通路關(guān)系

      Heatmap-like functional classification

      KEGG富集分析(針對下調(diào)和上調(diào)基因)

      GSEA畫出的圖

      弦圖

      7.STRING數(shù)據(jù)的提前準(zhǔn)備

      rm(list = ls())
      load("step4output.Rdata")
      gene_up= deg[deg$change == 'up','symbol'
      gene_down=deg[deg$change == 'down','symbol']
      gene_diff = c(gene_up,gene_down)

      # 1.制作string的輸入數(shù)據(jù)
      write.table(gene_diff,
         file="diffgene.txt",
         row.names = F,
         col.names = F,
         quote = F)
      # 從string網(wǎng)頁獲得string_interactions.tsv
      # 2.準(zhǔn)備cytoscape的輸入文件
      p = deg[deg$change != "stable",
        c("symbol","logFC")]
      head(p)
      write.table(p,
         file = "deg.txt",
         sep = "\t",
         quote = F,
         row.names = F)
      # string_interactions.tsv是網(wǎng)絡(luò)文件
      # deg.txt是屬性表格

      寫在文末

      如果你是生命科學(xué)領(lǐng)域碩博士或者博士后,但凡有導(dǎo)師經(jīng)費(fèi)支持的, 請務(wù)必至少參加一次我們的馬拉松學(xué)習(xí)課程,加入我們生信技能樹小圈子,你會(huì)發(fā)現(xiàn)科研世界從此大不一樣!對我們的馬拉松課程有其它疑惑也可以自行前往b站查看我們的課程介紹哈;

      (https://www.bilibili.com/video/BV1164y1Q7Xm )

      早報(bào)名早學(xué)習(xí),持續(xù)4周我們專業(yè)的授課團(tuán)隊(duì)等你學(xué)習(xí)!

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多