美文网首页转录组统计学生物信息学:研一
聚类在基因表达数据中的应用(R语言实现)

聚类在基因表达数据中的应用(R语言实现)

作者: Thinkando | 来源:发表于2018-05-20 09:32 被阅读22次

前言

  • 基因之间存在共表达
  • 共表达的基因可能具有相似的生物功能
  • 从具有相似的表达谱的基因去推测其功能
  • 利用不同基因表达模式对样本进行分类,找到潜在的分子标志物
  • 更好的可视化

1. 层次聚类

  • 层次聚类原理:https://www.jianshu.com/p/bf314992d4c2 (我在另一篇文章有写,这里不做详细介绍)
  • 在聚类分析中,基因被看作是一个向量
  • 通过元素与元素之间的距离,将不同的元素归类


    基因表达量用数据表示,方便计算距离

2. R 语言实现

2.1 材料准备

  1. 找到事先筛选好的差异表达基因,横轴为样本,纵轴为基因


    image.png
  2. 样本的临床信息(HCC肝癌,NOR,正常组)


    image.png

2.2 R 代码

library(gplots)
library(RColorBrewer)
options(stringsAsFactors = F)

#读取数据
datExp = read.table('ExpressionDataForDEG.txt',sep='\t',header=T)
View(head(datExp))

#处理数据
datExp1 = datExp[, -1] # -1 表示第一列不要
rownames(datExp1) = datExp[, 1] # 把基因名称定义为行名
View(datExp1)

#读取患者分组信息
datTraits = read.table('SampleTraits.txt',sep='\t',header=T)
View(datTraits)
color = factor(datTraits$tumor,labels=c('orange','blue'),levels = c("HCC","NOR"))
color

#数据转换
datExp1 = as.matrix(datExp1) # 把dataframe 转换成 matrix

#聚类热图 
# 参数具体含义 ?heatmap.2 查询
heatmap.2(datExp1,col = greenred(75), 
          hclust=function(x) hclust(x,method = 'ward.D2'),
          distfun=function(x) dist(x,method='euclidean'),
          scale = "row",dendrogram = 'both',
          key = TRUE, symkey = FALSE, density.info = "none", 
          trace = "none", cexRow = 0.5,
          ColSideColors = as.character(color)
)
image.png
  • 生物学意义:
  1. 筛选的差异基因可以显著的把肿瘤样本和正常样本筛选出来
  2. 分类出来的基因,可以用于后续功能富集分析
  3. 导出尽量pdf 格式,是矢量图,便于投稿修改

相关文章

网友评论

    本文标题:聚类在基因表达数据中的应用(R语言实现)

    本文链接:https://www.haomeiwen.com/subject/ynuzdftx.html