Skip to main content

Developer Overview

Use this section when you are maintaining CBIcall itself: adding workflows, editing the workflow registry, or declaring resource entries. Normal users usually only need the Run, Pipelines, and Reproducibility sections.

CBIcall can be extended in two main ways:

Workflows

Add a Pipeline

Add a Bash or Snakemake entrypoint and register it in the workflow registry, workflows/registry/workflows.yaml. Users can then select it from the parameters YAML.

Resources

Add a Resource

Add a resource catalog entry that declares which workflow keys it supports and how installed resource identity can be checked.

What Extension Means

Extending CBIcall does not usually mean changing the Python execution driver. For most additions, the stable contract is:

Extension pointMain filePurpose
Workflow registryworkflows/registry/workflows.yamlDeveloper-facing file that declares available workflow implementations.
Workflow scriptsworkflows/bash/... or workflows/snakemake/...Implement the actual analysis steps.
Resource catalogresources/cbicall-resource-catalog.jsonDeclares external resource compatibility and identity metadata.
Parameters YAMLuser-provided *.yamlSelects one registered workflow and resource for a run.

Python changes are usually needed only when introducing a new execution model, a new top-level parameter, or a new compatibility rule.

Where To Start

After editing the workflow registry or resource files, run the relevant checks:

bin/cbicall validate-registry
bin/cbicall validate-resources
bin/cbicall validate-param -p parameters.yaml

validate-registry is mainly for pipeline developers. It checks that CBIcall's workflow registry is structurally valid; it does not run a workflow.