今天繼續(xù)我們的TCGA數(shù)據(jù)分析系列。
TCGA數(shù)據(jù)下載的方式有很多,本次我們利用UCSC Xena數(shù)據(jù)庫下載數(shù)據(jù),網(wǎng)址是:https:///。該平臺內(nèi)置了一些公共數(shù)據(jù)集,比如來自TCGA, ICGC等大型癌癥研究項目的數(shù)據(jù),不僅可以對數(shù)據(jù)進行分析,而且還提供了對應(yīng)文件的下載功能。 打開后界面是這樣的 點擊DATA SETS,里面有很多數(shù)據(jù)集,我們選擇TCGA肝癌數(shù)據(jù) 接著我們選擇HTSeq-Count 這里可以看到值log2(count+1),為什么加一呢,因為很多基因的表達值是0,無法取log。 下載下來,解壓后打開是這個樣子 接下來我們進行差異分析 首先加載R包 rm(list = ls())#一鍵清空 #安裝并加載R包 if(length(getOption("CRAN"))==0) options(CRAN="https://mirrors.tuna./CRAN/") if(!require("rtracklayer")) BiocManager::install("rtracklayer") if(!require("tidyr")) BiocManager::install("tidyr") if(!require("dplyr")) BiocManager::install("dplyr") if(!require("DESeq2")) BiocManager::install("DESeq2") if(!require("limma")) BiocManager::install("limma") if(!require("edgeR")) BiocManager::install("edgeR") 讀取數(shù)據(jù) #導(dǎo)入表達譜數(shù)據(jù) LIHCdata=read.table("TCGA-LIHC.htseq_counts.tsv",header=T,sep='\t') LIHCdata[1:4,1:4] 利用我們之前講到的方法去掉ensemble ID的點號R語言學(xué)習(xí)系列之separate {tidyr} LIHCdata1<-separate(LIHCdata,Ensembl_ID,into = c("Ensembl_ID"),sep="\\.") LIHCdata1[1:4,1:4] 接下來我們需要對ID進行轉(zhuǎn)換,轉(zhuǎn)換的方法也有很多,有R包,在線數(shù)據(jù)庫。小工具等,這里我們通過下載最新版的GTF文件來進行轉(zhuǎn)換。 首先,打開ensembl網(wǎng)址:http://asia./index.html 點擊Download 再點擊Download database 再點擊human的GTF文件 下載Homo_sapiens.GRCh38.99.chr.gtf.gz文件 然后放到我們R語言的工作目錄內(nèi),打開文件 gtf <- rtracklayer::import('Homo_sapiens.GRCh38.99.chr.gtf.gz') #轉(zhuǎn)換為數(shù)據(jù)框 gtf <- as.data.frame(gtf) 查看文件,保存文件為Rdata,將來方便我們直接打開 dim(gtf) save(gtf,file = "Homo_sapiens.GRCh38.99基因組注釋文件.Rda") 可見文件有290萬行,27列,由于GTF文件中,基因ID的列名是gene_id,所以我們把LIHCdata1中的基因列名改成一樣的,方便后續(xù)合并 colnames(LIHCdata1)[1]<-'gene_id' 通過瀏覽文件看到我們需要的主要信息在 1 type,這一列我們需要選擇gene 2 gene_biotype,這一列我們需要選擇protein_coding,當(dāng)然你也可以選擇其他的種類,比如miRNA,長鏈非編碼等。 所以我們首先把蛋白編碼的基因的行都篩選出來 a=dplyr::filter(gtf,type=="gene",gene_biotype=="protein_coding") dim(a) 這個時候a文件只有19939行了,列下來我們只選擇gene_name,gene_id和gene_biotype這三列,其他都不要了 b=dplyr::select(a,c(gene_name,gene_id,gene_biotype)) b[1:4,] 接下來用LIHCdata1和b文件中共有的gene_id列還合并文件 c=dplyr::inner_join(b,LIHCdata1,by ="gene_id") c[1:5,1:5] 再去掉第2,3列,基因名再去重 d=select(c,-gene_id,-gene_biotype) mRNAdata=distinct(d,gene_name,.keep_all = T) 把行名由數(shù)字換成基因 rownames(mRNAdata)<- mRNAdata[,1] mRNAdata<-mRNAdata[,-1] 我們下載的數(shù)據(jù)取過了log2(count+1),這里我們再返回count mRNAdata <- 2^mRNAdata -1 保存文件,大功告成! write.csv(mRNAdata,"mRNAdata.csv",quote = F,row.names = T) save(mRNAdata,file = "mRNAdata.Rda") 好了,今天先講到這,下回我們來進行后續(xù)的差異分析。 |
|