空間トランスクリプトーム解析(spatial transcriptomics)のうちシーケンス型(Visium・Stereo-seq など NGS で読み出す方式)は、プラットフォームによって、1フィーチャに入る細胞の数が大きく違います。Curio Seeker(Slide-seq 由来)の 10 µm ビーズや、Stereo-seq の bin20 では、1フィーチャに 1〜2 個の細胞しか入りません。これは Visium の 55 µm スポット(1〜10 細胞)とも、Visium HD の 2 µm ビン(1 細胞が複数ビンに割れる)とも違う、第3のレジームです。扱い方も変わります。
1. Curio Seeker とは
Curio Seeker は、Slide-seq(Rodriques et al., Science, 2019)を製品化したものです。Broad Institute と Harvard で開発され、Curio Bioscience が販売しています。
| 項目 | 内容 |
|---|---|
| 1フィーチャ | 直径 10 µm のビーズ |
| 捕捉 | poly-A(新鮮凍結が前提) |
| 遺伝子 | 全転写産物 |
| タイル | 3 × 3 mm または 10 × 10 mm |
| 読み出し | NGS(顕微鏡は不要) |
| バーコード座標 | 製造時に決定され、データファイルとして提供される |
ビーズはタイル上にランダムに敷き詰められています。Visium HD のような規則的な格子ではありません。「10 µm 解像度で実質的に単一細胞」と説明されますが、この「実質的に単一細胞」という言葉には注意が要ります。
2. なぜ Visium とは問題が違うのか
10 µm というビーズの大きさは、哺乳類の細胞(10〜30 µm)とほぼ同じか、少し小さいくらいです。だから1つのビーズには、1個、多くて2個の細胞のRNAしか乗りません。

ここが Visium との決定的な違いです。Visium の 55 µm スポットには 1〜10 個の細胞が混ざるので、「T細胞 0.4、腫瘍 0.3、…」という割合に分解するのが仕事でした。Curio Seeker のビーズは 1〜2 細胞なので、「このビーズは T細胞、あるいは T細胞 と マクロファージ」と振り分けるのが仕事になります。
1つの観測に、最大2つの細胞が混ざっている。これは scRNA-seq のダブレットと同じ構図です。ただし目的が逆です。scRNA-seq ではダブレットを見つけて捨てるのに対し、空間データではビーズを捨てられません(その場所の情報が失われる)。だから、2つの細胞型を両方とも同定することを目指します。
この「最大2細胞型」という構造を、そのままモデルにするのが RCTD の doublet モードです。
3. もう1つの壁 ─ スパース性
ビーズが小さいということは、捕まえられる転写産物も少ないということです。1ビーズあたりのカウントは、Visium のスポットより桁違いに少なくなります。

python
import spatialdata_io as sdio
import scanpy as sc
import numpy as np
# Curio Seeker の出力を読む
sdata = sdio.curio("data/curio_run")
adata = sdata["table"]
# まず、1ビーズあたりのカウントの薄さを直視する
sc.pp.calculate_qc_metrics(adata, inplace=True, log1p=False)
print(np.percentile(adata.obs["total_counts"], [10, 25, 50, 75, 90]))
# 中央値が数百のオーダーなら、Visium の感覚は通用しない
カウントが薄いと、多くの遺伝子が「0 回」になります。その細胞型のマーカーが検出されなければ、細胞型を決めようがありません。そもそも判定できるだけの情報がないビーズが、一定の割合で出てきます。
Visium なら「総カウント 500 未満は壊れた細胞」と考えられました。Curio Seeker では、中央値そのものが数百のオーダーです。ここで Visium の閾値を当てると、ほとんどのビーズが消えます。閾値は、このプラットフォームのカウント分布を見てから決めてください(QC の記事の原則は同じで、分布を見てから閾値を決める)。
4. スパース性への対処 ─ 近傍をまとめる
カウントが足りないビーズが多いときの、現実的な対処は2つです。
- 近傍のビーズをまとめる:物理的に近いビーズのカウントを足し合わせて、擬似的な「メタビーズ」を作る。解像度は落ちるが、細胞型を決められるだけの情報が得られる。
- reject されたビーズは、無理に解釈しない:後述の doublet モードが「判定できない」と返したビーズは、除外する。
python
import squidpy as sq
# カウントが薄すぎるときは、近傍のビーズをまとめて底上げする
# ビーズはランダムに並ぶので、格子ではなく generic な近傍を使う
sq.gr.spatial_neighbors(adata, coord_type="generic", n_neighs=6)
# 近傍のビーズのカウントを足し合わせて、擬似的なメタビーズを作る
# (解像度は落ちるが、細胞型を決められるだけの情報が得られる)
W = adata.obsp["spatial_connectivities"]
pooled = W @ adata.layers["counts"] + adata.layers["counts"]
# 何倍まとめれば十分なカウントになるか、まず分布を見てから決める
print("元の中央値:", int(np.median(adata.obs["total_counts"])))
print("まとめた後:", int(np.median(np.asarray(pooled.sum(axis=1)))))
近傍のビーズをまとめると、1つのメタビーズに複数の細胞が入るようになります。つまり、準単一細胞レジームから、マルチセルレジームへ移動するということです。十分にまとめれば、今度は デコンボリューション(full モードや cell2location)のほうが適切になります。「どこまでまとめるか」は、細胞型を決められるカウントと保ちたい解像度のトレードオフで決めます。
5. RCTD doublet モードを走らせる
doublet モードは、手法比較で触れたとおり、1フィーチャあたり最大2つの細胞型に制約します。この制約が、まさに準単一細胞レジームに合っています。RCTD の原論文でも、Slide-seq では3種類以上の細胞型が混ざるケースが稀だったため、2つへの制約が過適合を抑えると述べられています(Cable et al., Nature Biotechnology, 2022)。
r
library(spacexr)
library(SpatialExperiment)
# 準単一細胞レジームなので、doublet モードを使う
# 1ビーズに最大2細胞型まで、という制約が効く
rctd_data <- createRctd(bead_spe, reference_se, cell_type_col = "cell_type")
res <- runRctd(rctd_data, rctd_mode = "doublet", max_cores = 4)
# 各ビーズの判定を取り出す
df <- res@results$results_df
table(df$spot_class)
# singlet doublet_certain doublet_uncertain reject
# reject の割合を確認する。多ければ、そもそも解けていない
mean(df$spot_class == "reject")
6. 出力を読む ─ 4つの判定
doublet モードは、各ビーズに spot_class という判定を付けます。これが4種類あり、それぞれ扱いが違います。

