Seurat Weekly NO.13 || 依賴關(guān)系與維護(hù)

天子呼來不上船,
自稱臣是菜鳥團(tuán)。

在這里宪萄,和國際同行一起學(xué)習(xí)單細(xì)胞數(shù)據(jù)分析瞧预。

最近在R4上安裝Seurat V4 的時候屎债,有可能會遇到這樣的報錯:

Error: package or namespace load failed for ‘Seurat’: object ‘markvario’ is not exported by 'namespace:spatstat' 

遇到報錯第一步肯定是先去瀏覽器查詢啦。方法是:復(fù)制Error:后面的信息垢油,黏貼到瀏覽器(必應(yīng)或者Google)盆驹,按搜索按鈕就可以了。相信我滩愁,你并不孤獨躯喇。果然有很多人遇到這個問題了,而且已經(jīng)給出了解決方案硝枉,并在Seurat問答池中形成討論:

https://github.com/satijalab/seurat/issues/4226
https://github.com/satijalab/seurat/issues/4243
https://github.com/satijalab/seurat/issues/4222

主要原因是:Seurat依賴的R包spatstat升級了廉丽,這是一個分析空間數(shù)據(jù)的R包,在Seurat中是分析空間轉(zhuǎn)錄組數(shù)據(jù)的支持包妻味,對應(yīng)的主要函數(shù)是Seurat::RunMarkVario()正压。

可以看到,是2021年3月13號更新的重大升級责球,為什么說是重大升級呢焦履?從1.64升級到2.01,一般的小修小補是不會動個位數(shù)的雏逾,如可升級到1.67嘉裤。而在這次升級中,把原來的函數(shù)spatstat::markvario 變成了 spatstat.core::markvario所以從新安裝的時候會有上面的報錯栖博。就是Seurat所依賴的函數(shù)變了屑宠,無法再調(diào)用到。這個時候我們可以怎么辦呢笛匙?

  • 安裝舊版本的spatstat侨把。你不是更新了嗎犀变?我用舊的。
remove.packages(grep("spatstat", installed.packages(), value = T))
.rs.restartR()
devtools::install_version("spatstat", version = "1.64-1")
  • 改Seurat函數(shù)秋柄。你不是依賴的函數(shù)名變了嗎获枝?我直接改你的源碼,讓Seurat符合新的依賴環(huán)境骇笔。

這個工作已經(jīng)由Seurat的開發(fā)者完成了省店,當(dāng)然可能提交到CRAN還需要一點時間驳遵,但是根據(jù)Github上面的信息是复,應(yīng)該已經(jīng)同步好了。

  • 修改Seurat的命名空間谢澈。不推薦芦劣,這種方法是不在命名空間文件中出現(xiàn)spatstat粗俱,因為目前我還沒有空間數(shù)據(jù),我不用它為什么要加載它呢虚吟?當(dāng)然寸认,這要求懂一些R包構(gòu)建的基本知識,不然串慰,不知道修改哪里呀偏塞。

R包就是一系列文件及其編譯文件,R包一共有5種states:

    source
    bundled
    binary
    installed
    in-memory

install.packages()devtools::install_github()都是從source, bundled, binary這些states轉(zhuǎn)成 installed states邦鲫,而library()則是使installed package變成in-memory灸叼。

library一如字面意思所言:圖書館。install的過程是我們買書(R包)庆捺,為什么會有不同的安裝方式呢古今?因為不同的書放在不同的商城,所以我們要從不同的地方來采購疼燥。install.packages()是從CRAN標(biāo)準(zhǔn)庫安裝沧卢,devtools::install_github()是從菜市場安裝。買來之后醉者,library()就是拿出來讀了但狭,想讀哪本書,就拿哪一本撬即。所以立磁,在安裝R包之前要知道這個包在那個倉庫放著的,百度R包名字即可剥槐。

R包的基本形態(tài)有以下幾種:

這些都對應(yīng)一個文件唱歧,可以在.libPath()輸出的路徑下查看。

那么,如何快速查看一個R包的依賴環(huán)境呢颅崩?

library(Seurat)
packageVersion('Seurat')
[1] ‘4.0.0’

我們使用pacman這個R包開查看几于。

# install.packages('pacman')
library(pacman)
p_info(Seurat)

