TCGA差异表达分析|2022.5.1更新
作者:Squirrelity
2022-07-18 補充說明
最近R更新了,很多包都用不了,如果遇到報錯或者是運行不了有可能是因為版本問題。
一、加載對應的R包
這里用到十三個包(距離上次更新之后又新增了不少方法/包):
光下載都費了不少功夫www,下面把install代碼放出來(。・?・)ノ゙直接install.packages()日常失敗我就不說了
大部分包都可以在bioconductor中找到,有遺漏的可以去官網找下載代碼
https://bioconductor.org/
在使用之前需要加載BIocManager,代碼參考這個:https://bioconductor.org/install/
if (!require("BiocManager", quietly = TRUE))install.packages("BiocManager") BiocManager::install(version = "3.15")若提示warning:A version of this package for your version of R might be available elsewhere,see the ideas at
https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages
可以的解決方法有:
1.乖乖在官網下載cran(最不推薦)
2.在Rstudio上方的tools-global options處找到packages,修改默認的global cran,選擇apply-ok即可
3.找到包的官網,用官網提供的代碼下載(首推???)
二、下載數據
在下載之前設置工作路徑:
dir.create()創建目錄,getwd()獲取工作路徑,setwd()設置工作路徑,由于TCGA下載下來的數據包都挺大的,建議還是選一個比較富裕的盤來作為工作路徑。
這里用到的是R包TCGAbiolinks:
可以參照R包TCGAbiolinks官網使用http://www.bioconductor.org/packages/release/bioc/vignettes/TCGAbiolinks/inst/doc/casestudy.html#Case_study_n_1:_Pan_Cancer_downstream_analysis_BRCA
示例:
project選出的是腫瘤項目,而里面用到的都是縮寫,詳見https://blog.csdn.net/Squirrelity/article/details/124259330?spm=1001.2014.3001.5501
建議去TCGA官網repository一邊對照著選所需要的樣本
https://portal.gdc.cancer.gov/repository?facetTab=cases
三、ID轉換
下載下來的BRCA.RNAseq_CorOutliers為ENTREZID,而我們肯定是需要圖片顯示基因名而不是ENTREZID,因此進行數據轉換,這里用到包括但不限于的dplyr包和rtracklayer包
ID轉換分為四步:
1.導入數據:BRCA.RNAseq_CorOutliers和人類基因組注釋文件;
對照人類基因組注釋文件,對BRCA.RNAseq_CorOutliers進行ID轉換
其中,人類基因組注釋文件參考http://www.360doc.com/content/21/1028/10/77506210_1001626502.shtml
2.數據預處理
#ENTREZID帶有,這里去除小數點及后邊的數字(我用excel處理的,ctrl+F無字符替換.*) data1 <- separate(data,gene_id,into = c("gene_id"),sep="\\.")3.數據處理
#根據gene id 合并文件 c = dplyr::inner_join(b,data,by="gene_id") #去掉2,3列,基因名再去重 d=select(c,-gene_id,-gene_biotype) data1=distinct(d,gene_name,.keep_all = T) #把行名由數字換成基因 rownames(data1)<- data1[,1] data1<-data1[,-1]4.數據后處理
#如下載的數據取了log2(count-1)這里再返回count data2 <- 2^data1 -1 write.csv(data2,file="data2.csv") data2 <- read.csv("data2.csv") #重新用read打開整行的-會變成.因此需要恢復原來的行名 colnames(data2) <- colnames(BRCA.RNAseq_CorOutliers)四、差異表達分析
1.參考網址
代碼示例參考這個包的文檔http://bioconductor.org/packages/release/bioc/html/TCGAbiolinks.html
TCGA可視化教程
https://www.jianshu.com/p/d3e481f0187a
https://cloud.tencent.com/developer/article/1778874
http://bioconductor.org/packages/release/bioc/vignettes/TCGAbiolinks/inst/doc/casestudy.html
2.數據預處理
#處理后可得熱圖判斷樣本相似性 dataPrep <- TCGAanalyze_Preprocessing(object = BRCA.RNAseq_CorOutliers, cor.cut = 0.6 )*上面代碼生成的圖如下所示。組內的樣本相似性都很高,符合預期。
3.對數據進行標準化處理+質控+差異化分析
**TCGAanalyze_LevelTab()**將差異表達基因在正常和腫瘤組織中的表達量數據添加到差異表達分析結果中的主要用法:
得到的dataDEGsFiltLevel文件按logFC絕對值排序可得最顯著的top差異表達基因(excel表處理)
五、可視化
ps:得到的圖片有的可以直接看,有的保存在工作路徑上了。
1.PCA主成分分析
TCGAvisualize_PCA()實現主成分分析的主要用法:
TCGAvisualize_PCA(dataFilt, dataDEGsFiltLevel, ntopgenes, group1, group2) #標準化 dataNorm <- TCGAbiolinks::TCGAanalyze_Normalization(data2, geneInfo)#質量控制 dataFilt <- TCGAanalyze_Filtering(tabDF = dataNorm,method = "quantile", qnt.cut = 0.25)#選擇正常樣本 group1 <- TCGAquery_SampleTypes(colnames(dataFilt), typesample = c("NT")) #選擇癌癥樣本 group2 <- TCGAquery_SampleTypes(colnames(dataFilt), typesample = c("TP"))#Principal Component Analysis plot for ntop selected DEGs pca.top200 <- TCGAvisualize_PCA(dataFilt,dataDEGsFiltLevel, ntopgenes = 200,group1, group2)上面代碼生成的圖如下所示。
2.火山圖
#為了做圖的需要,突出顯示logFC≥8的gene名稱 DEG.BRCA.filt<-dataDEGs[which(abs(dataDEGs$logFC) >= 8), ] str(DEG.BRCA.filt) #'data.frame': 29 obs. of 5 variables: #說明共有29個基因滿足|logFC|≥8TCGAVisualize_volcano(dataDEGs$logFC, dataDEGs$FDR,filename = "TumorvsNormal_FC8.edgeR.pdf", xlab = "logFC",names = rownames(dataDEGs), show.names = "highlighted",x.cut = 1, y.cut = 0.01, highlight = rownames(dataDEGs)[which(abs(DEG.LIHC.edgeR$logFC) >= 8)],highlight.color = "orange",title = "volcano plot by edgeR")上面代碼生成的圖如下所示。突出顯示了logFC≥8的gene名稱
3.GO功能分析條形圖
TCGAbiolinks 輸出條形圖,其中包含三個本體的主要類別(分別為GO:生物過程、GO:細胞成分和GO:分子功能)的基因數量。
上面代碼生成的圖如下所示。
總結
以上是生活随笔為你收集整理的TCGA差异表达分析|2022.5.1更新的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁金服面试及笔试(附自己的答案)
- 下一篇: 【洛谷P4084】Barn Painti