日付;2024/04/28(土)
シングルセルRNAシークエンス(scRNA-seq)を解析するためには、RかPythonを使うのが一般的である。最近では先進的な解析手法はPythonで実装されることが多いように思う。例えば,
velocyte(Rもあるようだが、以前試したときにインストール出来なかった。そもそもpythonで使う予定だったので、深追いしていない。)やscVeloはRNA velocity解析のために利用されるパッケージであが、これらはpythonだし、Trajectory inferenceで有用なSTREAM(個人的にこれが一番良いと思っている。)もpythonである。また、転写因子を発現をもとにクラスタリングを行うSCENICもPythonになっていた。極めつけは、ヒトも免疫細胞のタイピングで超絶良い結果を返してくれるcelltypistもpythonである。はっきり言って、PythonはRに比べたらかなり計算速度が早い。Pandasやnumpyも、RのTidyverseやその他の計算方法に比べてなんとなくシームレスに使える気がする。それが理由だと思う。
しかしながら、統計解析はどうしてもRが強いようにも思う。例えば、ScanpyやSeuratを比べると、計算速度以外はSeuratの勝ちに見えるし、細胞間コミュニケーションで使用するcellchatなんかもRである。言いたいことは、堅牢なscRNA-seqの結果を得るためには、両者のいいところを活用して解析を進める必要があるってことである。
上記の理由から、scRNA-seqではどうしてもpythonを使う必要があるように思う。なのでまずはpythonのscRNA-seq解析環境を立ち上げようと思う。pythonで使用するパッケージは、Scanpy、SCENIC+、STEAM、CellPhoneDB、velocyto、scVeloである。一般的なscRNA-seq解析であれば、これで一通りはOKと思う。それでも、まともなデータを出すためには不十分なので、その点についてはRで補うことにする。以下の表が各パッケージの使用目的である。
パッケージ | 用途 |
Scanpy | 次元削減、細胞タイピング、一応の統計(ただし、SeuratやMASTに劣るので注意。)Scanpyは基本的なソフトとして使用していく。Scanpyの入っている環境にダブレット除去や細胞タイピングのパッケージも入れてく。 |
SCENIC+ | 細胞タイピング(前から使ってみたかった。) |
STREAM | Trajectory inference(疑似系譜解析) |
CellPhoneDB | 細胞間相互作用解析 |
velocyto | RNA velocity解析 |
scVelo | RNA velocity解析 |
コンピューター
使用するコンピューターは以下の通り。ちなみに、cellrangerの最低要件はメモリが128GB必要とか言っているが、64GBでも動くのでこれでOKである。まぁ、その分遅いのだろうけど。そこはしょうがない。
- Mouse Computer K5
- Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
- 64GB RAM
- Ubuntu 22.04.4 LTS (Jammy Jellyfish)
- 6.5.0-28-generic
- x86_64
pythonパッケージのインストールの基本
Rだとそんなに気にすることがなかったが、Rに比べてpythonパッケージは、パッケージ間の依存関係がけっこう強く、あるパッケージを入れたら、さっきまで動いていたパッケージが動かなくなるっていうことが良くある。なので、conda createかpip venvで仮想環境を作り、そこで一連の解析を行うようにする。自分はcondaで仮想環境を作っているが、これはconda経由でインストールするscRNA-seqのパッケージが多い(ように思う。)ためである。別に、知識があればpip venvでも一向に構わん。メインとなるパッケージ用に仮想環境を作り、そこに必要なパッケージを入れてくのはpythonの基本であり、その必要性は解析を行っていても感じるところである。以下からインストールしていく。なお、たまにインストールをミスってなんか効率の悪いことをやっていたりするが、最終的に動いたのでOKとする。