添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
坏坏的莴苣  ·  Pandas/Pyspark ...·  1 年前    · 
愤怒的菠菜  ·  How to compile Curl ...·  1 年前    · 
R包pheatmap绘图(数据Z-scor标准化)

R包pheatmap绘图(数据Z-scor标准化)

6 个月前 · 来自专栏 表观遗传学研究生

现有一组不同组织中的表达量数据,要观察这10个基因更倾向于在哪种组织中高表达,可以通过绘制热图进行观察:

#原始数据(FPKM值)

Tissue1 Tissue2 Tissue3 Tissue4 Tissue5 Tissue6
Gene1 27.192 56.238 58.092 7.416 27.81 25.956
Gene2 20.394 56.238 26.574 3.09 21.012 4.326
Gene3 38.316 30.282 53.766 61.182 40.17 0.618
Gene4 12.36 0.618 50.676 19.776 14.214 32.136
Gene5 53.766 9.888 33.99 37.698 4.326 35.844
Gene6 32.136 16.686 25.956 58.092 56.238 2.472
Gene7 11.742 19.776 61.8 12.36 3.708 44.496
Gene8 59.328 47.586 50.058 47.586 0 8.034
Gene9 14.214 35.844 31.518 27.192 59.946 6.798
Gene10 25.338 21.63 49.44 14.832 47.586 15.45

#可以看到数值间的差异很大,为了方便比较,需要进行标准化,因为是比较一个基因的不同组织,所以以行数据进行标准化,使用python进行数据标准化:

import pandas as pd
from sklearn.preprocessing import scale
X = pd.read_clipboard()  #将剪切板的数据导入,带表列名无行名的数据
X  #输出确认列名及行数
x_scale=scale(X=X,axis=1,with_mean=True,with_std=True,copy=True,)
#Z-socre标注化,计算各个数据与行数据均值的差异,axis=0,列标准化,axis=1,对行标准化,默认0
print('原始数据:\n',X)
print('标准化数据:\n',x_scale)
x_fram=pd.DataFrame(x_scale) #数据转化为表格
x_fram.to_clipboard() #输出数据到剪接板

#将标准化之后的数据在Excel种加上行名和列名,然后用pheatmap绘图:

data<- read.csv(file ="clipboard", sep="\t",header = TRUE, row.names = 1) #从剪切板中导入数据
library(pheatmap)
bk=c(seq(-2,-0.1,by=0.01),seq(0,2,by=0.01)) #预设标尺值
pheatmap(data,
         cluster_rows = TRUE, #对行进行聚类
         cluster_cols = FALSE, #对列进行聚类
         clustering_distance_cols = "correlation", #Pearson相关性进行聚类,默认是“euclidean”方式
         show_rownames=TRUE, #显示行名
         show_colnames = TRUE, #显示列名
         scale="none", #不对数据进行标准化
         fontsize_row = 10, #行字体大小
         fontsize_col = 20, #列字体大小
         breaks =bk, #标尺赋值