scRNA-seqの前処理 入門 ─ 全体像と進め方をやさしく解説

scRNA-seq

📚 この記事について:scRNA-seq解析の「前処理」の全体像をつかむためのハブ記事です。各ステップの詳細は個別記事へリンクしています。専門用語は出てくるたびに説明します。

🧩 前提:データ構造の土台として AnnDataのデータ構造 を先に読むと、各ステップの理解がスムーズです。

🔜 次のステップデータの読み込みと品質管理(QC)


はじめに:そもそも「前処理」とは

シングルセル RNA-seq(scRNA-seq、single-cell RNA sequencing:1細胞ずつ遺伝子の発現を測る技術)の装置から出てくるデータは、そのままでは解析できません。技術的なノイズや人工物(アーティファクト)が混ざった生データだからです。これを解析できる形に整える工程を「前処理」と呼びます。

💡 なぜ前処理が必要?
生データには、アンビエントRNA(液滴に紛れ込んだ細胞外のRNA)、ダブレット(2細胞の混在)、バッチ効果(測定のクセ)などが含まれます。これらを除かずに解析すると、存在しない細胞集団偽の差を生み、結論を誤らせます。

入口と出口はこうです。

  • 入口:細胞ごとに「どの遺伝子が何回読まれたか」を記録した巨大な表(行=細胞、列=遺伝子)。これを カウント行列 と呼びます。
  • 出口:低品質な細胞を除き、サンプル間のズレをそろえ、似た細胞をグループ分けし終えた、きれいなデータ。

この出口のデータが、次の本格的な解析(細胞型の同定、条件間の比較など)の出発点になります。前処理の質が、その後すべての精度を決めます。

前処理の入口(カウント行列)→ 前処理 → 出口(きれいなデータ)
前処理は、ノイズ混じりのカウント行列を、グループ分けまで済んだ解析可能なデータに整える工程

前処理の8ステップ(何のために、何をする?)

全体は8つのステップに分かれます。まずは「各ステップが何のためにあるか」を先に押さえましょう。ツール名は今は軽く見るだけでOKです。

前処理の8ステップの流れ(①読み込み →〜→ ⑧クラスタリング)
前処理の8ステップの流れ(①読み込み →〜→ ⑧クラスタリング)

① 読み込み — 装置が出力した巨大な表(カウント行列)を、解析ソフト(Python)に取り込みます。データは AnnData という形式で保持します。〔道具:read_10x_mtx/普通のPCで可〕

② 品質管理(QC) — 壊れた細胞や、検出遺伝子がほとんどない低情報の細胞など、解析に使えない細胞を取り除きます。この工程を QC(quality control=品質管理) と呼びます。〔道具:calculate_qc_metrics/普通のPCで可〕

③ ダブレット検出 — 1つの液滴に2個の細胞が入り、1細胞ぶんとして記録されてしまったデータダブレットと呼びます。除かないと、2種類の細胞の発現が混ざった「中間的な偽の集団」が生じ、存在しない細胞型として解析を惑わせます。〔道具:scrublet または SOLO/後述の2ルート参照〕

④ 正規化 — 細胞ごとに検出された遺伝子の総量(総カウント数)が大きく異なるため、そのままでは発現量を公平に比較できません。総量をそろえてから対数変換し、細胞間で比較できる値にします。〔道具:shifted log(対数変換)/普通のPCで可〕

⑤ 特徴選択(HVG) — 数千ある遺伝子の多くは、どの細胞でもほぼ一定の発現で、細胞集団を見分ける手がかりになりません。細胞ごとに発現が大きく変動する遺伝子だけに絞ると、集団構造が見えやすくなり、計算も軽くなります。こうした遺伝子を HVG(highly variable genes=高変動遺伝子) と呼びます。〔道具:seurat_v3/普通のPCで可〕

⑥ 統合・バッチ補正 — 別々の日や装置で測ると、同じ種類の細胞でも測定のクセでズレます(これをバッチ効果といいます)。この技術的なクセだけを取り除き、サンプルをまたいで比較できるようにします。