| spot_class | 意味 | 使えるもの | 扱い |
|---|---|---|---|
| singlet | 1つの細胞型 | first_type | 信頼できる。そのまま使う |
| doublet_certain | 2つの細胞型(両方とも確信) | first_type + second_type | 両方とも信頼できる |
| doublet_uncertain | 2つの細胞型(片方だけ確信) | first_type のみ | second_type は疑ってかかる |
| reject | 判定できない | なし | 情報不足。除外する |
python
import pandas as pd
# R の結果を Python 側に持ってきたとする(df に spot_class / first_type / second_type)
# 判定ごとに、扱いを変える
# singlet と doublet_certain は、そのまま信頼してよい
trust = df[df["spot_class"].isin(["singlet", "doublet_certain"])]
# doublet_uncertain は、first_type だけ使う(second_type は捨てる)
uncertain = df[df["spot_class"] == "doublet_uncertain"]
# uncertain の second_type を参照した解析はしない
# reject は解析から外す
df_use = df[df["spot_class"] != "reject"].copy()
# 各ビーズを first_type で塗って、組織の上に描く
adata.obs["cell_type"] = df_use["first_type"]
sq.pl.spatial_scatter(adata, color="cell_type", shape=None)
reject や doublet_uncertain が多いのは、危険信号です。考えられる原因は2つ。(1) カウントが足りない(近傍をまとめる、または解析単位を粗くする)。(2) 参照が組織に合っていない(参照に無い細胞型が多い、または参照の細胞型どうしが区別できていない)。半分以上が reject や uncertain なら、doublet モードが適していない兆候です。近傍をまとめてマルチセルレジームに移し、full モードや cell2location を試してください。
7. 返るのは「割合」ではなく「ラベル」─ 下流への影響
ここは見落とされがちですが、重要です。doublet モードが返すのは、フィーチャごとの細胞型のラベル(最大2つ)であって、cell2location が返すような連続的な割合や細胞数ではありません。
この違いは、下流解析に響きます。
| 下流解析 | 割合ベース(Visium) | ラベルベース(Curio doublet) |
|---|---|---|
| 組成の比較 | 割合ベクトルをそのまま比べる | 細胞型ごとのビーズ数を数える |
| 近傍解析 | 割合の空間相関を見る | 細胞型ラベルの近傍濃縮を見る(scRNA-seq に近い) |
| 細胞間コミュニケーション | 割合で重みづけ | 隣り合うビーズの細胞型ペアを数える |
1ビーズに1つ(または2つ)の細胞型ラベルが付くというのは、解離した細胞に細胞型を付けた scRNA-seq の状態に近い。しかも座標が付いている。つまり、Curio Seeker のデータは「位置情報つきの単一細胞データ」として扱える面があります。近傍解析やニッチ解析では、Visium のような割合ベースの手法より、細胞型ラベルを使う scRNA-seq 寄りのアプローチが素直です。
8. Stereo-seq の bin20 も同じレジーム
Stereo-seq(Chen et al., Cell, 2022)の bin20(10 µm × 10 µm)も、サイズ的には哺乳類の細胞とほぼ同じで、準単一細胞レジームに入ります。扱いは Curio Seeker と同じ考え方で進められます。
- 1 bin に 1〜2 細胞なら、doublet モードが候補。
- カウントが薄ければ、bin を大きくする(bin50、bin100)か、近傍をまとめる。
- 核染色画像があって条件を満たすなら、cellbinに進んで、はっきり1細胞にする道もある。
Stereo-seq には bin1〜bin200 という連続した選択肢があるので、「どの bin サイズがどのレジームに当たるか」を、解析単位の決め方で決めてから、この記事の判断に入ってください。
9. 判断のまとめ
| 状況 | やること |
|---|---|
| 1ビーズ 1〜2 細胞、カウントが十分 | RCTD doublet モード |
| カウントが薄く、reject が多い | 近傍をまとめる → マルチセルレジームへ |
| まとめた結果、多数の細胞が混ざる | full モード または cell2location |
| 核染色画像があり条件を満たす(Stereo-seq) | cellbin で 1 細胞にする |
| 下流で近傍・ニッチを見る | 割合ベースではなく、細胞型ラベルベースで |
まとめ
- Curio Seeker(Slide-seq)の 10 µm ビーズ、Stereo-seq の bin20 は、1フィーチャ 1〜2 細胞の準単一細胞レジーム。
- Visium の割合への分解ではなく、最大2細胞型への振り分けが仕事。だから RCTD の doublet モードを使う。
- スパース性が最大の壁。1ビーズあたりのカウントは Visium より桁違いに少ない。Visium の QC 閾値をそのまま当てない。
- カウントが薄ければ近傍をまとめる。ただし、それはマルチセルレジームへの移動でもある。
- doublet モードの出力は singlet / doublet_certain / doublet_uncertain / reject。uncertain の second_type は捨て、reject は除外する。
- reject の割合を必ず確認。半分以上なら doublet モードが適していない。
- 返るのは割合ではなく細胞型ラベル。下流は scRNA-seq 寄りのラベルベースで組み立てる。
関連記事
- シーケンス型 空間トランスクリプトーム:手法比較(CARD・RCTD・Tangram)
- シーケンス型 空間トランスクリプトーム:cell2location 実践
- シーケンス型 空間トランスクリプトーム:解析単位の決め方
- シーケンス型 空間トランスクリプトーム:Visium HD のビン→細胞再構成
- シーケンス型 空間トランスクリプトーム:Stereo-seq の bin と cellbin
- scRNA-seq解析:ダブレット検出の基本(Scrublet)
- scRNA-seq解析:細胞型アノテーション手法の全体像
- scRNA-seq解析:データの読み込みと品質管理(QC)
- scRNA-seq解析の土台:AnnData のデータ構造をリレーショナルDBの発想で理解する
参考文献
- Rodriques, S. G., Stickels, R. R., Goeva, A., et al. (2019). Slide-seq: A scalable technology for measuring genome-wide expression at high spatial resolution. Science, 363(6434), 1463–1467. doi:10.1126/science.aaw1219
- Stickels, R. R., Murray, E., Kumar, P., et al. (2021). Highly sensitive spatial transcriptomics at near-cellular resolution with Slide-seqV2. Nature Biotechnology, 39(3), 313–319. doi:10.1038/s41587-020-0739-1
- Cable, D. M., Murray, E., Zou, L. S., et al. (2022). Robust decomposition of cell type mixtures in spatial transcriptomics. Nature Biotechnology, 40(4), 517–526. doi:10.1038/s41587-021-00830-w
- Kleshchevnikov, V., Shmatko, A., Dann, E., et al. (2022). Cell2location maps fine-grained cell types in spatial transcriptomics. Nature Biotechnology, 40(5), 661–671. doi:10.1038/s41587-021-01139-4
- Marshall, J. L., Noel, T., Wang, Q. S., et al. (2022). High-resolution Slide-seqV2 spatial transcriptomics enables discovery of disease-specific cell neighborhoods and pathways. iScience, 25(4), 104097. doi:10.1016/j.isci.2022.104097
- Chen, A., Liao, S., Cheng, M., et al. (2022). Spatiotemporal transcriptomic atlas of mouse organogenesis using DNA nanoball-patterned arrays. Cell, 185(10), 1777–1792. doi:10.1016/j.cell.2022.04.003
- Marconato, L., Palla, G., Yamauchi, K. A., et al. (2025). SpatialData: an open and universal data framework for spatial omics. Nature Methods, 22(1), 58–62. doi:10.1038/s41592-024-02212-x
- Palla, G., Spitzer, H., Klein, M., et al. (2022). Squidpy: a scalable framework for spatial omics analysis. Nature Methods, 19(2), 171–178. doi:10.1038/s41592-021-01358-2
- Wolf, F. A., Angerer, P., & Theis, F. J. (2018). SCANPY: large-scale single-cell gene expression data analysis. Genome Biology, 19, 15. doi:10.1186/s13059-017-1382-0


コメント