BioContext7

Verification

Verify pipeline correctness and tool integrity in BioContext7

Pipeline Verification

BioContext7 provides multiple verification mechanisms to ensure generated pipelines are correct.

Stub Testing

Stub tests verify pipeline structure without executing real tools:

# Run stub tests on a generated pipeline
bc7 verify ./output/main.nf
 
# Verbose output
bc7 verify ./output/main.nf --verbose

Stub tests check:

  • All processes are reachable
  • Input/output channels are connected
  • Configuration parameters are valid
  • Container references resolve

LSP Validation

Language Server Protocol validation catches syntax and type errors:

# Validate a Nextflow pipeline
bc7 validate ./main.nf
 
# Validate a Snakemake workflow
bc7 validate ./Snakefile
 
# Validate with strict mode
bc7 validate ./main.nf --strict

Type Checking

Verify EDAM type compatibility between pipeline steps:

bc7 typecheck ./pipeline.yaml

This checks that each step's output types are compatible with the next step's expected inputs.

Tool Verification

Registry Integrity

Verify that tools in your pipeline exist and have valid metadata:

bc7 verify-tools ./output/manifest.json

Container Verification

Check that container images are available and match expected digests:

bc7 verify-containers ./output/manifest.json

Provenance Verification

Every generated pipeline includes a manifest.json with full provenance:

{
  "version": "1.0.0",
  "generated_at": "2026-01-15T10:30:00Z",
  "biocontext7_version": "0.1.0",
  "python_version": "3.11.7",
  "tools": [
    {
      "name": "star",
      "version": "2.7.11b",
      "source": "bio.tools",
      "container_digest": "sha256:abc123..."
    }
  ],
  "inputs": ["sample_1.fastq.gz", "sample_2.fastq.gz"],
  "parameters": {
    "target": "nextflow",
    "prefer_nfcore": true
  }
}

Verify Provenance

# Check manifest integrity
bc7 provenance verify ./output/manifest.json
 
# Compare two manifests
bc7 provenance diff ./v1/manifest.json ./v2/manifest.json

Continuous Integration

Add BioContext7 verification to your CI pipeline:

# .github/workflows/verify.yml
name: Verify Pipelines
on: [push]
jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: pip install biocontext7
      - run: bc7 validate ./pipelines/**/*.nf
      - run: bc7 verify-tools ./pipelines/**/manifest.json

On this page