Extending J-AST (JIPipe plugins)
J-AST comes with a plugin interface that facilitates the easy addition of new operations.
A plugin comprises of a JIPipe 5.3.0 *.jip project that is being copied into the share/plugins directory. The application/server needs to be restarted to recognize the plugin.
The JIPipe project must adhere to specific constraints, so it is an effective plugin:
The project must have a project-wide directory with the key
tmp_dir. This key is automatically set by J-AST and will point to the directory that contains all inputs and outputsThe name and description of the project must be set. The information will be used inside the J-AST frontend.
Parameter references should be avoided if possible. Instead, use project-wide parameters. JIPipe 5.3.0 projects lack easy methods to recover parameter types, thus the backend will be left with guessing the correct type.
The project must have a specific set of project-wide parameters that contain information for J-AST. The parameters are described below.
J-AST metadata parameters
Create the following project-wide parameters. J-AST will use the information contained within them to create the associated backend workload.
Type | Key | Description | Allowed values |
|---|---|---|---|
Boolean |
| Must be true for J-AST to recognize the plugin | true/false |
String |
| The menu category where the operation will be placed | Can be empty |
String |
| Allows to restrict the operation to a specific assay type | DDA/ETest/Unknown. Can be left empty (no restriction). Defaults to empty. |
String |
| Determines how images are related to each other (each processed by itself, alway process whole timeline row/column) | Single/FullRow/FullColumn. Defaults to Single. |
String |
| Allows to hide the operation from certain project modes | Timeline/Grid. Can be left empty (no restriction). Defaults to empty. |
Boolean |
| Must be checked if results should be extracted by J-AST | true/false |
String List |
| List of inputs that will be available in the temporary directory | plate/strip/disk/strip-disk/zoi-shape |
String List |
| Lists of outputs that will be generated in the temporary directory | raw/plate/strip/disk/strip-disk/zoi-shape/pixelSize |
Inputs received from J-AST
You will need to prepare your pipeline to handle the folder structure that J-AST produces as pipeline inputs. The pipeline receives inputs in form of files/directories located in a temporary directory, which is passed to the pipeline through the tmp_dir directory.
metadata.csv
This file contains all text metadata for each image. The file is structured as following:
#ImageId | #Experiment | #Sample | #TimePoint | #AssayType | PixelSize | GroupRow | GroupColumn |
|---|---|---|---|---|---|---|---|
... | ... | ... | ... | ... | ... | ... | ... |
Raw images
A directory raw is always created and contains the raw image files named according to their unique database ID (#ImageId).
Mask annotations (ROIs)
Mask annotations (0 = background, 255 = foreground) are placed in directories named after the unique annotation ID and named according to the related image ID.
The currently supported mask annotation Ids are:
plate: the plate maskstrip-disk: the E-Test strip or DDA disk (depending on assay type)zoi-shape: the E-Test ZOI shape (black for DDAs)
Expected outputs
All outputs must be written relative to the tmp_path path and follow rules based on the output type.
Modified raw images
J-AST will read modified raw images from a directory raw_updated. The contained images must be PNG files named after the #ImageId.
Mask annotations
J-AST will read mask annotations from a directory named according to the mask annotation ID. The contained images must be PNG files named after the #ImageId. The masks must have the same size as the raw images.
Results
Arbitrary results must be written into a directory results. If jast_plugin_generates_results is true, J-AST will automatically explore the directory and copy all files into its internal filesystem.