Scanpyのドキュメントを眺めてDEG解析するまでに確認した方がいい部分を洗い出す
はじめに
DEG解析する必要がある。 ナウなツールだとSeuratとScanpyがある。
Rを覚えるのがしんどいのでScanpyから触ってみようと思う
難しいところ
AnnData
と仲良くする必要がある
いつもはPandasなりNumpyなりを使っていて、そのあたりのツールのクセはなんとなくわかっているけど、ScanpyはAnnDataを内部で使っているので違う方言になれる必要がある。pandasと比較してすり合わせたい...。
解析フローの概念
- データ読み込み
- 前処理?
- 解析
- 可視化
- 結果データのソートと出力
AnnDataってなに
anndataは、メモリ上およびディスク上の注釈付きデータ行列を扱うためのPythonパッケージで、pandasとxarrayの間に位置します。anndataは、スパースデータサポート、遅延操作、PyTorchインターフェースなど、幅広い計算効率の高い機能を備えています。
らしい。 Getting started with anndata — anndata 0.9.1 documentation を確認すると、行が細胞/列が遺伝子IDに対応する+各細胞のドナー情報や遺伝子IDの代替シンボルなどのメタデータを加えて持てる(行と列ごとのメタデータをpandasでいうところのマルチカラムやマルチインデックスではない状態で持てるって認識)
(正直説明だけ見たらPandasでもできそう)
確認事項
- どのようなフォーマットを期待しているかを確認する
- 読み込み後にどのような形式でデータが格納されるかを確認する
- どのようにアクセスできるかを確認する
図
Xやobspなどいろいろあるのでそれぞれの意味を解釈しておく
X
は行列形式I(2次元配列)を格納する、ここに遺伝子発現量が入るobs
はobservationらしい。- チュートリアルを見た感じm慣例的には
obs_names
に細胞のID
を入れる想定っぽい obs
そのものは細胞IDごとのメタデータを付け加えるもの- 例では細胞IDに
cell_type
を付与している(https://anndata.readthedocs.io/en/stable/tutorials/notebooks/getting-started.html#Observation/Variable-level) - DEG解析するときはobsに
condition
のカラムを作成して、control
,treatment
のラベルをつけておけばいいっぽい
- チュートリアルを見た感じm慣例的には
var
は遺伝子シンボルを格納する
obs, varともにpandasのSeriesを渡せばよいっぽいので思ったより楽かもしれない
実際のDEG解析はどうすればいい?
- 発現変動遺伝子のシンボルのみを取り出す場合は
highly_variable_genes
メソッドを使えばいいっぽい- ただし、実験群と対照群を指定するパラメータがないので「何と比べて」の部分が不明
- preprocessのメソッド群にあるので、前処理としてHVGを取り出して、あとのフローで細かい解析をする想定なのかもしれない
- 発現変動遺伝子と関連する諸々の値を取り出すときは
rank_genes_groups
を使えばいいっぽいmethod
をwilcoxon
にすれば実質DEGの処理らしい- HVGを取り出した後に下流でこれを使えばHVGでp値も取れるのではないか?
- diffxpyの方が賢くDEG解析できるのでは?のようなissueもある
まぁ、これ以上は調べてなにかピンとくるものがないので手を動かそうと思う。
おわりに
Scanpy完全に理解した()。おわります