name: "scanpy_pearsonresidualshvgs"
description: Select highly variable genes using analytic Pearson residuals on raw counts
keywords:
  - feature-selection
  - single-cell
  - scrnaseq
  - scanpy
tools:
  - "scanpy":
      description: "Single-Cell Analysis in Python"
      homepage: "https://scanpy.readthedocs.io/"
      documentation: "https://scanpy.readthedocs.io/"
      tool_dev_url: "https://github.com/scverse/scanpy"
      licence: ["BSD-3-clause"]
      identifier: biotools:scanpy

input:
  - - meta:
        type: map
        description: |
          Groovy Map containing sample information
          e.g. `[ id:'sample1' ]`
    - h5ad:
        type: file
        description: AnnData object in h5ad format with raw counts in `X` or a `counts` layer
        pattern: "*.{h5ad}"
        ontologies:
          - edam: "http://edamontology.org/format_3590"
    - n_genes:
        type: integer
        description: |
          Number of highly variable genes to retain. If 0, defaults to 4000.
    - excluded_genes:
        type: file
        description: |
          Optional file with one gene symbol per line to exclude before feature selection.
    - batch_key:
        type: string
        description: |
          Optional column in obs for batch-aware Pearson residual HVG selection.
    - counts_layer:
        type: string
        description: |
          Layer containing raw counts, or `X` to use the main matrix.

output:
  h5ad:
    - - meta:
          type: map
          description: |
            Groovy Map containing sample information
            e.g. `[ id:'sample1' ]`
      - "*.h5ad":
          type: file
          description: AnnData object subset to highly variable genes with raw counts in `X`
          pattern: "*.h5ad"
          ontologies:
            - edam: "http://edamontology.org/format_3590"
  var:
    - "*.pkl":
        type: file
        description: Pickled DataFrame with highly variable gene annotations
        pattern: "*.pkl"
  versions:
    - versions.yml:
        type: file
        description: File containing software versions
        pattern: "versions.yml"
        ontologies:
          - edam: http://edamontology.org/format_3750

authors:
  - "@nictru"
maintainers:
  - "@nictru"
containers:
  docker:
    linux/arm64:
      name: community.wave.seqera.io/library/python_pyyaml_scanpy:1ffabec2e58c5ef2
      build_id: bd-1ffabec2e58c5ef2_1
      scan_id: sc-11af35eb64ff8b64_1
    linux/amd64:
      name: community.wave.seqera.io/library/python_pyyaml_scanpy:641b33efb395c24e
      build_id: bd-641b33efb395c24e_1
      scan_id: sc-e813ca3671686f02_1
  singularity:
    linux/arm64:
      name: oras://community.wave.seqera.io/library/python_pyyaml_scanpy:4b54127cdfe403f0
      build_id: bd-4b54127cdfe403f0_1
      https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/18/188995f4986086c3b17bdefed71c7241576caa857a4388900df1313464893d2f/data
    linux/amd64:
      name: oras://community.wave.seqera.io/library/python_pyyaml_scanpy:e4262d9e523d875f
      build_id: bd-e4262d9e523d875f_1
      https: https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/f6/f692c0c793f5ac7da42963b22084153c26be689e512864095832318e77dee2f9/data
  conda:
    linux/amd64:
      lock_file: modules/local/scanpy/pearsonresidualshvgs/.conda-lock/linux_amd64-bd-641b33efb395c24e_1.txt
    linux/arm64:
      lock_file: modules/local/scanpy/pearsonresidualshvgs/.conda-lock/linux_arm64-bd-1ffabec2e58c5ef2_1.txt
