咱公眾號(hào)也不能只做一個(gè)系列,所以經(jīng)過(guò)深思熟慮,打算將來(lái)慢慢增加一些內(nèi)容,主要有以下幾個(gè)系列
TCGA數(shù)據(jù)分析系列
GEO數(shù)據(jù)分析系列
"老板給一個(gè)基因,我該怎么辦"系列
文獻(xiàn)閱讀系列
R語(yǔ)言學(xué)習(xí)系列
Python學(xué)習(xí)系列
今天繼續(xù)我們的TCGA數(shù)據(jù)分析系列。
TCGA數(shù)據(jù)下載
TCGA數(shù)據(jù)下載的方式有很多,本次我們利用UCSC Xena數(shù)據(jù)庫(kù)下載數(shù)據(jù),網(wǎng)址是:https://xenabrowser.net/。該平臺(tái)內(nèi)置了一些公共數(shù)據(jù)集,比如來(lái)自TCGA, ICGC等大型癌癥研究項(xiàng)目的數(shù)據(jù),不僅可以對(duì)數(shù)據(jù)進(jìn)行分析,而且還提供了對(duì)應(yīng)文件的下載功能。
打開(kāi)后界面是這樣的
點(diǎn)擊DATA SETS,里面有很多數(shù)據(jù)集,我們選擇TCGA肝癌數(shù)據(jù)
接著我們選擇HTSeq-Count
這里可以看到值log2(count+1),為什么加一呢,因?yàn)楹芏嗷虻谋磉_(dá)值是0,無(wú)法取log。
下載下來(lái),解壓后打開(kāi)是這個(gè)樣子
接下來(lái)我們進(jìn)行差異分析
首先加載R包
rm(list = ls())#一鍵清空
#安裝并加載R包
if(length(getOption("CRAN"))==0) options(CRAN="https://mirrors.tuna.tsinghua.edu.cn/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)入表達(dá)譜數(shù)據(jù)
LIHCdata=read.table("TCGA-LIHC.htseq_counts.tsv",header=T,sep='\t')
LIHCdata[1:4,1:4]
利用我們之前講到的方法去掉ensemble ID的點(diǎn)號(hào)R語(yǔ)言學(xué)習(xí)系列之separate {tidyr}
LIHCdata1<-separate(LIHCdata,Ensembl_ID,into = c("Ensembl_ID"),sep="\\.")
LIHCdata1[1:4,1:4]
接下來(lái)我們需要對(duì)ID進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換的方法也有很多,有R包,在線數(shù)據(jù)庫(kù)。小工具等,這里我們通過(guò)下載最新版的GTF文件來(lái)進(jìn)行轉(zhuǎn)換。
首先,打開(kāi)ensembl網(wǎng)址:http://asia.ensembl.org/index.html
點(diǎn)擊Download
再點(diǎn)擊Download database
再點(diǎn)擊human的GTF文件
下載Homo_sapiens.GRCh38.99.chr.gtf.gz文件
然后放到我們R語(yǔ)言的工作目錄內(nèi),打開(kāi)文件
gtf <- rtracklayer::import('Homo_sapiens.GRCh38.99.chr.gtf.gz')
#轉(zhuǎn)換為數(shù)據(jù)框
gtf <- as.data.frame(gtf)
查看文件,保存文件為Rdata,將來(lái)方便我們直接打開(kāi)
dim(gtf)
save(gtf,file = "Homo_sapiens.GRCh38.99基因組注釋文件.Rda")
可見(jiàn)文件有290萬(wàn)行,27列,由于GTF文件中,基因ID的列名是gene_id,所以我們把LIHCdata1中的基因列名改成一樣的,方便后續(xù)合并
colnames(LIHCdata1)[1]<-'gene_id'
通過(guò)瀏覽文件看到我們需要的主要信息在
1 type,這一列我們需要選擇gene
2 gene_biotype,這一列我們需要選擇protein_coding,當(dāng)然你也可以選擇其他的種類,比如miRNA,長(zhǎng)鏈非編碼等。
所以我們首先把蛋白編碼的基因的行都篩選出來(lái)
a=dplyr::filter(gtf,type=="gene",gene_biotype=="protein_coding")
dim(a)
這個(gè)時(shí)候a文件只有19939行了,列下來(lái)我們只選擇gene_name,gene_id和gene_biotype這三列,其他都不要了
b=dplyr::select(a,c(gene_name,gene_id,gene_biotype))
b[1:4,]
接下來(lái)用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ù)取過(guò)了log2(count+1),這里我們?cè)俜祷豤ount
mRNAdata <- 2^mRNAdata -1
保存文件,大功告成!
write.csv(mRNAdata,"mRNAdata.csv",quote = F,row.names = T)
save(mRNAdata,file = "mRNAdata.Rda")
好了,今天先講到這,下回我們來(lái)進(jìn)行后續(xù)的差異分析。
聯(lián)系客服