通过Hmisc包可以连续性且符合正态分布的变量之间的线性相关系数,用到的是rcorr这个函数

    以TCGA中的肿瘤表达矩阵为例,分析不同基因表达量的相关性
    加载表达矩阵和需要的R包

    1. load(exp.Rdata) # 表达矩阵
    2. data = t(exp) # 分析基因的话 要转置
    3. library(Hmisc)
    4. library(dplyr)
    5. library(pheatmap)

    data如图 ↓
    image.png

    皮尔逊相关系数分析代码:

    1. r = rcorr(data)$r # 分析任意两个基因之间表达量的相关系数
    2. p = rcorr(data)$P # 上一步的显著性
    3. tmp = matrix(case_when(p<0.01~"**",
    4. p<0.05~"*",
    5. T~""),
    6. nrow = nrow(p)) # 这句是用dplyr的函数,为了画图的

    我是喜欢做热图表示的

    1. bk = c(seq(-0.2,-0.01,by=0.01),seq(0,0.7,by=0.01))
    2. p1 = pheatmap(t(r),
    3. cluster_rows = F,
    4. cluster_cols = F,
    5. color = c(colorRampPalette(colors = c("#92b7d1","white"))(20),
    6. colorRampPalette(colors = c("white","#d71e22"))(70)),
    7. breaks=bk,
    8. display_numbers = t(tmp),
    9. fontsize_number = 5,
    10. cellheight = 20,
    11. cellwidth = 20,
    12. border_color = 'white',
    13. angle_col = 45)

    看图!
    image.png