cellmap_flow.cli.yaml_cli
YAML-based CLI for running multiple models. Uses YAML configuration files for batch processing.
This dynamically discovers ModelConfig subclasses just like cellmap_flow, making it easy to add new model types without modifying this file.
Attributes
Functions
|
The YAML's |
|
|
|
Submit multiple model inference jobs. |
|
Run multiple model inference jobs from a YAML configuration file. |
Module Contents
- cellmap_flow.cli.yaml_cli.logger
- cellmap_flow.cli.yaml_cli.EXTRA_LAYER_TYPES = ('image', 'segmentation')
- cellmap_flow.cli.yaml_cli.extra_layer_entries(config) list
The YAML’s
extra_layers, checked; [] when there are none.Each entry is
{name, path, layer_type?, shader?, blend?, disable_meshes?}: a volume shown beside the raw data undername.- Raises:
ConfigError – an entry lacks a name or path, repeats a name or uses the raw layer’s (“data”), or has an unknown layer_type.
- cellmap_flow.cli.yaml_cli.build_extra_layers(entries) dict
{name: neuroglancer layer}for extra_layers entries.Read as stored, without the input normalizers. An image entry’s
shaderandblendare applied to its layer; a segmentation colours its ids itself, and has no blend. An entry whose volume cannot be opened is logged and left out, rather than stopping the dashboard.
- cellmap_flow.cli.yaml_cli.run_multiple(models: List[cellmap_flow.models.models_config.ModelConfig], dataset_path: str, charge_group: str, queue: str, wrap_raw: bool = True, resample: bool = True) None
Submit multiple model inference jobs.
- Parameters:
models – List of ModelConfig instances to run
dataset_path – Base path to the dataset
charge_group – Billing/chargeback group
queue – Job queue name
resample – start each server with –resample, else –no-resample (the YAML’s
resample)
- cellmap_flow.cli.yaml_cli.main(ctx, config_path: str, list_types: bool, validate_only: bool)
Run multiple model inference jobs from a YAML configuration file.
The YAML file should have the following structure:
data_path: /path/to/data charge_group: my_group queue: gpu_h100 # optional, defaults to gpu_h100 walltime: “08:00” # optional; LSF run limit, “HH:MM” or minutes.
# Without it the queue’s own default applies, # which is 2 hours on the Janelia GPU queues.
- cycle_gpu_queues: true # optional; false pins the job to queue above
# instead of falling back to a queue with capacity.
wrap_raw: true # optional; false serves raw straight from the file resample: true # optional, the default: resample the data to each
# model’s input voxel size when it has no level at # it; false reads the nearest level as if it were.
- extra_layers: # optional; more volumes to show beside the raw data
name: mito_pred path: /path/to/pred.zarr/mito shader: “…” # optional, image layers only blend: additive # optional, image layers only
name: instances path: /path/to/instances.zarr/s0 layer_type: segmentation # default: image disable_meshes: true # optional; no meshes computed on a pick
- json_data: # optional; normalization and postprocessing
- input_norm:
MinMaxNormalizer: {min_value: 0, max_value: 255} LambdaNormalizer: {expression: “x*2-1”}
- postprocess:
SigmoidPostprocessor: {}
- models:
type: dacapo name: my_model run_name: my_run iteration: 100
type: fly name: fly_model checkpoint: /path/to/checkpoint.ts classes: [mito, er, nucleus] resolution: [4, 4, 4]
Models may also be given as a mapping, where each key is the model name:
models:
- my_model:
type: dacapo run_name: my_run
json_data is an inline mapping (or a JSON string), not a path to a file.
Model types are automatically discovered from ModelConfig subclasses. Use –list-types to see all available types.
Examples:
cellmap_flow yaml config.yaml cellmap_flow yaml config.yaml –log-level DEBUG cellmap_flow yaml –list-types cellmap_flow yaml config.yaml –validate-only