[NEUBIAS Academy@Home] Webinar “Bioimage Analysis with Icy” + QUESTIONS & ANSWERS

Dear all,

On the 22nd of April 2020, was given the NEUBIAS Academy webinar “Bioimage Analysis with Icy”.
Speaker: @MarionLouveaux
Moderators: @Stephane, Daniel Gonzalez Obando, @Ofra_Golani, @RoccoDAntuono and @Julien_Colombelli.
Video of the webinar: on the Youtube channel of NEUBIAS.
Slides: on Marion’s GitHub repository.
More than 400 persons attended the webinar. We are adding to this thread all the Questions & Answers collected during the webinar.
Enjoy and post any missing question here!

Table of contents of the first part

Getting started with Icy

Installation issues: Q1-2

Q1: I tried installing it in my Mac, following all advices in the website (Java8). However the application won’t launch, even with the trick of CTRL+Open, so it does not appear as an issue with security. Do you have any advice?

We experience troubles with Catalina version. The current workaround (until we fix it) is to show Icy “package content” (right click on Icy app icon to do it) then directly execute the icy.jar file.

Q2: I am unable to use Icy on my linux system. Can you provide some help?

Make sure to install Java first. Then launch Icy using the ./icy.sh command.

NB: Regarding installation of Icy, please read the important notes on the download page. If you don’t succeed, please make a new thread on the image.sc forum indicating your OS version, the java version, and what you did so far (downloading Icy from this source, downloading this version of Java etc).

Training material

Q3: What would be a good source to start learning to use Icy?
Q4: Are there tutorials on Icy? where can they be found?
Q5: Are there practice problems? Working with known data/protocols can help in learning new software.

Yes, there are some tutorials to get you started on the Icy website.
Note that the training material section is open to contributions from anyone in the Icy community. If you would like to share your training material, please get in touch with @MarionLouveaux or @Stephane, they will help you add it to the Icy website.

Q6: Can you recommend, if it exists, a step-by-step tutorial on the use of active contours segmentation?

Apart from the online documentationof the Active Contours plugin, there is currently no other step-by-step tutorial. Note that the Active Contour plugin is a quite complex plugin with many parameters to tune and may require the help of a bioimage analysis expert to reach an accurate segmentation.
[edit 2020-06-04] This book chapter contains several video tutorials around the Active Contours plugin. The images used in the tutorials are available on this Zenodo repository.

Q7: Are there examples of protocols out there?

You can have a look at the protocols tutorial in the training section of the Icy website.
The protocol section is also a great source of inspiration and is open to contributions from anyone in the Icy community.
To upload your own protocol there, 1) create an account on the Icy website, 2) once signed in click on the upper left corner of the Icy website and click on “Protocol -> Add New” and 3) fill in the form. You will be listed among the contributors on the Icy website.

Q8: Is there a tutorial on how to use Icy in command-line ? Thank you.

You can run scripts or protocols via the command line, as indicated in the instructions on the online documentation for scripts in the headless mode section and protocols in the command-line support section.

Webinar material

Q9: Hi. Can we have a copy of the presentation slides? Could you please upload the link from which we can download the presentation??

The presentation slides can be found on Marion’s GitHub repository. To get the slides as .pdf, print them from the Chrome web browser.

Q10: Can you share the link to the image please?

The images presented during the webinar come from two datasets published on Zenodo:

Q11: Can you share the link of the protocol which was shown briefly: 3D segmentation of nuclei?

Two protocols are shown in the presentation:

Comparison of Icy with other softwares

General comparison

Q12: In your opinion, what is the key selling point of Icy from the end-user perspective (disregarding easier plugin building for now)? For instance, commercial software like Imaris and Arivis is considerably more convenient and usually vastly outperforms freeware in 3D visualization, analysis and GPU acceleration, but the number of tools and the ability to customize them is usually limited. Vaa3D and Bioimage XD (is it still alive?) try to fill the 3D gap, but, frankly, have little benefits except for price. CellProfiler is mainly for HCS, it is really good at what it does, but can’t really be compared to Fiji, Icy and similar. Fiji is considerably more flexible and has a lot more plugins for every scenario. For ML and DL you’d anyway normally go for custom models (I think some people try to make an umbrella collection of user-friendly notebooks, that’s a different story). What do you think is Icy’s positioning in this landscape, from the end-user viewpoint, i.e. does it has some definite advantage?
Q13: What is the advantage of Icy over ImageJ or any other image analysis software?

