學(xué)徒和學(xué)員已經(jīng)陸續(xù)出師,是時候把生信技能樹的舞臺交給后輩了!(視頻觀看方式見文末) 下面是《GEO數(shù)據(jù)挖掘課程》的配套筆記(第二篇)了解數(shù)據(jù)挖掘
- 公共數(shù)據(jù)庫:(數(shù)據(jù)來源)
- 國際三大數(shù)據(jù)中心:
NCBI , ENSEMBL , UCSC
- 從大的數(shù)據(jù)背景中通過各種統(tǒng)計學(xué)方法得到數(shù)量大小合適的基因集找到的感興趣的基因集
- 通過各種統(tǒng)計學(xué)方法來注釋并解釋這個基因集的意義
實戰(zhàn):對文獻解讀的第三篇文章==Identification of Key Genes and Pathways in Triple-Negative Breast Cancer by Integrated Bioinformatics Analysis== 的分析過程進行重復(fù) 第一步:下載數(shù)據(jù)集 GEO數(shù)據(jù)庫基本介紹: 一篇文章可以有一個或者多個GSE數(shù)據(jù)集,一個GSE里面可以有一個或者多個 GSM樣本 ,多個研究的GSM樣本介意根據(jù)研究目的整合為一個 GDS , 不過GDS本身用得很少,而且每個數(shù)據(jù)集都有自己對應(yīng)的芯片平臺,就是GPL GEO Platform:GPL GEO Sample: GSM GEO Series: GSE GEO Dataset: GDS GEO數(shù)據(jù)庫,根據(jù)數(shù)據(jù)存放的標(biāo)簽GSE號進行查詢 找到GSE號進如GEO數(shù)據(jù)庫 進入GEO并搜索數(shù)據(jù)集點擊目標(biāo)查詢進入目標(biāo)數(shù)據(jù)集網(wǎng)頁 下載數(shù)據(jù)的詳細(xì)介紹 探針注釋平臺的位置 表達矩陣下載位置表達矩陣下載的方式: 表達矩陣下載的方法一 表達矩陣下載方式二使用GEOquery R 程序包從GEO數(shù)據(jù)庫下載 ==Note==:使用下面的代碼下載的文件都會保存到本地,destdir 參數(shù)指定數(shù)據(jù)存放的位置。此外,比較重要的三個參數(shù)為GSEMatrix=TRUE,AnnotGPL=FALSE, getGPL=TRUE #加載程序包 library(GEOquery)
#根據(jù)GDS下載soft文件 gds <- getGEO('GD858', destdir='.')
#根據(jù)GPL號下載芯片設(shè)計信息 gpl96 <- getGEO("GPL96", destdir=".")
#根據(jù)GSE號下載series_matrix.txt.gz gse1009 <- getGEO("GSE1009",dstdir=".")
- 直接下載matrix文件,點擊'Series Matrix File(s)’進入到矩陣存放位置,直接點擊下載
新建一個R.project GSE76275.Rproj 在新的project下分別創(chuàng)建每個流程的分析 總共分step0-step5 step0-install.R : 安裝需要用到的程序包 Notes: R版本高于3.5 使用BiocManager , 低于3.5用BiocInsraller rm(list = ls()) #清空當(dāng)前工作空間變量 options()$repos #查看當(dāng)前工作空間默認(rèn)的下載包路徑 options()$BioC_mirror #查看使用BioCManager下載包的默認(rèn)路徑 options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") # 指定使用BioCManager下載的路徑 options("repos" = c(CRAN="https://mirrors.tuna./CRAN/")) # 指定使用install.packages下載包的路徑 options()$repos options()$BioC_mirror
# https:///packages/release/bioc/html/GEOquery.html if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") #判斷是否存在BiocManger包,沒有的話下載該包 #判斷是否存在這些包,不存在的話安裝這些包 if(!require("KEGG.db")) BiocManager::install("KEGG.db",ask = F,update = F) if(!require("GSEABase")) BiocManager::install("GSEABase",ask = F,update = F) if(!require("GSVA")) BiocManager::install("GSVA",ask = F,update = F) if(!require("clusterProfiler")) BiocManager::install("clusterProfiler",ask = F,update = F) if(!require("GEOquery")) BiocManager::install("GEOquery",ask = F,update = F) if(!require("limma")) BiocManager::install("limma",ask = F,update = F) if(!require("impute")) BiocManager::install("impute",ask = F,update = F) if(!require("genefu")) BiocManager::install("genefu",ask = F,update = F) if(!require("org.Hs.eg.db")) BiocManager::install("org.Hs.eg.db",ask = F,update = F) if(!require("hgu133plus2.db")) BiocManager::install("hgu133plus2.db",ask = F,update = F) if(!require("ConsensusClusterPlus")) BiocManager::install("ConsensusClusterPlus",ask = F,update = F)
step1-download.R: 下載所需要的數(shù)據(jù) ##1.獲取GEO數(shù)據(jù) library(GEOquery) f = "SE76275_eSet.Rdata" #如果文件不存在則進行下載 if(! file.exist(f)){ gset <- getGEO("GSE76275", destdir=".", AnnotGPL=T, #注釋文件,可下可不下 getGPL = T) #注釋平臺,可下可不下,可以改為F save(gset,file="GSE76275_eSet.Rdata") #保存到本地 } load("GSE76275_eSet.Rdata") #載入數(shù)據(jù)
簡單對下載的數(shù)據(jù)進行了解: ExpressionSet數(shù)據(jù)形式的組成: assayData phenoData featureData experimentData protocalData
class(gset) #list類型 length(gset) #查看長度,只有一個元素 class(gset[[1]]) #取出第一個元素,并查看類型為"ExpressionSet" ?ExpressionSet #查看這個數(shù)據(jù)類型,getGEO函數(shù)的目的就是下載數(shù)據(jù),而下載的數(shù)據(jù)最終以ExpressionSet的形式存在
a<-gset[[1]] #取出該列表的第一個元素并賦值 a@experimentData #訪問不同的數(shù)據(jù)集 a@assayData
methods(class='ExpressionSet') #可用于查看該對象的操作函數(shù) dat=exprs(a) #取出對象a中的表達矩陣 dim(dat) #檢查維度,54675個探針,265個病人 dat[1:4,1:4] #查看前四行前四列
了解實驗設(shè)計: pd <- pData(a) #取出 pd$characteristics_ch1.1 #取出分組信息 ifelse(X==1,'X等于1','X不等于1') #首先判斷X是否等于1,如果X等于1,返回'X等于1'的值,否則返回'X不等于1'的值
group_list<-ifelse(pd$characteristics_ch1.1=='triple-negative status: not TN','noTNBC','TNBC') #獲得分組信息
save(dat,group_list, file='step1-output.RData')
==總結(jié)==:第一步結(jié)束之后,我們得到了連個數(shù):256個樣本在5萬個探針上的表達量,256個樣本的分組信息,此處的特征為是否是三陰性乳腺啊 step2-check.R: 檢查程序包以及數(shù)據(jù) (1) 檢查PCA分組情況 rm(list=ls()) #清空之前的一些值,避免混淆 ## 學(xué)習(xí)PCA包的示例 install.packages(c('FactoMineR','factoextra')) library(FactoMineR) library(factoextra) head(dat) dat <- t(dat) #交換行和列的位置 dat <- as.data.frame(dat) dat <- cbind(dat,group_list) #在進行PCA分析之前,變量group_list(index=54676)被移除 dat.pca <- PCA(dat[,-54676],graph = FALSE) fviz_pca_ind(dat.pca, geom.ind = "point",#僅僅展示點 col.ind=dat$group_list, #通過組群來進行染色 polette = c("red","green"), #調(diào)色盤,幾個組就設(shè)置幾個顏色 addEllipses = TRUE, #以橢圓方式集中 legend.title="Group")
PCA(2)檢查熱圖,選取其中的一小部分基因繪制熱圖 ##繪制熱圖 rm(list=ls()) load(file='step1-output.RData') dat[1:4,1:4] #為了更好的用熱圖體現(xiàn)基因的表達,需要挑選表達差異比較大的基因 #apply函數(shù)介紹 apply(mat,1,mean) #對矩陣mat的每一行求均值,第二個參數(shù)為1對行進行操作,為2則對列進行操作 apply(dat,1,sd) system.time(apply(dat, 1, sd))
cg <- names(tail(sort(apply(dat,1,sd)),1000)) #挑選sd值比較大的基因 library(pheatmap) n <- t(scale(t(dat[cg,]))) n[n>2]=2 n[n<-2]=-2 pheatmap(n, show_rownames = F,show_colnames = F) #scale,對樣本進行均一化 ac <-data.frame(g=group_list) #添加分組信息 rownames(ac) = colnames(n) pheatmap(n, show_rownames = F,show_colnames = F, annotation_col = ac)
heatmap_top1000_sd后面將詳細(xì)介紹以下三個分析 step3-DEG.R: 表達差異性分析 step4-Annotation.R: 找出差異基因之后,看下這些差異基因?qū)儆谀男┩?/p> step5-wgcna.R
我把3年前的收費視頻課程:3年前的GEO數(shù)據(jù)挖掘課程你可以聽3小時或者3天甚至3個月,免費到B站:
- 這個課程超級棒,B站免費學(xué)習(xí)咯:https://m.bilibili.com/video/BV1dy4y1C7jz
- 配套代碼在GitHub哈:https://github.com/jmzeng1314/GSE76275-TNBC
- TCGA數(shù)據(jù)庫挖掘,代碼在:https://github.com/jmzeng1314/TCGA_BRCA
- GTEx數(shù)據(jù)庫挖掘,代碼在:https://github.com/jmzeng1314/gtex_BRCA
- METABRIC數(shù)據(jù)庫挖掘,代碼在:https://github.com/jmzeng1314/METABRIC
然后馬上就有了3千多學(xué)習(xí)量,而且有學(xué)員給出來了圖文并茂版本萬字筆記,讓我非常感動!
掃描下面二維碼馬上就可以學(xué)習(xí)起來啦,筆記需要至少半個小時來閱讀哦!
|