Skip to content

Commit 3315ec6

Browse files
committed
feat(spatialomics): integrate SpatialOmics module with root project
- Add SpatialOmics to root Makefile MODULES list - Add SpatialOmics tests to format target - Update generate-python-classes.yml workflow - Update main.yaml workflow for Synapse schema generation - Add SpatialOmics documentation to main README.md - Follows CONTRIBUTING.md Step 7, 8, and 9 requirements
1 parent 54d5008 commit 3315ec6

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

β€Ž.github/workflows/generate-python-classes.ymlβ€Ž

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ on:
2121
workflow_dispatch:
2222
inputs:
2323
modules:
24-
description: 'Modules to regenerate (comma-separated: biospecimen,clinical,wes,sequencing,imaging,scrna-seq,digitalpathology,multiplexmicroscopy,all). Leave empty or "all" to generate all modules.'
24+
description: 'Modules to regenerate (comma-separated: biospecimen,clinical,wes,sequencing,imaging,scrna-seq,digitalpathology,multiplexmicroscopy,spatialomics,all). Leave empty or "all" to generate all modules.'
2525
required: false
2626
default: 'all'
2727
type: choice
@@ -35,6 +35,7 @@ on:
3535
- scrna-seq
3636
- digitalpathology
3737
- multiplexmicroscopy
38+
- spatialomics
3839
- biospecimen,clinical
3940
- biospecimen,wes
4041
- clinical,wes
@@ -212,6 +213,19 @@ jobs:
212213
echo "⏭️ Skipping MultiplexMicroscopy (not in selected modules)"
213214
fi
214215
216+
- name: Generate Python Classes for SpatialOmics
217+
if: steps.set-modules.outputs.modules != 'all'
218+
run: |
219+
MODULES="${{ steps.set-modules.outputs.modules }}"
220+
if echo "$MODULES" | grep -q "spatialomics"; then
221+
echo "πŸ”„ Generating Python classes for SpatialOmics module..."
222+
cd modules/SpatialOmics
223+
make gen-schema
224+
echo "βœ… SpatialOmics Python classes generated"
225+
else
226+
echo "⏭️ Skipping SpatialOmics (not in selected modules)"
227+
fi
228+
215229
- name: Run Tests
216230
id: run-tests
217231
continue-on-error: true

β€Ž.github/workflows/main.yamlβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
- name: Generate Synapse-compatible JSON schemas
4646
run: |
4747
export PATH="$HOME/.local/bin:$PATH"
48-
for module in Clinical WES Biospecimen Sequencing Imaging scRNA-seq DigitalPathology MultiplexMicroscopy; do
48+
for module in Clinical WES Biospecimen Sequencing Imaging scRNA-seq DigitalPathology MultiplexMicroscopy SpatialOmics; do
4949
if [ -f modules/$module/Makefile ] && grep -q "^gen-synapse-schema:" modules/$module/Makefile; then
5050
echo "Generating Synapse schema for $module module..."
5151
make -C modules/$module gen-synapse-schema

β€ŽMakefileβ€Ž

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ SOURCE_SCHEMA_PATH = modules/Clinical/domains/clinical.yaml
2323
GEN_DOC_ARGS = --no-mergeimports
2424

2525
# List of modules (add new modules here)
26-
MODULES = Clinical WES CoreFile Biospecimen Sequencing Imaging scRNA-seq DigitalPathology MultiplexMicroscopy
26+
MODULES = Clinical WES CoreFile Biospecimen Sequencing Imaging scRNA-seq DigitalPathology MultiplexMicroscopy SpatialOmics
2727

2828
.PHONY: all clean setup gen-project gendoc git-init-add git-init git-add git-commit git-status help install test modules-gen modules-test format
2929

@@ -101,6 +101,7 @@ format:
101101
modules/scRNA-seq/tests/ \
102102
modules/DigitalPathology/tests/ \
103103
modules/MultiplexMicroscopy/tests/ \
104+
modules/SpatialOmics/tests/ \
104105
modules/*/src/
105106

106107
# ---

β€ŽREADME.mdβ€Ž

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
---
44

5-
## ⚠️ **DO NOT USE – UNDER DEVELOPMENT** ⚠️
6-
75
This data model is in **active development**. It builds on **HTAN Phase 1** and incorporates input from the **Cancer Data Standards (CDS)** initiative. Expect frequent changes until a stable version is released.
86

97
---
@@ -77,6 +75,12 @@ The diagram above illustrates the separation between **Record-Based Modules** (C
7775
- **Structure**: Three data levels (Level 2: imaging + channel metadata, Level 3: segmentation masks, Level 4: cell-by-feature tables)
7876
- **Features**: Channel metadata, image dimensions, multiplex assay types, CRDC alignment
7977

78+
### **Spatial Omics Module**
79+
- **Purpose**: Sequencing-based and sequence-hybridization spatial omics assays (Visium, Xenium, CosMx, STOmics, etc.)
80+
- **Location**: `modules/SpatialOmics/`
81+
- **Structure**: Four data levels (Level 1: raw data bundle optional, Level 3: processed bundle required, Level 4: interoperable file optional, Panel: panel information)
82+
- **Features**: Platform flexibility, bundle-level metadata, panel information, QC metrics, conditional requirements
83+
8084
## πŸ“ Project Structure
8185

8286
```
@@ -90,7 +94,8 @@ htan2-data-model/
9094
β”‚ β”œβ”€β”€ WES/ # Whole Exome Sequencing
9195
β”‚ β”œβ”€β”€ scRNA-seq/ # Single-cell RNA sequencing
9296
β”‚ β”œβ”€β”€ DigitalPathology/ # Digital Pathology imaging
93-
β”‚ └── MultiplexMicroscopy/ # Multiplex Microscopy imaging
97+
β”‚ β”œβ”€β”€ MultiplexMicroscopy/ # Multiplex Microscopy imaging
98+
β”‚ └── SpatialOmics/ # Spatial Omics assays
9499
β”œβ”€β”€ config/ # LinkML configuration
95100
β”œβ”€β”€ scripts/ # Utility scripts
96101
β”œβ”€β”€ tests/ # Root-level tests
@@ -156,6 +161,7 @@ Each module contains detailed documentation:
156161
- **scRNA-seq Module**: See `modules/scRNA-seq/README.md` for single-cell RNA sequencing levels
157162
- **Digital Pathology Module**: See `modules/DigitalPathology/README.md` for digital pathology imaging
158163
- **Multiplex Microscopy Module**: See `modules/MultiplexMicroscopy/README.md` for multiplex microscopy imaging
164+
- **Spatial Omics Module**: See `modules/SpatialOmics/README.md` for spatial omics assays
159165

160166
## 🀝 Contributing
161167

0 commit comments

Comments
Β (0)