provenance for neuroimaging data
Ever encountered a file of which you weren’t sure what analysis steps it had gone through? Ever wanted to know what types of data you have available for a subject in one overview? Automatically document an analysis pipeline?
Provenance is meta-data that tracks the ‘history’ of a file, and niprov is a python program to create, store and publish provenance for brain imaging files.
A list with all provenance attributes collected can be found here.
Read more in the full online documentation (or pdf).
For additional detailed information on image files, install nibabel
,mne
and/or pydicom
.
Install niprov:
pip install niprov
Look for existing image files in your data directory:
provenance discover /my/data/directory
Run a transformation command and log it as provenance for the new file:
provenance record mcflirt -in t1flip_all_orig -out t1all_reg -refvol 0
Store provenance of known MEG files as an xml file:
provenance export --modality "MEG" --xml
import niprov
provenance = niprov.ProvenanceContext()
# Log an analysis step:
someAnalysisPackage.correctmotion(input='JD-fmri.nii', output='JD-fmri-3dmc.nii')
provenance.log('JD-fmri.nii', 'motion correction', ['JD-fmri-3dmc.nii'])
# Loop over images of John Smith and display a preview:
for image in provenance.get().bySubject('John Smith'):
image.viewSnapshot()
# Make sure two files were acquired with the same parameters:
img1.compare(img2).assertEqualProtocol()
By running the command provenance serve
you can start a mini webserver in the
background, and browse images in your webbrowser: