NAME

NBI::Manifest - Provenance record for a single nbilaunch job run

VERSION

version 0.19.1

SYNOPSIS

use NBI::Manifest;

# Create at submission time
my $m = NBI::Manifest->new(
    tool        => 'kraken2',
    tool_version => '2.1.0',
    sample      => 'sample1',
    outdir      => '/results/kraken2',
    inputs      => { r1 => '/data/s_R1.fq.gz', r2 => '/data/s_R2.fq.gz' },
    params      => { db => '/db/kraken2', threads => 8 },
    outputs     => { report => 'sample1.k2report' },
    slurm_queue => 'short',
    slurm_cpus  => 8,
    slurm_mem_gb => 32,
);
$m->write('/results/kraken2/.nbilaunch/sample1.manifest.json');

# After submission: record job ID
$m->update(slurm_job_id => 4821934);

# In a downstream launcher: chain from a previous result
my $prev = NBI::Manifest->load('/results/kraken2/.nbilaunch/sample1.manifest.json');
my $report = $prev->output('report');   # => '/results/kraken2/sample1.k2report'

NAME

NBI::Manifest - Provenance record for a single nbilaunch job run

METHODS

new(%fields)

Create a manifest in memory. Required: tool, sample, outdir.

write($path)

Serialise to JSON at $path. Records the path for future update() calls.

load($path)

Parse an existing manifest JSON file.

output($name)

Return the absolute path of a named output: outdir/outputs{name}.

update(%changes)

Merge changes into the object and rewrite to disk.

AUTHOR

Andrea Telatin <proch@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2023-2025 by Andrea Telatin.

This is free software, licensed under:

The MIT (X11) License