Lamin URIs .md

The nf-lamin plugin provides native support for lamin:// URIs, allowing you to reference LaminDB artifacts directly in your Nextflow workflows using Nextflow’s standard file() function.

lamin://<owner>/<instance>/artifact/<uid>[/<subpath>]

Components:

  • owner - The LaminDB instance owner (organization or user)

  • instance - The LaminDB instance name

  • uid - The artifact UID (16 or 20 characters)

    • 16-character base UIDs fetch the most recently updated version

    • 20-character full UIDs fetch that specific version

  • subpath - (Optional) Path within the artifact for directories or archives

Basic usage

Use lamin:// URIs with the file() function:

workflow {
  // Reference a LaminDB artifact directly by URI
  def input_file = file('lamin://laminlabs/lamindata/artifact/PnNjE93TdZGJ')

  log.info "Using artifact: ${input_file}"

  Channel.of(input_file)
    | myProcess
}

With sub-paths

For artifacts that are directories or archives, reference specific files within them:

workflow {
  // Reference a specific file within an artifact directory
  def config_file = file('lamin://myorg/myinstance/artifact/abcd1234efgh5678/config/settings.yaml')

  Channel.of(config_file)
    | processConfig
}

As workflow parameters

Use lamin:// URIs as workflow parameters:

params.input = 'lamin://laminlabs/lamindata/artifact/PnNjE93TdZGJ'

workflow {
  Channel.fromPath(params.input)
    | myProcess
}

Or pass them on the command line:

nextflow run my-pipeline.nf --input 'lamin://laminlabs/lamindata/artifact/PnNjE93TdZGJ'

Requirements

  • The nf-lamin plugin must be configured with a valid API key

  • The workflow must have started (the plugin initializes on workflow start)

  • For private cloud storage, ensure your AWS/GCS credentials are configured in nextflow.config

Limitations

  • lamin:// paths are read-only - you cannot write to them

  • Currently uses cloud credentials from your nextflow.config (automatic credential federation from LaminHub is planned for a future release)