Three main software features could help you position Icy in the landscape of bioimage analysis softwares from an end-user perspective:

  • Maintenance and long-term sustainability: Icy exists since almost 10 years. It was created in the Bioimage Analysis unit at the Institut Pasteur. The kernel is still maintained there by the Icy team, a subgroup within the unit, and plugins are regularly developed in the unit. It means that the software will not disappear from one day to another, neither change completely.
  • Community and centralisation of resources: Icy is open-source and free, and will remain so in the future. All the people using Icy, creating protocols, developing plugins or maintaining the kernel constitute the Icy community. This community shares resources like scripts, protocols, plugins, documentation or training material in a centralised manner via the Icy website.
  • A platform designed to bring together scientists with diverse backgrounds and help improve reproducibility in science: Icy was created with the aim in mind to foster exchanges between computer vision specialists, which develop cutting-edge algorithms, and biologists, which may have zero programming knowledge. From there derives the concept of protocols, which uses graphical programming to build bioimage analysis workflows composed of blocks (or components). Protocols do not require any programming knowledge, one can apply and observe the effect of a block directly on an open image, as well as visualise the whole workflow at once, and most importantly automate an operation on a group of images. At the same time, more advanced users can add custom scripts via the JavaScript and PythonScript blocks to extend further the possibilities of the protocols. Developers can code new blocks in Java to share their algorithms. Most of the developers code at the same time the plugin and the corresponding block.

In term of bioimage analysis features, Icy comes originally from a bioimage analysis lab and was designed to be a platform where image analysis specialists can deliver their solutions to non experts in a user-friendly manner. For these reasons, Icy provides both state-of-the-art and cutting-edge algorithms freshly published in high standard journals. The latter offer solutions to process “difficult” or relatively heterogeneous image datasets with speed, robustness and precision. We can cite here the Spot Tracking plugin, which algorithm was published in Chenouard et al. 2013, and the Active Contours plugin, which algorithm was published in Dufour et al. 2011. The quality of these algorithms has been assessed in comparative studies, respectively in Chenouard et al. (2014) and Ulman et al. (2017).

Moreover, to insure the continuity of the Icy software in the future and to answer the growing needs of in bioimage analysis services in industry and academia, the Icy team also recently started “Icy Services”, a commercial platform to provide services around Icy. We sell

  • consultancy services such as making customized protocols or plugins for you, doing the whole analysis from raw images to final biological results, improving existing workflows…
  • training services such as two days personnalized Icy training in small groups
  • custom software developments such as a simplified GUI or the deploiement on servers
    To know more about Icy Services, please contact us via the specific contact formular.

Q14: What are the differences with Fiji? In other words, why should I use Icy rather than ImageJ?
Q15: I’m using ImageJ since about 15 years contributing in macros, plugins, bug corrections, core code improvement… What would convince me to move over Icy, besides the 3D visualization?

Compared to ImageJ/Fiji, Icy provides a graphical programming interface called “protocols” that may be easier to get started with than ImageJ macros, as it does not require any programming knowledge. This brings several advantages for bioimage analysts teaching image analysis and/or working on a core facility platform and needing to deliver bioimage analysis workflows for end-user:

  1. a visual interface to teach bioimage analysis workflows
  2. a tool that can be adopted widely and quickly by anyone
  3. the possibility to deliver complex bioimage analysis workflows in a transparent and reproducible manner and give some autonomy to the end user who will eventually modify some input/output parameters.

From a developper point of view, you can provide at the same time a plugin and a protocol block without more effort for you, and you can also upload this plugin and block directly on the Icy website, allowing to discover it, download it and get access to the documentation directly from the search bar. All this means a gain in visibility for your plugin and more chances for users to use it in simple or more advanced workflows.
Icy also offers (we hope) better visualization tools by default, which can be interesting if you are dealing a lot with 3D datasets.
And at the plugins level, Icy has some specific algorithms that you cannot find in ImageJ and thay may perform better on your data, and viceversa. It is then a matter of expertise to decide which tool to use in which case.

Q16: What are the differences with CellProfiler?

