name: split_modalities
namespace: "dataflow"
scope: "public"
description: |
  Split the modalities from a single .h5mu multimodal sample into seperate .h5mu files. 
authors:
  - __merge__: /src/authors/dries_schaumont.yaml
    roles: [ maintainer ]
  - __merge__: /src/authors/robrecht_cannoodt.yaml
    roles: [ contributor ]
arguments:
  - name: "--input"
    alternatives: ["-i"]
    type: file
    description: Path to a single .h5mu file.
    required: true
    default: sample_path
    example: input.h5mu
  - name: "--output"
    alternatives: ["-o"]
    type: file
    required: true
    direction: output
    example: "/path/to/output"
    description: Output directory containing multiple h5mu files.
  - name: "--output_types"
    type: file
    required: true
    direction: output
    example: types.csv
    description: A csv containing the base filename and modality type per output file.
__merge__: [., /src/base/h5_compression_argument.yaml]

resources:
  - type: python_script
    path: script.py
  - path: /src/utils/setup_logger.py
  - path: /src/utils/mudata_opener.py
test_resources:
  - type: python_script
    path: test.py

engines:
- type: docker
  image: python:3.12-slim
  setup:
    - type: apt
      packages: 
        - procps
    - type: python
      __merge__: /src/base/requirements/anndata_mudata.yaml
  __merge__: [ /src/base/requirements/python_test_setup.yaml, .]

runners:
- type: executable
- type: nextflow
  directives:
    label: [singlecpu, lowmem]
