Skip to content

Submitting Runs

Basic usage

tracker run SCRIPT [platform flags] [--workflow params]

SCRIPT (required) is either a git URL or a local file path.

Flag convention

Following Nextflow conventions, platform flags use a single dash (-name, -output-dir, -r, -profile) and workflow parameters use double dashes (--outdir, --input). Tracker recognizes its own flags and passes the rest through to the workflow runner unchanged.

Flag namespaces

Every argument falls into one of three namespaces:

Namespace Examples Who consumes it
Tracker -name, -output-dir, -cluster, -labels, -notes, -runner-*, -dry-run The Tracker CLI / API. Stripped from the command line before launching the runner.
Workflow runner -r, -profile, -w, -c, -params-file, -resume Passed through verbatim to nextflow (or the WDL runner). Tracker never inspects them.
Workflow --outdir, --input, anything else with a double-dash Workflow params (params.*). Each workflow defines its own.

-output-dir and --outdir must agree

-output-dir (Tracker) and --outdir (workflow) refer to the same S3 path. You only need to specify one — Tracker syncs them. If you supply both and they differ, the CLI rejects the submission rather than silently picking one.

Platform flags

Flags recognized by tracker. All are optional unless noted.

Flag Description Example
-output-dir S3 output directory. Required — either this or --outdir must be provided. See -output-dir and --outdir must agree. -output-dir s3://bucket/output
-name Custom run name. Auto-generated if omitted. -name my-daq-run
-cluster Target Kubernetes cluster. Falls back to config default. -cluster pltf-dev
-labels Labels for filtering in Tracker. Repeatable. -labels team=ngs -labels experiment=v2
-notes Freeform notes visible in the run detail UI. -notes "Testing new ref genome"
-params-file Path to a workflow params file (local or S3). -params-file s3://bucket/params.yaml
-resume Resume a previous run by session ID. -resume 12a3b4c5-...
-runner-cpu CPU allocation for the runner pod. -runner-cpu 4
-runner-memory Memory allocation for the runner pod. -runner-memory 8Gi
-runner-image Custom runner container image. -runner-image 123456.dkr.ecr...
-project-dir Local project directory. Auto-detected for local scripts. -project-dir ./my-pipeline
-dry-run Print the submission payload without actually running. -dry-run

Any single-dash flags that tracker doesn't recognize (e.g., -r, -profile, -w, -c) are passed through to the workflow runner as-is.

Workflow params

Double-dash arguments are passed through to the workflow as parameters (params.*). Each workflow defines its own set of accepted params — check the workflow's documentation for details.

The one param that gets special handling is --outdir: if you specify -output-dir (tracker flag), tracker automatically sets --outdir for the workflow. See -output-dir and --outdir must agree.

Clusters

Tracker manages multiple Kubernetes clusters and the web UI shows runs from all of them in one list. Use the -cluster flag to pick a target cluster per submission, or set a default with tracker config set cluster <name>.

A cluster admin must add you to a cluster before you can submit runs there. If you see Access denied to cluster 'pltf-dev' (or any other cluster name) after tracker auth login, ask a cluster admin to grant access.

AWS credentials

tracker run uses your ambient AWS credentials to upload local code and params files to S3 before submission. Set AWS_PROFILE to the profile for the target cluster's AWS account before running. For pltf-dev:

export AWS_PROFILE=pltf-dev

Clusters in other AWS accounts require the matching profile for that account. If S3 uploads fail with ExpiredToken or AccessDenied, refresh the SSO session for that profile (aws sso login --profile <name>).

Examples

Basic run:

tracker run \
  https://gitlab.natera.com/rd-platform/bioinformatics/infrastructure/nextflow-pipeline-template.git \
  -r master \
  -profile docker,eks,test \
  --outdir s3://natera-platform-sandbox/users/abshah/my-output

Run with labels and notes:

tracker run \
  https://gitlab.natera.com/rd-platform/bioinformatics/infrastructure/nextflow-pipeline-template.git \
  -name my-test-run \
  -r master \
  -profile docker,eks,test \
  -labels team=ngs \
  -notes "Testing new ref genome" \
  --outdir s3://natera-platform-sandbox/users/abshah/my-output \
  --input s3://data/samplesheet.csv

Resume a failed run:

tracker run \
  https://gitlab.natera.com/rd-platform/bioinformatics/infrastructure/nextflow-pipeline-template.git \
  -name my-retry \
  -r master \
  -profile docker,eks,test \
  -resume 12a3b4c5-6d7e-8f9a-0b1c-2d3e4f5a6b7c \
  --outdir s3://natera-platform-sandbox/users/abshah/my-output

Dry run (validate without submitting):

tracker run \
  https://gitlab.natera.com/rd-platform/bioinformatics/infrastructure/nextflow-pipeline-template.git \
  -r master \
  -profile docker,eks,test \
  -dry-run \
  --outdir s3://natera-platform-sandbox/users/abshah/my-output