First, the visual appearance (the gui, the way results are presented…) is different. More precisely, in Icy, the graphical user interface is organised into a ribbon menu and side panels, as showed in the slide 9. Results from ROIs are available in the side panel, as showed in slide 13. Second, the visualisation options are not exactly the same and are available in the side panel and around the viewer. Third, there is a graphical programming interface called protocols in Icy (see part 2 of the presentation, slide 24 to 41). And fourth, as for ImageJ/Fiji, Icy has some specific algorithms that you cannot find in CellProfiler and thay may perform better on your data, and viceversa.
@haesleinhuepf recently made a short introduction about CellProfiler. We recommend to test both and take the best of each.

Plugin specific comparison

Q17: Are there plugins in Icy that don’t have an homologue in ImageJ/Fiji or viceversa?

Almost all plugins developed by the Bioimage Analysis Unit (Active Contours, Spot Detector, Probabilistic Tracking, Colocalization Studio, BioFlow…) are specific to Icy and do not have a twin brother in ImageJ/Fiji. Other Icy plugins may have an homologue in ImageJ/Fiji, especially when performing basic image analysis tasks (Filter Toolbox, Thresholder, Label Extractor…), but not only. And, of course, there are also Fiji plugins that do not have an homologue in Icy. For instance, there is no equivalent of the Big Data Viewer in Icy yet.

Note that sometimes, the distinction can be tricky for non experts, for instance:

Q18: Is active contour option available in Imagej? I used a different software for image analysis that gives me good segmentation of nuclei in a fluorescent image. Still I am not able to get good segmentation in Icy.

The Active Contours plugin is based on an active contour algorithm that is specific to Icy and not available in ImageJ. Yet, there is other active contour algorithms, such as the E-Snake ImageJ/Fiji plugin in ImageJ that uses the same algorithm as the Active cells plugin (see Q17). Note that the Active Contours plugin is a quite complex plugin with many parameters to tune and may require the help of a bioimage analysis expert to reach an accurate segmentation.

Q19: How do we know which plugins work better on Icy and which ones work better on Fiji?

Two criteria can be taken in account in the definition of “work better”: the user-friendliness and the performance of the algorithm. Regarding the user-friendliness, this is matter of taste and one need to test by itself the plugin and decide by itself if the documentation is sufficient for one’s needs. Regarding the performance of the algorithm, this is a matter of expertise and benchmarking. Among segmentation algorithms families (active contours, watershed, weka…), some are better suited than others for certain datasets, depending on the signal to noise ratio, the presence of discontinuities in the structure etc. Between algorithms of the same family, the speed and accuracy may vary depending on the dataset. To do benchmarking between algorithms, you can package Icy plugins and compare them to other tools in Biaflows.

Q20: I would like to know if there’s any differences on doing the segmentation with Icy or the Ilastik - Cell Profiler pipeline in terms of results or difficulty of the process.

Ilastik segmentation uses machine learning approaches, such as pixel classification that do not exist in Icy, so the algorithm itself is different. For further details, see Q19.

Q21: Are the plots in Icy far from the ImageJ Plot features?

Icy is not made to be a data visualisation tool. Hence, it can only generate basic plots, through the ROI statistics table for instance, and is probably more limited than the ImageJ Plot features. For a proper data visualisation, we recommend to export the data to .csv or xls and analyse them with dedicated tool.

Other

Q22: What is the difference between the ImageJ integrated in Icy and the normal one?

Almost none. Note that it is an empty ImageJ (it is not Fiji) so you will need to install all the plugins you need by yourself. To install an ImageJ plugin, put the jar file of the plugin in the /ij/plugins/ folder inside the Icy installation folder.
ImageJ is there to provide easy inter-operability as you can convert Icy images to ImageJ images and vice versa (allowing to do part of the analysis in ImageJ and part in Icy). You might be interested by the following topic on the forum about how to open an image in the ImageJ tab of Icy, and by the Icy plugin to import ImageJ ROIs in Icy which also exists as a protocol block. Note that you can also call a macro or an ImageJ plugin inside an Icy protocol by using respectively the callIJmacro and the callIJplugin blocks.

General technical questions

Visualisation

Q23: Hello I am trying to download the Icy for my Mac, but when I open one image by Icy, the image is not quite clear compared with it opened by Fiji?

Did you try to adjust the histogram ? I guess there is some kind of auto contrast strategy involved here. You can adjust the image intensities of your image using the LUT on the right panel of the interface.

Q24: When I synchronize windows I don’t get the same ROI in both pictures, how do I do it? The mouse runs in both figures but ROI does not appear in both.

