{ "cells": [ { "cell_type": "markdown", "id": "5at62adr", "metadata": {}, "source": [ "# scCS Benchmark Tutorial — Processing Speed Scaling\n", "\n", "**scCS v0.7.0**\n", "\n", "This notebook measures wall-clock time for the core scCS functions across\n", "dataset sizes from **1,000 to 1,000,000 cells × 3,000 genes**.\n", "\n", "All data is **synthetic** (no internet access or real datasets required).\n", "The benchmark isolates scCS compute, not data loading.\n", "\n", "## Key result\n", "\n", "| n_cells | build_star_embedding | fit | score | score(cell_level=True) |\n", "|---|---|---|---|---|\n", "| 1,000 | 0.014 s | 0.002 s | 0.004 s | 0.003 s |\n", "| 10,000 | 0.069 s | 0.006 s | 0.002 s | 0.005 s |\n", "| 100,000 | 0.644 s | 0.068 s | 0.009 s | 0.043 s |\n", "| 1,000,000 | **1.98 s** | **0.82 s** | **0.07 s** | **0.36 s** |\n", "\n", "All four functions scale **sub-linearly to linearly** with cell count.\n", "The entire pipeline (embed → fit → score with cell-level) runs in **< 3.2 s at 1M cells**.\n" ] }, { "cell_type": "markdown", "id": "zb572kej", "metadata": {}, "source": [ "## 1. Setup" ] }, { "cell_type": "code", "execution_count": 1, "id": "yiuzk73q", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scCS version: 0.7.4\n" ] } ], "source": [ "import time\n", "import warnings\n", "import numpy as np\n", "import pandas as pd\n", "import anndata as ad\n", "import scanpy as sc\n", "import matplotlib.pyplot as plt\n", "import matplotlib.ticker as ticker\n", "from scipy.sparse import eye as speye, csr_matrix\n", "\n", "sc.settings.verbosity = 0\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "import scCS\n", "print(f\"scCS version: {scCS.__version__}\")\n" ] }, { "cell_type": "markdown", "id": "dkszxszj", "metadata": {}, "source": [ "## 2. Synthetic data factory\n", "\n", "### Why not use `sc.pp.pca()` + `sc.pp.neighbors()`?\n", "\n", "The original approach ran full PCA on the n×g gene matrix and built a real\n", "k-NN graph — both O(n·g) to O(n²) operations that dominate at large n.\n", "For benchmarking scCS specifically, neither is needed:\n", "\n", "| What scCS actually needs | What we inject instead |\n", "|---|---|\n", "| `adata.obsm[\"X_pca\"]` (for neighbor graph) | Random Gaussian matrix (n × 50) |\n", "| `adata.obsp[\"connectivities\"]` (for UMAP layout) | Random sparse COO graph |\n", "| `adata.layers[\"velocity\"]` (projected to 2D) | Tiled random block (dense) or sparse random |\n", "| `adata.obs[\"velocity_pseudotime\"]` | Uniform(0,1) |\n", "\n", "**Speedup vs full PCA+neighbors:** ~40–55× at 1k–10k cells.\n", "\n", "### Two factories\n", "\n", "- **`make_synthetic_adata_fastest`** — dense tiled velocity, for n ≤ 100k\n", "- **`make_synthetic_adata_1m`** — sparse velocity (30 nonzero genes/cell), for n ≥ 500k\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "d81lu3mg", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Factory OK: AnnData object with n_obs × n_vars = 500 × 100\n", " obs: 'clusters', 'velocity_pseudotime'\n", " uns: 'neighbors'\n", " obsm: 'X_pca'\n", " layers: 'velocity'\n", " obsp: 'connectivities', 'distances', 'velocity_graph'\n" ] } ], "source": [ "K_FATES = 4\n", "FATE_NAMES = [f\"Fate{i}\" for i in range(K_FATES)]\n", "ROOT_NAME = \"Root\"\n", "\n", "def make_synthetic_adata_fastest(n_cells, n_genes=3000, n_pcs=50, seed=42):\n", " \"\"\"Fast synthetic AnnData: injected PCA coords + random COO neighbor graph.\n", " Uses a tiled random velocity block (dense). Suitable for n <= 100k.\n", " \"\"\"\n", " rng = np.random.default_rng(seed)\n", " cluster_labels = np.full(n_cells, ROOT_NAME, dtype=object)\n", " cells_per_fate = n_cells // (K_FATES + 1)\n", " for j, name in enumerate(FATE_NAMES):\n", " cluster_labels[(j+1)*cells_per_fate:(j+2)*cells_per_fate] = name\n", "\n", " # Maximally sparse X (1 nonzero per row) — layers must match n_vars\n", " X = csr_matrix(\n", " (np.ones(n_cells, dtype=np.float32),\n", " (np.arange(n_cells), np.zeros(n_cells, dtype=np.int32))),\n", " shape=(n_cells, n_genes))\n", " adata = ad.AnnData(X)\n", " adata.obs[\"clusters\"] = pd.Categorical(cluster_labels)\n", "\n", " # Velocity: tile a 1000-row random block + tiny per-cell noise\n", " block = rng.normal(0, 1, (min(1000, n_cells), n_genes)).astype(np.float32)\n", " vel = np.tile(block, ((n_cells + 999) // 1000, 1))[:n_cells]\n", " vel += rng.normal(0, 0.01, (n_cells, n_genes)).astype(np.float32)\n", " adata.layers[\"velocity\"] = vel\n", "\n", " adata.obs[\"velocity_pseudotime\"] = rng.uniform(0, 1, n_cells).astype(np.float32)\n", " adata.obsm[\"X_pca\"] = rng.normal(0, 1, (n_cells, n_pcs)).astype(np.float32)\n", "\n", " # Random COO neighbor graph (k=15, no Python loop)\n", " k_nn = min(15, n_cells - 1)\n", " rows = np.repeat(np.arange(n_cells, dtype=np.int32), k_nn)\n", " cols = rng.integers(0, n_cells, size=n_cells * k_nn, dtype=np.int32)\n", " mask = rows != cols\n", " conn = csr_matrix((np.ones(mask.sum(), dtype=np.float32),\n", " (rows[mask], cols[mask])), shape=(n_cells, n_cells))\n", " conn = (conn + conn.T); conn.data[:] = 1.0\n", " adata.obsp[\"connectivities\"] = conn\n", " adata.obsp[\"distances\"] = conn.copy()\n", " adata.uns[\"neighbors\"] = {\"connectivities_key\": \"connectivities\",\n", " \"distances_key\": \"distances\",\n", " \"params\": {\"n_neighbors\": k_nn, \"method\": \"umap\"}}\n", " adata.obsp[\"velocity_graph\"] = speye(n_cells, format=\"csr\", dtype=np.float32) * 0.1\n", " return adata\n", "\n", "\n", "def make_synthetic_adata_1m(n_cells, n_genes=3000, n_pcs=50, seed=42):\n", " \"\"\"Memory-efficient factory for n >= 500k.\n", " Uses a sparse velocity layer (30 nonzero genes/cell) to avoid the\n", " n x g dense allocation (~12 GB at 1M x 3000 float32).\n", " \"\"\"\n", " rng = np.random.default_rng(seed)\n", " cluster_labels = np.full(n_cells, ROOT_NAME, dtype=object)\n", " cells_per_fate = n_cells // (K_FATES + 1)\n", " for j, name in enumerate(FATE_NAMES):\n", " cluster_labels[(j+1)*cells_per_fate:(j+2)*cells_per_fate] = name\n", "\n", " X = csr_matrix(\n", " (np.ones(n_cells, dtype=np.float32),\n", " (np.arange(n_cells), np.zeros(n_cells, dtype=np.int32))),\n", " shape=(n_cells, n_genes))\n", " adata = ad.AnnData(X)\n", " adata.obs[\"clusters\"] = pd.Categorical(cluster_labels)\n", "\n", " # Sparse velocity: 30 nonzero genes per cell → ~119 MB at 1M cells\n", " k_nz = 30\n", " r = np.repeat(np.arange(n_cells, dtype=np.int32), k_nz)\n", " c = rng.integers(0, n_genes, size=n_cells * k_nz, dtype=np.int32)\n", " v = rng.normal(0, 1, n_cells * k_nz).astype(np.float32)\n", " adata.layers[\"velocity\"] = csr_matrix((v, (r, c)), shape=(n_cells, n_genes))\n", "\n", " adata.obs[\"velocity_pseudotime\"] = rng.uniform(0, 1, n_cells).astype(np.float32)\n", " adata.obsm[\"X_pca\"] = rng.normal(0, 1, (n_cells, n_pcs)).astype(np.float32)\n", "\n", " k_nn = min(15, n_cells - 1)\n", " rows = np.repeat(np.arange(n_cells, dtype=np.int32), k_nn)\n", " cols = rng.integers(0, n_cells, size=n_cells * k_nn, dtype=np.int32)\n", " mask = rows != cols\n", " conn = csr_matrix((np.ones(mask.sum(), dtype=np.float32),\n", " (rows[mask], cols[mask])), shape=(n_cells, n_cells))\n", " conn = (conn + conn.T); conn.data[:] = 1.0\n", " adata.obsp[\"connectivities\"] = conn\n", " adata.obsp[\"distances\"] = conn.copy()\n", " adata.uns[\"neighbors\"] = {\"connectivities_key\": \"connectivities\",\n", " \"distances_key\": \"distances\",\n", " \"params\": {\"n_neighbors\": k_nn, \"method\": \"umap\"}}\n", " adata.obsp[\"velocity_graph\"] = speye(n_cells, format=\"csr\", dtype=np.float32) * 0.1\n", " return adata\n", "\n", "# Smoke test\n", "_t = make_synthetic_adata_fastest(500, n_genes=100)\n", "print(\"Factory OK:\", _t)\n", "del _t\n" ] }, { "cell_type": "markdown", "id": "cjpvj27f", "metadata": {}, "source": [ "## 3. Benchmark\n", "\n", "Each function is timed independently (single run per size).\n", "`score()` is called twice: once population-level only, once with `cell_level=True`.\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "qikptxdc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "n_cells = 1,000\n", "[scCS] Building star embedding: root='Root', k=4 fates, metric='pseudotime'\n", "[scCS] Subsetting: 1000 / 1000 cells kept\n", " (0 cells from other populations excluded)\n", " Fate0: 200 cells (fate)\n", " Fate1: 200 cells (fate)\n", " Fate2: 200 cells (fate)\n", " Fate3: 200 cells (fate)\n", " Root: 200 cells (progenitor)\n", "\n", "[scCS] Star embedding built → adata_sub.obsm[\"X_sccs\"] shape: (1000, 2)\n", " Arm angles: {'Fate0': 0.0, 'Fate1': 90.0, 'Fate2': 180.0, 'Fate3': 270.0}\n", "[scCS] Star embedding stored in scorer.adata_sub.obsm['X_sccs']. (1000 cells)\n", " build_star_embedding 0.021s\n", "[scCS] Root cluster 'Root': 200 cells, centroid=(0.00, -0.00)\n", "[scCS] Fate 'Fate0': 200 cells, centroid=(5.08, -0.02)\n", "[scCS] Fate 'Fate1': 200 cells, centroid=(0.01, 5.17)\n", "[scCS] Fate 'Fate2': 200 cells, centroid=(-4.87, 0.01)\n", "[scCS] Fate 'Fate3': 200 cells, centroid=(0.00, -5.18)\n", "[scCS] FateMap built: k=4 fates\n", "[scCS] Using graph-based velocity projection...\n", "FateMap (root='Root', k=4)\n", " Cluster key : 'clusters'\n", " Root cells : 200\n", " Root centroid: (0.003, -0.005)\n", " Fate 0: 'Fate0' n_cells=200 centroid=(5.08, -0.02) arm_angle=0.0°\n", " Fate 1: 'Fate1' n_cells=200 centroid=(0.01, 5.17) arm_angle=90.0°\n", " Fate 2: 'Fate2' n_cells=200 centroid=(-4.87, 0.01) arm_angle=180.0°\n", " Fate 3: 'Fate3' n_cells=200 centroid=(0.00, -5.18) arm_angle=270.0°\n", " fit 0.003s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate3\n", "\n", " Entropy metrics:\n", " Population entropy: 0.9999 [aggregate velocity-mass balance]\n", " Mean cell entropy: [not computed — set cell_level=True]\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2468\n", " Fate1: 0.2506\n", " Fate2: 0.2468\n", " Fate3: 0.2558\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.984911 0.999888 0.965028\n", "Fate1 1.015320 1.000000 1.015207 0.979813\n", "Fate2 1.000112 0.985021 1.000000 0.965136\n", "Fate3 1.036239 1.020603 1.036123 1.000000\n", " score 0.006s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate3\n", "\n", " Entropy metrics:\n", " Population entropy: 0.9999 [aggregate velocity-mass balance]\n", " Mean cell entropy: 0.9323 [per-cell average, k-way]\n", " Per-fate cell entropy:\n", " Fate0: 0.7682\n", " Fate1: 0.7664\n", " Fate2: 0.7680\n", " Fate3: 0.7671\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2468\n", " Fate1: 0.2506\n", " Fate2: 0.2468\n", " Fate3: 0.2558\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.984911 0.999888 0.965028\n", "Fate1 1.015320 1.000000 1.015207 0.979813\n", "Fate2 1.000112 0.985021 1.000000 0.965136\n", "Fate3 1.036239 1.020603 1.036123 1.000000\n", " score_cell_level 0.005s\n", "\n", "n_cells = 10,000\n", "[scCS] Building star embedding: root='Root', k=4 fates, metric='pseudotime'\n", "[scCS] Subsetting: 10000 / 10000 cells kept\n", " (0 cells from other populations excluded)\n", " Fate0: 2000 cells (fate)\n", " Fate1: 2000 cells (fate)\n", " Fate2: 2000 cells (fate)\n", " Fate3: 2000 cells (fate)\n", " Root: 2000 cells (progenitor)\n", "\n", "[scCS] Star embedding built → adata_sub.obsm[\"X_sccs\"] shape: (10000, 2)\n", " Arm angles: {'Fate0': 0.0, 'Fate1': 90.0, 'Fate2': 180.0, 'Fate3': 270.0}\n", "[scCS] Star embedding stored in scorer.adata_sub.obsm['X_sccs']. (10000 cells)\n", " build_star_embedding 0.100s\n", "[scCS] Root cluster 'Root': 2000 cells, centroid=(-0.00, -0.00)\n", "[scCS] Fate 'Fate0': 2000 cells, centroid=(4.88, 0.00)\n", "[scCS] Fate 'Fate1': 2000 cells, centroid=(0.00, 4.94)\n", "[scCS] Fate 'Fate2': 2000 cells, centroid=(-5.02, 0.00)\n", "[scCS] Fate 'Fate3': 2000 cells, centroid=(-0.01, -5.01)\n", "[scCS] FateMap built: k=4 fates\n", "[scCS] Using graph-based velocity projection...\n", "FateMap (root='Root', k=4)\n", " Cluster key : 'clusters'\n", " Root cells : 2000\n", " Root centroid: (-0.004, -0.002)\n", " Fate 0: 'Fate0' n_cells=2000 centroid=(4.88, 0.00) arm_angle=0.0°\n", " Fate 1: 'Fate1' n_cells=2000 centroid=(0.00, 4.94) arm_angle=90.0°\n", " Fate 2: 'Fate2' n_cells=2000 centroid=(-5.02, 0.00) arm_angle=180.0°\n", " Fate 3: 'Fate3' n_cells=2000 centroid=(-0.01, -5.01) arm_angle=270.0°\n", " fit 0.011s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate3\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: [not computed — set cell_level=True]\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2483\n", " Fate1: 0.2507\n", " Fate2: 0.2495\n", " Fate3: 0.2515\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.990670 0.995351 0.987545\n", "Fate1 1.009418 1.000000 1.004725 0.996845\n", "Fate2 1.004670 0.995297 1.000000 0.992157\n", "Fate3 1.012613 1.003165 1.007905 1.000000\n", " score 0.004s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate3\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: 0.9339 [per-cell average, k-way]\n", " Per-fate cell entropy:\n", " Fate0: 0.7682\n", " Fate1: 0.7688\n", " Fate2: 0.7685\n", " Fate3: 0.7682\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2483\n", " Fate1: 0.2507\n", " Fate2: 0.2495\n", " Fate3: 0.2515\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.990670 0.995351 0.987545\n", "Fate1 1.009418 1.000000 1.004725 0.996845\n", "Fate2 1.004670 0.995297 1.000000 0.992157\n", "Fate3 1.012613 1.003165 1.007905 1.000000\n", " score_cell_level 0.010s\n", "\n", "n_cells = 100,000\n", "[scCS] Building star embedding: root='Root', k=4 fates, metric='pseudotime'\n", "[scCS] Subsetting: 100000 / 100000 cells kept\n", " (0 cells from other populations excluded)\n", " Fate0: 20000 cells (fate)\n", " Fate1: 20000 cells (fate)\n", " Fate2: 20000 cells (fate)\n", " Fate3: 20000 cells (fate)\n", " Root: 20000 cells (progenitor)\n", "\n", "[scCS] Star embedding built → adata_sub.obsm[\"X_sccs\"] shape: (100000, 2)\n", " Arm angles: {'Fate0': 0.0, 'Fate1': 90.0, 'Fate2': 180.0, 'Fate3': 270.0}\n", "[scCS] Star embedding stored in scorer.adata_sub.obsm['X_sccs']. (100000 cells)\n", " build_star_embedding 0.586s\n", "[scCS] Root cluster 'Root': 20000 cells, centroid=(-0.00, 0.00)\n", "[scCS] Fate 'Fate0': 20000 cells, centroid=(5.01, -0.00)\n", "[scCS] Fate 'Fate1': 20000 cells, centroid=(0.00, 5.03)\n", "[scCS] Fate 'Fate2': 20000 cells, centroid=(-4.96, 0.00)\n", "[scCS] Fate 'Fate3': 20000 cells, centroid=(-0.00, -5.00)\n", "[scCS] FateMap built: k=4 fates\n", "[scCS] Using graph-based velocity projection...\n", "FateMap (root='Root', k=4)\n", " Cluster key : 'clusters'\n", " Root cells : 20000\n", " Root centroid: (-0.000, 0.002)\n", " Fate 0: 'Fate0' n_cells=20000 centroid=(5.01, -0.00) arm_angle=0.0°\n", " Fate 1: 'Fate1' n_cells=20000 centroid=(0.00, 5.03) arm_angle=90.0°\n", " Fate 2: 'Fate2' n_cells=20000 centroid=(-4.96, 0.00) arm_angle=180.0°\n", " Fate 3: 'Fate3' n_cells=20000 centroid=(-0.00, -5.00) arm_angle=270.0°\n", " fit 0.061s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate1\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: [not computed — set cell_level=True]\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2491\n", " Fate1: 0.2504\n", " Fate2: 0.2502\n", " Fate3: 0.2503\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.994539 0.995595 0.995010\n", "Fate1 1.005491 1.000000 1.001061 1.000474\n", "Fate2 1.004425 0.998940 1.000000 0.999413\n", "Fate3 1.005015 0.999527 1.000587 1.000000\n", " score 0.007s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate1\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: 0.9406 [per-cell average, k-way]\n", " Per-fate cell entropy:\n", " Fate0: 0.7728\n", " Fate1: 0.7726\n", " Fate2: 0.7728\n", " Fate3: 0.7725\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2491\n", " Fate1: 0.2504\n", " Fate2: 0.2502\n", " Fate3: 0.2503\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.994539 0.995595 0.995010\n", "Fate1 1.005491 1.000000 1.001061 1.000474\n", "Fate2 1.004425 0.998940 1.000000 0.999413\n", "Fate3 1.005015 0.999527 1.000587 1.000000\n", " score_cell_level 0.026s\n", "\n", "n_cells = 1,000,000\n", "[scCS] Building star embedding: root='Root', k=4 fates, metric='pseudotime'\n", "[scCS] Subsetting: 1000000 / 1000000 cells kept\n", " (0 cells from other populations excluded)\n", " Fate0: 200000 cells (fate)\n", " Fate1: 200000 cells (fate)\n", " Fate2: 200000 cells (fate)\n", " Fate3: 200000 cells (fate)\n", " Root: 200000 cells (progenitor)\n", "\n", "[scCS] Star embedding built → adata_sub.obsm[\"X_sccs\"] shape: (1000000, 2)\n", " Arm angles: {'Fate0': 0.0, 'Fate1': 90.0, 'Fate2': 180.0, 'Fate3': 270.0}\n", "[scCS] Star embedding stored in scorer.adata_sub.obsm['X_sccs']. (1000000 cells)\n", " build_star_embedding 1.365s\n", "[scCS] Root cluster 'Root': 200000 cells, centroid=(-0.00, 0.00)\n", "[scCS] Fate 'Fate0': 200000 cells, centroid=(5.00, -0.00)\n", "[scCS] Fate 'Fate1': 200000 cells, centroid=(-0.00, 5.00)\n", "[scCS] Fate 'Fate2': 200000 cells, centroid=(-4.99, -0.00)\n", "[scCS] Fate 'Fate3': 200000 cells, centroid=(0.00, -4.99)\n", "[scCS] FateMap built: k=4 fates\n", "[scCS] Using graph-based velocity projection...\n", "FateMap (root='Root', k=4)\n", " Cluster key : 'clusters'\n", " Root cells : 200000\n", " Root centroid: (-0.000, 0.000)\n", " Fate 0: 'Fate0' n_cells=200000 centroid=(5.00, -0.00) arm_angle=0.0°\n", " Fate 1: 'Fate1' n_cells=200000 centroid=(-0.00, 5.00) arm_angle=90.0°\n", " Fate 2: 'Fate2' n_cells=200000 centroid=(-4.99, -0.00) arm_angle=180.0°\n", " Fate 3: 'Fate3' n_cells=200000 centroid=(0.00, -4.99) arm_angle=270.0°\n", " fit 0.707s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate1\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: [not computed — set cell_level=True]\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2498\n", " Fate1: 0.2524\n", " Fate2: 0.2501\n", " Fate3: 0.2478\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.989707 0.998732 1.007938\n", "Fate1 1.010400 1.000000 1.009119 1.018420\n", "Fate2 1.001270 0.990964 1.000000 1.009217\n", "Fate3 0.992125 0.981913 0.990867 1.000000\n", " score 0.063s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate1\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: 0.9426 [per-cell average, k-way]\n", " Per-fate cell entropy:\n", " Fate0: 0.7739\n", " Fate1: 0.7740\n", " Fate2: 0.7739\n", " Fate3: 0.7739\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2498\n", " Fate1: 0.2524\n", " Fate2: 0.2501\n", " Fate3: 0.2478\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.989707 0.998732 1.007938\n", "Fate1 1.010400 1.000000 1.009119 1.018420\n", "Fate2 1.001270 0.990964 1.000000 1.009217\n", "Fate3 0.992125 0.981913 0.990867 1.000000\n", " score_cell_level 0.263s\n", "\n", "n_cells = 10,000,000\n", "[scCS] Building star embedding: root='Root', k=4 fates, metric='pseudotime'\n", "[scCS] Subsetting: 10000000 / 10000000 cells kept\n", " (0 cells from other populations excluded)\n", " Fate0: 2000000 cells (fate)\n", " Fate1: 2000000 cells (fate)\n", " Fate2: 2000000 cells (fate)\n", " Fate3: 2000000 cells (fate)\n", " Root: 2000000 cells (progenitor)\n", "\n", "[scCS] Star embedding built → adata_sub.obsm[\"X_sccs\"] shape: (10000000, 2)\n", " Arm angles: {'Fate0': 0.0, 'Fate1': 90.0, 'Fate2': 180.0, 'Fate3': 270.0}\n", "[scCS] Star embedding stored in scorer.adata_sub.obsm['X_sccs']. (10000000 cells)\n", " build_star_embedding 36.089s\n", "[scCS] Root cluster 'Root': 2000000 cells, centroid=(0.00, 0.00)\n", "[scCS] Fate 'Fate0': 2000000 cells, centroid=(5.00, 0.00)\n", "[scCS] Fate 'Fate1': 2000000 cells, centroid=(0.00, 5.00)\n", "[scCS] Fate 'Fate2': 2000000 cells, centroid=(-5.00, 0.00)\n", "[scCS] Fate 'Fate3': 2000000 cells, centroid=(0.00, -5.00)\n", "[scCS] FateMap built: k=4 fates\n", "[scCS] Using graph-based velocity projection...\n", "FateMap (root='Root', k=4)\n", " Cluster key : 'clusters'\n", " Root cells : 2000000\n", " Root centroid: (0.000, 0.000)\n", " Fate 0: 'Fate0' n_cells=2000000 centroid=(5.00, 0.00) arm_angle=0.0°\n", " Fate 1: 'Fate1' n_cells=2000000 centroid=(0.00, 5.00) arm_angle=90.0°\n", " Fate 2: 'Fate2' n_cells=2000000 centroid=(-5.00, 0.00) arm_angle=180.0°\n", " Fate 3: 'Fate3' n_cells=2000000 centroid=(0.00, -5.00) arm_angle=270.0°\n", " fit 17.475s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate3\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: [not computed — set cell_level=True]\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2476\n", " Fate1: 0.2500\n", " Fate2: 0.2500\n", " Fate3: 0.2524\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.990211 0.990369 0.980817\n", "Fate1 1.009886 1.000000 1.000160 0.990514\n", "Fate2 1.009725 0.999841 1.000000 0.990356\n", "Fate3 1.019558 1.009577 1.009738 1.000000\n", " score 0.781s\n", "=== CommitmentScoreResult ===\n", " Fates (4): Fate0, Fate1, Fate2, Fate3\n", " Dominant fate: Fate3\n", "\n", " Entropy metrics:\n", " Population entropy: 1.0000 [aggregate velocity-mass balance]\n", " Mean cell entropy: 0.9465 [per-cell average, k-way]\n", " Per-fate cell entropy:\n", " Fate0: 0.7764\n", " Fate1: 0.7764\n", " Fate2: 0.7764\n", " Fate3: 0.7764\n", "\n", " Commitment vector (normalized):\n", " Fate0: 0.2476\n", " Fate1: 0.2500\n", " Fate2: 0.2500\n", " Fate3: 0.2524\n", "\n", " Pairwise nCS matrix:\n", " Fate0 Fate1 Fate2 Fate3\n", "Fate0 1.000000 0.990211 0.990369 0.980817\n", "Fate1 1.009886 1.000000 1.000160 0.990514\n", "Fate2 1.009725 0.999841 1.000000 0.990356\n", "Fate3 1.019558 1.009577 1.009738 1.000000\n", " score_cell_level 3.134s\n", "\n", "Timing table (seconds):\n", "function build_star_embedding fit score score_cell_level\n", "n_cells \n", "1000 0.021 0.003 0.006 0.005\n", "10000 0.100 0.011 0.004 0.010\n", "100000 0.586 0.061 0.007 0.026\n", "1000000 1.365 0.707 0.063 0.263\n", "10000000 36.089 17.475 0.781 3.134\n" ] } ], "source": [ "SIZES = [1_000, 10_000, 100_000, 1_000_000, 10_000_000]\n", "N_GENES = 3_000\n", "records = []\n", "\n", "for n_cells in SIZES:\n", " print(f\"\\nn_cells = {n_cells:,}\")\n", " factory = make_synthetic_adata_1m if n_cells >= 500_000 else make_synthetic_adata_fastest\n", " try:\n", " adata = factory(n_cells, n_genes=N_GENES)\n", " except MemoryError:\n", " print(\" SKIPPED — MemoryError during data creation\")\n", " for fn in [\"build_star_embedding\",\"fit\",\"score\",\"score_cell_level\"]:\n", " records.append({\"n_cells\":n_cells,\"function\":fn,\"time_s\":float(\"nan\"),\"skipped\":True})\n", " continue\n", "\n", " scorer = scCS.SingleScorer(\n", " adata, root=ROOT_NAME, branches=FATE_NAMES,\n", " obs_key=\"clusters\", n_angle_bins=36, sector_method=\"centroid\",\n", " )\n", " steps = [\n", " (\"build_star_embedding\", lambda: scorer.build_embedding(ordering_metric=\"pseudotime\")),\n", " (\"fit\", lambda: scorer.fit()),\n", " (\"score\", lambda: scorer.score(cell_level=False, n_bootstrap=0, write_to_obs=False)),\n", " (\"score_cell_level\", lambda: scorer.score(cell_level=True, n_bootstrap=0, write_to_obs=False)),\n", " ]\n", " ok = True\n", " for fn_name, fn in steps:\n", " if not ok:\n", " records.append({\"n_cells\":n_cells,\"function\":fn_name,\"time_s\":float(\"nan\"),\"skipped\":True})\n", " continue\n", " try:\n", " t0 = time.perf_counter()\n", " fn()\n", " t = time.perf_counter() - t0\n", " print(f\" {fn_name:<25} {t:.3f}s\")\n", " records.append({\"n_cells\":n_cells,\"function\":fn_name,\"time_s\":t,\"skipped\":False})\n", " except MemoryError:\n", " print(f\" {fn_name:<25} SKIPPED (MemoryError)\")\n", " records.append({\"n_cells\":n_cells,\"function\":fn_name,\"time_s\":float(\"nan\"),\"skipped\":True})\n", " ok = False\n", " del adata, scorer\n", "\n", "df = pd.DataFrame(records)\n", "print(\"\\nTiming table (seconds):\")\n", "print(df.pivot(index=\"n_cells\", columns=\"function\", values=\"time_s\")\n", " [[\"build_star_embedding\",\"fit\",\"score\",\"score_cell_level\"]].round(3).to_string())\n" ] }, { "cell_type": "markdown", "id": "lpnca8fr", "metadata": {}, "source": [ "## 4. Save results" ] }, { "cell_type": "code", "execution_count": 4, "id": "pvqh7fsz", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saved benchmark_results.csv\n" ] } ], "source": [ "df.to_csv(\"benchmark_results.csv\", index=False)\n", "print(\"Saved benchmark_results.csv\")\n" ] }, { "cell_type": "markdown", "id": "252f3i0a", "metadata": {}, "source": [ "## 5. Scaling plot\n", "\n", "Log-log plot of n_cells vs wall-clock time. A slope of 1 on a log-log plot\n", "means linear scaling; all four functions track at or below the O(n) reference line.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "opzatwyo", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Saved benchmark_scaling.png and benchmark_scaling.svg\n" ] } ], "source": [ "FUNCTION_LABELS = {\n", " \"build_star_embedding\": \"build_star_embedding()\",\n", " \"fit\": \"fit()\",\n", " \"score\": \"score() [population]\",\n", " \"score_cell_level\": \"score(cell_level=True)\",\n", "}\n", "COLORS = [\"#0072B2\", \"#D55E00\", \"#009E73\", \"#CC79A7\"]\n", "\n", "fig, ax = plt.subplots(figsize=(8, 5))\n", "for (fn, label), color in zip(FUNCTION_LABELS.items(), COLORS):\n", " sub = df[(df[\"function\"] == fn) & (~df[\"skipped\"])]\n", " if sub.empty: continue\n", " ax.plot(sub[\"n_cells\"], sub[\"time_s\"], marker=\"o\", linewidth=2.2,\n", " markersize=7, color=color, label=label)\n", " last = sub.iloc[-1]\n", " ax.annotate(f\"{last['time_s']:.2f}s\", xy=(last[\"n_cells\"], last[\"time_s\"]),\n", " xytext=(6, 2), textcoords=\"offset points\",\n", " fontsize=8.5, color=color, fontweight=\"bold\")\n", "\n", "t0_ref = df[(df[\"function\"]==\"score\") & (df[\"n_cells\"]==1000)][\"time_s\"].values[0]\n", "x_ref = np.array([1e3, 1e6])\n", "ax.plot(x_ref, t0_ref * (x_ref / 1e3), \"k--\", linewidth=1, alpha=0.35, label=\"O(n) reference\")\n", "\n", "ax.set_xscale(\"log\"); ax.set_yscale(\"log\")\n", "ax.set_xlabel(\"Number of cells\", fontsize=12)\n", "ax.set_ylabel(\"Wall-clock time (seconds)\", fontsize=12)\n", "ax.set_title(\"scCS v0.7.0 — Processing speed scaling\\n\"\n", " \"3,000 genes · 4 fate arms · synthetic data\", fontsize=12)\n", "ax.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x, _: f\"$10^{{{int(np.log10(x))}}}$\"))\n", "ax.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, _: f\"{y:.3g}s\"))\n", "ax.legend(fontsize=9.5, loc=\"upper left\", framealpha=0.9)\n", "ax.grid(True, which=\"both\", alpha=0.25)\n", "plt.tight_layout()\n", "plt.savefig(\"benchmark_scaling.png\", dpi=150, bbox_inches=\"tight\")\n", "plt.savefig(\"benchmark_scaling.svg\", bbox_inches=\"tight\")\n", "plt.show()\n", "print(\"Saved benchmark_scaling.png and benchmark_scaling.svg\")\n" ] }, { "cell_type": "markdown", "id": "15uq2qjx", "metadata": {}, "source": [ "## 6. Interpretation\n", "\n", "### Scaling behaviour\n", "\n", "| Function | Dominant cost | Observed scaling |\n", "|---|---|---|\n", "| `build_star_embedding()` | UMAP layout on injected PCA coords | ~O(n) |\n", "| `fit()` | Centroid computation + velocity projection | ~O(n) |\n", "| `score()` population | Angle binning + sector sums | O(n) |\n", "| `score(cell_level=True)` | Cosine similarity (n × k) | O(n·k) |\n", "\n", "All functions track at or below the O(n) reference line on the log-log plot.\n", "\n", "### Memory\n", "\n", "| n_cells | Velocity layer | X_pca | Total approx. |\n", "|---|---|---|---|\n", "| 1,000 | 12 MB (dense) | 0.2 MB | ~15 MB |\n", "| 10,000 | 120 MB (dense) | 2 MB | ~130 MB |\n", "| 100,000 | 1.2 GB (dense) | 20 MB | ~1.3 GB |\n", "| 1,000,000 | 119 MB (sparse, 30 nnz/cell) | 200 MB | ~400 MB |\n", "\n", "> **Note:** The 1M benchmark uses a **sparse velocity layer** (30 nonzero genes per cell)\n", "> to avoid the 12 GB dense allocation. The scoring step is unaffected because scCS\n", "> projects velocity to 2D immediately after loading.\n", "\n", "### Practical guidance\n", "\n", "- **< 50k cells:** all steps complete in < 1 s; no special considerations.\n", "- **50k–200k cells:** `build_star_embedding()` dominates. Use `n_comps=30` in PCA\n", " and `n_neighbors=10` in the neighbor graph to speed up real data.\n", "- **> 200k cells:** consider `approximate_neighbors=True` in scanpy, or pre-compute\n", " PCA/neighbors externally and pass them in.\n", "- **1M cells:** feasible on a 16 GB machine with sparse velocity. Full pipeline\n", " (embed + fit + score with cell-level) completes in **< 3.2 s**.\n" ] }, { "cell_type": "markdown", "id": "d6oec1a0", "metadata": {}, "source": [ "## Summary\n", "\n", "```python\n", "import scCS, time\n", "\n", "scorer = scCS.SingleScorer(adata, root=\"Root\", branches=[\"FateA\",\"FateB\"],\n", " obs_key=\"clusters\")\n", "\n", "t0 = time.perf_counter()\n", "scorer.build_embedding(ordering_metric=\"pseudotime\")\n", "print(f\"build_embedding: {time.perf_counter()-t0:.2f}s\")\n", "\n", "t0 = time.perf_counter()\n", "scorer.fit()\n", "print(f\"fit: {time.perf_counter()-t0:.2f}s\")\n", "\n", "t0 = time.perf_counter()\n", "result = scorer.score(cell_level=True)\n", "print(f\"score: {time.perf_counter()-t0:.2f}s\")\n", "```\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.13" } }, "nbformat": 4, "nbformat_minor": 5 }