💡 ポイント:取り除くのは「技術的なバッチ効果」だけです。本物の生物学的な違いまで消さないことが重要で、これが手法選びの分かれ目になります。

〔道具:Harmony または scVI/後述の2ルート参照〕

⑦ 次元削減 — 遺伝子は数千種類あり、そのままでは可視化できません。情報を保ったまま次元を圧縮し、2次元の図に落とし込みます。まず PCA(主成分分析)で数十次元に圧縮し、UMAP(2次元配置の可視化に特化)で2次元に展開する、2段構えが標準です。〔道具:PCA → UMAP/普通のPCで可〕

⑧ クラスタリング — 次元削減後の空間で、発現パターンが似た(近接する)細胞どうしをグループにまとめ、細胞集団(クラスタ)を見つけます。〔道具:Leiden/普通のPCで可〕

ここまで終えると、「クラスタリングまで済んだきれいなデータ」が完成します。


ざっくり一覧(早見表)

ステップ 何のため 主な道具 必要な環境
① 読み込み データを取り込む read_10x_mtx 普通のPC
② 品質管理(QC) 使えない細胞を除く MAD 基準のフィルタ 普通のPC
③ ダブレット検出 2細胞→1つの偽物を除く scrublet / SOLO PC / GPU
④ 正規化 公平に比較できるように shifted log 普通のPC
⑤ 特徴選択(HVG) 変動の大きい遺伝子に絞る seurat_v3 普通のPC
⑥ 統合・バッチ補正 測定のクセを除く Harmony / scVI PC / GPU
⑦ 次元削減 2次元に圧縮する PCA → UMAP 普通のPC
⑧ クラスタリング 細胞をグループ分け Leiden 普通のPC

表の「主な道具」列に並んでいるのは、いずれも Python から呼び出す関数です。実際の作業は、AnnData というデータの箱に対して、列を足したり行を絞ったりする操作の連続になります。ここで手が止まるかどうかは、scRNA-seq の知識ではなく、pandas や NumPy で表を扱えるかで決まります。読めていれば各ステップの引数を自分のデータに合わせて動かせますが、読めないと、コードを写して出てきた図を眺めるところで止まってしまいます。

Python 自体がこれからという場合は、『改訂 独習Pythonバイオ情報解析』が、この8ステップとほぼ同じ道筋をたどれる本です。環境構築から始まり、pandas で発現量の表を扱い、最後は Scanpy でシングルセル解析まで進みます。本記事を読んで「言っていることは分かるが、自分のデータでは動かせる気がしない」と感じたなら、その差を埋める一冊です。筆者もこの本を最初に読み、Dry解析を始めました。

改訂 独習Pythonバイオ情報解析

改訂 独習Pythonバイオ情報解析(実験医学別冊)

羊土社・2025年1月/7,150円(税込)。Miniconda での環境構築、Jupyter Notebook、Python の基本文法、NumPy・pandas による表データの操作を順に押さえたうえで、Scanpy を用いたシングルセル解析へ進む構成。改訂版で Scanpy の解説が加筆されている。

※上記リンクはアフィリエイト広告(PR)です


むずかしい2ステップには「2つのルート」がある

表で「PC / GPU」となっている ③ダブレット検出⑥統合 には、やり方が2通りあります。ここがこのセクションのポイントです。

  • 古典的な方法(Harmony・scrublet)普通のパソコンで動く、手軽で速い方法。
  • AI の方法(scVI・SOLO)GPU が必要な、深層学習を使う方法。大きなデータや難しいケースに強い。

💡 GPU って?
もともと画像処理用の高速な計算装置で、AI の計算に向いています。手元に無くても、無料の Google Colab で使えます。

どちらか一方のルートを選べばOKです。流れはこうなります。

2つのルート:普通のPCで完結するルート(古典)と GPU を使うルート(AI)
2つのルート:普通のPCで完結するルート(古典)と GPU を使うルート(AI)