ROIs are associated exclusively to one image. You can copy and paste them from one image to the other if you need to. You can also have ROI shared only when you first duplicate the view (top right corner of the viewer window) then synchronize the two windows (lock in the top left corner); this is what is shown in the presentation (see slide 12). Duplicating the view means that only the view is duplicated but the dataset and the ROIs remain the same (no data duplication).

Q25: Is it possible to do 3D rendering? For instance isosurfaces?

Yes, Icy allows the use of VTK to render 3D elements on a canvas. You can create plugins that do this. For instance, have a look at the Isosurface plugin.

Q26: Thanks for this presentation. I use Icy with OME-TIFF images. I known that Icy is compatible with this format. However, I have big OME-TIFF images with multiresolution (pyramidal). I would like to known if Icy could manage multiresolution dynamically in the viewer (change the resolution according to the zoom) like QuPath or Cytomine.

Not for now, but we are currently working on providing a solution for this.

Image format

Q27: Icy supports all image formats?
Q28: Can Icy open all data formats similar to ImageJ with Bio-Formats?
Q29: What about opening proprietary image files?

Icy uses BioFormats to open image files, which support more than 100 formats. You can check the complete list of supported formats on the Bioformat website. You can also extend supported format (as MP4 video) installing extra plugin such as the Xuggler video importer.

Q30: Can we open .NDP images with Icy?

Yes, Icy uses Bio-Formats internally which should support .NDP (not 100% sure though)

Q31: Is there native support for multidimensional images?
Q32: Is Icy natively able to open multiresolution images without loading the complete image (save RAM)?

Icy supports 5D images : XYCZT (C = channel is also a dimension as you’re not limited on the number of possible channel).
You can load your images at the resolution level of your need.

Interoperability

Q33: Can you install ImageJ plugins in Icy?

Yes. To install an ImageJ plugin, put the jar file of the plugin in the /ij/plugins/ folder inside the Icy installation folder :slight_smile:

Q34: Can you import segmentation coordinates of objects created in Ilastik (using machine learning)?

Let’s imagine that you segmented nuclei using the Ilastik pixel classification process with two labels: background and nuclei. In the Prediction Export tab from Ilastik, you can export a “simple segmentation” as “.tif” and then import this image in Icy. As this segmentation has only two classes, you can run the Label Extractor plugin with the parameter “Extract” on “All labels vs background” to create ROIs from the segmented nuclei. In the ROI tab of the side panel, you can see all ROIs measurements (see slide 13). We haven’t tested further other export options and would be happy to have more feedbacks from users. Note that Icy does not support the HDF5 format.

Q35: Can ROIs be used in other softwares like Cell Profiler?

The data model used to store the ROIs is not the same between Icy and Cell Profiler, or Icy and ImageJ/Fiji. You would need a specific Icy plugin to export the Icy ROIs to another data format (this does not exist), or the equivalent plugin in the other software to import Icy ROIs into the other data format (not sure this exist).

GPU

Q36: Can Icy utilise GPU for processing than CPU?
Q37: Is there a way to link one or more GPU to Icy?
Q38: Is Icy natively capable of exploiting GPU cores?

GPU processing in Icy is possible using the OpenCL library. Some plugins, such as clicy, take advantage of it.

Other

Q39: Can Icy generate plots?

Yes, but only basics ones (through the ROI statistics table for instance).

Q40: Is it possible to save the ROIs generated and load them again?

Yes, you can save / load ROIs to/from XML files. By default, an .xml file with the same name as your image is generated each time you open a new image in Icy and will be reloaded each time you load this image again, as long as it stays in the same folder. The .xml contains many parameters such as the brightness/contrast adjustements and all the ROIs. When you modify a ROI, the .xml is automatically modified.
Note that to transfer the ROIs from one image to another, you can copy/paste them.

Q41: Is there many plugins analysing 3D images or 3D segmentations?

Many plugins natively work on 3D images. Regarding segmentation in particular, we can cite the Thresholder plugin, the HK-Means plugin, the Watershed3D plugin and the Active Contours plugin, which all work in 3D.

Q42: I use Icy to do morphodynamic analysis using Active Contours. I ended up with too many excel files from the same sample. Is there any way to export them all together as one file?

The question is not specific enough to understand why you ended with many excel files. If you are using a protocol, it is definitely possible to merge all results into a single excel file.

Q43: What about performance, Icy is quite slow, as well as big data, both stacks and files that go beyond sizes supported by tif.

