欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

在linux中用同一个版本的R 同时安装 Seurat2 和 Seurat3的教程

程序员文章站 2022-08-31 23:03:26
seurat  作为单细胞分析中的重量级r包,有多好用用,用过的人都知道。seurat 分析流程基本涵盖了单细胞分析中的所有常见分析方法,包括filtering,...

seurat  作为单细胞分析中的重量级r包,有多好用用,用过的人都知道。seurat 分析流程基本涵盖了单细胞分析中的所有常见分析方法,包括filtering,tsne,umap降维及画图等。还有一个重量级功能就是矫正不同实验之间的批次效应。然而seurat 2和seurat 3的矫正方法完全不一样,得到的结果也不一致。

seurat 2是基于cca (典型相关性)的,可以矫正肿瘤,外周血及癌旁组织间由于实验带来的批次效应,也能很好的矫正用不同的单细胞实验平台进行试验带来的批次效应。虽然速度慢,效果还是不错的。而seurat 3 则是基于样本间具有相似表达谱的细胞群来进行矫正,对于同一种性质的实验,由于不同单细胞技术造成的实验批次效应,seurat 3 能够很好的矫正。从官网给的pancers矫正结果就可以看到其矫正能力多么强大。然而正式因为如此强大的矫正能力,对于肿瘤和外周血样本的矫正却过了头,导致不该分在一起的细胞具有了相似的基因表达谱。本人也是做了好几个课题,发现都存在这样的问题,因此果断放弃seurat 3的矫正方法,继续用seurat 2的。但是seurat 3的 findmarker 这个功能可以一次计算10万以上的细胞不报错,而seurat 2就不行,折衷的方案是同时安装 seurat 2和 seurat 3的包,在内存里切换数据,而不用写到本地后再用seurat 3读取后升级。

尤其是对于动辄10几万个细胞来说,保存数据到本地这个操作要花费至少30min, 读取也要30min.

下面我就告诉大家不用读写到本地就可以在seurat 2 和 seurat 3之间完美切换,。

其实方法很简单,将seurat 2和 seurat 3 安装在不同的 library 里面就行了。

我已经安装好了,以我自己进行的*切换为例:

> r.version
        _             
platform    x86_64-conda_cos6-linux-gnu
arch      x86_64           
os       linux-gnu         
system     x86_64, linux-gnu     
status                  
major     3             
minor     6.1            
year      2019            
month     07             
day      05             
svn rev    76782           
language    r             
version.string r version 3.6.1 (2019-07-05)
nickname    action of the toes  

 我用的是最新的r版本 3.6.1很好用。

默认的library 是conda 自带的

> .libpaths()
[1] "/data/home/heshuai/anaconda3/lib/r/library"

默认的seurat是最新版的 seurat 3

> library(seurat)
registered s3 method overwritten by 'r.oo':
 method    from   
 throw.default r.methodss3
> packageversion("seurat")
[1] ‘3.0.2'

我在另一个library 里安装了 seurat 2

/data/home/heshuai/r/x86_64-conda_cos6-linux-gnu-library

在两者间*切换

1. 首先将 seurat 2 所在的library 加载进来

> .libpaths("/data/home/heshuai/r/x86_64-conda_cos6-linux-gnu-library")
> .libpaths()
[1] "/data/home/heshuai/r/x86_64-conda_cos6-linux-gnu-library" "/data/home/heshuai/anaconda3/lib/r/library"      
>

2. detach seurat 3 后加载 seurat 2, 因为这个时候seurat 2 所在的library 已经在seurat 3 之前了,系统会默认先加载seurat 2

> detach("package:seurat", unload = t)
> library(seurat)
loading required package: ggplot2
rstudio community is a great place to get help: https://community.rstudio.com/c/tidyverse.
loading required package: cowplot
 
********************************************************
note: as of version 1.0.0, cowplot does not change the
 default ggplot2 theme anymore. to recover the previous
 behavior, execute:
 theme_set(theme_cowplot())
********************************************************
 
loading required package: matrix
> packageversion("seurat")
[1] ‘2.3.4'
>  

现在seurat 3已经成功的切换成seurat 2了. 想要加载seurat 3的时候,将默认library 换到seurat 2的前面即可。

是不是 so easy ! 

总结

以上所述是小编给大家介绍的在linux中用同一个版本的r 同时安装 seurat2 和 seurat3的教程,希望对大家有所帮助