METABRIC 数据下载和处理
1. 下载数据
从cbioportal下载整理好的数据
2. 查看数据
3. 读取数据
data_clinical_sample.txt
data_clinical_patient.txt
data_mrna_illumina_microarray_zscores_ref_diploid_samples.txt
## 1.清洗数据
rm(list = ls())
options(stringsAsFactors = F)
library(tidyverse)
## 读取甲状腺的临床数据
cl <- data.table::fread("./brca_metabric/data_clinical_sample.txt",data.table = F,skip = 4)
OS <- data.table::fread("./brca_metabric/data_clinical_patient.txt",data.table = F,skip = 4)
names(cl)
## [1] "PATIENT_ID" "SAMPLE_ID" "CANCER_TYPE"
## [4] "CANCER_TYPE_DETAILED" "ER_STATUS" "HER2_STATUS"
## [7] "GRADE" "ONCOTREE_CODE" "PR_STATUS"
## [10] "SAMPLE_TYPE" "TUMOR_SIZE" "TUMOR_STAGE"
## [13] "TMB_NONSYNONYMOUS"
pd <- cl %>% filter(ER_STATUS!=""&
HER2_STATUS!=""&
PR_STATUS!="")
pd$Type <- ifelse(pd$ER_STATUS=="Negative"&
pd$PR_STATUS=="Negative"&
pd$HER2_STATUS=="Negative","TNBC",
ifelse(pd$ER_STATUS=="Negative"&
pd$PR_STATUS=="Negative"&
pd$HER2_STATUS=="Positive","HER2","Luminal"
))
# 1. 合并数据 -----------------------------------------------------------------
pd <- pd %>% inner_join(OS,by = "PATIENT_ID")
names(pd)
## [1] "PATIENT_ID" "SAMPLE_ID"
## [3] "CANCER_TYPE" "CANCER_TYPE_DETAILED"
## [5] "ER_STATUS" "HER2_STATUS"
## [7] "GRADE" "ONCOTREE_CODE"
## [9] "PR_STATUS" "SAMPLE_TYPE"
## [11] "TUMOR_SIZE" "TUMOR_STAGE"
## [13] "TMB_NONSYNONYMOUS" "Type"
## [15] "LYMPH_NODES_EXAMINED_POSITIVE" "NPI"
## [17] "CELLULARITY" "CHEMOTHERAPY"
## [19] "COHORT" "ER_IHC"
## [21] "HER2_SNP6" "HORMONE_THERAPY"
## [23] "INFERRED_MENOPAUSAL_STATE" "SEX"
## [25] "INTCLUST" "AGE_AT_DIAGNOSIS"
## [27] "OS_MONTHS" "OS_STATUS"
## [29] "CLAUDIN_SUBTYPE" "THREEGENE"
## [31] "VITAL_STATUS" "LATERALITY"
## [33] "RADIO_THERAPY" "HISTOLOGICAL_SUBTYPE"
## [35] "BREAST_SURGERY" "RFS_MONTHS"
## [37] "RFS_STATUS"
pd <- pd %>%
mutate(`OS.time`=OS_MONTHS/365) %>%
separate(OS_STATUS,into = c("OS","STATUS"),sep = ":")
# 2. 整理表达数据 ---------------------------------------------------------------
exprSet <- data.table::fread("./brca_metabric/data_mrna_illumina_microarray_zscores_ref_diploid_samples.txt",
data.table = F)
names(exprSet)[1:6]
## [1] "Hugo_Symbol" "Entrez_Gene_Id" "MB-0362" "MB-0346"
## [5] "MB-0386" "MB-0574"
exprSet <- exprSet[,-2]
duplicated(exprSet$Hugo_Symbol) %>% table()
## .
## FALSE TRUE
## 20385 218
# 去除重复探针
exprSet <- limma::avereps(exprSet[,-1],ID=exprSet$Hugo_Symbol)
head(exprSet [,1:6])
## MB-0362 MB-0346 MB-0386 MB-0574 MB-0185 MB-0503
## RERE -0.7139 1.2266 -0.0053 -0.4399 -0.5958 0.4729
## RNF165 -0.4606 0.3564 -0.6800 -1.0563 -0.0377 -0.6829
## PHF7 -0.3325 -1.0617 0.2587 -0.2982 -1.2422 0.0558
## CIDEA -0.0129 -1.0394 3.2991 -0.2632 -1.0949 1.2628
## TENT2 -0.7853 0.0337 -0.6649 2.1640 -0.2031 1.0304
## SLC17A3 0.7630 -0.5175 0.6719 -1.1036 -0.9250 -1.2571
exprSet <- as.data.frame(exprSet)
boxplot(exprSet[,1:6],las=2)
![](https://files.mdnice.com/user/25661/dcc29750-7b76-4b61-94f0-b3e8718e0088.png)
exprSet[1:6,1:6]
## MB-0362 MB-0346 MB-0386 MB-0574 MB-0185 MB-0503
## RERE -0.7139 1.2266 -0.0053 -0.4399 -0.5958 0.4729
## RNF165 -0.4606 0.3564 -0.6800 -1.0563 -0.0377 -0.6829
## PHF7 -0.3325 -1.0617 0.2587 -0.2982 -1.2422 0.0558
## CIDEA -0.0129 -1.0394 3.2991 -0.2632 -1.0949 1.2628
## TENT2 -0.7853 0.0337 -0.6649 2.1640 -0.2031 1.0304
## SLC17A3 0.7630 -0.5175 0.6719 -1.1036 -0.9250 -1.2571
save(exprSet,pdf,file = "./01CleanDate/MetabricaData.Rdata")
df <- as.data.frame(t(exprSet)) %>%
rownames_to_column("PATIENT_ID") %>% inner_join(pd,by = "PATIENT_ID")
head(df[,1:6])
## PATIENT_ID RERE RNF165 PHF7 CIDEA TENT2
## 1 MB-0362 -0.7139 -0.4606 -0.3325 -0.0129 -0.7853
## 2 MB-0346 1.2266 0.3564 -1.0617 -1.0394 0.0337
## 3 MB-0386 -0.0053 -0.6800 0.2587 3.2991 -0.6649
## 4 MB-0574 -0.4399 -1.0563 -0.2982 -0.2632 2.1640
## 5 MB-0185 -0.5958 -0.0377 -1.2422 -1.0949 -0.2031
## 6 MB-0503 0.4729 -0.6829 0.0558 1.2628 1.0304
library(ggpubr)
# Box plots
bxp <- ggboxplot(df, x = "Type", y = "TRPS1", fill = "Type",
palette = c("#00AFBB", "#E7B800", "#FC4E07"))
stat.test <- df %>% t_test(TRPS1 ~ Type)
stat.test
## # A tibble: 3 × 10
## .y. group1 group2 n1 n2 statistic df p p.adj p.adj.signif
## 1 TRPS1 HER2 Lumin… 134 1526 -14.6 170. 8.35e-32 1.67e-31 ****
## 2 TRPS1 HER2 TNBC 134 320 -2.35 309. 2 e- 2 2 e- 2 *
## 3 TRPS1 Lumin… TNBC 1526 320 14.1 455. 8.63e-38 2.59e-37 ****
combinations <- combn(x =unique(df$Type),m = 2 )
my_comparisons <- split(combinations, col(combinations))
compare_means(TRPS1 ~ Type, df,method = "t.test")
## # A tibble: 3 × 8
## .y. group1 group2 p p.adj p.format p.signif method
## 1 TRPS1 Luminal HER2 8.35e-32 1.70e-31 <2e-16 **** T-test
## 2 TRPS1 Luminal TNBC 8.63e-38 2.60e-37 <2e-16 **** T-test
## 3 TRPS1 HER2 TNBC 1.97e- 2 2 e- 2 0.02 * T-test
ggviolin(df, x = "Type", y = "TRPS1", fill = "Type",
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "boxplot", add.params = list(fill = "white"))+
stat_compare_means(comparisons = my_comparisons, label = "p.signif",method = "t.test") # Add significance levels