NiMARE Developer Guide

This guide provides a more detailed description of the organization and preferred coding style for NiMARE, for prospective code contributors.

Coding Style

NiMARE code should follow PEP8 recommendations.

To enforce NiMARE’s preferred coding style, we use flake8 with plugins for isort, black, and docstrings. These plugins automatically evaluate imports, code formatting, and docstring formatting as part of our continuous integraton.

Additionally, we have modeled NiMARE’s code on scikit-learn. By this we mean that most of NiMARE user-facing tools are implemented as classes. These classes generally accept a number of parameters at initialization, and then use fit or transform methods to apply the algorithm to data (generally a NiMARE Dataset object).

Installation with Docker

You may wish to use Docker to control your environment when testing or developing on NiMARE. Here are some common steps for taking this approach:

To build the Docker image:

docker build -t test/nimare .

To run the Docker container:

docker run -it -v `pwd`:/home/neuro/code/NiMARE -p8888:8888 test/nimare bash

Once inside the container, you can install NiMARE:

python /home/neuro/code/NiMARE/ develop