今回はシングルセルシーケンスにおける Multiplex Samples の取り扱いについて簡単に書き残しておく。
昨今流行しているシングルセルシーケンスであるが、複数のサンプルにそれぞれ “Hashtag” (ハッシュタグ) をつけることで、混合してシングルセルシーケンスしてもそのハッシュタグに対する抗体によって元の由来のサンプルを復元できるという技術がある。イメージとしてはこちらのページがわかりやすい。
Cell Hashing の何が良いかというと、シングルセルシーケンスにおけるバッチエフェクトを軽減させることができるというのが大きいだろう。
10Xにおける Antibody Capture と Scanpy での読み込み
10Xプラットフォームを用いた Cell Hashing は Cell Ranger で解析できる。v9.0 以降からはパイプラインが変わっているので注意。こちらを参照のこと。
HTO-
から始まるハッシュタグがついた状態のh5ファイルが出力された状態から今回はスタートする。
通常と異なるところがh5ファイルの読み込み時点にある。通常のh5データの読み込みは
import scanpy as sc
adata = sc.read_10x_h5(file)
といった具合で読み込む。しかしこの方法だと肝心のハッシュされたデータが含まれていない。
Scanpyの公式ドキュメントを読んでみると、
scanpy.read_10x_h5(filename, *, genome=None, gex_only=True, backup_url=None)
と書かれている。これの gex_only
が大事な部分で、これがTrueだと遺伝子発現データのみが残され、残りのデータは読み込みの際に破棄される。残りのデータには今回説明した Antibody Capture
だけでなく、 CRISPR Guide Capture
や Custom
などのデータタイプが含まれる。これらのデータを読み込むにはこれをFalseとしなければならない。すなわち、
import scanpy as sc
adata = sc.read_10x_h5(file, gex_only=False)
のように、明示的に gex_only=False
を指定してやる必要がある。これをすると、遺伝子シンボルが入っているのと同じ変数に HTO-XXXX
といったハッシュが含まれていることが確認できるだろう。