Skip to content

Commit 62c551c

Browse files
committed
Update SciJava Ops FLIM README
1 parent 2ed67a7 commit 62c551c

File tree

1 file changed

+67
-9
lines changed

1 file changed

+67
-9
lines changed

scijava-ops-flim/README.md

Lines changed: 67 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,70 @@
1-
# SciJava Ops Flim: A fluorescence lifetime analysis library for SciJava Ops.
1+
# SciJava Ops FLIM: A fluorescence lifetime analysis library for SciJava Ops.
22

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.
54

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+
![example output](images/example%20z.png)![example output](images/example%20A.png)![example output](images/example%20tau.png)
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>
1260
```
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

Comments
 (0)