ChRIS Plugins
ChRIS plugins are the essence of ChRIS: they do the actual scientific data processing.
What are plugins?
Most simply, a ChRIS plugin is a container image which has a command in the form
commandname [--optional-args values...] /path/to/inputs /path/to/outputs
For a more technical description, consult the spec: https://github.com/FNNDSC/CHRIS_docs/blob/master/specs/ChRIS_Plugins.adoc
Types of Plugins
There are three types of ChRIS plugins:
- "ds" data synthesis plugins process input file to produce output files
- "fs" feed synthesis plugins create data, without taking input files
- "ts" topology synthesis plugins are special, they are directly associated with the ChRIS backend API itself
ds-type Plugins
ds plugins are the most common type of plugins. They process data from a directory of input files, writing outputs to a specified output directory.
programname [--option value...] inputdir/ outputdir/
For example, the ds plugin pl-infantfs takes in a NIFTI file as input, and in its output directory it creates brain segmentation and surface files.
fs-type Plugins
fs plugins create data in an output directory. They do not consume input files.
programname [--option value...] outputdir/
fs plugins either generate data or connect ChRIS to external sources. For example:
- pl-create-tetra creates a sphere polygonal mesh in its output directory
- rclone is used in a fs plugin to pull data from SFTP servers
ts-type Plugins
ts plugins are special cases which are not usually created by community developers. ts plugin functionality and some ts plugin parameters are hard-coded into the ChRIS backend directly.