|
1 |
| -# SciJava Ops Flim: A fluorescence lifetime analysis library for SciJava Ops. |
| 1 | +# SciJava Ops FLIM: A fluorescence lifetime analysis library for SciJava Ops. |
2 | 2 |
|
3 |
| -This library provides a bridge between SciJava Ops and Flim. |
4 |
| -For Maven projects, this library can be used by adding to your `pom.xml`: |
| 3 | +SciJava Ops FLIM is a collection of FLIM analysis ops based on [FLIMLib](https://github.com/flimlib/flimlib). It extends the single-transient fitting functions in FLIMLib to dataset-level fitting ops. Currently supported fitting ops include: RLD, MLA, Global, Phasor, and single-component Bayesian. |
5 | 4 |
|
6 |
| -```java |
7 |
| -<dependency> |
8 |
| - <groupId>org.scijava</groupId> |
9 |
| - <artifactId>scijava-ops-flim</artifactId> |
10 |
| - <version>0-SNAPSHOT</version> |
11 |
| -</dependency> |
| 5 | +Besides curve fitting, SciJava Ops FLIM also provides a variety of pre-processing options such as pixel binning, intensity thresholding, ROI masking as well as post-processing utility ops for e.g. calculating τ<sub>m</sub> (mean lifetime), A<sub>i</sub>% (fractional contribution) and pseudocoloring the result with LUT. |
| 6 | + |
| 7 | +# Example usage |
| 8 | +Open [test2.sdt](test_files/test2.sdt) in [Fiji](https://fiji.github.io/). Execute in [Script Editor](http://imagej.github.io/Using_the_Script_Editor) as Groovy: |
| 9 | + |
| 10 | +```groovy |
| 11 | +#@ UIService ui |
| 12 | +#@ OpEnvironment op |
| 13 | +#@ ImgPlus img |
| 14 | +
|
| 15 | +// set up parameters |
| 16 | +import org.scijava.ops.flim.FitParams |
| 17 | +
|
| 18 | +param = new FitParams() |
| 19 | +param.transMap = img; // input 3-dimensional (x, y, t) dataset |
| 20 | +param.xInc= 0.040 // time difference between bins (ns) |
| 21 | +param.ltAxis = 2 // time bins lay along axis #2 |
| 22 | +
|
| 23 | +// op call |
| 24 | +fittedImg = op.unary("flim.fitLMA").input(param).apply().paramMap |
| 25 | +
|
| 26 | +// display each parameter |
| 27 | +zImg = op.ternary("transform.hyperSliceView").input(fittedImg, param.ltAxis, 0L).apply() |
| 28 | +AImg = op.ternary("transform.hyperSliceView").input(fittedImg, param.ltAxis, 1L).apply() |
| 29 | +tauImg = op.ternary("transform.hyperSliceView").input(fittedImg, param.ltAxis, 2L).apply() |
| 30 | +
|
| 31 | +ui.show("z", zImg) |
| 32 | +ui.show("A", AImg) |
| 33 | +ui.show("tau", tauImg) |
| 34 | +``` |
| 35 | + |
| 36 | +After running this script, the output shown below can be seen by first running the script, and then brightness and contrast (Ctrl + Shift + C, select "Set" and bound the contrast to each image's corresponding range below). |
| 37 | + |
| 38 | +(z in [-1, 1], A in [0, 4], tau in[0, 3]): |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | +See more examples in [Demo.ipynb](notebooks/Demo.ipynb) and [groovy.md](groovy.md). |
| 43 | + |
| 44 | +# Using from a Java project |
| 45 | + |
| 46 | +To depend on SciJava Ops FLIM, copy the following to your `pom.xml`: |
| 47 | + |
| 48 | +```xml |
| 49 | + <properties> |
| 50 | + <scijava-ops-flim.version>0-SNAPSHOT</scijava-ops-flim.version> |
| 51 | + </properties> |
| 52 | + |
| 53 | + <dependencies> |
| 54 | + <dependency> |
| 55 | + <groupId>org.scijava</groupId> |
| 56 | + <artifactId>scijava-ops-flim</artifactId> |
| 57 | + <version>${scijava-ops-flim.version}</version> |
| 58 | + </dependency> |
| 59 | + </dependencies> |
12 | 60 | ```
|
| 61 | + |
| 62 | +# See also |
| 63 | + |
| 64 | +- [FLIMLib](https://github.com/flimlib/flimlib): Curve fitting library for FLIM |
| 65 | + - [Debug tutorial](https://github.com/flimlib/flimlib/wiki/Debugging) |
| 66 | +- [FLIMJ Ops](https://github.com/flimlib/flimj-ops): ImageJ Ops for accessing FLIM |
| 67 | + |
| 68 | +# Citation |
| 69 | + |
| 70 | +Comming soon... |
0 commit comments