User documentation

Frequently asked questions

General questions

Where do I find documentation?

You can find all documentation pages in the Help menu at the top right.

There are also context-based documentations available if you select a node in the graph. Hover your mouse over a parameter to show documentations for this parameter only.

Does JIPipe have a backup function?

Yes. By default, JIPipe creates a backup every 3 minutes. You can recover it via Project > Restore Backup.

Can I make the startup faster?

Many JIPipe extensions rely on other ImageJ plugins to work. That is why JIPipe always checks if all necessary ImageJ plugins are available. This will only happen during the first startup, or if the ImageJ plugin database is not present/corrupt. If you have persisting issues, run the ImageJ updater from within ImageJ/Fiji or via Plugins > Run ImageJ updater

Can I remember the settings of one or multiple nodes for later re-use?

Yes. Select the nodes of interest, right-click a node and select Create node template. You can save the parameters and even connections if you have multiple nodes into the current project or globally. You can find them in the Node templates list.

Can I bookmark specific nodes?

Yes. Right-click the node and set it as bookmark. The list is available in any project graph editor and in the project info screen.

Can I expose a set of specific parameters for collaborators?

Yes. You can do this via the Project > Project settings > Parameters. They will be available in Project > Project overview, alongside the description that can be set in Project > Project settings > General.

Can I add my author information to a project?

Yes. Go to Project > Project settings > General. Here you can add multiple authors (including affiliation), provide a citation, license, and website, as well as cite other projects.

Where should I place files if I want to make the project portable?

JIPipe automatically relativizes file paths if you place data files in the same folder as the project (or in a subfolder). This allows you to compress the project and share it with other without breaking anything.

This is the recommended way to do share your projects if you have multiple operating systems.

How can I copy / delete the global settings?

JIPipe places a file jipipe.properties.json into your ImageJ directory. You can delete it to reset all settings to their defaults or copy it to another JIPipe instance.

Common issues

Splash screen says “Module threw error”. Various ImageJ errors.

Cause: A dependency might be missing.

Solution: If you are using an older Fiji installation, try to setup a new Fiji instance or download a pre-packaged JIPipe distribution. If the problem persists, please do not hesitate to contact us. Provide us a screenshot, and ideally the full set of error messages.

Splash screen says “Module threw error”. ImageJ error says “Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonParser.getReadCapabilities()”

Cause: A plugin interferes with a software library. ImageJ and JIPipe want a newer version, but the plugin contains a copy of an older version that is loaded first. This also interferes with some ImageJ functions!

Solution: If you installed OMERO Insight, try to update it. Otherwise, get help from a developer who can debug the ImageJ instance. Provide the developer with this link: https://stackoverflow.com/a/42865557

Data processing

What are those compartments for?

Imagine you have a large complicated pipeline. Most certainly, you could split it into multiple sub-pipelines like “preprocessing” or “segmentation”. Compartments allow you to do exactly this.

What is the difference between groups and compartments?

If you use compartments, JIPipe is still aware of the whole pipeline. This allows it to run all dependency nodes via Update cache or Quick run. Groups are independent pipelines that are not aware where they are used. You can only extract the final outputs, not intermediate steps.

What happens if I put multiple inputs into a slot?

Because each slot holds a table of data and metadata, those tables are merged row-wise.

Why should I care to add those annotations?

Annotations are optional for single data analyses or pipelines without multi-input nodes, but helpful anyways. They will allow you to quickly find out from which data set your data was generated.

If you have a multi-input node, you will need annotations, as JIPipe needs to figure out which data from which input belongs together.

Can you give me an example of multi-input processing?

The merge channels node has two inputs (one for each channel) and at some point needs to assign which of the input images belong together. This assignment is here visualized as “intermediate merged input table”. To achieve this with multiple rows in the input tables, JIPipe utilizes the additional annotation columns (here #Dataset) to group the input rows by these columns.

Why do you create annotations with a ‘#’?

There are two kinds of annotations: Ones that only you care about (e.g. the resolution) and the ones the JIPipe should care about. By default all JIPipe’s multi-input nodes are configured to only care about annotation columns that begin with #.

You can extensively configure this behavior in the node’s properties and also manually define which columns JIPipe should look at.

What happens if a reference column is missing?

JIPipe will assume an ANY for such columns.

Can I preview what the multi-input processing will do without running the node?

Yes, switch to the “Data batches” tab in the properties panel. It allows you to configure how JIPipe merges data together and previews the results.

Do not forget to refresh after changing a setting.

How does JIPipe store its data during the analysis?

JIPipe stores all necessary inputs and the outputs of each processing step. This means that any kind of large data set will be loaded into the memory at the same time if you set up an iteration.

For example, an Import image step will load all the images and then continue with the next steps.

I have a very large data set. How can I prevent loading it at the same time?

You have two options:

  1. Run a JIPipe project within a another
  2. Use a node group and set it to iterative mode

Nested JIPipe projects

You can run JIPipe projects within other JIPipe projects. This will separate them and into individual runs that are iterated one-by-one. JIPipe comes with nodes to extract specific results from those outputs.

Create the analysis for only one data set and export project-wide parameters via its project settings. Those parameters will be later modified and should contain anything you need for the project setup. Save it into a *.jip project.

Then create a separate project and add the nodes Run JIPipe project and Define JIPipe project parameters. In both nodes, you load the main analysis projects.

Iterative group nodes

Group a set of nodes that contains functions with a large memory footprint. This will create a Group node. By default group nodes will just act as simple group and pass data from its slots to the wrapped graph. To reduce the memory footprint, set the Graph iteration mode to iterate/merge, which changes the behavior of the node: The code now will be repeated for each data batch, which prevents loading all data at once.

Please ensure that the wrapped nodes can handle this kind of iteration.

I do not want to always put in the credentials into each OMERO node. What can I do?

Go to Project > Application settings > Extensions > OMERO and set your credentials there. Any OMERO node will supplement unset credentials by those settings.

Where can I find information about the formats used in JIPipe output?

You will find information in the data type compendium (Help menu).

ImageJ integration

Can I use plugins from ImageJ in JIPipe?

Yes. Either there is an integration available, or you just use the macro node and input the corresponding macro code that runs the plugin.

Can I use existing ImageJ macros in JIPipe?

Yes, use Images > ImageJ macro. The input slots are opened as image windows and can be addressed from within the macro with selectWindow(). You can also load an example that shows how to use the node.

Can I use JIPipe from within ImageJ macros?

Yes. You can use both pipelines and individual JIPipe algorithms from within ImageJ macros and the GUI.

Why are some JIPipe algorithms not available from within ImageJ?

JIPipe has a very general data model that makes it possible to develop pipelines for processing any kind of data. The communication between JIPipe’s data types and ImageJ is handled by adapters that will handle the “translation” back & forth. For some of such data types, there is no adapter. The reason behind this is that ImageJ might not have an equivalent data type or feature.

Result analysis

Can I open a table in ImageJ instead of JIPipe or vice versa?

Yes, and even more: Depending on the data type there are multiple options on displaying data available. Select the data in the result view or cache browser and click the “More” button at the bottom. JIPipe will even remember the last setting for you.

Can I save data by their metadata?

Yes, use the node Miscellaneous > Export data. It will export all incoming data into one or multiple folders and generates names based on metadata. If you have cached results, you can export the table via the same method as utilized by this node.