前回の記事で、Monocle3を用いた基本的なTrajectory解析の方法は習得できたと思います。しかしながら自身がもつシングルセルデータやNCBI GEOから拾ってきたデータなど公共データをどのようにTrajectory解析できるのかイメージしづらいと思います。
この記事ではcellrangerから出力された10X Genomics社のMatrixファイルを使ってTrajectory解析を行ってみます。これによって公共データを用いたTrajectory解析のやり方がわかります。ぜひトライしてみましょう。
macOS Monterey (12.4), Quad-Core Intel Core i7, Memory 32GB, R 4.3.0, Monocle3 1.3.7
公共データを用いたSingle Cell RNA-seq解析に関する初心者向け技術書を販売中
プログラミング初心者でも始められるわかりやすい解説!
RとSeuratで始めるSingle Cell RNA-seq解析!
公共データを用いたシングルセル ダイナミクス解析に関する初心者向け技術書を販売中
シングルセルデータの高度な解析であるTrajectory解析、RNA Velocity解析、空間トランスクリプトーム解析が環境構築方法から詳しく解説されています!
10x Genomics Cell Rangerのデータを読み込むには?
結論からいうと、10x Genomics Cell Ranger pipelineのデータを読み込むにはmonocle3のload_cellranger_data()を使います。公式サイトでも言及されています。
https://cole-trapnell-lab.github.io/monocle3/docs/getting_started/#10x-output
# Provide the path to the Cell Ranger output.
cds <- load_cellranger_data("~/Downloads/10x_data")
注記: load_cellranger_data
は、umi_cutoff
という引数を取ります。これは、セルに含まれるべきリード数を決定するものです。デフォルトでは、これは100に設定されています。すべてのセルを含める場合は、umi_cutoff
を0に設定します。
ファイル構造が 10x_data/outs/filtered_feature_bc_matrix/になる場合は、filtered_feature_bc_matrixを読み込みます。ここで、filtered_feature_bc_matrixの中には、features.tsv.gz、barcodes.tsv.gz、matrix.mtx.gzファイルが含まれています。
10x_data/
└── outs/
└── filtered_feature_bc_matrix/ (ここを読み込む)
├── features.tsv.gz
├── barcodes.tsv.gz
└── matrix.mtx.gz
または、load_mm_data
を使用して、MatrixMarket形式の任意のデータをロードできます。これを行うには、マトリックスファイルと2つのメタデータファイル(フィーチャ情報とセル情報)を指定します。今回はload_mm_data
は解説しないので、詳細については、?load_mm_data
を実行してください。
サンプルコード
cds <- load_mm_data(mat_path = "~/Downloads/matrix.mtx",
feature_anno_path = "~/Downloads/features.tsv",
cell_anno_path = "~/Downloads/barcodes.tsv")
10x Genomics Cell Rangerの出力ファイルでTrajectory解析の実装方法
それでは実際に、10x Genomics Cell Rangerの出力ファイルでTrajectory解析の実装方法を解説していきます。まずは今回の解析に使うデータをダウンロードしていきます。もちろんご自身の10x Genomicsフォーマットファイルを使ってもらっても良いです。
まずはターミナル上でDesktopまで移動してください。そしてinput-files/outsディレクトリを作ります。monocleはoutsフォルダを読み込むのでoutsも含めて作ってください。
mkdir -p input-files/outs
データダウンロードします。
curl -o input-files/outs/filtered_feature_bc_matrix.tar.gz <https://cf.10xgenomics.com/supp/cell-exp/neutrophils/filtered_feature_bc_matrix.tar.gz>
ダウンロードが終わったら、filtered_feature_bc_matrix.tar.gzを解凍してください。
データがダウンロードできたらMonocle3で解析していきます。解析で使うコードは以下になります。
library(monocle3)
# Cell Rangerの出力ディレクトリへのパス
data_dir <- "~/Desktop/input-files/" # outsフォルダの親ディレクトリ「input-files」を指定
# load_cellranger_data() でデータを読み込む
cds <- load_cellranger_data(data_dir)
# Pre-process the data
cds <- preprocess_cds(cds, num_dim = 100)
plot_pc_variance_explained(cds)
# Reduce dimensionality and visualize the cells
cds <- reduce_dimension(cds)
plot_cells(cds)
cds <- cluster_cells(cds)
cds <- learn_graph(cds)
colData(cds)$cluster <- partitions(cds)
plot_cells(cds, color_cells_by = "cluster")
実行結果
以下のような出力が得られたら成功です。
コードの解説
# Cell Rangerの出力ディレクトリへのパス
data_dir <- "~/Desktop/input-files/" # outsフォルダの親ディレクトリ「input-files」を指定
# load_cellranger_data() でデータを読み込む
cds <- load_cellranger_data(data_dir)
10x Genomics Cell Rangerの出力データを読み込みます。 data_dir
には、Cell Rangerの outs
フォルダの親ディレクトリを指定します。 load_cellranger_data()
関数は、指定されたディレクトリからデータを読み込み、Monocle3で扱える cell_data_set
(cds) オブジェクトを作成します。
# Pre-process the data
cds <- preprocess_cds(cds, num_dim = 100)
plot_pc_variance_explained(cds)
preprocess_cds()
関数でデータの前処理を行います。 num_dim = 100
は、主成分分析 (PCA) で計算する主成分の数を指定しています。 plot_pc_variance_explained()
関数は、各主成分が説明する分散の割合をプロットします。
# Reduce dimensionality and visualize the cells
cds <- reduce_dimension(cds)
plot_cells(cds)
reduce_dimension()
関数で次元削減を行います。デフォルトでは、UMAP (Uniform Manifold Approximation and Projection) が使用されます。 plot_cells()
関数は、次元削減されたデータに基づいて細胞を2次元空間にプロットします。
cds <- cluster_cells(cds)
cds <- learn_graph(cds)
cluster_cells()
関数で細胞のクラスタリングを行います。デフォルトでは、 Louvain アルゴリズムが使用されます。
learn_graph()
関数で、細胞間の遷移関係をグラフ構造として学習します。
colData(cds)$cluster <- partitions(cds)
plot_cells(cds, color_cells_by = "cluster")
partitions(cds)
で得られるクラスタリング結果を colData(cds)$cluster
に格納し、 plot_cells()
関数で細胞をクラスタごとに色分けしてプロットします。
最後に
いかがだったでしょうか。Trajectory解析はそこまで解析方法は難しくないですが、解釈にいくつか難しさが存在するかもしれません。じっくりと各手法の意味を理解することが重要です。今後もしっかり学んでいきましょう。
公共データを用いたSingle Cell RNA-seq解析に関する初心者向け技術書を販売中
プログラミング初心者でも始められるわかりやすい解説!
RとSeuratで始めるSingle Cell RNA-seq解析!
公共データを用いたシングルセル ダイナミクス解析に関する初心者向け技術書を販売中
シングルセルデータの高度な解析であるTrajectory解析、RNA Velocity解析、空間トランスクリプトーム解析が環境構築方法から詳しく解説されています!