跟着 Cell 学作图 | 5.UMAP降维分析

cell5.jpg

跟着 Cell 学作图 | 5.UMAP降维分析

“实践是检验真理的唯一标准。”

“复现是学习R语言的最好办法。”

2021.4.12_1

DOI: 10.1016/j.cell.2020.05.032

这篇2020年发表在cell上关于新冠的组学文章里面有大量的生信内容。今天带大家复现其中的一个Supplemental FigureUMAP降维分析图

210421_1

本文代码及示例数据领取:后台回复“20210422

UMAP

UMAP (Uniform Manifold Approximation and Projection) 算法是一种创新的降维流形学习算法。 来自于拓扑数据分析。可以用于类似于t-SNE的可视化,但也可以用于一般的非线性降维。文章里的这个图可以看出,sars-cov-2感染患者的血清组学数据与健康个体的组学数据得到了很好的分辨,而其他组则表现出一定程度的分离。

数据格式

210421_2

注:示例数据仅作展示用,无实际意义!

绘制

很显然,重点在于umap分析,可视化只是常见的散点图。

#------
title: "UMAP"
author: "MZBJ"
date: "2020/4/22"
#-----
# 初次使用需要安装
#install.packages("uamp")
rm(list = ls())
setwd("F:/~/mzbj/cell/2021.4.22")
# 载
library(umap)
library(ggplot2)
#导入数据,首列为行名
df <- read.csv(file = "df_umap.csv",row.names = 1) 
#生成一个不含lable列的新数据集
df_umap <- df[,colnames(df)!='label']
#按行进行标准化
df_umap <- data.frame(t(apply(df_umap,1,function(v){(v-mean(v,na.rm=T))/sd(v,na.rm=T)})),stringsAsFactors=F)
#替换NA为0
df_umap[is.na(df_umap)] <- 0
#UMAP分析
umap <- umap(df_umap,method='naive',n_neighbors = 10)
#n_neighbors 用似的局部邻域的大小(根据邻域采样点的数量)。数值越大,流形的全局视图就越多,而数值越小,保留的局部数据就越多。通常值应该在2到100的范围内。
#method 可用的方法是“naive”(用纯R编写的实现)和“umap-learn”(需要python包“umap-learn”)
# 查看降维后的结果
head(umap$layout)
#提取umap值作图用
df1 <- data.frame(umap$layout)
df1$label <- df$label #加入lavle列
colnames(df1) <- c('X','Y','label') #改个列名 不改也行

  
p <- ggplot(df1, aes(x=X, y=Y, colour=label)) + geom_point(size=4)+
  xlab(NULL)+ #不添加x y轴名称
  ylab(NULL)
p <- p + theme(  panel.grid.major = element_blank(),
                 panel.grid.minor = element_blank(),
                 legend.title=element_blank(), #图例标签隐藏
                 panel.border = element_blank(),
                 axis.line.x = element_line(color="black", size = 0.5),
                 axis.line.y = element_line(color="black", size = 0.5),
                panel.background = element_blank())
#按文章的配色改个颜色
p <- p +  scale_colour_manual(values=c("#D58F25","#882424","#7DA92E","#5A7EB3"))
p
#保存为svg格式图片
ggsave(p,filename = "umap.svg",width = 5,height = 4)

出图:

210422_3

又是一模一样哈哈~

写在后面:

本系列重在复现,所以有些细节可能讲的不是很详细。大家有问题可以后台私信,或者在我的B站:木舟笔记进行互动!制作不易,谢谢大家多多支持!

参考

  1. https://github.com/lmcinnes/umap
  2. https://cran.r-project.org/web/packages/umap/vignettes/umap.html

往期内容:

跟着CELL学作图|1.火山图

跟着Cell学作图 | 2.柱状图+误差棒+散点+差异显著性检验

跟着 Cell 学作图 | 3.箱线图+散点+差异显著性检验

跟着 Cell 学作图 | 4.小提琴图

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容