生信-使用R语言将gdc数据转化为基因表达矩阵

gdc-client下载数据后,接下来,我们可以尝试把gdc数据转化为基因表达矩阵,这里需要对原始数据文件进行加工处理

1.准备工作

创建一个工作目录,将样本文件夹放在all文件夹下
在本地选择一个文件夹:f:/gdc/,打开R-Studio

# 设置目录
setwd("f:/gdc/")
# 获取当前目录
getwd()
# 新建文件夹all,zip,unzip,
# 想要的效果:all放所有样本文件,zip放目标的压缩文件,unzip放目标文件
dir.create('all')
dir.create('zip')
dir.create('unzip')

将所有样本文件夹中的放到all文件夹下


所有样本文件

文件结构需要了解一下,打开以上任意一个文件夹,我们的目标只需要counts.gz的压缩包里边的文件,所以这里需要进行文件预处理


样本文件

2.文件预处理

all文件夹中的所有文件,提取出里边的压缩文件到zip文件夹

setwd("f:/gdc/all")
getwd()

# 不要遍历文件内的文件,直接循环一次就够了
allFolder<-list.dirs(".",TRUE,FALSE)
# allFolder下每一个文件由压缩包+log文件夹组成(如上图),这里只需要将压缩包拿出来

for(f in allFolder){
# x.path为f所在的文件下文件的文件路径,paste作用是拼接n与list.files(n),
# 并使用sep做连接词组成路径
  x.path=paste(f,list.files(f),sep='/')
  # 再深入,获取压缩文件(忽略logs文件夹),并拷贝到'f:/gdc/zip'路径
  for(filePath in x.path){
    if(file_test("-f", filePath)){
      file.copy(filePath,'f:/gdc/zip',recursive = T)
    }
  }
}
zip效果图

将这些压缩文件,使用系统的解压工具,手动解压到unzip文件夹下


使用系统解压工具进行手工解压

等待ing

得到最后能够进行数据处理的数据集


最终想要的数据集

3.数据处理

将这些文件里面的数据合并成想要的基因表达矩阵

setwd("f:/gdc/unzip")
getwd()
x_merge=NULL
i<-list.files()
#merge所有的文件为x_merge,即x坐标为每一个文件名,y坐标为文件对应的值,
# 举例 A B C三个文件,A有数据h1:1,h2:2,h3:3,B有数据h1:1,h2:1,h3:1,C有数据h1:3,h2:3,h3:3
# 那么merge后就是y坐标为h1,h2,h3,x坐标为A,B,C,对应坐标值即数据值,例如(A,h1)数据为1

for(n in i){
  x=read.delim(n,col.names = c('ID',substr(n,1,9)))
  if(is.null(x_merge)){
    x_merge=x
  }
  else{
    x_merge=merge(x_merge,x,by='ID')
  }
}

rownames(x_merge)<-x_merge$ID

首先理解一下,原本counts文件里边的数据代表什么,有什么用


counts文件的数据

所有counts合并后的数据集:x_merge


x_merge

4.演示例子

# 演示:获取最后五个,并输出前3列前10行的数据表格
x_reduce=x_merge[-(1:5),]
x_reduce=x_reduce[,-1]
rownames(x_reduce)=x_merge$ID[-c(1:5)]

head(x_reduce,10)[,1:3]

演示:获取最后五个,并输出前3列前10行的数据表格


演示例子

5. R脚本大放送

#获取当前目录
setwd("f:/gdc/")
getwd()
#新建文件夹all,将所有样本文件夹中的压缩数据移动到all文件夹下
dir.create('all')
dir.create('zip')
dir.create('unzip')

# 手动把之前的所有文件放在all下
setwd("f:/gdc/all")
getwd()

# 不要遍历文件内的文件,直接循环一次就够了
allFolder<-list.dirs(".",TRUE,FALSE)
# allFolder下每一个文件由压缩包+log文件夹组成,这里只需要将压缩包拿出来

for(f in allFolder){
  
# x.path为f所在的文件下文件的文件路径,paste作用是拼接n与list.files(n),并使用sep做连接词
# 组成路径
  x.path=paste(f,list.files(f),sep='/')
  # 获取压缩文件,并拷贝到'f:/gdc/zip'路径
  for(filePath in x.path){
    if(file_test("-f", filePath)){
      file.copy(filePath,'f:/gdc/zip',recursive = T)
    }
  }
}

# 将zip中的压缩文件,全选,右键使用解压工具全部解压到另外一个路径f:/gdc/unzip"
setwd("f:/gdc/unzip")
getwd()
x_merge=NULL
i<-list.files()
#merge所有的文件为x_merge,即x坐标为每一个文件名,y坐标为文件对应的值,
# 举例 A B C三个文件,A有数据h1:1,h2:2,h3:3,B有数据h1:1,h2:1,h3:1,C有数据h1:3,h2:3,h3:3
# 那么merge后就是y坐标为h1,h2,h3,x坐标为A,B,C,对应坐标值即数据值,例如(A,h1)数据为1

for(n in i){
  x=read.delim(n,col.names = c('ID',substr(n,1,9)))
  if(is.null(x_merge)){
    x_merge=x
  }
  else{
    x_merge=merge(x_merge,x,by='ID')
  }
}

rownames(x_merge)<-x_merge$ID

# 获取最后五个
x_reduce=x_merge[-(1:5),]
x_reduce=x_reduce[,-1]
rownames(x_reduce)=x_merge$ID[-c(1:5)]

head(x_reduce,10)[,1:3]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341