统计分析与数据挖掘

变异数据处理(3)

2022-02-06  本文已影响0人  白米饭睡不醒

任意基因的任意分组比较

0.输入数据

rm(list=ls())
load("for_boxplot.Rdata")

这里面的数据:

exp是tumor-normal都有的表达矩阵,exprSet是只有tumor样本的表达矩阵。meta是临床信息表格,Group是tumor-normal分组信息。mut是突变信息,由maf文件读取并取子集得到。

1.比较任意miRNA在tumor和normal样本中的表达量

以hsa-mir-143为例画图,可替换为其他任意miRNA。

table(Group)
#> Group
#> normal  tumor 
#>     71    522
library(ggstatsplot)
dat = data.frame(gene = exp["hsa-mir-143",],
                 group = Group)
ggbetweenstats(data = dat, x = group,  y = gene,title = "hsa-mir-143")
image.png

2.任意miRNA在任意两个分组中的表达量对比

只要是可以根据临床信息查到或得到的分组,例如生死、人种、阶段,都可以拿来做分组。

需要注意调整样本顺序,一一对应。

#按照生死、人种、分期分组看看
table(meta$patient.vital_status)
#> 
#> alive  dead 
#>   358   158
table(meta$patient.stage_event.pathologic_stage)
#> 
#>   i  ii iii  iv 
#> 254  55 124  83
table(meta$patient.race)
#> 
#>                     asian black or african american                     white 
#>                         8                        56                       445

dat = data.frame(gene = exprSet["hsa-mir-143",],
                 vital_status = meta$patient.vital_status,
                 stage = meta$patient.stage_event.pathologic_stage,
                 race = meta$patient.race)
p1 = ggbetweenstats(data = dat, x = vital_status,  y = gene,title = "hsa-mir-143")
p2 = ggbetweenstats(data = dat, x = stage,  y = gene,title = "hsa-mir-143")
p3 = ggbetweenstats(data = dat, x = race,  y = gene,title = "hsa-mir-143")
library(patchwork)
p1/p2/p3
image.png

3.根据某个基因是否突变分组比较某miRNA的表达量

dim(exprSet)
#> [1] 552 516
head(mut)
#>    Hugo_Symbol Chromosome Start_Position         Tumor_Sample_Barcode     t_vaf
#> 1:    HNRNPCL2       chr1       13115853 TCGA-G6-A8L7-01A-11D-A36X-10 0.2148148
#> 2:       ERMAP       chr1       42842993 TCGA-G6-A8L7-01A-11D-A36X-10 0.1650165
#> 3:        FAAH       chr1       46394349 TCGA-G6-A8L7-01A-11D-A36X-10 0.3114754
#> 4:       EPS15       chr1       51448116 TCGA-G6-A8L7-01A-11D-A36X-10 0.1677852
#> 5:      HMGCS2       chr1      119764248 TCGA-G6-A8L7-01A-11D-A36X-10 0.2539683
#> 6:      NOS1AP       chr1      162367063 TCGA-G6-A8L7-01A-11D-A36X-10 0.2098765
#>               pos
#> 1:  chr1:13115853
#> 2:  chr1:42842993
#> 3:  chr1:46394349
#> 4:  chr1:51448116
#> 5: chr1:119764248
#> 6: chr1:162367063
library(stringr)
length(unique(str_sub(mut$Tumor_Sample_Barcode,1,12)))
#> [1] 336
k = str_sub(colnames(exprSet),1,12) %in% unique(str_sub(mut$Tumor_Sample_Barcode,1,12));table(k)
#> k
#> FALSE  TRUE 
#>   185   331

#516个样本中,有331个有突变信息记录,将这些样本对应的表达矩阵取出来。
expm = exprSet[,k];

#挑选VHL突变了的病人ID
VHL_mut=str_sub(as.character(
  as.data.frame( mut[mut$Hugo_Symbol=='VHL','Tumor_Sample_Barcode'])[,1] ),
  1,12)

library(dplyr)
VHL_mut = mut  %>% 
  filter(Hugo_Symbol=='VHL')  %>%   
  as.data.frame()  %>% 
  pull(Tumor_Sample_Barcode)   %>%  
  as.character()   %>%   
  str_sub(1,12)

#false 是未突变样本,true是突变样本

tail(rownames(expm))
#> [1] "hsa-mir-944" "hsa-mir-95"  "hsa-mir-96"  "hsa-mir-98"  "hsa-mir-99a"
#> [6] "hsa-mir-99b"
dat=data.frame(gene=expm['hsa-mir-98',],
               mut= str_sub(colnames(expm),1,12) %in% VHL_mut)

ggbetweenstats(data = dat, x = mut,  y = gene)
image.png

#可以计算每个基因的p值,找找是不是有显著的。
res.aov <- t.test(gene ~ as.factor(mut), data = dat)
res.aov$p.value
#> [1] 0.9086252
#自己试试能不能写出来这个循环?
上一篇下一篇

猜你喜欢

热点阅读