name: move_obsm_to_obs
namespace: "metadata"
scope: "public"
description: |
  Move a matrix from .obsm to .obs. Newly created columns in .obs will 
  be created from the .obsm key suffixed with an underscore and the name of the columns
  of the specified .obsm matrix.
authors:
  - __merge__: /src/authors/dries_schaumont.yaml
    roles: [ author ]
argument_groups:
  - name: "MuData Input"
    arguments:
      - name: "--input"
        alternatives: ["-i"]
        type: file
        description: Input h5mu file
        direction: input
        required: true
        example: input.h5mu
      - name: "--modality"
        description: |
          Which modality from the input MuData file to process.
        type: string
        default: "rna"
        required: false
      - name: "--obsm_key"
        type: string
        description: Key of a data structure to move from `.obsm` to `.obs`.
        required: true
  - name: "MuData Output"
    arguments:
      - name: "--output"
        alternatives: ["-o"]
        type: file
        description: Output h5mu file.
        direction: output
        required: true
        example: output.h5mu
    __merge__: [., /src/base/h5_compression_argument.yaml]
resources:
  - type:  python_script
    path: script.py
  - path: /src/utils/setup_logger.py
  - path: /src/utils/compress_h5mu.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 ]
