Linux で同じバージョンの R を使用して Seurat2 と Seurat3 を同時にインストールするチュートリアル

Linux で同じバージョンの R を使用して Seurat2 と Seurat3 を同時にインストールするチュートリアル

Seurat は、単一細胞解析用の重量級の R パッケージです。使用したことがある人なら誰でも、その便利さを知っています。 Seurat 分析プロセスは、基本的に、フィルタリング、tSNE、UMAP 次元削減、描画など、単一細胞分析における一般的な分析方法をすべてカバーします。もう一つの重要な機能は、異なる実験間のバッチ効果を修正することです。しかし、Seurat 2 と Seurat 3 の補正方法はまったく異なり、得られる結果に一貫性がありません。

Seurat 2 は CCA (正準相関) に基づいており、腫瘍、末梢血、隣接する癌組織間の実験によって生じるバッチ効果を補正できます。また、異なる単一細胞実験プラットフォームを使用した実験によって生じるバッチ効果も補正できます。速度は遅いですが、効果は良好です。 Seurat 3 は、サンプル間で類似した発現プロファイルを持つ細胞集団に基づいて補正を行います。同じ性質の実験の場合、Seurat 3 は、異なる単一細胞技術によって引き起こされる実験バッチ効果を適切に補正できます。公式サイトに掲載されているパンサーズ補正結果から、その補正能力がいかに強力であるかが分かります。しかし、このような強力な補正能力により、腫瘍と末梢血サンプルの補正が過剰になり、グループ化されるべきでない細胞が類似した遺伝子発現プロファイルを持つ結果となりました。私もいくつかのプロジェクトに取り組んできましたが、そのすべてでこの問題が見つかったため、Seurat 3 の修正方法を断念し、Seurat 2 を使い続けました。ただし、Seurat 3 の findmarker 関数は、一度に 100,000 個を超えるセルをエラーなしでカウントできますが、Seurat 2 ではできません。妥協案としては、Seurat 2 と Seurat 3 のパッケージを同時にインストールし、ローカルに書き込んでからアップグレードのために Seurat 3 で読み取るのではなく、メモリ内のデータを切り替えることです。

特に数万個のセルの場合、データをローカルに保存するのに少なくとも 30 分、それを読み取るのに 30 分かかります。

ここで、ローカルで読み書きせずに、Seurat 2 と Seurat 3 を完全に切り替える方法を説明します。

実際、方法は非常に簡単です。Seurat 2 と Seurat 3 を別のライブラリにインストールするだけです。

私はそれをインストールしました、私のフリースイッチングを例として挙げます:

> Rバージョン
        _             
プラットフォーム x86_64-conda_cos6-linux-gnu
アーチx86_64           
OS Linux-GNU         
システム x86_64、linux-gnu     
状態                  
メジャー3             
マイナー 6.1            
2019年            
月 07             
5日目             
SVN リビジョン 76782           
言語 R             
version.string R バージョン 3.6.1 (2019-07-05)
ニックネーム つま先の動作

私は最新の R バージョン 3.6.1 を使用していますが、非常にうまく動作します。

デフォルトのライブラリはcondaに付属しているものです

> .libPaths()
[1] 「/data/home/heshuai/anaconda3/lib/R/library」

デフォルトのSeuratはSeurat 3の最新バージョンです

> 図書館(スーラ)
登録された S3 メソッドが 'R.oo' によって上書きされました:
 方法から   
 throw.default R.methodsS3
> packageVersion("Seurat")
[1] '3.0.2'

Seurat 2を別のライブラリにインストールしました

/data/home/heshuai/R/x86_64-conda_cos6-linux-gnu-ライブラリ

2つを自由に切り替える

1. まずSeurat 2が配置されているライブラリをロードします

> .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. Seurat 3 をデタッチしてから、Seurat 2 をロードします。Seurat 2 が配置されているライブラリはすでに Seurat 3 より前にあるため、デフォルトではシステムは最初に Seurat 2 をロードします。

