A community-driven hub for CellMapFlow components: models, normalizers, postprocessors, and pre-built pipelines.
Access the hub at: http://localhost:PORT/hub in your CellMapFlow dashboard
- Browse the hub and find a component you want
- Click "Install"
- Dependencies are installed automatically
- Component is available in pipeline builder
Each component type has its own folder with self-documenting config files:
cellmap_flow_hub/
├── models/ # ML models for inference
├── normalizers/ # Input normalization components (6 available)
├── postprocessors/ # Output post-processing components (8 available)
└── pipelines/ # Pre-built pipeline templates
Every component folder contains:
config.yaml- Metadata (name, description, author, version, tags, dependencies)requirements.txt- Python package dependenciesREADME.md- Implementation details, usage examples, and parameters
Example:
normalizers/zscore_normalizer/
├── config.yaml # Metadata
├── requirements.txt # numpy>=1.20
└── README.md # Usage examples and parameters
mkdir cellmap_flow_hub/models/my_model
cd cellmap_flow_hub/models/my_modelCreate config.yaml:
name: My Awesome Model
description: A powerful segmentation model for your data
author: Your Name
version: 1.0.0
tags: [segmentation, deep-learning, neurons]
dependencies:
- torch>=1.10
- torchvision>=0.11
min_cellmap_flow_version: "1.2.0"
min_python_version: "3.8"Add your implementation files:
model_script.py- Main model coderequirements.txt- Python dependenciesREADME.md- Detailed documentation (optional)thumbnail.png- Preview image (optional)
mkdir cellmap_flow_hub/normalizers/my_normalizer
cd cellmap_flow_hub/normalizers/my_normalizerCreate config.yaml:
name: My Custom Normalizer
description: Normalizes images with special handling for artifacts
author: Your Name
version: 1.0.0
tags: [normalization, preprocessing]Add implementation and requirements.
mkdir cellmap_flow_hub/postprocessors/my_postprocessor
cd cellmap_flow_hub/postprocessors/my_postprocessorCreate config.yaml with similar structure.
mkdir cellmap_flow_hub/pipelines/my_pipeline
cd cellmap_flow_hub/pipelines/my_pipelineCreate pipeline.yaml:
input_normalizers:
- name: StandardNormalizer
params: { clip_min: -1, clip_max: 1 }
models:
- name: my_model
params: { checkpoint: "model.pt" }
postprocessors:
- name: InstanceSegmentation
params: { threshold: 0.5 }Create config.yaml with metadata about the pipeline:
name: Mitochondria Segmentation Pipeline
description: Complete pipeline for segmenting mitochondria
author: Your Name
version: 1.0.0
tags: [mitochondria, segmentation, organelles]Every component must have a config.yaml with metadata:
name: Component Display Name # Required: Human-readable name
description: What this component does # Required: Brief description
author: Your Name # Required: Creator
version: 1.0.0 # Required: Semantic version
tags: [tag1, tag2] # Required: Category tags
# Optional fields
dependencies: # Python package dependencies
- package>=1.0
- another-package
min_cellmap_flow_version: "1.2.0" # Minimum CellMapFlow version
min_python_version: "3.8" # Minimum Python version
max_python_version: "3.11" # Maximum Python version
thumbnail_url: ./thumbnail.png # Path to preview image (relative)
documentation_url: ./README.md # Path to detailed docsBefore contributing, ensure:
-
config.yamlhas all required fields -
requirements.txtlists all dependencies with versions - Code is well-commented and documented
- Component has been tested locally
- README.md included (optional but recommended)
- Thumbnail included (optional, improves discoverability)
- No hardcoded paths or credentials
- Follows CellMapFlow conventions
- CellMapFlow scans
cellmap_flow_hub/folder structure - For each subfolder in models/, normalizers/, etc., it reads
config.yaml - Builds a manifest of all available components
- Caches manifest locally for fast loading
- User can click "Refresh Hub" to fetch latest from repository
No central registry needed - just add a folder!
- Access
/hubin CellMapFlow dashboard - Click "Refresh Hub" to fetch latest components
- Click "Install" on any component
- Use in pipeline builder
- Clone the hub repo
- Create component folder in appropriate directory
- Add
config.yamland implementation files - Push changes
- Component automatically appears in hub
Component not appearing in hub?
- Ensure
config.yamlexists in component folder - Check YAML syntax is valid
- Try "Refresh Hub" button
Installation fails?
- Check
requirements.txthas correct package names - Verify
min_cellmap_flow_versionmatches your version - Check Python version compatibility
Dependencies conflict?
- Use virtual environments (conda/venv)
- Pin exact versions in
requirements.txt
For issues or questions:
- Check existing components for examples
- Review CellMapFlow documentation
- Open an issue on GitHub
Each component is independently licensed. Check individual component READMEs for license information.
Happy Contributing! 🚀