This is a very interesting question. Icy has some support on large images, specially on large time sequences. However, we are working on the kernel to provide better support for images that are larger than most commonly used images.
About performance, it depend what you’re talking about, we are aware about loading / saving image operation which are slow, for instance due to the library we are using to open image files.

1 Like

Table of contents of the second part

Protocols

Definition

Q44 Protocols = Pipeline?
Q45: What is the difference between protocol and plugin?
Q46: In case I need to do zoom in/out along with 3D rotation, do I need to download two protocols?

The Protocols plugin is a graphical programming interface that enables anyone to prototype and design bioimage analysis workflows named “protocols”, without any prior knowledge in programming. A protocol is composed of a serie of blocks, displaying input and output variables. Blocks are linked together in a sequential manner and executed one after the other. Almost all plugins have a corresponding block, but there are some extra blocks that do not correspond to any plugin to execute tasks specific to an automated workflow. A protocol can be seen as a sequence of several plugins. Protocols are made to perform automated repetitive tasks, not to let the user interact with the process while it is executing.

General questions

Q47: When one is entering numerical values for Gaussian blur or others in the protocol, can you dynamically see how that changes the image before selecting a final number?

For the gaussian blur, there is no possible preview, but you can keep the original image, create multiple blurred images and then select the one that satisfies your needs.

Q48: While I run blocks of the protocol, can I see on the open image what is happening (eg if parameters are right)?

Yes, if you run the protocol on the “Active sequence”, ie the image is opened and active, you will see the results on the opened image. Otherwise, you can add a display block (right click -> Display) to show the results or partial results of the protocol execution. Double click inside the display block to open the image next to the protocol.

Q49: At the end of your workflow, there was a box called Workbook, what was that? Apologies if I missed that.

Workbook to file is a block based on the Workbooks library that allows to export measures to a spreadsheet in the .xls or .txt format.

Q50: Maybe I miss it, but what are the meaning for the color in the blocks?

The color is linked to the type of the variable. Purple is for numbers, blue for images (= sequences) and black for all the rest (see slide 33).

Q51: Do you plan to make protocols accessible from toolbar with an icon?

Interesting point, we never thought about it. We may do it if there is many user requests for this feature. To make a feature request, open a thread on the image.sc forum in the “Development” category with the tag “Icy”.

Q52: Can you “shake” the protocol workspace to automatically organize the view?

Unfortunately not^^ We recommend to start building a protocol rather in the middle of the protocols editor than in the top left corner to have enough space to reorganise blocks afterwards.

Q53: Can you lock a protocol?

A protocol is a simple .xml file. To prevent a user from modifying input and output parameters, you could execute it in headless mode without any input or output parameters (see Q57).

Q54: Can you run your protocol on your images as you write the protocol to check if it is doing the right thing (and therefore decide if you need to add or modify blocks)?

Yes, and this is the way we design it usually, step by step controlling everything is going right.

Q55: Is there any parallelization possible with the protocols?

Although it could support it, it doesn’t really do parallele processing.

Automation

Q56: Can an Icy protocol be launched from command line?
Q57: Is it possible to create a protocol and run it (and Icy) directly with command lines from a terminal for example?

Yes, you can check how to do it in the protocols documentation and go back to the slide 37.

Flexibility

Q58: Is it possible to create our own “black box” blocks so we can modify and save block suited for the use of the labs we are supporting.

You can create a protocol with the blocks you need, collapse these blocks with the workflow block (see slide 39) and copy / paste this meta block through other protocols. Unfortunately, at the moment, you cannot save this meta block definitely as “custom” block accessible via the search bar of the protocol editor.

Q59: If you write a protocol using the Icy python/java editor, is it possible to then later access & edit the protocol using the block/labview style GUI?

Yes, if you save the protocol with Python code inside, it will save the Python code on the protocol file. If your question is “is it possible to convert script to protocols or vice-versa?” then no, it’s not possible.

Q60: Can we use imageJ plugins in protocols?

"Yeah, there is a block called CallIJplugin allowing to call ImageJ plugin. There is also a block called CallIJmacro to call an ImageJ macro.

Q61: Can custom mathematical functions be made?

Yes, there is three “Math Operation” blocks (Math Operation unary, Math Operation binary and Math Operation expression) and a “Simple Operation blocks” allowing to apply some mathematical operations. For more complex operations, you can add you own formulas in the JavaScript block or the PythonScript block (Jython).

Ethics and reproducibility

