日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UMAP分析及可视化

發(fā)布時(shí)間:2023/12/20 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UMAP分析及可视化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是UMAP?和PCA一樣,一種降維的算法,如果不是統(tǒng)計(jì)學(xué)或者數(shù)據(jù)專業(yè)的人,我建議不要去看它的原理,知道如何用就足夠了。

也許聽到UMAP最多的是對(duì)單細(xì)胞數(shù)據(jù)的分析降維,類似于下圖:

然而其他數(shù)據(jù),像大樣本的轉(zhuǎn)錄組在PCA降維效果不好的時(shí)候,可以使用UMAP,畢竟現(xiàn)在轉(zhuǎn)錄非常便宜,隨便測(cè)幾十個(gè)樣品和玩似的。

首先構(gòu)建一個(gè)數(shù)據(jù)集,行為樣本,列為基因,并對(duì)樣本的特征進(jìn)行分組。

讀入數(shù)據(jù):?

setwd("E:/生物信息學(xué)")options(stringsAsFactors= F)####A <- read.csv("UMAP.csv",header = T,row.names = 1)

安裝R包:

install.packages("umap")library(umap)

UMAP分析:

A_umap <- A[,colnames(A)!= c('label2', 'label3','label4')]#新構(gòu)建一個(gè)表,不含有l(wèi)abelA_umap <- data.frame(t(apply(A_umap,1, function(v){(v-mean(v,na.rm=T))/sd(v,na.rm=T)})),?????????????????????stringsAsFactors=F)#標(biāo)準(zhǔn)化umap <- umap(A_umap,method='naive',n_neighbors = 10)????head(umap$layout)????##################### [,1] [,2]r1 16.16427 -11.32371r2 16.26652 -11.21803r3 16.28917 -11.45600r4 16.28618 -11.56981r5 16.15085 -12.07527r6 16.65784 -12.28240?????????????

提取分析結(jié)果用于作圖:

B <- data.frame(umap$layout)B$label <- A$label2 colnames(B) <- c('UMAP_1','UMAP_2','label')

作圖是由ggplot實(shí)現(xiàn)的,應(yīng)該很熟悉了:???????

ggplot(B, aes(x=UMAP_1, y=UMAP_2, colour=label)) + geom_point(size=1)+ xlab("UMAP_1")+ ylab("UMAP_2")+ 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())

降維效果很好,當(dāng)然圖的顏色也是可以修改的,和之前講的ggplot的修飾一樣。除了對(duì)樣本的分組,還可以展現(xiàn)其他的分組,畢竟數(shù)據(jù)中我們?cè)O(shè)置了3

個(gè)label,我們看一下以性別的分組作圖是什么樣的?只需要改動(dòng)下label即可。

??????

C <- data.frame(umap$layout)C$label <- A$label3 colnames(C) <- c('UMAP_1','UMAP_2','label') ggplot(C, aes(x=UMAP_1, y=UMAP_2, colour=label)) + geom_point(size=1)+ xlab("UMAP_1")+ ylab("UMAP_2")+ 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())

效果不錯(cuò)!

樣本多可以試試這個(gè)方法,不局限于轉(zhuǎn)錄組,其他的任何數(shù)據(jù)都可以!

想要示例數(shù)據(jù)的可以打賞截圖聯(lián)系作者獲取,記得留下郵箱!

?

總結(jié)

以上是生活随笔為你收集整理的UMAP分析及可视化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。