In neuroimaging the typical analysis approach is a “mass univariate”, where a univariate model is independently fit to each voxel (volume element) in parallel. This approach can be applied to a large range of datasets including: functional MRI, anatomical MRI (with Voxel-Based Morphometry), PET, EEG and MEG data.
The three major software analysis package for neuroimaging: SPM (Statistical Parametric Mapping) and FSL (FMRIB Software Library) and AFNI (AFNI) provide implementations of mass univariate analyses. While there are many commonalities across software packages, there are also software-specific outputs that can be of interest for the end-user.
This document describes the encoding of results of a mass univariate neuroimaging analysis using the NIDM data model ([[!KEATORNI13]]). The goal of this specification is to provide a unified representation of neuroimaging results across analysis software. When a piece of information is only available in a specific software, software-specific extensions are provided.
NIDM-Results is a NIDM compliant structured representation of the results of a massively univariate neuroimaging study.
NIDM-Results specification formally describes the encoding of the massively univariate neuroimaging results into a NIDM representation. Extensions are provided to describe software-specific objects for SPM (Statistical Parametric Mapping) and FSL (FMRIB Software Library) analysis software.
Section 2 provides an overview of NIDM-Results, distinguishing a core set of types and relations, commonly found in provenance, from extended structures catering for more specific uses. It also introduces a modular organization of the data model in components.
Section 3 illustrates how NIDM-Results can be used to express the results of a neuroimaging study in SPM and FSL.
Section 4 provides the definitions (and examples) of NIDM-Results concepts, structured according to three components.
The key word "OPTIONAL" in this document is to be interpreted as described in [RFC2119].
Examples throughout this document use the PROV-N Provenance Notation, specified in a separate document [[prov-n]].
The following namespaces prefixes are used throughout this document.
prefix | namespace IRI | definition |
nidm | http://purl.org/nidash/nidm# | The NIDM namespace |
prov | http://www.w3.org/ns/prov# | The PROV namespace [[prov-dm]] |
xsd | http://www.w3.org/2000/10/XMLSchema# | XML Schema Namespace [[XMLSCHEMA11-2]] |
(others) | (various) | All other namespace prefixes are used in examples only. In particular, IRIs starting with "http://example.com" represent some application-dependent IRI [[RFC3987]] |
This section introduces neuroimaging results concepts with informal explanations and illustrative examples (e.g. see SPM results). NIDM-Results distinguishes software-agnostic structures, forming the essence of the results, from software-specific structures catering for more specific uses of results by different analysis software. Core and extended structures are respectively presented in Section 2.1 and Section 2.2.
NIDM-Results is concerned with the modelling of model fitting and inference in the context of massively univariate analyses. A typical example is the analysis of functional MRI data but studies involving other modalities (such as PET) and sequences (e.g. anatomical MRI through VBM) can also be modelled. The domain covered by NIDM-Results data model is represented in .
The concepts found in the core of NIDM-Results are introduced in the rest of this section.
PROV relations used in NIDM-Results are summarized in Table 2.
NIDM-Results Concepts | Types or Relation (PROV concepts) | Name | Overview |
Generation | PROV Relations |
WasGeneratedBy | PROV-DM wasGeneratedBy |
Usage | Used | PROV-DM used | |
Derivation | WasDerivedFrom | PROV-DM wasDerivedFrom |
NIDM-Results Concepts | Types or Relation (PROV concepts) | Name |
nidm:'Map' | NIDM-Results Types (PROV 'Entity') |
nidm:'Map' |
@prefix nidm_CoordinateSpace: <http://purl.org/nidash/nidm#NIDM_0000016> . @prefix nidm_voxelToWorldMapping: <http://purl.org/nidash/nidm#NIDM_0000132> . @prefix nidm_voxelUnits: <http://purl.org/nidash/nidm#NIDM_0000133> . @prefix nidm_voxelSize: <http://purl.org/nidash/nidm#NIDM_0000131> . @prefix nidm_inWorldCoordinateSystem: <http://purl.org/nidash/nidm#NIDM_0000105> . @prefix nidm_MNICoordinateSystem: <http://purl.org/nidash/nidm#NIDM_0000051> . @prefix nidm_numberOfDimensions: <http://purl.org/nidash/nidm#NIDM_0000112> . @prefix nidm_dimensionsInVoxels: <http://purl.org/nidash/nidm#NIDM_0000090> . niiri:coordinate_space_id_1 a prov:Entity , nidm_CoordinateSpace: ; rdfs:label "Coordinate space 1" ; nidm_voxelToWorldMapping: "[[-3, 0, 0, 78],[0, 3, 0, -112],[0, 0, 3, -50],[0, 0, 0, 1]]"^^xsd:string ; nidm_voxelUnits: "[ \"mm\", \"mm\", \"mm\" ]"^^xsd:string ; nidm_voxelSize: "[ 3, 3, 3 ]"^^xsd:string ; nidm_inWorldCoordinateSystem: nidm_MNICoordinateSystem: ; nidm_numberOfDimensions: "3"^^xsd:int ; nidm_dimensionsInVoxels: "[ 53, 63, 46 ]"^^xsd:string .
NIDM-Results Concepts | Types or Relation (PROV concepts) | Name |
nidm:'Model Parameters Estimation' | NIDM-Results Types (PROV 'Activity') |
nidm:'Model Parameters Estimation' |
nidm:'Data Scaling' | NIDM-Results Types (PROV 'Entity') |
nidm:'Data Scaling' |
nidm:'Design Matrix' | nidm:'Design Matrix' | |
nidm:'Error Model' | nidm:'Error Model' | |
nidm:'Grand Mean Map' | nidm:'Grand Mean Map' | |
nidm:'Mask Map' | nidm:'Mask Map' | |
nidm:'Parameter Estimate Map' | nidm:'Parameter Estimate Map' | |
nidm:'Residual Mean Squares Map' | nidm:'Residual Mean Squares Map' | |
nidm:'Resels Per Voxel Map' | nidm:'Resels Per Voxel Map' |
@prefix nidm_ModelParametersEstimation: <http://purl.org/nidash/nidm#NIDM_0000056> . @prefix nidm_withEstimationMethod: <http://purl.org/nidash/nidm#NIDM_0000134> . @prefix obo_ordinaryleastsquaresestimation: <http://purl.obolibrary.org/obo/STATO_0000370> . niiri:model_pe_id prov:used niiri:error_model_id ; a prov:Activity , nidm_ModelParametersEstimation: ; rdfs:label "Model parameters estimation" ; nidm_withEstimationMethod: obo_ordinaryleastsquaresestimation: ; # obo:'ordinary least squares estimation' prov:used niiri:design_matrix_id ; prov:used niiri:data_id ; prov:used niiri:error_model_id ; prov:wasAssociatedWith niiri:software_id .
@prefix nidm_DataScaling: <http://purl.org/nidash/nidm#NIDM_0000018> . @prefix nidm_grandMeanScaling: <http://purl.org/nidash/nidm#NIDM_0000096> . @prefix nidm_targetIntensity: <http://purl.org/nidash/nidm#NIDM_0000124> . niiri:data_id a prov:Entity , nidm_DataScaling: , prov:Collection ; rdfs:label "Data" ; nidm_grandMeanScaling: "true"^^xsd:boolean ; nidm_targetIntensity: "100"^^xsd:float .
@prefix nidm_DesignMatrix: <http://purl.org/nidash/nidm#NIDM_0000019> . niiri:design_matrix_id a prov:Entity , nidm_DesignMatrix: ; rdfs:label "Design Matrix" ; prov:atLocation "file:///path/to/DesignMatrix.csv"^^xsd:anyURI ; dct:format "text/csv"^^xsd:string ; nfo:fileName "DesignMatrix.csv"^^xsd:string ; dc:description niiri:design_matrix_png_id .
@prefix fsl_GaussianRunningLineDriftModel: <http://purl.org/nidash/fsl#FSL_0000002> . @prefix fsl_driftCutoffPeriod: <http://purl.org/nidash/fsl#FSL_0000004> . niiri:drift_model_id a prov:Entity , fsl_GaussianRunningLineDriftModel: ; rdfs:label "FSL's Gaussian Running Line Drift Model" ; fsl_driftCutoffPeriod: "2"^^xsd:float .
@prefix spm_DCTDriftModel: <http://purl.org/nidash/spm#SPM_0000002> . @prefix spm_SPMsDriftCutoffPeriod: <http://purl.org/nidash/spm#SPM_0000001> . niiri:drift_model_id a prov:Entity , spm_DCTDriftModel: ; rdfs:label "SPM's DCT Drift Model" ; spm_SPMsDriftCutoffPeriod: "128"^^xsd:float .
@prefix nidm_ErrorModel: <http://purl.org/nidash/nidm#NIDM_0000023> . @prefix nidm_hasErrorDistribution: <http://purl.org/nidash/nidm#NIDM_0000101> . @prefix nidm_GaussianDistribution: <http://purl.org/nidash/nidm#NIDM_0000032> . @prefix nidm_errorVarianceHomogeneous: <http://purl.org/nidash/nidm#NIDM_0000094> . @prefix nidm_varianceMapWiseDependence: <http://purl.org/nidash/nidm#NIDM_0000126> . @prefix nidm_IndependentParameter: <http://purl.org/nidash/nidm#NIDM_0000073> . @prefix nidm_hasErrorDependence: <http://purl.org/nidash/nidm#NIDM_0000100> . @prefix nidm_IndependentError: <http://purl.org/nidash/nidm#NIDM_0000048> . @prefix nidm_dependenceMapWiseDependence: <http://purl.org/nidash/nidm#NIDM_0000089> . niiri:error_model_id a prov:Entity , nidm_ErrorModel: ; nidm_hasErrorDistribution: nidm_GaussianDistribution: ; nidm_errorVarianceHomogeneous: "true"^^xsd:boolean ; nidm_varianceMapWiseDependence: nidm_IndependentParameter: ; nidm_hasErrorDependence: nidm_IndependentError: ; nidm_dependenceMapWiseDependence: nidm_IndependentParameter: .