Q62: What would be a good annotation method here? Renaming the blocks? Like if I want to explain what’s done along the pipeline.

Yes, I would suggest to rename blocks by double cliking on the block title using meaningful actions such as "Threshold on Channel X or “detect type X cells” (see slide 34 and 38).

Q63: This is jewel. Can config files be exported to be shared like in Supplementary info in papers?

Yes of course, it’s made for that :slight_smile: You can provide the .xml file in the Supplementary info in papers.
You can also upload it on the Icy website. To upload your own protocol there, 1) create an account on the Icy website, 2) once signed in click on the upper left corner of the Icy website and click on “Protocol -> Add New” and 3) fill in the form. You will be listed among the contributors on the Icy website.
And you can add a DOI on a protocol with Zenodo. Note that these three actions are not exclusive from one another.

Q64: How to report protocol parameters?

To report protocol parameters to a colleague and explain the protocol to this person, you can provide snapshots of the protocol (automatically generated when saving the protocol) and describe each block in the order of execution of the protocol with its associated parameters and the values chosen for each block. You can also provide a conceptual scheme of the bioimage analysis workflow showing each component, as done in slide 29. In case your workflow is complex, you may want to collapse blocks belonging to the same component into a workflow block and rename this workflow block with the name of the component.
To report protocol parameters in a scientific publication, you can provide snapshots of the protocol, but also the .xml file. See Q63 for more details on this point.

NB: To inspect a result or a partial result (image, number, text…) while making the protocol, you can use the Display block.

Q65: Can we post video for explaining our protocols on Icy web site?

Yes, when filling the description field of the protocol, you can put some media, for instance youtube videos. Note that the protocol documentation can be updated anytime after the initial submission, so it is never too late to add information.

Applications in various microscopy fields

Q66: Capabilities of Icy for use in histopathology?

There are groups working on cancerous tissue segmentation on large histological images.
For instance, you can have a look at:

Q67: Are there in Icy any light-sheet specific protocols for multi-view registration & fusion? Light-sheet data deconvolution?

In Andilla et al. (2017), there is 3 protocols (P1, P2, P3) to process light-sheet data, with some explanations in the Supplemental Movie S1. For registration, you could have a look at the ec-CLEM plugin. It is not made primarily for light-sheet but it is a handy registration tool. For deconvolution, you could check the plugins SimpleDEMIC and EpiDEMIC (not specific to light-sheet either).

Q68: Do you have tools/plugins dedicated to super-resolution (PALM, STORM…)?

For colocalisation analysis in PALM/STORM, there is the SODA plugin, and the protocols SODA STORM 2D and SODA STORM 3D.

Q69: Any protocols for whole slide fluorescent tissue analysis with four or more channels? identifying different phenotypes present.

Protocols are always addressing specific biological questions, so we recommend to dig into the available protocols online, find one close to what you’re looking for, and adapt it to your needs.
For examples of analysis on whole slide images, you can have a look at:

Q70: Anything on segmentation of transmitted light images (without any staining?)

Yes it is possible, there are some specialized color segmentation tools too even if lots of plugin are first made for stained images obviously"

Q71: Are there options to do colocalization analysis, FRET (I mostly need it for ratiometric FRET) and tracking of small intracellular vesicles? I am basically torn between CellProfiler and Icy…

For colocalization, you can have a look at the SODA plugin. For tracking of small vesicles, you can have a look at the Spot Detector and Spot Tracking plugins. To have an example of use case, see Woodley et al. (2018).

Q72: Can we do this analysis for moving object… fluorescence intensity and area over all time frame?

Of course, it is definitely possible (and easily) :slight_smile: To get a measurement table with the fluorescence intensity and area over all time frame, you need to segment the object first (for instance with HK-Means, Active Contours plugins if these objects are big -like cells- or with the Spot Detector plugin if these are small -like vesicles-), and then track the object. For tracking, see the Spot Tracking plugin.

Q73: Can Icy filter hot spots? I get them very often when working with imaging cytometry files.
Q74: Can you filter hot pixels (hight expression markers) from histology images?

The question is vague but basically yes, there are many ways to detect and remove hot spots. For instance, you could apply a filter to the image to remove outliers before processing it, or just detect these spots (with the Spot Detector plugin) and filter the ROIs above a specific mean intensity.

Programming

Scripting language

