錯(cuò)誤信息
最近處理10x數(shù)據(jù),需要把已有的亞群合并呀狼,然后繪制目標(biāo)基因的熱圖~
樸實(shí)~ 無(wú)華~ 枯燥~
處理完成之后锁摔,需要調(diào)整亞群繪制順序,基因的順序
OK~ 我改~
one moment later......
“怎么這幾張圖的標(biāo)度范圍不一樣际插?看起來(lái)不統(tǒng)一”
我改~ 也就是一個(gè)修改刻度~
然后~ 然后我就后悔了~
漫漫Debug路
第一次嘗試
Seurat包里面熱圖碘耳,用的是ggplot2
繪制的,一般處理這種問(wèn)題框弛,只要
獲取對(duì)象后重新指定一下數(shù)據(jù)標(biāo)準(zhǔn)化的范圍就好辛辨,搞一下配色什么的就完
事
p <- p + scale_fill_gradientn(limits=c(-2,2),
breaks =c(-2,0,2),
colours = PurpleAndYellow(),
na.value = "white") +
WhiteBackground()
本以為這樣就結(jié)束,打開(kāi)結(jié)果一看?喵喵喵~ 什么鬼斗搞,那一條條的白線是個(gè)
什么玩意兒指攒?
對(duì)比前后的結(jié)果,這些白色的部分在原始的圖形中都被當(dāng)作最大值處理(其
實(shí)是缺失值)僻焚。
沒(méi)問(wèn)題~ 缺失值替換為黃色就好
第二次處理
p <- p + scale_fill_gradientn(limits=c(-2,2),
breaks =c(-2,-1,0,1,2),
colours = PurpleAndYellow(),
na.value = "yellow") +
WhiteBackground()
納尼~ 那些組間的分隔怎么也變成了屎黃色允悦?看來(lái)這樣不對(duì)~
第三次處理
查看圖形對(duì)象中那些缺失的數(shù)據(jù)數(shù)據(jù)(原本是會(huì)有一些細(xì)胞也為缺失的,但我更新之后的ggplot對(duì)象沒(méi)法重復(fù)之前的結(jié)果溅呢,不記得之前ggplot2是哪個(gè)版本了)
p$data %>% filter(is.na(Expression))
# Feature Cell Expression Identity
# 1 Rbp7 hrspdmjykfoinzbwqvtc NA Fibroblasts
# 2 Sema3g hrspdmjykfoinzbwqvtc NA Fibroblasts
# 3 Gpihbp1 hrspdmjykfoinzbwqvtc NA Fibroblasts
# 4 Plpp1 hrspdmjykfoinzbwqvtc NA Fibroblasts
# 5 Ly6c1 hrspdmjykfoinzbwqvtc NA Fibroblasts
# 6 Emcn hrspdmjykfoinzbwqvtc NA Fibroblasts
這些奇怪名字的細(xì)胞就是用來(lái)生成那些組間分割的占位信息澡屡,在使用
na.value = "yellow"
時(shí),把這些占位信息也給修改了咐旧,于是就有
了圖中的屎黃色分割驶鹉,處理方法也簡(jiǎn)單,只將那些正常細(xì)胞名稱的表
達(dá)量由NA替換為我們的最大值即可~ 隨后在scale_fill_gradientn
中
將NA替換為白色即可~
第四次處理
本來(lái)經(jīng)過(guò)前面的處理铣墨,應(yīng)該已經(jīng)可以正常將熱圖的標(biāo)度修改為指定的
范圍~
But~
當(dāng)我重新運(yùn)行腳本時(shí)卻出現(xiàn)了如下的報(bào)錯(cuò):
Error in data.frame(group = sort(x = group.use), x = x.divs) :
arguments imply differing number of rows: 2055, 0
Calls: PlotHeatmapPlot -> DoHeatmap -> data.frame
Execution halted
我原來(lái)正常的腳本都跑不了了這又是什么鬼明明之前還好好的能夠正常運(yùn)行~
谷歌之~
Error in DoHeatmap – no labelling of identities above colourbar possible
看來(lái)是版本問(wèn)題~
看一下自己環(huán)境里的r包室埋,有人升級(jí)了ggplot2到3.3.3。
我也沒(méi)有記錄之前的ggplot2版本伊约,之前的工作算是白做了~
看了一下Seurat的更新記錄姚淆,最新的版本已經(jīng)到了4.x.x,但所用對(duì)象使用的是3.1.1屡律,所以找一個(gè)比較近的版本:
重新安裝一個(gè)v3.1.4版本的Seurat
里面的
DoHeatmap
方法果然有所改變腌逢,對(duì)ggplot 3.3.3進(jìn)行了適配這個(gè)版本的ggplot2在重新標(biāo)準(zhǔn)化之后細(xì)胞不再會(huì)出現(xiàn)缺失值,前面的方法也呵呵了~
要消除白色的那些細(xì)胞超埋,只需要將越過(guò)范圍的值給賦值為其邊界值即可
p$data[!is.na(p$data$Expression) & (p$data$Expression > 2),]$Expression <- 2
p$data[!is.na(p$data$Expression) & (p$data$Expression < -2),]$Expression <- -2
剩下的調(diào)整一下theme就好了