UMAP分析步骤初解
生活随笔
收集整理的這篇文章主要介紹了
UMAP分析步骤初解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
UMAP
UMAP (Uniform Manifold Approximation and Projection) 算法是一種創新的降維流形學習算法。來自于拓撲數據分析。可以用于類似于t-SNE的可視化,但也可以用于一般的非線性降維。文章里的這個圖可以看出,sars-cov-2感染患者的血清組學數據與健康個體的組學數據得到了很好的分辨,而其他組則表現出一定程度的分離。
?數據格式
?
繪制?
?很顯然,重點在于umap分析,可視化只是常見的散點圖。
#------ title: "UMAP" author: "ZZYE" date: "2022/3/27" #----- # 初次使用需要安裝 #install.packages("uamp") rm(list = ls()) # 路徑自己設置 setwd("C:/Users/frank/Desktop/python") # 載入 library(umap) library(ggplot2) #導入數據,首列為行名 df <- read.csv(file = "tes.csv",row.names = 1) #生成一個不含ID列的新數據集 df_umap <- df[,colnames(df)!='ID'] #按行進行標準化 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$ID <- df$ID #加入ID列 colnames(df1) <- c('X','Y') #改個列名 不改也行p <- ggplot(df1, aes(x=X, y=Y)) + 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)?出圖
?
總結
以上是生活随笔為你收集整理的UMAP分析步骤初解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AD1256
- 下一篇: linux服务篇-DHCP服务