@@ -68,7 +68,32 @@ PBMC 3k (10X Genomics, 2,700 cells)
6868| 07 | ` 07_t_cell_subclustering.py ` | Extract T cell compartment, subcluster, resolve CD4+/CD8+ via marker scoring |
6969| 08 | ` 08_publication_figures.py ` | Multi-panel figure with UMAP, composition, marker heatmap, summary (PNG + PDF) |
7070
71- All scripts are in ` scripts/ ` . Each reads the previous step's ` .h5ad ` output from ` results/ ` .
71+ ## Project Structure
72+
73+ ```
74+ single-cell-rnaseq-immune-profiling/
75+ ├── scripts/
76+ │ ├── 01_load_and_qc.py QC + Scrublet doublet detection
77+ │ ├── 02_preprocess.py Normalise, HVG, regress, scale
78+ │ ├── 03_reduce_dimensions.py PCA, kNN graph, UMAP
79+ │ ├── 04_cluster.py Multi-resolution Leiden + silhouette
80+ │ ├── 05_annotate_cell_types.py Marker DE + automated annotation
81+ │ ├── 06_trajectory.py PAGA + diffusion pseudotime
82+ │ ├── 07_t_cell_subclustering.py CD4+/CD8+ resolution
83+ │ ├── 08_publication_figures.py Multi-panel figure (PNG + PDF)
84+ │ └── palette.py Shared Okabe-Ito colourblind palette
85+ ├── tests/
86+ │ └── test_pipeline.py 7 tests (QC, normalisation, clustering, markers)
87+ ├── docs/
88+ │ ├── umap_3d_rotation.gif Animated 3D UMAP
89+ │ └── publication_figure.png Static multi-panel figure
90+ ├── run_pipeline.py CLI runner with --from resume flag
91+ ├── pyproject.toml Dependencies + metadata
92+ ├── requirements-lock.txt Pinned versions for reproducibility
93+ └── CITATION.cff
94+ ```
95+
96+ Each script reads the previous step's ` .h5ad ` output from ` results/ ` .
7297
7398## Results
7499
0 commit comments