在linux中用同一個版本的R 同時安裝 Seurat 2 和 Seurat 3
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,Unix各種版本的操作系統在線安裝軟件命令
摘自:http://blog.csdn.net/zjg555543/article/details/8278266 linux和unix,各個版本的操作系統都有自己的軟件安裝方式,最方便的莫過于在線安 ...
Linux mint 18版本開啟SSH服務
linux mint 18版本默認是沒有安裝ssh server的 需要手動安裝 安裝ssh server: 此命令需要聯網,會自動下載安裝 安裝之后看是否開始了ssh, 看到ssh-agent 和s ...
linux中用shell獲取昨天、明天或多天前的日期
linux中用shell獲取昨天.明天或多天前的日期 時間 -- :: BlogJava-專家區 原文 http://www.blogjava.net/xzclog/archive/2015/12/0 ...
linux中用shell獲取時間,日期
linux中用shell獲取昨天.明天或多天前的日期:在Linux中對man date -d 參數說的比較模糊,以下舉例進一步說明:# -d, --date=STRING display time d ...
linux部署不同版本mysql
測試環境部署過程中經常會遇到同一個服務器上部署兩個不同版本的mysql數據庫,在部署過程中也會有各種各樣的問題,現將部署多版本mysql的方法總結如下: 1.下載mysql版本 http://down ...
linux查看內核版本、系統版本、系統位數(32or64)
linux查看內核版本.系統版本.系統位數(32or64) 2011-05-01 22:05:12 標簽:linux?內核版本?休閑?系統版本?系統位數 1. 查看內核版本命令: 1) [root@ ...
Linux下指定版本編譯安裝LAMP
說明: 操作系統:CentOS 6.5 64位 需求: 編譯安裝LAMP運行環境 各軟件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...
Linux 查看系統版本及位數
1. 查看內核版本命令: 1) [root@www ~]# cat /proc/version ?? Linux version 2.6.9-22.ELsmp (bhcompile@crowe.dev ...
Linux 查看系統版本和內核
查看系統內核版本 [root@11e71db4a00e /]# cat /proc/version Linux version -.el7.x86_64 (builder@kbuilder.dev.c ...
隨機推薦
不停止MySQL服務增加從庫的兩種方式
不停止MySQL服務增加從庫的兩種方式 轉載自:http://lizhenliang.blog.51cto.com/7876557/1669829 現在生產環境MySQL數據庫是一主一從,由于業務量訪 ...
你好,C++(5)如何輸出數據到屏幕、從屏幕輸入數據與讀寫文件?
2.2? 基本輸入/輸出流 聽過HelloWorld.exe的自我介紹之后,大家已經知道了一個C++程序的任務就是描述數據和處理數據.這兩大任務的對象都是數據,可現在的問題是,數據不可能無中生有地產生 ...
BZOJ 1651: [Usaco2006 Feb]Stall Reservations 專用牛棚( 線段樹 )
線段樹.. -------------------------------------------------------------------------------------- #includ ...
洛谷 P1083 借教室
傳送門:Probem 1083 https://www.cnblogs.com/violet-acmer/p/9721160.html 一.暴力簡述 首先我們不難看出,這道題--并不是一道多難的題,因 ...
Android長度單位詳解(dp、sp、px、in、pt、mm、dip)
Android中定義的dimension單位有以下這些:px(Pixels ,像素):對應屏幕上的實際像素點.in(Inches ,英寸):屏幕物理長度單位.mm(Millimeters ,毫米):屏 ...
django配置超級管理員
Admin站點管理: 概述: 內容發布:負責添加,修改,刪除內容的 公告訪問 配置Admin應用: 在settings.py文件中的INSTALLED_APPS中添加'django.contrib.a ...
oozie 重新提交作業
在oozie的運行過程當中可能會出現錯誤,比如數據庫連接不上,或者作業執行報錯導致流程進入suspend或者killed狀態,這個時候我們就要分析了,如果確實是數據或者是網絡有問題,我們比如把問題解決 ...
Ajax棵
ajax 1.什么是ajax?(異步請求,局部刷新) ajax是一個改善用戶體驗的技術,實質上是利用瀏覽器端ajax對象()向服務器發送異步(ajax對象在向服務器發送請求的時候,用戶可以繼續其他操作 ...
《opencv學習》 之 OTSU算法實現二值化
主要講解OTSU算法實現圖像二值化: ? ?1.統計灰度級圖像中每個像素值的個數. 2.計算第一步個數占整個圖像的比例. 3.計算每個閾值[0-255]條件下,背景和前景所包含像素值總個數和總概率(就 ...
2017-2018-1 20155220 《信息安全系統設計基礎》課下實踐——實現mypwd
學習pwd命令 輸入pwd命令 于是man 1 pwd查看pwd詳細 然后查看pwd實現需要的系統調用man -k; grep 在這發現了一個功能相同的內核函數getcwd 到這步就很簡單了,先查看這 ...