200 likes | 334 Vues
This paper discusses the importance of data provenance in neuroimaging through the use of the LONI Pipeline workflow environment. It emphasizes the necessity of thorough documentation and clarity in tools, processing, and data quality to ensure reproducibility, reusability, and interoperability of neuroimaging data. The work aligns with the challenges and goals outlined in previous studies, focusing on the ease of use across platforms and software versions. Moreover, it illustrates the connections between various processes in neuroimaging analysis.
E N D
Neuroimaging Data Provenance Using the LONI Pipeline Workflow Environment • Allan MacKenzie-Graham IPAW2008 • Arash Payan • Ivo Dinov • John Van Horn • Arthur W. Toga
Provenance in Neuroimaging • Tools used and data described must be adequately described and documented • Determining data quality • Interpretation • Reproducibility • Reusability • Interoperability 2
First Provenance Challenge (Moreau et. al, 2007) 3
Provenance Systems (Moreau et. al, 2007) 4
Goals of the LONI Provenance System • Description • Data • Processing • Reproducibility • Across platforms • Across compilations • Across software versions • Ease of use 5
Neuroimaging Data Provenance Neuroimaging data provenance Project Subject Species Age Sex Acquisition Scanner Orientation Weighting Field Strength TR TE TI 6
Workflow Provenance <connections> <connection source="skullstrippedatlas.Output_0" sink="AlignLinear.StandardVolume_0" /> <connection source="SkullStrippedmousedataNORMAL.Output_0" sink="AlignLinear.ResliceVolume_0" /> <connection source="skullstrippedatlasINJECTED.Output_0" sink="AlignLinear.ResliceVolume_0" /> <connection source="AlignLinear.LinearTransformation_0" sink="AffinetoRigid.Full-affineTransformation_0" /> <connection source="AffinetoRigid.Rigid-bodyTransformation_0" sink="Reslice.Input.airLinearTransformation_0" /> <connection source="Reslice.OutputReslicedVolume_0" sink="AnalyzeImagetoMNC.InputAnalyzeImageFile_0" /> <connection source="AnalyzeImagetoMNC.OutputMinc_0" sink="MINCMath.InputMincs_0" /> <connection source="MINCMath.OutputMinc_0" sink="PrintAllLabels.InputMinc_0" /> <connection source="skullstrippedatlas.Output_0" sink="AlignLinear.StandardVolume_1" /> <connection source="SkullStrippedmousedataNORMAL.Output_0" sink="AlignLinear.ResliceVolume_1" /> <connection source="AlignLinear.LinearTransformation_1" sink="Reslice.Input.airLinearTransformation_1" /> <connection source="skullstrippedatlas.Output_0" sink="AlignLinear.StandardVolume_2" /> <connection source="skullstrippedatlasINJECTED.Output_0" sink="AlignLinear.ResliceVolume_2" /> <connection source="AlignLinear.LinearTransformation_2" sink="Reslice.Input.airLinearTransformation_2" /> <connection source="TrimImage.Outputimage_0" sink="Binarize.Input_0" /> <connection source="CompileFinalResults.PValuesImage_0" sink="BinaryMask.Input_0" /> <connection source="Binarize.OutputBinaryVolume_0" sink="BinaryMask.BinaryMaskFile_0" /> <connection source="BinaryMask.Outputmaskedvolume_0" sink="MaskedP-Values.Input_0" /> <connection source="KL_MI_register.displacementfieldimage_1" sink="InitializeStats.ControlsList_0" /> <connection source="KL_MI_register.displacementfieldimage_0" sink="InitializeStats.SubjectsList_0" /> <connection source="ProgramsFiles.Output_0" sink="InitializeStats.ExecutableDirectory_0" /> <connection source="Options.Output_0" sink="InitializeStats.Options_0" /> <connection source="KL_MI_register.displacementfieldimage_0" sink="ComputeDeformationTensors.InputList_0" /> <connection source="KL_MI_register.displacementfieldimage_1" sink="ComputeDeformationTensors.InputList_0" /> <connection source="ProgramsFiles.Output_0" sink="ComputeDeformationTensors.ExecutableDirectory_0" /> <connection source="InitializeStats.OutputDirectory_0" sink="ComputeDeformationTensors.OutputDirectory_0" /> <connection source="ProgramsFiles.Output_0" sink="ComputeVoxelwiseStatistics.ExecutableDirectory_0" /> <connection source="InitializeStats.OutputDirectory_0" sink="ComputeVoxelwiseStatistics.InputDirectory_0" /> <connection source="Options.Output_0" sink="ComputeVoxelwiseStatistics.Options_0" /> <connection source="Slices.Output_0" sink="ComputeVoxelwiseStatistics.iSlice_0" /> <connection source="ComputeDeformationTensors.Output_0" sink="ComputeVoxelwiseStatistics.SynchParameter_0" /> <connection source="InitializeStats.OutputDirectory_0" sink="CompileFinalResults.OutputDirectory_0" /> <connection source="ProgramsFiles.Output_0" sink="CompileFinalResults.Executionpath_0" /> <connection source="ComputeVoxelwiseStatistics.Output_0" sink="CompileFinalResults.DummySynch_0" /> <connection source="CompileFinalResults.PValuesImage_0" sink="Results.Input_0" /> <connection source="CompileFinalResults.TValuesImage_0" sink="Results.Input_0" /> <connection source="Reslice.OutputReslicedVolume_2" sink="KL_MI_register.Targetimage_0" /> <connection source="skullstrippedatlas.Output_0" sink="KL_MI_register.Templateimage_0" /> <connection source="Reslice.OutputReslicedVolume_1" sink="KL_MI_register.Targetimage_1" /> <connection source="skullstrippedatlas.Output_0" sink="KL_MI_register.Templateimage_1" /> <connection source="skullstrippedatlas.Output_0" sink="TrimImage.Inputimage_0" /> </connections> 10
Executable Provenance Executable provenance Environment Options Input files Output files Binary provenance Binary configuration Configuration options System configuration Architecture Operating system Compiler Libraries Script provenance Shell Script Binary provenance 11
Alignlinear Provenance <binary name="alignlinear" version="5.2.5" package="AIR" uri="http://www.loni.ucla.edu/Software/Software_Detail.jsp?software_id=8" compilationTime="2006-04-21T11:58:00"> <systemConfig> <architecture name="x86" vendor="Intel" model="T2400" processorFlags="" /> <OS name="MacOSX" version="10.5.3" distribution="" kernelName="Darwin" kernelVersion="9.3.0" /> <compiler name="GCC" version="4.0.1" flags="-o -Lsrc -lRPW -lm -g -02" updates="" /> </systemConfig> <configOptions> <config name="AIR_CONFIG_GROUPS" value="1" /> <config name="HAVE_LIBM" value="1" /> <config name="AIR_CONFIG_AUTO_BYTESWAP" value="1" /> <config name="AIR_CONFIG_REP16" value="1" /> <config name="AIR_CONFIG_VERBOSITY" value="0" /> <config name="AIR_CONFIG_DECOMPRESS_COMMAND" value="/usr/bin/gunzip -c" /> <config name="AIR_CONFIG_PIX_SIZE_ERR" value=".0001" /> <config name="AIR_CONFIG_THRESHOLD1" value="7000" /> <config name="AIR_CONFIG_OUTBITS" value="16" /> <config name="AIR_CONFIG_REQ_PERMS" value="2" /> <config name="AIR_CONFIG_THRESHOLD2" value="7000" /> <config name="AIR_CONFIG_PIPES" value="1" /> <config name="AIR_CONFIG_DECOMPRESS" value="1" /> <config name="AIR_CONFIG_PATHS" value="1" /> <config name="STDC_HEADERS" value="1" /> </configOptions> </binary> 12
Reproducibility • Across Platform • ICA workflow • Across compilations • MDA workflow 13
Future Directions • Community involvement • provenance.loni.ucla.edu • Make LONI Pipeline aware of provenance files • Read in provenance file • Display executable provenance • Append provenance information • Write out provenance file • Visualize provenance files • Interface similar to LONI Pipeline • Invoke LONI Pipeline to recreate file or modify processing • Provenance Database • Database of workflows 19
Acknowledgements • Arthur W. Toga • Director, Laboratory of Neuro Imaging • Arash Payan • Lead Developer, LONI Pipeline • Ivo D. Dinov • Assistant Professor, Laboratory of Neuro Imaging • John D. Van Horn • Assistant Professor, Laboratory of Neuro Imaging 20