样本相关性分析,样本聚类分析

基因课FTP地址:ftp://http://gsx.genek.tv/2020-3-10%E7%9B%B4%E6%92%AD%E4%B8%80%E4%B8%AA%E5%AE%8C%E6%95%B4%E7%9A%84%E8%BD%AC%E5%BD%95%E7%BB%84%E9%A1%B9%E7%9B%AE/
听张旭东老师的课

加载tidyverse

library(tidyverse)

导入数据 三张表

  • 表达矩阵
    gene_exp <- read.table('genes.TMM.EXPR.matrix', header = T, row.names = 1)

  • 样本信息表

samples strain stage 指标1 指标2 指标3
BLO_S1_LD1 BLO S1 3.5 3.0 40
BLO_S1_LD2 BLO S1 3.8 3.2 48
BLO_S1_LD3 BLO S1 3.0 3.0 50
BLO_S2_LD1 BLO S2 9.5 13.0 90
BLO_S2_LD2 BLO S2 9.8 13.2 88
BLO_S2_LD3 BLO S2 10.0 13.0 90
  • 基因信息表
    • Rstudio中导入数据时用 Comment选项跳过开头是 # 的行
    • 信息数据不标准,需要进一步加工,所有建议导tibble的数据格式(Rstudio的Dataimport中第二项),用readr R包
      不要行名 —— 因为tibble格式没有行名
    • 需要更换列名
      %>%
      select(Gene_Id = X1,
      Gene_Symbol = X6,
      GO = X7,
      Ko = X9,
      Pathway = X10,
      COG = X21,
      Gene_name = X22)

第一件事——样本相关性分析

cor(gene_exp) # 相关性计算

  • 相关系数分类
    • 皮尔森相关系数 pearson
      线性相关
    • 斯皮尔曼相关系数 spearman
      等级相关
    • 肯德尔相关系数 kendall
      适用于离散变量、分类型变量的相关系数
  • 举例
    • 计算两个基因之间的相关系数,用皮尔森相关系数
    • 肿瘤分期相关基因,分期之间是等级相关,用斯皮尔曼相关系数
    • 哪些基因与性别相关,用肯德尔相关系数
  • 计算样本相关系数,直接用皮尔森相关系数即可
  • command
    sample_cor <- round(cor(gene_exp) , digits = 2) # round保留两位小数
    sample_cor <- round(cor(gene_exp, method = 'spearman') , digits = 2) # 可以指定相关系数算法
    library(pheatmap)
    pheatmap(sample_cor)

样本聚类分析

  • 第一步:计算距离矩阵
    样本两两之间,谁与谁的距离要算出来

    • sample_dist <- dist(t(gene_exp)) # dist算的是行之间的距离矩阵,所以需要将表达矩阵转置,t()表示转置
    • "euclidean", 欧几里得距离矩阵,最常用
    • "maximum",
  • 第二步:聚类
    层次聚类法
    sample_hc <- hclust(sample_dist)
    plot(sample_hc)

聚类方法简述 ?hclust可查看
single 最短聚类法; comlpete 最长聚类法(默认); median 平均距离法; 进化树构建使用类似方法 = UPGMA

你可能感兴趣的:(样本相关性分析,样本聚类分析)