# Bioimage Analysis Wiki

### Sidebar

EMBL BioImage Data Analysis

EuBIAS

NEUBIAS

Popularity Ranking

 Yoshikatsu Sato, the head of microscope facility @NagoyaITbM presenting practicals #EMBOLivePlant https://t.co/SVrkfOKQCn About 17 hours, 42 mins ago by: Kota Miura (@cmci_) Miyo Terao Morita showing analysis of gravitropism using centrifuge microscope they newly developed. I only know… https://t.co/Atj9E4QJAY About 18 hours, 14 mins ago by: Kota Miura (@cmci_) @KeikoUTorii ... which then became the cover page of Development cell. convincing. https://t.co/XBgiqJpHog About 19 hours, 11 mins ago by: Kota Miura (@cmci_) @KeikoUTorii model-based hypothesis lead to experiment results with single guard cell development or multiple >2 gu… https://t.co/oGhh4NJMPh About 19 hours, 18 mins ago by: Kota Miura (@cmci_) now, @KeikoUTorii on stomata development - how very specific cell fate decisions are made, with proper spacing bet… https://t.co/XoR8tpB5WR About 19 hours, 35 mins ago by: Kota Miura (@cmci_) @YvonJaillais talk on nanoclustering of ROP6, great analyses using various approaches to assess protein mobility… https://t.co/WHrzBsWTYJ About 19 hours, 51 mins ago by: Kota Miura (@cmci_)
blogtng:blogtop
Algorithm FRAP Fiji ImageJ ImageJ Plugin ImageJ Plugin 3Dviewer Imaris Java Javascript Python R added 201904 Freiburg bias blog dokuwiki fiji google imagej java libraries matlab meetings neubias news papers python references software webadmin

# CMCI weblog

## Notes on MIPAV (tried with win32)

I tried MIPAV pretty long time a go (2005?). Compared to that time, MIPAV has evolved pretty much with stronger functionality in visualization. Many new algorithms fro filtering are added as well. Trials with test processing was mostly OK but some bugs, which are not ignorable. Rich and very advanced functions are implemented, but it tends to be that basic handling function is missing or hidden behind complex command bindings and not intuitive. “Vox” (volume of interest) concept is generally applied to most of the functions, and I think this point worth everyone interested to try out. We are trapped in 2D screen, while we want to access 3D - this is a common problem in all the software that deals with 3D datasets, and MIPAV is seeking for its solution.

MIPAV website: http://mipav.cit.nih.gov/

checked followings:

• is istallation light and easy?
• what algorithms are available for filtering.
• 3D rendering quality

Installation procedure quote from installation instruction

After installing the MIPAV from the jar file, be aware that for full functionality you will need the following installed into the Java Virtual Machine you will be using to execute MIPAV:

Java 1.5 (or later),
Java 3D 1.5.2 (or later),
JOGL 1.1.1 (or later), and
JMF 2.1.1e (or later).
Without all of these packages (remember that the $CLASSPATH must be set correctly), MIPAV may be only partially functional. Most affected by not installing Java 3D and JOGL are the 3D visualization functions. To run mipav with a maximum heap size of 1000 megabytes use the following from a command line, where$mipav_install_directory is where you installed MIPAV to above:

cd \$mipav_install_directory

java -Xmx1000M -cp .:lib/gsi-classes.jar:lib/jargon_v1.4.19.jar:
lib/jhall.jar:lib/JimiProClasses.jar:lib/jaxp/dom.jar:lib/jaxp/sax.jar:
lib/jaxp/xalan.jar:lib/jaxp/xercesImpl.jar:lib/jaxp/xsltc.jar:
help/mipav_help.jar:InsightToolkit/lib/InsightToolkit/InsightToolkit.jar
MipavMain
Release md5sum: 28e9a6f75ee168c1f282fa76284d5dca
Nightly md5sum: d6ae2449be40a418b74b162a3f94255c


=== comment on istallation === Not necessary to have above java modules for installation (but as instruction says, some functions will not do job. I will check later). For manually setting class path for visualization, google “set Classpath” or so.

Installing Plugins

