Scanpyのドキュメントを眺めてDEG解析するまでに確認した方がいい部分を洗い出す

はじめに

DEG解析する必要がある。 ナウなツールだとSeuratとScanpyがある。

Rを覚えるのがしんどいのでScanpyから触ってみようと思う

難しいところ

  • AnnDataと仲良くする必要がある

いつもはPandasなりNumpyなりを使っていて、そのあたりのツールのクセはなんとなくわかっているけど、ScanpyはAnnDataを内部で使っているので違う方言になれる必要がある。pandasと比較してすり合わせたい...。

解析フローの概念

  1. データ読み込み
  2. 前処理?
  3. 解析
  4. 可視化
  5. 結果データのソートと出力

AnnDataってなに

anndataは、メモリ上およびディスク上の注釈付きデータ行列を扱うためのPythonパッケージで、pandasとxarrayの間に位置します。anndataは、スパースデータサポート、遅延操作、PyTorchインターフェースなど、幅広い計算効率の高い機能を備えています。

らしい。 Getting started with anndata — anndata 0.9.1 documentation を確認すると、行が細胞/列が遺伝子IDに対応する+各細胞のドナー情報や遺伝子IDの代替シンボルなどのメタデータを加えて持てる(行と列ごとのメタデータをpandasでいうところのマルチカラムやマルチインデックスではない状態で持てるって認識)

(正直説明だけ見たらPandasでもできそう)

確認事項

  • どのようなフォーマットを期待しているかを確認する
  • 読み込み後にどのような形式でデータが格納されるかを確認する
  • どのようにアクセスできるかを確認する

Xやobspなどいろいろあるのでそれぞれの意味を解釈しておく

obs, varともにpandasのSeriesを渡せばよいっぽいので思ったより楽かもしれない

https://raw.githubusercontent.com/scverse/anndata/main/docs/_static/img/anndata_schema.svg

実際のDEG解析はどうすればいい?

  • 発現変動遺伝子のシンボルのみを取り出す場合は highly_variable_genesメソッドを使えばいいっぽい
    • ただし、実験群と対照群を指定するパラメータがないので「何と比べて」の部分が不明
    • preprocessのメソッド群にあるので、前処理としてHVGを取り出して、あとのフローで細かい解析をする想定なのかもしれない
  • 発現変動遺伝子と関連する諸々の値を取り出すときはrank_genes_groupsを使えばいいっぽい
    • methodwilcoxonにすれば実質DEGの処理らしい
    • HVGを取り出した後に下流でこれを使えばHVGでp値も取れるのではないか?
    • diffxpyの方が賢くDEG解析できるのでは?のようなissueもある

まぁ、これ以上は調べてなにかピンとくるものがないので手を動かそうと思う。

おわりに

Scanpy完全に理解した()。おわります