> デタッチ("パッケージ:Seurat", アンロード = T)
> 図書館(スーラ)
必要なパッケージを読み込んでいます: ggplot2
RStudio コミュニティは、サポートを受けるのに最適な場所です: https://community.rstudio.com/c/tidyverse。
必要なパッケージを読み込んでいます: cowplot
 
********************************************************
注: バージョン1.0.0では、cowplotは
 デフォルトのggplot2テーマはもう使用できません。以前の
 動作、実行:
 theme_set(theme_cowplot())
********************************************************
 
必要なパッケージを読み込んでいます: Matrix
> packageVersion("Seurat")
[1] '2.3.4'
>

これで、Seurat 3 は Seurat 2 に正常に切り替えられました。Seurat 3 をロードする場合は、デフォルトのライブラリを Seurat 2 の前に変更するだけです。

とても簡単じゃないですか?

要約する

上記は、Linux で同じバージョンの R を使用して Seurat2 と Seurat3 を同時にインストールするためのチュートリアルです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。

以下もご興味があるかもしれません:
  • LinuxシステムにISOファイルをインストールする方法
  • Linux Tensorflow2.0のインストール問題を解決する
  • Linux に MySQL 8.0.x をインストールするための完全な手順
  • Linux仮想マシンにOracle 11Gをインストールする
  • Linux システムに 3 つ以上の Tomcat をインストールする (詳細な手順)
  • Linux に nginx をインストールする方法
  • MySQL 8.0.15 のインストールと設定のグラフィックチュートリアルと Linux でのパスワード変更

<<:  mysqlを完全にアンインストールします。個人テストです!

>>:  React、Angular、Vueの3つの主要なフロントエンド技術の詳細説明

推薦する

非表示のフォームテキストを表示するJavaScript

この記事では、フォームの隠しテキストを表示するためのJavaScriptの具体的なコードを参考までに...

良い広告にはどのような特徴が必要ですか?

広告業は人間であることに似ていると言う人がいます。これは本当です。優れた広告には、優れた人間と同じよ...

htmlダウンロード機能の詳しい説明

新しいプロジェクトは基本的に終了しました。フロントエンドとバックエンドを分離して統合を完了したのは初...

MySQL 5.7 インストール MySQL サービスを開始できませんが、サービスはエラーを報告しません

MySQL 5.7 をインストールするには 2 つの方法があります。1 つはインストーラをダウンロー...

MySQL 関数インデックス最適化ソリューション

MySQL を使用する場合、多くの開発者は一部の列に対して関数計算を実行することが多く、その結果、イ...

Nginx レイヤー 4 負荷分散構成ガイド

1. レイヤー4負荷分散の概要レイヤー 4 ロード バランシングとは何ですか?いわゆる 4 層負荷分...

Centos7 環境でソースコードから mysql5.7.16 をインストールする方法の詳細な説明

この記事では、centos7 環境でソース コードから mysql5.7.16 をインストールする方...

Linux コマンドラインのワイルドカードとエスケープ文字の実装

ハードディスクのファイル属性のバッチ表示など、特定の種類のファイルに対してバッチ操作を実行する場合、...

JavaScript ジグソーパズルゲーム

この記事の例では、ジグソーパズルゲームを実装するためのJavaScriptの具体的なコードを参考まで...

携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...

ノードを使用して静的ファイルキャッシュを実装する方法

目次キャッシュキャッシュ位置の分類キャッシュ設定ヘッダーNodeは静的ファイルキャッシュを実装する強...

PrometheusはGrafanaディスプレイを使用してMySQLを監視します

目次Prometheusはエクスポーターを介してMySQLを監視し、Grafanaチャートで表示しま...

MySQL におけるユニーク制約と NULL の詳細な説明

序文説明を簡略化するために以前に設定した要件は、他のグループから MQ メッセージを受信し、データベ...

MySQL 自動インクリメント ID のオーバーサイズ問題のトラブルシューティングと解決策

導入Xiao A がコードを書いていたところ、DBA Xiao B が突然、「急いでユーザー固有情報...

フロントエンドの面接でよく聞かれる JavaScript の質問の完全なリスト

目次1. 手書きのインスタンス2.配列のマップメソッドを実装する3. Reduceは配列のmapメソ...