电竞比分网-中国电竞赛事及体育赛事平台

分享

TCGA數(shù)據(jù)下載與ID轉(zhuǎn)換

 公號生信小課堂 2021-10-28

咱公眾號也不能只做一個系列,所以經(jīng)過深思熟慮,打算將來慢慢增加一些內(nèi)容,主要有以下幾個系列

  1. TCGA數(shù)據(jù)分析系列

  2. GEO數(shù)據(jù)分析系列

  3. "老板給一個基因,我該怎么辦"系列

  4. 文獻閱讀系列

  5. R語言學(xué)習(xí)系列

  6. Python學(xué)習(xí)系列

今天繼續(xù)我們的TCGA數(shù)據(jù)分析系列。

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,當然你也可以選擇其他的種類,比如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ù)的差異分析。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多