200 likes | 323 Views
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
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