Package: Seurat
Version: 4.0.0
Date: 2021-01-27
Title: Tools for Single Cell Genomics
Description: A toolkit for quality control, analysis, and exploration of single cell RNA sequencing
           data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity
           from single cell transcriptomic measurements, and to integrate diverse types of single
           cell data. See Satija R, Farrell J, Gennert D, et al (2015) <doi:10.1038/nbt.3192>,
           Macosko E, Basu A, Satija R, et al (2015) <doi:10.1016/j.cell.2015.05.002>, Stuart T,
           Butler A, et al (2019) <doi:10.1016/j.cell.2019.05.031>, and Hao, Hao, et al (2020)
           <doi:10.1101/2020.10.12.335331> for more details.

查看依賴關(guān)系:

 p_depends(Seurat)
$Depends
[1] "methods"

$Imports
 [1] "cluster"       "cowplot"       "fitdistrplus"  "future"        "future.apply"  "ggplot2"       "ggrepel"       "ggridges"      "graphics"      "grDevices"     "grid"         
[12] "httr"          "ica"           "igraph"        "irlba"         "jsonlite"      "KernSmooth"    "leiden"        "lmtest"        "MASS"          "Matrix"        "matrixStats"  
[23] "miniUI"        "patchwork"     "pbapply"       "plotly"        "png"           "RANN"          "RColorBrewer"  "Rcpp"          "RcppAnnoy"     "reticulate"    "rlang"        
[34] "ROCR"          "Rtsne"         "scales"        "scattermore"   "sctransform"   "SeuratObject"  "shiny"         "spatstat.core" "spatstat.geom" "stats"         "tibble"       
[45] "tools"         "utils"         "uwot"         

$LinkingTo
[1] "Rcpp"         "RcppEigen"    "RcppProgress"

$Suggests
 [1] "ape"                  "rsvd"                 "testthat"             "hdf5r"                "S4Vectors"            "SummarizedExperiment" "SingleCellExperiment"
 [8] "MAST"                 "DESeq2"               "BiocGenerics"         "GenomicRanges"        "GenomeInfoDb"         "IRanges"              "rtracklayer"         
[15] "Rfast2"               "monocle"              "Biobase"              "VGAM"                 "limma"                "metap"                "enrichR"             
[22] "mixtools"            

查看反向依賴關(guān)系:

p_depends_reverse(Seurat)
$Imports
[1] "CDSeq"    "DUBStepR" "scMappR"  "Signac"   "SignacX"  "SoupX"   

$Suggests
 [1] "BisqueRNA"          "clustree"           "conos"              "DIscBIO"            "dyngen"             "nanny"              "rliger"             "Rmagic"            
 [9] "singleCellHaystack" "treefit"            "VAM"  

寫一個R包,對我們普通用戶來說只是安裝加載使用沿后,而對開發(fā)者而言沿彭,決定開源以后,就像第一次送孩子進(jìn)學(xué)校:他和老師和同學(xué)處的好嗎尖滚?他餓了不會在課堂上就大哭起來吧喉刘?能不能聽老師的教育呀?


https://github.com/satijalab/seurat/issues/422`

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漆弄,一起剝皮案震驚了整個濱河市睦裳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撼唾,老刑警劉巖廉邑,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異倒谷,居然都是意外死亡鬓催,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門恨锚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倍靡,你說我怎么就攤上這事猴伶。” “怎么了塌西?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵他挎,是天一觀的道長。 經(jīng)常有香客問我捡需,道長办桨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任站辉,我火速辦了婚禮呢撞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘饰剥。我一直安慰自己殊霞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布汰蓉。 她就那樣靜靜地躺著绷蹲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祝钢,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天比规,我揣著相機與錄音,去河邊找鬼拦英。 笑死蜒什,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的龄章。 我是一名探鬼主播吃谣,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼做裙!你這毒婦竟也來了岗憋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤锚贱,失蹤者是張志新(化名)和其女友劉穎仔戈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拧廊,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡监徘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吧碾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凰盔。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖倦春,靈堂內(nèi)的尸體忽然破棺而出户敬,到底是詐尸還是另有隱情,我是刑警寧澤睁本,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布尿庐,位于F島的核電站,受9級特大地震影響呢堰,放射性物質(zhì)發(fā)生泄漏抄瑟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一枉疼、第九天 我趴在偏房一處隱蔽的房頂上張望皮假。 院中可真熱鬧,春花似錦骂维、人聲如沸钞翔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽布轿。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汰扭,已是汗流浹背稠肘。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留萝毛,地道東北人项阴。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像笆包,于是被迫代替她去往敵國和親环揽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容