LOCI plugin is available. For installation, also need to build the file and also setting class path manually.
http://www.loci.wisc.edu/bio-formats/mipav

–> according to LOCI instruciton, following steps must be taken (but maybe it works just by plugin → install plugins)

classpath of MIPAV: should edit the file mipav.lax
Add path to the plugin class below.

#   LAX.CLASS.PATH
#   --------------
#   the Java classpath necessary to run this application
#   Can be separated by colons (Mac OS/Unix) or semicolons (Windows)

lax.class.path=.;help/mipav_help.jar;InsightToolkit/lib/InsightToolkit/InsightToolkit.jar;lib/JimiProClasses.jar;lib/jaxp/dom.jar;lib/jaxp/sax.jar;lib/jaxp/xalan.jar;lib/jaxp/xercesImpl.jar;lib/jaxp/xsltc.jar;lib/tar.jar;lib/jdom.jar;lib/iText-2.0.7.jar;lib/junit-4.4.jar;lib/WildMagic.jar;lib/jj2kpack.jar;lib/jhall.jar;lib/ACCESSION_client_VTool.jar;lib/axiom-api-1.2.4.jar;lib/axiom-dom-1.2.4.jar;lib/axiom-impl-1.2.4.jar;lib/axis2-kernel-1.2.jar;lib/bcprov-jdk15-136.jar;lib/commons-codec-1.3.jar;lib/commons-httpclient-3.0.1.jar;lib/commons-logging-1.1.1.jar;lib/jax-qname.jar;lib/jaxen-1.1-beta-10.jar;lib/neethi-2.0.1.jar;lib/rampart-core-ndar-1.2.jar;lib/rampart-policy-1.2.jar;lib/rampart-trust-1.2.jar;lib/wsdl4j-1.6.2.jar;lib/wss4j-1.5.2.jar;lib/wstx-asl-3.2.1.jar;lib/XmlSchema-1.3.1.jar;lib/xmlsec-1.4.0.jar;C:\\Documents and Settings\\Miura/mipav/plugins;C:\\Documents and Settings\\Miura/mipav/plugins/plugins.jar;lax.jar


Filters

Vey extensive and detailed documentation in the help file and vol.2 of the user guide (Volume2.pdf). This PDF is almost a text book. Worth checking through, since modern image processing algorithms are explained in details.
To see the list of implemented algorithm, check p51 - 62 of the pdf.

Processing

easy to convert 3D to 4D.
max projection over time is not possible
4D visualiazation: not clear.

ITK is wrapped (extensive documentation in the Help file )
\mipav\InsightToolkit\lib\InsightToolkit\InsightToolkit.jar
e.g.
http://mipav.cit.nih.gov/documentation/api/gov/nih/mipav/model/algorithms/filters/package-summary.html

c:\usr\local\bin\ITKAlgorithmsJava.dll c:\usr\local\bin\ITKBasicFiltersAJava.dll c:\usr\local\bin\ITKBasicFiltersBJava.dll c:\usr\local\bin\ITKCommonJava.dll c:\usr\local\bin\ITKCommonAJava.dll c:\usr\local\bin\ITKCommonBJava.dll c:\usr\local\bin\ITKIOJava.dll c:\usr\local\bin\ITKNumericsJava.dll c:\usr\local\bin\SwigRuntimeJava.dll c:\usr\local\bin\VXLNumericsJava.dll c:\usr\local\lib\InsightToolkit\InsightToolkit.jar This path of c:\usr\local is hard-coded into the build for the INSTALL project. You can relocate these files in a different folder and on a different machine, but you must keep the relative path locations between the ITK*Java.dll files and InsightToolkit.jar file the same. The reason for keeping the path relative is because the software in the InsightToolkit.jar file searches for the runtime DLLs using the relative path of “..\..\bin”.

visualizaiton

Documentation is under development and could not really evaluate, but then:

• tri-plane view of 4D sequence synchronized with the slider of the original stack.
• surface rendering is not supporting 4D

## QuickPALM

QuickPALM: 3D real-time photoactivation nanoscopy image processing in ImageJ Nature Methods 7, 339 - 340 (2010) doi:10.1038/nmeth0510-339