💡 なぜ順番が違う?:scrublet は単独で動くので統合の前に、SOLO は scVI の結果が必要なので統合の後に行います。

🔰 初めてならこれ:まずは 普通のPCで完結する組み合わせ(Harmony+scrublet) で十分です。GPU が使えるようになったら、AI のルート(scVI 系)を試しましょう。「AI だから常に良い」わけではなく、データの規模・GPUの有無・目的で選ぶのが正解です。

各ツールの詳細は個別記事へ:統合は Harmony(古典) / scVI(AI)、ダブレットは scrublet(古典) / SOLO(AI)


(任意)RNA velocity をやる予定の人へ

細胞の「これからの変化」を予測する RNA velocity という解析をやる場合は、そのための専用ファイル(loom ファイル)を、①読み込みの段階で一緒に取り込んでおくとスムーズです。loom の作り方と velocity 解析そのものは別記事で扱います。今は「最初に取り込むんだな」とだけ覚えておけば十分です。


慣れてきたら:古典 vs AI の詳しい比較

ここからは少し踏み込んだ内容です。最初は読み飛ばしてかまいません。各ツールの仕組み・インストール・落とし穴は、末尾の関連記事で詳しく解説しています。

⑥ 統合:Harmony と scVI の違い

観点 Harmony(古典・PC) scVI(AI・GPU)
仕組み PCA の空間でバッチを反復的にそろえる 生カウントを深層学習で表現し直す
速度(小規模) 速い 遅い
大規模データ やや不利 得意
強いバッチ効果 消しすぎることがある 強い効果を消しつつ生物差を保つ
再現性 ほぼ毎回同じ 乱数依存(毎回わずかに違う)
発展性 単機能 SOLO・アノテーション等へ発展

📌 目安:GPU が無い・小〜中規模 → Harmony/GPU 可・大規模・発展性が欲しい → scVI(Luecken et al., 2022)。

③ ダブレット:scrublet と SOLO の違い

観点 scrublet(古典・PC) SOLO(AI・GPU)
仕組み 人工的に作ったダブレットと比較 scVI の表現を使い分類
前提 単独で動く 学習済みの scVI が必要
実行する位置 統合の前 統合(scVI)の後

📌 目安:GPU が無い・手早く → scrublet/scVI を使っている → SOLO。性能はデータ次第なので、重要な解析では両方使って一致を見るのも有効です(Xi & Li, 2021)。


このセクションの記事一覧

# 記事 環境
1 データの読み込みと品質管理(QC) 普通のPC
2 サンプル統合:Harmony(古典) 普通のPC
3 サンプル統合:scVI(AI) GPU必須
4 ダブレット検出:scrublet(古典) 普通のPC
5 ダブレット検出:SOLO(AI) GPU必須
6 正規化・特徴選択・次元削減・クラスタリング 普通のPC

統合・ダブレットの AI 手法(scVI・SOLO)の仕組みや、どのモデルをいつ使うかは scvi-tools の全体像 でまとめて解説しています。


関連記事


参考文献

  • Heumos, L., Schaar, A. C., Lance, C., et al. (2023). Best practices for single-cell analysis across modalities. Nature Reviews Genetics, 24, 550–572. doi:10.1038/s41576-023-00586-w
  • Luecken, M. D., Büttner, M., Chaichoompu, K., et al. (2022). Benchmarking atlas-level data integration in single-cell genomics. Nature Methods, 19, 41–50. doi:10.1038/s41592-021-01336-8
  • Xi, N. M., & Li, J. J. (2021). Benchmarking Computational Doublet-Detection Methods for Single-Cell RNA Sequencing Data. Cell Systems, 12(2), 176–194. doi:10.1016/j.cels.2020.11.008
  • Traag, V. A., Waltman, L., & van Eck, N. J. (2019). From Louvain to Leiden: guaranteeing well-connected communities. Scientific Reports, 9, 5233. doi:10.1038/s41598-019-41695-z

コメント

タイトルとURLをコピーしました