Track samples through your Nextflow pipeline

nf-metalog groups task events by a metadata key (e.g. meta.id), generates interactive HTML reports so you can follow every sample end-to-end. It uses the 'meta-map' convention that nf-core uses to carry sample metadata in Nextflow pipeline.

View Live Report Github logo View on GitHub

If your pipeline processes already pass a meta map as the first tuple element, no pipeline changes are needed.

// Each sample is a tuple of (meta map, data)
workflow {
    ch_input = Channel.of(
        [[id: 'sample1', condition: 'control'], file('reads_1.fastq.gz')],
        [[id: 'sample2', condition: 'treated'], file('reads_2.fastq.gz')]
    )
    ALIGN( ch_input )
}

process ALIGN {
    input:  tuple val(meta), path(reads)
    output: tuple val(meta), path('*.bam')
    // nf-metalog picks up meta.id and groups all tasks for that sample
}

Example report

nf-metalog report · example run

Open full report →

Quick start

Add this to your nextflow.config and you're done.

plugins {
    id "nf-metalog@0.2.0"
}

metalog {
    groupKey     = 'id' // key in the meta map
    report {
        csvFile  = 'metalog.csv'
        htmlFile = 'metalog.html'
    }
}