PALM and STORM reconstruction algorithms usually rely on 'fitting' Gaussian kernels to detected diffraction-limited spots. Although they permit high-accuracy localizations, these iterative methods can require up to several hours of processing time. We have developed a high-speed reconstruction algorithm that uses the classical Högbom 'CLEAN' method8 for spot finding, followed by a modified center of mass algorithm to compute the spot position and parameters defining spot shape along the horizontal axes.

I have not yet tried this, but seems to be very usable also for simple cases that needs to find spots. Plugin could be downloaded from

## Marriage Matching Algorithm

Consider that we have probe 1 and 2 labeling some molecule as dots, and for each cell we have several signals for each probe, cf. 3 dots for probe 1 and 2 dots for probe 2. The we have an assignment that we want to pair them each, leaving one probe 1 dot unpaired (cf. In my case I know that a probe 1 dot and a probe 2 dot are on a same chromosome.) What would be the algorithm?

In broader sense, this is a combinatorial optimization problem but I thought there could be simpler way of doing this.. then following is some possibilities.

One way is to construct a cost function, such as “sum of distace between paired”, calculate cost funciton for all possible combinations and choose the one with the lowest sum.

I found otherway of doing this, by so-called "stable marriage algorithm". In this case, same each number of boys and girls are matched.

In Javascript it should be as follows:

function make_matches(gb, bg){
var N = gb.length;
var boy = [], girl = [], position = [], rank = [];
var b, g, r, s, t;
for (g = 1; g <= N; g++){
rank[g] = [N+1];
for (r = 1; r <= N; r++){
b = gb[g-1][r-1];
rank[g][b] = r;
}
boy[g] = 0;
}
for (b = 1; b <= N; b++){
girl[b] = [0];
for (r = 1; r <= N; r++){
girl[b][r] = bg[b-1][r-1];
}
position[b] = 0;
}
for (b = 1; b <= N; b++){
s = b;
while (s != 0){
g = girl[s][++position[s]];
if (rank[g][s] < rank[g][boy[g]]){
t = boy[g]; boy[g] = s; s = t;
}
}
}
return boy;
}



Only the problem when applying this to a problem with non-equal number of boys and girls population. For this case, either modify the above algorithm, or prepare a dummy with very low ranking to satisfy the equal number of populaiton for using the algorithm as the above.

more references

## Tracking: Reference Memo

• Tracking in molecular bioimaging
• Meijering, E. Smal, I. Danuser, G.
• 3-D Particle Tracking in a Two-Photon Microscope: Application to the Study of Molecular Dynamics in Cells
• Valeria Levi, QiaoQiao Ruan, and Enrico Gratton
• 3D Particle Tracking on a Two-Photon Microscope

## Bleach Correction (2)

As I test through different method further

1. Phair's method (or simple ratio)
2. Exponential decay fitting (or exponential ratio, I call)
3. Histogram streching,

all these methods are not really satisfactory. so I kept on searching for other methods and I tested something not used often, which is called “Histgram Matching”, and it seems to work better. Bleached images are better be blurred a bit. I might try implementing it as another method for bleaching correction.

Followings are links related to this method, which I referred to.

Histogram equalizaiton theory (by R. Fisher, S. Perkins, A. Walker and E. Wolfart.@ Image Processing Learning Resources).

I also refrred to Digital Image Processing using Matlab“ but it was too simply formulated (and, the matlab function which should be used is indicated but too short).

Paper: “A statistical approach for intensity loss compensation of confocal microscopy images”, Gopinath et al (2007) J. of microscopy ( Link). This paper tries to correct the acquistion bleaching while the image itself is changing a lot (the sample seems to be internalizing cell surface recepter, so from diffuse signal to dotty signals). In case of sequences with less changes in signal shape, the problem is more simple and straightforward, but such dynamic version should be already in our sight. (by the way, I am always amazed by works which Luby-Phelps is involved in. When I found the name on this paper, amazed again…).

Point Operations
CMPUT 206, Instructor: NilanjanRay
(powerpoint slides in PDF)

Java library: source for historam matching is in Burger & Burge website, chapter 5.
"Digital Image Processing: An algorithmic introduction uing Java"