DOI: 10.5524/100236
title: The Neuroimaging Data Model (NIDM) API

description: Sharing of brain research can be aided by the Neuroimaging Data Model (NIDM). NIDM provides a community-based framework for developing data exchange standards that describe the primary observations, computational workflows, and derived results of neuroimaging studies. For example, a researcher sharing a statistical brain map could include with the brain map a data structure, NIDM Results, that contains complete information about the parameters used to generate the result, significant coordinate points in the brain map paired with test criteria, along with other meta-data exported from the software that generated it. This additional information cannot be represented in the brain map itself, and provides a complete description of the result that can be compared to other results, or used to reproduce it.<br>While work is underway to integrate NIDM into the software used by the human brain mapping community, only low-level tools are currently available to access and query NIDM documents that rely on a graph-based representation called the Resource Description Framework (RDF) . Further, technologies like RDF and the corresponding query language, SPARQL pose a steep learning curve for users of standard Web development workflows. With the recent migration of tools for neuroimaging meta analysis, sharing, and visualization into the Web browser, Web developers will be incentivized by the ability to easily integrate brain data into Web applications using familiar languages and formats. The goal of this Brainhack project was to develop infrastructure to serve NIDM documents and queries using an API with a syntax that allows for the easy development of Web-based tools for the neuroimaging community. These tools are publicly available on Github (RRID:SCR_002630) for the API and queries, along with complete documentation.<br>The nidm-api is a RESTful API and Web application that provides a simplified view of NIDM documents using formats (e.g., JavaScript Object Notation (JSON) that are accessible to Web developers and researchers without expertise in Linked Open Data (LOD) technologies. This project includes two components. First, the (a href=https://github.com/incf-nidash/nidm-api target=_blank&gt;nidm-api is a Python-based executable that works both as a command-line tool to run queries over NIDM documents, as well as to serve a RESTful API to allow a local or cloud-based server to execute queries on documents accessible by URL. Second, nidm-query [https://github.com/incf-nidash/nidm-query] is a repository of SPARQL queries that the nidm-api application dynamically downloads, validates, and serves upon starting the application. This strategy means that NIDM developers can collaboratively construct SPARQL queries without requiring Web developers to gain expertise in LOD technology. The nidm-api, along with serving the queries, also provides a graphical Web interfaces to contribute new queries to the shared repository. Because the nidm-api is a Python Flask application, it can be used both as an executable to serve the API and contains a set of functions that can be integrated into other Python-based frameworks or cloud platforms that provide Python accessibility. <br>As an example of the type of Web applications that can be built with the NIDM API, the NIDM Results object model was recently integrated into the NeuroVault database, meaning that neuroimaging researchers can export results pertaining to statistical brain maps from common software into NeuroVault.