1. シングルセル解析(データの準備)

2024/04/24に公開

シングルセル解析 (scRNA-seq) データの準備について解説します。

1.1 シングルセルデータの取得

データの取得方法は、下記の2つに分けられるかと思います。

  • 自分でシーケンスして取得。
  • カウント結果を取得。

まず、前者であれば、シーケンス後の fastq ファイルから遺伝子発現を「カウント」する作業が必要になります。10x Genomics のプラットフォームの場合は、 Cell Ranger というパイプラインが提供されているので、これを用います。

後者の場合、 GEO などの公開されたデータから取得するか、シーケンス受託にカウントまでが含まれているケースが該当すると思います。ここでは主に、後者のケース(カウント後)について、 Seurat プログラムを用いて解析する方法を紹介します。

なお、シングルセル解析解析の用語については、下記が参考になるかもしれません。
https://zenn.dev/d01/scraps/599ab06e50b82c

Cell Ranger についての補足

Cell Ranger の使用方法については、 10x Genomics のドキュメント が非常に詳しいので、そちらを参照されたほうが良いです。ここでは、ドキュメントの理解に手助けとなる情報を紹介するに留めます。

学習するには、下記のチュートリアルを進めていけば良いです。

https://www.10xgenomics.com/support/software/cell-ranger/latest/tutorials

(1) Cell Ranger のインストール

実行に必要な python などのプログラムがコンテナ化されて、1つになっているので、対応する UNIX 環境であれば、圧縮 (tar.gz) を展開するだけで動作します。
「~/yard/apps/cellranger-x.y.z/cellranger」のようにフルパスで指定すれば動作します。(長いパスが面倒であれば、 .bashrc などに記述します。)

また、リファンレンス(GRCh38, mm10)のファイルもダウンロードして、展開して準備します。refdata-gex と書かれているのが、遺伝子発現用 (GEX) のリファレンスです。V(D)J (BCR, TCR) や、 ARC (ATAC)には専用のリファレンスがあります。

(2) Cell Ranger の実行

Cell Ranger の処理としては、下記の流れです。

  1. fastq ファイルの生成。(mkfastq)
  2. カウントの準備。(csv ファイルを作成)
  3. カウント。(cellranger count or multi)
  4. 必要であれば、複数サンプルをまとめる aggregation の処理。

このうち、最初の mkfastq コマンドを使った処理は、シーケンサーで行う操作です。Cell Ranger で処理できる形式の fastq を生成するためのもので、すでに fastq ファイルが手元にあるのであれば不要です。ただし、 Cell Ranger が認識できるファイル名には規則があります。下記のようなフォーマットになっていなければ、リネームが必要です。

sampleID_S1_L001_R1_001.fastq.gz
sampleID_S1_L001_R2_001.fastq.gz

*sampleID_R1_001.fastq.gz のようなケースでは、 S1_L001_ などを適当に補間しておきます。

「2.」のカウントの準備は、 cellranger multi のコマンドに渡すサンプル名などの引数を記述した csv ファイルを作成するものです。 fastq がどこにあるか、リファレンスがどこにあるかなどの情報を記述します。(単独のサンプルであれば、 cellranger count コマンドに引数で指定するので不要です。)

cellranger、リファレンス、fastqファイル、csvファイルが準備できれば、「3.」のカウントを実行できます。引数を指定すると、下記のような長いコマンドになります。

(入力例)

cellranger count --id=sampleID (結果フォルダの名前、任意) \
   --fastqs=/data/fastq (fastqファイルのあるフォルダ) \
   --sample=sampleID (fastqファイルの一部に一致)) \
   --transcriptome=/ref/refdata-gex-GRCh38-2020-A (リファレンスのフォルダ)

* id と sample の説明が逆になったいたので修正しました。

「4.」は、サンプルごとにカウントした結果を、1つにマージする場合に行う処理です。「3.」で、 cellranger multi でカウントした後、 cellranger aggr を実行すると複数サンプルをマージした結果が出力されます。 V(D)J の場合も、 multi でカウントすると、 GEX, TCR, BCR を連続して処理できます。

(3) Cell Ranger の結果ファイル(カウント結果)

Cell Ranger でカウントした結果は、デフォルトでは「outs」フォルダに格納されています。
multi で実行した場合は、さらに per_sample_outs/sampleID/count などの階層に入ります。

このうち、web_summary.htmlとして出力されているのが、カウント結果のサマリーです。マッピングの状況や、検出された細胞数、遺伝子数などがまとめられています。また、t-SNEアルゴリズムによるクラスタリング結果と、それらのクラスターを比較した結果も含まれています。(Seurat で解析する場合は、クラスタリングからやり直すことになるので、この結果は用いません。)

拡張子が、 .cloupe のファイルは、ルーペブラウザのファイルです。前述のサマリーに含まれるクラスタリング結果で出力されています。

1.2 Seurat で使用するファイル

Seurat での解析には、 sample_filtered_feature_bc_matrix フォルダにある下記の3つのファイルが必要です。

  • barcodes.tsv.gz
  • features.tsv.gz
  • matrix.mtx.gz

1サンプルあたり、これら3つのファイルが存在します。

GEO のデータ

GEOに公開されているサンプルも、これらの形式で提供されている場合があります。
(パイプラインが同一の場合、features.tsv.gzは、サンプルが異なっても同じ内容になるため省略されているケースもあるかもしれません。)

もしくは、Seurat で解析した結果が、 RDS ファイルや、 RData 形式で提供されていることもあります。この場合も、 Seurat に読み込んで解析に使用できます。その場合、フィルタリングや正規化が行われた後のデータであることが多いと思います。(rawデータではない。)

また、単純なマトリックスの形式で提供されているケースもあります。例えば、遺伝子ごとに「行」、細胞(バーコード)ごとに「列」になっているテキストデータ (txt, tsv, csv)です。

AAAA AAAT ...
gene1 1 2 ...
gene2 10 20 ...
... ... ... ...

Discussion