参考:
目的:
当我们使用TCGA 表达数据,数据以gene-sample matrix形式整理好了;ICGC也是一个很大的癌症数据库,存放了几十种癌症的数据。我们需要将系数矩阵修改成gene-sample matrix形式。
-
整理后结果 :行名为基因名,列名为样本名
image
1.数据下载
https://dcc.icgc.org/releases/current/Projects/PRAD-CA
下载三个数据,用于整理表达矩阵。

-
exp_seq.PRAD-CA.tsc.gz :类似系数矩阵形式,给了原始count/归一化count
-
sample.PRAD-CA.tsv : 包含了样本/捐赠人信息
image.png
-
specimen.PRAD-CA.tsv:标记出样本是否为癌症还是癌旁。
image.png
2.数据整理
- 为了减小内存占用,提取部分有用列
cat exp_seq.PRAD-CA.tsv |cut -f 1,3,8,9 >exp_seq_PRAD-CA_simplify.txt
- 使用R 整理
###########################################
## 目的:合并多个未见,整理成基因和样本 matrix
## 时间:2020年5月17日16:42:19
## 作者:曹锴
## 目录:C:/Users/16926/Desktop/2020-1/TF-mutation/Validate_Gene/ICGC-PRAD
###########################################
setwd("C:/Users/16926/Desktop/2020-1/TF-mutation/Validate_Gene/ICGC-PRAD")
library(tidyverse)
## ----------------------------------------------------
## 1.extract sample information 读入
specimen_file <- read_delim(file="specimen.PRAD-CA.tsv",delim="\t",col_names = TRUE)
sepcimen_simplify_file <- specimen_file %>% mutate(specimen_type=ifelse(specimen_type=="Primary tumour - solid tissue","C","N")) %>%
select(1,5,7)
## ----------------------------------------------------
## 2.expression matrix 读入
exp_file <- read_delim(file = "exp_seq_PRAD-CA_simplify.txt",delim = "\t",col_names = TRUE)
## ----------------------------------------------------
## 3.将两文件合并,形成合并的表达矩阵
merge_df <- merge(exp_file,sepcimen_simplify_file,by="icgc_specimen_id",all.x=TRUE)
## gather 格式的表达数据
tmp <- merge_df[,c(1,5,6,3,4)] %>% tbl_df() %>% unite(sample_id,icgc_specimen_id,icgc_donor_id.y,specimen_type,sep="-")
## 查看捐赠者数目
length(unique(exp_file$icgc_donor_id)) # [1] 144
## 查看sample 数目
length(unique(exp_file$icgc_specimen_id)) # [1] 144
## spread 格式表达数据
## 解决spread报错:https://www.jianshu.com/p/de03346a584a
exp_matrix <- tmp %>% group_by(sample_id) %>% mutate(id=1:n()) %>%
spread(sample_id,normalized_read_count) %>% select(-"id")
-
tmp 数据
image.png
-
整理后表达矩阵:行名为基因名;列名包含了样本-捐赠人-是否为癌旁(Cancer-C ;Normal-N)
image.png
思考:
- 可以看到ICGC-PRAD-CA只有癌症表达量数据,如果sample数目大于捐赠者数目,可能会出现癌旁表达量
## 查看捐赠者数目
length(unique(exp_file$icgc_donor_id)) # [1] 144
## 查看sample 数目
length(unique(exp_file$icgc_specimen_id)) # [1] 144
- 合并表达矩阵,不推荐本地跑,可能电脑会卡死(突然内存溢出:90G)
欢迎评论留言~
网友评论