Skip to content

GoodWorkflows

A DSL2 Nextflow pipeline for composing reusable single-cell RNA-seq workflows and running them on SLURM + Podman HPC systems.


Workflow selection guide

Workflow What it does Compute requirement
full Download → export counts → harmonize → scMODAL integration HPC + GPU (SLURM required)
ingest_export Download Seurat RDS and export 10x-like counts Local / Mac / HPC (CPU)
ingest_tabulate Download cell metadata and build subjectIdTable.csv Local / Mac / HPC (CPU)

Select the workflow with --workflow <name>.


Quick start

Local / Mac (CPU workflows)

# Download metadata and produce a subject-level summary table
nextflow run main.nf \
  --workflow ingest_tabulate \
  --labkey_base_url https://labkey.example.org \
  --labkey_folder /My/Project/Folder

# Download Seurat objects and export 10x-like counts
nextflow run main.nf \
  --workflow ingest_export \
  --labkey_base_url https://labkey.example.org \
  --labkey_folder /My/Project/Folder

HPC (full GPU pipeline)

# On any SLURM node – profile auto-detected from environment
sbatch slurm_nextflow.sh \
  --workflow full \
  --labkey_base_url https://labkey.example.org \
  --labkey_folder /My/Project/Folder

LabKey credentials

All workflows communicate with a LabKey / Prime-seq server via ~/.netrc. Ensure your netrc entry for labkey_base_url is configured before running.


Repository layout

.
├── main.nf                 # Thin launcher
├── workflows/              # Higher-level workflow definitions
├── modules/local/          # Single-step DSL2 modules
├── configs/                # Base + profile-specific configs
├── data/                   # Default input location (samplesheet.csv)
├── outputs/                # Published results (generated)
├── work/                   # Nextflow work dir (generated)
├── logs/                   # Nextflow reports and SLURM logs (generated)
├── docs/                   # Documentation source (this site)
├── mkdocs.yml              # MkDocs site config
├── nextflow_schema.json    # Machine-readable parameter API (JSON Schema)
├── slurm_nextflow.sh       # HPC SLURM submission wrapper
└── slurm_sync_repo.sh      # Lightweight HPC repo sync job

Representative outputs

The docs site ships with seeded synthetic examples so the workflow pages can show safe, reproducible output shapes without live LabKey access.

Cell metadata composition Subject-level tabulation Exported count matrix
Synthetic immune-class composition Synthetic subject table heatmap Synthetic count matrix heatmap

See the Synthetic Tabulation Walkthrough for the full end-to-end explanation of where these files come from and how they map to the workflows.


Generated API reference

The API Reference section is rebuilt with uvx nf-docs generate during docs CI. Use those pages for code- and schema-level reference, and use the curated workflow pages for stage-by-stage semantics, expected file layouts, and visual examples.