Skip to content
Back to skills

Collection

ASecurity

Oxford Nanopore multi-step workflow orchestration with unified QC aggregation. Use when running complete analysis pipelines (QC → basecalling → alignment → variants → pharmacogenomics), generating unified reports, batch processing experiments, or coordinating complex multi-step workflows. Integrates with ont-experiments registry for full provenance tracking.

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
databashnodegitperformancedocumentation

Works with

  • cli

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add mattnigh/skills_collection --skill collection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Collection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Collection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattnigh-collection-c5475fae/badge)](https://www.skillsdirectory.com/skills/mattnigh-collection-c5475fae)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ont-pipeline
description: Oxford Nanopore multi-step workflow orchestration with unified QC aggregation. Use when running complete analysis pipelines (QC → basecalling → alignment → variants → pharmacogenomics), generating unified reports, batch processing experiments, or coordinating complex multi-step workflows. Integrates with ont-experiments registry for full provenance tracking.
---

# ONT Pipeline - Workflow Orchestration

Multi-step analysis pipeline orchestrator with unified QC aggregation and pharmacogenomics support.

## Core Concept

Defines and executes reproducible analysis workflows:

```yaml
# ~/.ont-registry/pipelines/pharmaco-clinical.yaml
name: pharmaco-clinical
description: Clinical pharmacogenomics workflow
version: "1.0"

steps:
  - name: end_reasons
    analysis: end_reasons
    required: true
    pass_criteria:
      signal_positive_pct: ">=75"
    outputs: [json, plot]
    
  - name: basecalling
    analysis: basecalling
    depends_on: [end_reasons]
    parameters:
      model: sup
      modifications: 5mCG_5hmCG
    outputs: [bam, json]
    
  - name: alignment
    analysis: alignment
    depends_on: [basecalling]
    parameters:
      reference: GRCh38
      preset: map-ont
    outputs: [bam, stats]
    
  - name: variants
    analysis: variant_calling
    depends_on: [alignment]
    parameters:
      caller: clair3
      model: r1041_e82_400bps_sup_v500
    outputs: [vcf, json]
    
  - name: cyp2d6
    analysis: cyp2d6_calling
    depends_on: [variants]
    parameters:
      caller: cyrius
      reference: GRCh38
    outputs: [json, tsv]
    
  - name: pharmcat
    analysis: pharmcat
    depends_on: [variants, cyp2d6]
    parameters:
      reporter: true
      sources: [CPIC, DPWG, FDA]
    outputs: [json, html]

aggregation:
  metrics:
    - source: end_reasons
      fields: [quality_status, signal_positive_pct]
    - source: basecalling  
      fields: [mean_qscore, median_qscore, n50, total_reads]
    - source: alignment
      fields: [mapped_pct, mean_coverage, target_coverage]
    - source: variants
      fields: [total_variants, pass_variants, ti_tv_ratio]
    - source: cyp2d6
      fields: [diplotype, phenotype, activity_score]
    - source: pharmcat
      fields: [drug_count, actionable_count]
```

## Quick Start

```bash
# Initialize registry with pipeline support
ont_experiments.py init --git

# List available pipelines
ont_pipeline.py list

# Run a pipeline on an experiment
ont_pipeline.py run pharmaco-clinical exp-abc123

# Run with custom parameters
ont_pipeline.py run pharmaco-clinical exp-abc123 \
  --param basecalling.model=hac \
  --param alignment.reference=/path/to/custom.fa

# Resume failed pipeline
ont_pipeline.py resume exp-abc123

# Generate unified report
ont_pipeline.py report exp-abc123 --format html --output report.html
```

## Commands

| Command | Description |
|---------|-------------|
| `list` | List available pipelines |
| `show <pipeline>` | Show pipeline definition |
| `validate <pipeline>` | Validate pipeline YAML |
| `run <pipeline> <exp>` | Execute pipeline on experiment |
| `resume <exp>` | Resume from last successful step |
| `status <exp>` | Show pipeline execution status |
| `report <exp>` | Generate unified QC report |
| `batch <pipeline> <exp...>` | Run on multiple experiments |
| `create <name>` | Create new pipeline template |

## Built-in Pipelines

### pharmaco-clinical

Full pharmacogenomics workflow with PharmCAT reporting:
```
end_reasons → basecalling(sup) → alignment → variants → cyp2d6 → pharmcat
```

### qc-fast

Quick QC assessment:
```
end_reasons → basecalling(fast) → basic_stats
```

### research-full

Complete research workflow with methylation:
```
end_reasons → basecalling(sup+5mC) → alignment → variants → sv_calling → methylation
```

### validation

Validation against known truth set:
```
end_reasons → basecalling → alignment → variants → truth_comparison
```

## Pipeline Execution

### Dependency Resolution

Steps execute in dependency order with automatic parallelization:

```
end_reasons ─────────────────────────────┐
                                         ├─→ report
basecalling → alignment → variants → cyp2d6
                      └→ coverage_stats ─┘
```

### State Tracking

Pipeline state stored in registry events:

```yaml
events:
  - timestamp: "2025-01-15T10:00:00Z"
    type: pipeline_start
    pipeline: pharmaco-clinical
    version: "1.0"
    
  - timestamp: "2025-01-15T10:05:00Z"
    type: analysis
    analysis: end_reasons
    pipeline_step: 1
    exit_code: 0
    
  - timestamp: "2025-01-15T12:00:00Z"
    type: pipeline_complete
    pipeline: pharmaco-clinical
    duration_seconds: 7200
    steps_completed: 6
    steps_failed: 0
```

### Failure Handling

```bash
# Pipeline fails at step 3
ont_pipeline.py run pharmaco-clinical exp-abc123
# Error: Step 'alignment' failed (exit code 1)
# Run 'ont_pipeline.py resume exp-abc123' to retry

# Resume from failed step
ont_pipeline.py resume exp-abc123
# Skipping completed: end_reasons, basecalling
# Retrying: alignment...
```

## Unified QC Report

Aggregates metrics from all pipeline steps:

```bash
ont_pipeline.py report exp-abc123 --format html --output qc_report.html
```

### Report Sections

1. **Summary Dashboard**
   - Overall status (PASS/WARN/FAIL)
   - Key metrics at a glance
   - Pipeline execution timeline

2. **Sequencing QC**
   - End reason distribution
   - Quality scores
   - Read length distribution

3. **Basecalling**
   - Model and parameters
   - Pass/fail rates
   - Q-score distribution

4. **Alignment**
   - Mapping statistics
   - Coverage distribution
   - Target region performance

5. **Variant Calling**
   - Variant counts by type
   - Quality metrics
   - Ti/Tv ratio

6. **Pharmacogenomics** (if applicable)
   - CYP2D6 diplotype and phenotype
   - Drug-gene interactions
   - Clinical recommendations

### Report Formats

| Format | Description |
|--------|-------------|
| `html` | Interactive HTML dashboard |
| `pdf` | Print-ready PDF report |
| `json` | Machine-readable metrics |
| `markdown` | Documentation-friendly |

## Batch Processing

```bash
# Run pipeline on all experiments with a tag
ont_pipeline.py batch pharmaco-clinical \
  --tag cyp2d6 \
  --parallel 4 \
  --output-dir /results/batch_2025Q4

# Run on specific experiments
ont_pipeline.py batch pharmaco-clinical \
  exp-abc123 exp-def456 exp-ghi789 \
  --parallel 2

# Generate batch summary
ont_pipeline.py batch-report /results/batch_2025Q4
```

## Custom Pipelines

### Create from Template

```bash
ont_pipeline.py create my-workflow
# Creates ~/.ont-registry/pipelines/my-workflow.yaml
```

### YAML Structure

```yaml
name: my-workflow
description: Custom analysis workflow
version: "1.0"
author: your-name

# Parameters with defaults (overridable at runtime)
parameters:
  reference: GRCh38
  model_tier: sup

steps:
  - name: step_name
    analysis: analysis_type  # Maps to ANALYSIS_SKILLS in ont-experiments
    depends_on: []           # List of step names
    required: true           # Fail pipeline if step fails
    parameters:              # Step-specific parameters
      key: value
    pass_criteria:           # Conditions to continue
      metric: ">=threshold"
    outputs: [json, bam]     # Output types to generate
    
aggregation:
  metrics:
    - source: step_name
      fields: [metric1, metric2]
      
  thresholds:
    quality_status: PASS
    mean_qscore: ">=15"
    mapped_pct: ">=90"
```

## HPC Integration

Pipelines automatically use HPC resources:

```bash
# Generate SLURM array job for batch
ont_pipeline.py batch pharmaco-clinical \
  --tag batch1 \
  --slurm batch_job.sbatch

# Submit
sbatch batch_job.sbatch
```

SLURM script adapts resources per step:
- Basecalling: GPU partition (sigbio-a40)
- Alignment: High-memory nodes
- Variant calling: Multi-core CPU

## Integration with ont-experiments

Pipeline events logged to experiment registry:

```bash
# View pipeline history
ont_experiments.py history exp-abc123

# Filter by pipeline
ont_experiments.py history exp-abc123 --filter pipeline=pharmaco-clinical

# Export pipeline commands
ont_experiments.py export exp-abc123 --pipeline
```

## CLI Reference

```
ont_pipeline.py <command> [options]

Commands:
  list                    List available pipelines
  show <pipeline>         Show pipeline definition
  validate <pipeline>     Validate pipeline YAML
  run <pipeline> <exp>    Execute pipeline
  resume <exp>            Resume from last checkpoint
  status <exp>            Show execution status
  report <exp>            Generate unified report
  batch <pipeline> ...    Batch execution
  batch-report <dir>      Generate batch summary
  create <name>           Create pipeline template

Run options:
  --param KEY=VALUE       Override parameter
  --skip-step STEP        Skip specific step
  --from-step STEP        Start from step
  --dry-run               Show execution plan

Report options:
  --format FORMAT         Output format (html, pdf, json, markdown)
  --output FILE           Output file path
  --include-plots         Embed visualization plots

Batch options:
  --parallel N            Concurrent experiments
  --tag TAG               Filter by experiment tag
  --output-dir DIR        Results directory
  --slurm FILE            Generate SLURM array job
```

## Dependencies

```
pyyaml>=6.0          # Pipeline definitions
jinja2>=3.0          # Report templating
pandas>=1.5          # Metrics aggregation
plotly>=5.0          # Interactive plots (optional)
weasyprint>=60       # PDF generation (optional)
```

Files in this skill

  • 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md15.1 KB
  • 17hz__nextjs-template__claude__skills__example-skill__SKILL.md316 B
  • 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md3.5 KB
  • 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md5.4 KB
  • 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md7.7 KB
  • 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md26.1 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md15.7 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md17.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md9.4 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md12.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md16.6 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md11.2 KB
  • 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md14.8 KB
  • 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md16.2 KB
  • 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md11.8 KB
  • 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md17.5 KB
  • 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md19.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md6.2 KB
  • 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md18.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md24.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…