Bioinformatics artifact validation

bioartifact

A lightweight Python package and CLI for inspecting workflow outputs, validating named contracts, and returning deterministic JSON for agents, benchmark systems, and reproducibility pipelines.

$ bioartifact inspect variants.vcf.gz
{
  "schema_version": "1.0.0",
  "artifact_type": "vcf",
  "valid": true,
  "summary": {
    "records": 2,
    "sample_count": 1,
    "gzip": true
  }
}

Purpose

bioartifact checks structure and workflow compatibility. It is not a workflow engine, biological interpretation layer, or replacement for tools such as samtools, bcftools, FastQC, or MultiQC.

CLI

One command per decision

Inspect one file

Detect artifact type and summarize structural properties.

bioartifact inspect sample.bam

Validate a contract

Check whether an artifact satisfies a named requirement.

bioartifact validate peaks.narrowPeak \
  --contract narrowpeak

Summarize a directory

Find detected artifacts and count output types.

bioartifact summarize outputs/ \
  --recursive

Validate a workflow manifest

Check expected outputs, contracts, and companion files.

bioartifact validate-manifest \
  workflow_manifest.json

Coverage

Formats and contracts

Artifact types

  • FASTQ
  • FASTA
  • SAM
  • BAM
  • VCF
  • BED
  • narrowPeak
  • GTF
  • GFF
  • CSV
  • TSV
  • HTML

Initial contracts

  • FASTQ structure and gzip readability
  • paired FASTQ synchronization
  • sorted and indexed BAM expectations
  • valid VCF structure and sample columns
  • narrowPeak coordinates and required columns
  • differential-expression table columns

Interface

JSON by default

Every command emits structured JSON unless human output is requested. Discovery commands expose supported types, contracts, required arguments, and public schemas.

bioartifact contracts
bioartifact types
bioartifact schema
bioartifact schema contract_result
{
  "name": "paired_fastq",
  "artifact_types": ["fastq"],
  "required_arguments": ["mate"],
  "output_schema": "contract_result"
}

Manifests

Validate output sets

Manifest validation lets a workflow declare expected artifacts, contracts, and required companion files such as BAM or VCF indexes.

{
  "outputs": [
    {
      "name": "alignment",
      "path": "aligned.bam",
      "type": "bam",
      "contract": "sorted_bam",
      "requires": [
        { "name": "bam_index", "suffix": ".bai" }
      ]
    }
  ]
}

Use bioartifact in a workflow check

Install the package, validate outputs, and route downstream steps from deterministic JSON instead of ad hoc file-existence checks.