😊

Linux + Conda で CellChat をインストールする完全備忘録

に公開

はじめに

single-cell RNA-seq 解析で広く使われている CellChat ですが、

  • CRAN / Bioconductor / GitHub
  • Rcpp / Eigen / igraph / NMF
  • conda 環境 + Linux

が絡み合い、インストールが地獄になりがちです。

この記事は、Linux 上で conda を使い、新しい仮想環境を作成して CellChat を動かすまでを、実際にハマったエラー込みでまとめた備忘録です。

結論から言うと、

「R に全部任せない。依存関係は conda で固める」

これがすべてでした。


環境

  • OS: Linux (x86_64)
  • package manager: conda / mamba
  • R: 4.4.x
  • CellChat: GitHub 版

1. conda 仮想環境を作成

まずは完全にクリーンな環境を作ります。

mamba create -n cellchat -c conda-forge -c bioconda \
  r-base=4.4 \
  r-remotes \
  r-rcpp \
  r-rcppeigen \
  r-dplyr \
  r-ggplot2 \
  r-patchwork \
  r-cowplot \
  r-data.table \
  r-magrittr \
  r-tidyr \
  r-stringr \
  r-future \
  r-future.apply \
  r-plotly \
  r-shiny \
  r-ggpubr \
  r-ggnetwork \
  r-circlize \
  r-complexheatmap \
  r-nmf \
  bioconductor-biocneighbors \
  r-igraph

有効化します。

conda activate cellchat

2. R を起動して確認

R

以下を確認。

R.version.string
.libPaths()
Platform: x86_64-conda-linux-gnu

と出ていれば conda R を使えています。


3. やってはいけないこと

この段階で以下をやると、ほぼ確実に壊れます。

install.packages("igraph")
install.packages("NMF")
update.packages()

理由:

  • system library(xml2, glpk, lapack 等)を R が勝手にビルドし始める
  • conda の ABI と衝突

4. CellChat を GitHub からインストール

ここが最大のポイントです。

library(remotes)
remotes::install_github("sqjin/CellChat")

途中で以下のように聞かれます:

These packages have more recent versions available.
Which would you like to update?

👉 必ず

3: None

を選びます。

これを間違えると、igraph / NMF 再ビルド地獄に戻ります。


5. よく出たエラーと対処

❌ NMF version error

namespace ‘NMF’ 0.21.0 is being loaded, but >= 0.23.0 is required

conda で r-nmf を入れる(CRAN から入れない)


❌ igraph linking error

ld: cannot find -lxml2

install.packages("igraph") をしているのが原因

→ conda の r-igraph に任せる


6. インストール成功の確認

library(CellChat)
packageVersion("CellChat")

以下が通れば成功。

data(CellChatDB.human)
CellChatDB.human

7. この環境を壊さないための鉄則

  • R は アプリケーション層
  • 依存ライブラリは conda 層
  • R に更新を聞かれたら None

「conda が土台、R はその上」


おわりに

CellChat のインストールは、

  • single-cell 初心者
  • Linux 初心者

にとっては完全にトラップだらけです。

この記事が、

  • 未来の自分
  • 同じところで詰まった誰か

の助けになれば幸いです。


参考

  • CellChat GitHub
  • Bioconductor / CRAN / conda-forge
GitHubで編集を提案

Discussion