# Class: WorkflowConfig 


_Declarative orchestration for rendering a parameter sweep into a distributed, reproducible workflow (Slurm array, Snakemake, Nextflow). Backend- and engine-independent: it names *what* to distribute, *where* results go, and the per-engine resources, while each engine emitter renders the concrete artefact. Declared on a study as ``workflow`` and refined per experiment via ``workflow_overrides``; unset fields fall back to the emitter's defaults so an override sets only what it names._



<div data-search-exclude markdown="1">



URI: [tvbo:WorkflowConfig](https://w3id.org/tvbo/WorkflowConfig)





```{mermaid}
 classDiagram
    class WorkflowConfig
    click WorkflowConfig href "./WorkflowConfig.html"
      WorkflowConfig : chunk
        
          
    
        
        
        WorkflowConfig --> "0..1" Integer : chunk
        click Integer href "../http://www.w3.org/2001/XMLSchema#integer.html"
    

        
      WorkflowConfig : container
        
          
    
        
        
        WorkflowConfig --> "0..1" String : container
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      WorkflowConfig : container_args
        
          
    
        
        
        WorkflowConfig --> "0..1" String : container_args
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      WorkflowConfig : container_binds
        
          
    
        
        
        WorkflowConfig --> "*" String : container_binds
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      WorkflowConfig : distribute
        
          
    
        
        
        WorkflowConfig --> "0..1" DistributionConfig : distribute
        click DistributionConfig href "./DistributionConfig.html"
    

        
      WorkflowConfig : nextflow
        
          
    
        
        
        WorkflowConfig --> "0..1" WorkflowEngineConfig : nextflow
        click WorkflowEngineConfig href "./WorkflowEngineConfig.html"
    

        
      WorkflowConfig : out_dir
        
          
    
        
        
        WorkflowConfig --> "0..1" String : out_dir
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      WorkflowConfig : requirements
        
          
    
        
        
        WorkflowConfig --> "*" SoftwareRequirement : requirements
        click SoftwareRequirement href "./SoftwareRequirement.html"
    

        
      WorkflowConfig : retries
        
          
    
        
        
        WorkflowConfig --> "0..1" Integer : retries
        click Integer href "../http://www.w3.org/2001/XMLSchema#integer.html"
    

        
      WorkflowConfig : rng
        
          
    
        
        
        WorkflowConfig --> "0..1" String : rng
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      WorkflowConfig : slurm
        
          
    
        
        
        WorkflowConfig --> "0..1" WorkflowEngineConfig : slurm
        click WorkflowEngineConfig href "./WorkflowEngineConfig.html"
    

        
      WorkflowConfig : snakemake
        
          
    
        
        
        WorkflowConfig --> "0..1" WorkflowEngineConfig : snakemake
        click WorkflowEngineConfig href "./WorkflowEngineConfig.html"
    

        
      
```




<!-- no inheritance hierarchy -->

## Class Properties

| Property | Value |
| --- | --- |
| Class URI | [tvbo:WorkflowConfig](https://w3id.org/tvbo/WorkflowConfig) |


## Slots

| Name | Cardinality and Range | Description | Inheritance |
| ---  | --- | --- | --- |
| [out_dir](../slots/out_dir.qmd) | 0..1 <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) | Output directory template | direct |
| [container](../slots/container.qmd) | 0..1 <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) | Container image wrapping each task; tasks run as ``<runtime> exec <image> …`` | direct |
| [container_binds](../slots/container_binds.qmd) | * <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) | Host paths that must be visible inside the container beyond the ones its runt... | direct |
| [container_args](../slots/container_args.qmd) | 0..1 <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) | Additional arguments passed verbatim to the container runtime when it execute... | direct |
| [retries](../slots/retries.qmd) | 0..1 <br/> [xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | Automatic retries per failed task | direct |
| [rng](../slots/rng.qmd) | 0..1 <br/> [xsd:string](http://www.w3.org/2001/XMLSchema#string) | Random-seed policy across shards | direct |
| [chunk](../slots/chunk.qmd) | 0..1 <br/> [xsd:integer](http://www.w3.org/2001/XMLSchema#integer) | Default shard count used when ``distribute | direct |
| [distribute](../slots/distribute.qmd) | 0..1 <br/> [DistributionConfig](../classes/DistributionConfig.qmd) | How exploration axes map onto the vectorized vs fanned-out tiers | direct |
| [requirements](../slots/requirements.qmd) | * <br/> [SoftwareRequirement](../classes/SoftwareRequirement.qmd) | Software requirements for the workflow environment; overrides ``experiment | direct |
| [slurm](../slots/slurm.qmd) | 0..1 <br/> [WorkflowEngineConfig](../classes/WorkflowEngineConfig.qmd) | Slurm sbatch directives for array-job execution | direct |
| [snakemake](../slots/snakemake.qmd) | 0..1 <br/> [WorkflowEngineConfig](../classes/WorkflowEngineConfig.qmd) | Snakemake execution directives | direct |
| [nextflow](../slots/nextflow.qmd) | 0..1 <br/> [WorkflowEngineConfig](../classes/WorkflowEngineConfig.qmd) | Nextflow execution directives | direct |





## Usages

| used by | used in | type | used |
| ---  | --- | --- | --- |
| [Figure](../classes/Figure.qmd) | [workflow_overrides](../slots/workflow_overrides.qmd) | range | [WorkflowConfig](../classes/WorkflowConfig.qmd) |
| [SimulationExperiment](../classes/SimulationExperiment.qmd) | [workflow](../slots/workflow.qmd) | range | [WorkflowConfig](../classes/WorkflowConfig.qmd) |
| [SimulationStudy](../classes/SimulationStudy.qmd) | [workflow](../slots/workflow.qmd) | range | [WorkflowConfig](../classes/WorkflowConfig.qmd) |












## Identifier and Mapping Information





### Schema Source


* from schema: https://w3id.org/tvbo




## Mappings

| Mapping Type | Mapped Value |
| ---  | ---  |
| self | tvbo:WorkflowConfig |
| native | tvbo:WorkflowConfig |






## LinkML Source

<!-- TODO: investigate https://stackoverflow.com/questions/37606292/how-to-create-tabbed-code-blocks-in-mkdocs-or-sphinx -->

### Direct

<details>
```yaml
name: WorkflowConfig
description: 'Declarative orchestration for rendering a parameter sweep into a distributed,
  reproducible workflow (Slurm array, Snakemake, Nextflow). Backend- and engine-independent:
  it names *what* to distribute, *where* results go, and the per-engine resources,
  while each engine emitter renders the concrete artefact. Declared on a study as
  ``workflow`` and refined per experiment via ``workflow_overrides``; unset fields
  fall back to the emitter''s defaults so an override sets only what it names.'
from_schema: https://w3id.org/tvbo
attributes:
  out_dir:
    name: out_dir
    description: Output directory template. ``{study}`` and ``{experiment}`` are substituted
      with the study and experiment keys at emit time. Unset means the kit's own ``derivatives/tvbo``.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: string
  container:
    name: container
    description: 'Container image wrapping each task; tasks run as ``<runtime> exec
      <image> …``. A concrete image passes through as given — either a registry reference
      the engine resolves and materialises itself (``docker://…:tag``) or a path to
      an image file already built on the target, which pins the exact image and needs
      no pull. A reference that leaves the version open is resolved to the tvbo image
      matching the running CLI: the symbolic value ``tvbo``, or a tvbo registry reference
      with no ``:tag``. Left unset while ``requirements`` are declared, the base still
      defaults to that tvbo image (the deps layer onto it); unset with no requirements,
      tasks run bare.'
    from_schema: https://w3id.org/tvbo
    domain_of:
    - ResultEntity
    - WorkflowConfig
    range: string
  container_binds:
    name: container_binds
    description: Host paths that must be visible inside the container beyond the ones
      its runtime binds by default (typically ``$HOME`` and the working directory).
      Required whenever a task reads or writes a site filesystem outside those defaults
      — a shared cache, a data tree, or a scratch area a symlink resolves into. Rendered
      into each runtime's own flag (``--bind`` for Apptainer/Singularity).
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: string
    multivalued: true
  container_args:
    name: container_args
    description: Additional arguments passed verbatim to the container runtime when
      it executes a task. The extension point for runtime flags the typed fields do
      not cover, mirroring ``WorkflowEngineConfig.options`` for scheduler directives.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: string
  retries:
    name: retries
    description: Automatic retries per failed task. Unset means none.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: integer
    minimum_value: 0
  rng:
    name: rng
    description: Random-seed policy across shards. ``deterministic`` (the default
      when unset) derives each task's seed from its shard index so the fan-out is
      reproducible.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: string
  chunk:
    name: chunk
    description: Default shard count used when ``distribute.chunk`` is unset (see
      DistributionConfig.chunk).
    from_schema: https://w3id.org/tvbo
    domain_of:
    - DistributionConfig
    - WorkflowConfig
    range: integer
    minimum_value: 1
  distribute:
    name: distribute
    description: How exploration axes map onto the vectorized vs fanned-out tiers.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: DistributionConfig
    inlined: true
  requirements:
    name: requirements
    description: Software requirements for the workflow environment; overrides ``experiment.environment.requirements``
      when set.
    from_schema: https://w3id.org/tvbo
    domain_of:
    - SoftwareEnvironment
    - Function
    - WorkflowConfig
    - PDESolver
    range: SoftwareRequirement
    multivalued: true
    inlined: true
    inlined_as_list: true
  slurm:
    name: slurm
    description: Slurm sbatch directives for array-job execution.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: WorkflowEngineConfig
    inlined: true
  snakemake:
    name: snakemake
    description: Snakemake execution directives.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: WorkflowEngineConfig
    inlined: true
  nextflow:
    name: nextflow
    description: Nextflow execution directives.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    domain_of:
    - WorkflowConfig
    range: WorkflowEngineConfig
    inlined: true
class_uri: tvbo:WorkflowConfig

```
</details>

### Induced

<details>
```yaml
name: WorkflowConfig
description: 'Declarative orchestration for rendering a parameter sweep into a distributed,
  reproducible workflow (Slurm array, Snakemake, Nextflow). Backend- and engine-independent:
  it names *what* to distribute, *where* results go, and the per-engine resources,
  while each engine emitter renders the concrete artefact. Declared on a study as
  ``workflow`` and refined per experiment via ``workflow_overrides``; unset fields
  fall back to the emitter''s defaults so an override sets only what it names.'
from_schema: https://w3id.org/tvbo
attributes:
  out_dir:
    name: out_dir
    description: Output directory template. ``{study}`` and ``{experiment}`` are substituted
      with the study and experiment keys at emit time. Unset means the kit's own ``derivatives/tvbo``.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: string
  container:
    name: container
    description: 'Container image wrapping each task; tasks run as ``<runtime> exec
      <image> …``. A concrete image passes through as given — either a registry reference
      the engine resolves and materialises itself (``docker://…:tag``) or a path to
      an image file already built on the target, which pins the exact image and needs
      no pull. A reference that leaves the version open is resolved to the tvbo image
      matching the running CLI: the symbolic value ``tvbo``, or a tvbo registry reference
      with no ``:tag``. Left unset while ``requirements`` are declared, the base still
      defaults to that tvbo image (the deps layer onto it); unset with no requirements,
      tasks run bare.'
    from_schema: https://w3id.org/tvbo
    owner: WorkflowConfig
    domain_of:
    - ResultEntity
    - WorkflowConfig
    range: string
  container_binds:
    name: container_binds
    description: Host paths that must be visible inside the container beyond the ones
      its runtime binds by default (typically ``$HOME`` and the working directory).
      Required whenever a task reads or writes a site filesystem outside those defaults
      — a shared cache, a data tree, or a scratch area a symlink resolves into. Rendered
      into each runtime's own flag (``--bind`` for Apptainer/Singularity).
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: string
    multivalued: true
  container_args:
    name: container_args
    description: Additional arguments passed verbatim to the container runtime when
      it executes a task. The extension point for runtime flags the typed fields do
      not cover, mirroring ``WorkflowEngineConfig.options`` for scheduler directives.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: string
  retries:
    name: retries
    description: Automatic retries per failed task. Unset means none.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: integer
    minimum_value: 0
  rng:
    name: rng
    description: Random-seed policy across shards. ``deterministic`` (the default
      when unset) derives each task's seed from its shard index so the fan-out is
      reproducible.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: string
  chunk:
    name: chunk
    description: Default shard count used when ``distribute.chunk`` is unset (see
      DistributionConfig.chunk).
    from_schema: https://w3id.org/tvbo
    owner: WorkflowConfig
    domain_of:
    - DistributionConfig
    - WorkflowConfig
    range: integer
    minimum_value: 1
  distribute:
    name: distribute
    description: How exploration axes map onto the vectorized vs fanned-out tiers.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: DistributionConfig
    inlined: true
  requirements:
    name: requirements
    description: Software requirements for the workflow environment; overrides ``experiment.environment.requirements``
      when set.
    from_schema: https://w3id.org/tvbo
    owner: WorkflowConfig
    domain_of:
    - SoftwareEnvironment
    - Function
    - WorkflowConfig
    - PDESolver
    range: SoftwareRequirement
    multivalued: true
    inlined: true
    inlined_as_list: true
  slurm:
    name: slurm
    description: Slurm sbatch directives for array-job execution.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: WorkflowEngineConfig
    inlined: true
  snakemake:
    name: snakemake
    description: Snakemake execution directives.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: WorkflowEngineConfig
    inlined: true
  nextflow:
    name: nextflow
    description: Nextflow execution directives.
    from_schema: https://w3id.org/tvbo
    rank: 1000
    owner: WorkflowConfig
    domain_of:
    - WorkflowConfig
    range: WorkflowEngineConfig
    inlined: true
class_uri: tvbo:WorkflowConfig

```
</details></div>