Q75: Is it possible to rather program in macro like instead of the Labview form?
Q76: Does Icy also have a macro scripting function like in Fiji?
Q77: Is it possible to “write” a protocol like a macro instead of dropping blocks?
Q78: Can you also view and edit the code directly?

Yes, you can program in a “ImageJ macro like” style using the Script Editor. The Script Editor supports JavaScript and Jython. To get started with writing plugins in Icy, you have a look at the training material on scripts and get inspiration from existing scripts on the Icy website.
You can also combine the power of protocols and the flexibility of scripts by using the JavaScript and PythonScript blocks. Write scripts in these blocks and link the input and output objects with other blocks (see slide 38).

Plugins

Q79: Can you write your own functions or are they restricted to the plugins available in Icy?

You can write your own plugins :slight_smile: To get started with writing plugins in Icy, you have a look at the training material on plugins.
If you rather speak about the protocols, you can combine the power of protocols and the flexibility of scripts by using the JavaScript and PythonScript blocks. Write scripts in these blocks and link the input and output objects with other blocks (see slide 38).

Q80: Is there possibility to dynamically update the displayed stack from a plugin and feed user interactions (e.g. object selection etc) back to plugin?

This can be done, however to do this you need to code the interaction you want to perform on the viewer. As an example, that is how ROIs are displayed on the viewer.

Compatibility

Q81: Can you please share a link to description how to call py/native code from Icy, wrap them in the blocks in “protocols”?

You can check the online documentation of the Jython execnet for Icy plugin. It explains how to use execnet to make calls to native Python using Icy (Python) Script. Then you can use the “Python Script” block in the protocols to use that Python Script you need.

Q82: Are they plans to support other scripting language than javascript for the Script Editor?

Python is supported too. You need to install the Jython plugin for Icy to get access to it :slight_smile:

Q83: Are there any plans to implement connectivity to the Julia programming language?

You can check the IcyJulia plugin to export your data from Julia to Icy. It would be great also to have people with skills on Julia to develop this further.

Q84: Python in Icy is limited to Python 2.X or also compatible with 3.X?

Icy is limited to Python 2.X as it uses Jython library for Python 2.X. The problem is that either you can support 3.X or 2.X, but not both at the same time.

Docker and cloud deployment

Q85: This seems amenable to running on in distributed fashion on the cloud. Is this something you’ve seen?
Q86: Is there a specific project that runs Icy inside a docker image that you are aware of?

There are certain projects that have successfully performed cloud instantiation and execution of Icy. You can even create a docker image and run Icy inside it. For instance:

Note also that there is a Docker for Icy plugin to run a Docker container within a plugin, or within a JavaScript block in a protocol.

Machine Learning

Protocols and plugins

Q87: Is there any compatibility with machine learning?
Q88: Is there plugins like deepImageJ in Icy?
Q89: Are there machine learning Icy protocols available that could be integrated in image analysis protocols?

At the moment only a few tools dedicated to machine learning and deep learning are listed on the Icy website. There is the Rapid Learning plugin and the DeepClas4BioIcy. We would love to go further down this road, and for instance have a deepIcy plugin homologue to the deepImageJ plugin. Currently the Icy team lacks time and human resources to do that on its own but welcomes and encourages any initiative in this direction.

Interoperability

Q90: Do you plan to connect Ilastik and Icy?
Q91: There is no way to call Ilastik from Icy? or use pre-trained networks, like deepImageJ?

At the moment, although we agree it would be cool, there is no way to call Ilastik from Icy. However you can import a simple segmentation as .tif in Icy afterwards in order to measure segmented areas (see Q34).
We don’t have a deepIcy plugin yet, although we would love to have one (see Q87-89). The only thing you could try is to install the deepImageJ plugin in the /ij/plugin folder in the Icy installation folder, call deepImageJ from the ImageJ tab in Icy, and then further process your images in Icy.

Q92: Can you integrate a machine learning script from Python into the workflow?

If you manage to put your machine learning script written in Python in a docker container, you could then run it from Icy using the Docker for Icy plugin, which allows to run a Docker container within a plugin. Otherwise, Jython is somehow limited so it is unlikely that you will be able to get all required Python dependencies, or as mentioned in another question, you may need to use the Jython execnet for Icy plugin, which allows to communicate through native C Python (see also Q81).

Other

Q93: Is Icy intentionally not listed as community partner on image.sc?

Joining as community partner on the on image.sc forum is under discussion at the moment :wink:

4 Likes