「R包」如何實(shí)現(xiàn)Seurat 2 和 Seurat3 在同一個(gè)環(huán)境下共存

軟件升級(jí)雖然是一件值得高興的是,但是代碼變化太大卻不是一件好消息。比如說Seurat,這個(gè)單細(xì)胞分析最常用的R包,它的2.x版本和3.x版本的變化就是翻天覆地。

為了能夠重現(xiàn)別人的代碼,你可能需要重裝2.3.4版本的Seurat,官方提供了安裝腳本

source("https://gist.githubusercontent.com/satijalab/beb9bb50dedc75ee023bd5d9be5fe684/raw/e103577735a2fba9da2ccca14ce1ac33e46c1bc4/old_seurat.R")

但是在window下安裝會(huì)出一個(gè)報(bào)錯(cuò)

報(bào)錯(cuò)信息

這個(gè)時(shí)候需要手動(dòng)安裝Seurat,要求有Rtools才能進(jìn)行編譯

install.packages('Seurat', repos = 'https://satijalab.org/ran', type = "source")

可以設(shè)置install.packages里的參數(shù)lib.loc,讓Seurat安裝到其他的文件加,就不會(huì)替換原來的Seurat,同時(shí)用library加載的時(shí)候,也需要設(shè)置lib.loc.

上面是簡(jiǎn)單可行易操作的方法,唯一的問題是你不能同時(shí)加載兩個(gè)Seurat版本,當(dāng)然你也不會(huì)想這樣子做,所以這是一個(gè)偽需求。

下面就是瞎折騰環(huán)節(jié), 我要將Seurat的2.3.4版本單獨(dú)搞出一個(gè)R包,Seurat2,這樣子就可以同時(shí)加載這兩個(gè)R包。

下載Seurat 2.3.4

wget https://satijalab.org/ran/src/contrib/Seurat_2.3.4.tar.gz

解壓縮它

tar xf Seurat_2.3.4.tar.gz
cd Seurat

刪除MD5文件,因?yàn)樗鼤?huì)做文件檢驗(yàn)

rm MD5

修改里面所有的Seurat替換成Seurat2, seurat替換成seurat2

find . -type f -print0 | xargs -0 sed -i "s/Seurat/Seurat2/g"
find . -type f -print0 | xargs -0 sed -i "s/seurat/seurat2/g"

這種無差別的替換會(huì)有一個(gè)問題,會(huì)把一些這類http://www.satijalab.org/seurat非代碼信息中的seurat替換成seurat2,不過這并不影響實(shí)際函數(shù)的使用。

R/seurat.R重名為R/seurat2.R

mv R/seurat.R R/seurat2.R

修改R和src文件夾中的所有函數(shù),將里面的Seurat更改為Seurat2

tar -czf Seurat2.tar.gz Seurat

注意: 目前未修改測(cè)試數(shù)據(jù)集的對(duì)象,所以不能用Seurat2來運(yùn)行pbmc_small的例子

目前我將其上傳到GitHub,所以可以用devtools進(jìn)行安裝。由于代碼只是簡(jiǎn)單修改,存在bug,不建議嘗試使用。

devtools::install_github("xuzhougeng/Seurat2")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容