01072019 更新
所以說(shuō)單位發(fā)了一個(gè)頂配的Mac Pro,然后隨意Run了下,輕松讀進(jìn)去了。
rt<-read.table("GTEx_Analysis_2016-01-15_v7_RNASeQCv1.1.8_gene_tpm.gct", skip = 2, header = TRUE, sep = "\t")
=============
GTEx數(shù)據(jù)庫(kù)不用多說(shuō),我下載下來(lái)了表達(dá)數(shù)據(jù)為gct格式文件但是特別大,怎么辦。腳本語(yǔ)言perl和python都剛學(xué)還不會(huì),所以就準(zhǔn)備用R來(lái)操作。
我的目的非常簡(jiǎn)單,提取GTEx中肝組織的表達(dá)數(shù)據(jù)。因此我下載了gct的表達(dá)數(shù)據(jù),和組織的生物學(xué)信息從中獲取了liver組織的ID。下載網(wǎng)址為:https://gtexportal.org/home/datasets
要注意代碼中,ID編號(hào)的連接符的一致性因?yàn)镽會(huì)默認(rèn)把列名中的連接符-變?yōu)?,所以要注意替換 或者要加上check.names=F。
我使用了兩個(gè)文件:liver.csv這里是肝細(xì)胞的ID,從GTEx下載的數(shù)據(jù)提取出來(lái)的,GTEx_Analysis_2016-01-15_v7_RNASeQCv1.1.8_gene_tpm.gct這個(gè)是GTEx下載的表達(dá)數(shù)據(jù)。
我參考了這個(gè)教程:https://blog.csdn.net/u012432611/article/details/50224015
然后自己寫了個(gè)循環(huán)構(gòu)建了classes變量。
liverid<-read.csv("liver.csv",header=T)
liverid<-as.character(liverid[,1])
rt<-read.table("GTEx_Analysis_2016-01-15_v7_RNASeQCv1.1.8_gene_tpm.gct", skip = 2, header = TRUE, sep = "\t",nrow=5,check.names=F)
liverid<-intersect(colnames(rt),liverid)
c<-vector()
a<-colnames(rt)
for (i in 1:length(liverid)){
? b<-which(a==liverid[i])
? c<-c(c,b)
}
d<-c
classes <- sapply(rt, class)
classes[d] <- rep("NULL", length(classes)-length(d))
rtt<-read.table("GTEx_Analysis_2016-01-15_v7_RNASeQCv1.1.8_gene_tpm.gct", skip = 2, header = TRUE, sep = "\t",colClasses=classes, check.names=F)
write.csv(rtt,"liver_GTEx_expression.csv")