fNIRS Apps are standalone neuroimaging pipelines inspired by BIDS Apps.

fNIRS Apps enable reproducible research. A complete analysis is described by specifying: 1) an app name and version, and 2) a set of parameters. Everything else is handled by the software, you do not need to worry about library versions, changes in scripts, package installation etc. fNIRS Apps are built on existing and well tested frameworks developed by the fMRI community.

fNIRS Apps are subset of BIDS Apps that work with fNIRS data. Each app reads a BIDS dataset and may modify the dataset or return derived information. The apps may modify dataset fields or create new files in the derivatives directory. Some examples of what fNIRS App can do:

  • Determine the quality of each channel and mark the status as either “good” or “bad”.
  • Create a summary report for each file and store it in the derivatives directory.
  • Run a group level analysis and output csv files for each participant and a statistics report.
  • And many other possibilities!

Apps are portable and only require a docker installation, meaning that regardles of which app you wish to run you do not need to install additional softare on your computer. Docker is a software that allows you to create and distribute entirely self reliant programs. Docker is extermely robust and used globally for many applications including managing internet infrastructure, hosting website, and running programs on your personal computer. Utilising docker enables fNIRS Apps to run efficently on everything from your local laptop to a massive server cluster.


To use fNIRS Apps you must:

Thats it!

Installation and Usage

Each App can be run using a single command. The arguments for each app are standardised and take a common format.

  • You must pass the path to your dataset using the -v command. This option takes the input and output path seperated by a :. The destination path must always be /bids_dataset. So in this example, the command is -v /path/to/data/:/bids_dataset.
  • And you must pass the name of the of the app. In this example that is ghcr.io/rob-luke/fnirs-apps-scalp-coupling-index/app.
  • You can optionally add additional arguments to the end of the command. See individual app instructions for details on optional arguments.
docker run -v /path/to/data/:/bids_dataset ghcr.io/rob-luke/fnirs-apps-scalp-coupling-index/app


The code above will pull the latest version of the app and run it. This is the equivelent of running:

docker run -v /path/bids_dataset ghcr.io/rob-luke/fnirs-apps-example/app:latest

But it can be useful to specify the exact version of an app. For example, if you wish to reproduce an exact analysis. You can request a specific version by specifying it at the end of the app name, such as:

docker run -v /path/bids_dataset ghcr.io/rob-luke/fnirs-apps-example/app:v1.2.9

Detailed details

  • fNIRS Apps must accept data in the BIDS format
  • fNIRS Apps must run in a docker container
  • fNIRS Apps should follow the BIDS execution standard. Once the specification is accepted this will become a MUST for fNIRS Apps.

Add your app to the list

To add your app to the list email rob @ fnirs-apps.org