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.
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
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'
}
}