24
GenEx Software library for object detection in genetical analysis evaluation User manual Jan Schier Bohumil Kov´ r Michal Kuneˇ s Institute of Information Theory and Automation of the AS CR [email protected] Supported from the TA01010931 project of the Technology Agency of the Czech Republic December 19. 2014

Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

GenEx

Software library for object detection

in genetical analysis evaluation

User manual

Jan Schier Bohumil KovarMichal Kunes

Institute of Information Theory and Automation of the AS CR

[email protected]

Supported from the TA01010931 projectof the Technology Agency of the Czech Republic

December 19. 2014

Page 2: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Contents

1 Acknowledgement 3

2 GenEx library for evaluation of FISH microscopy images 3

3 Source of images 5

4 Library output 5

5 Architecture of the library 65.1 Default package . . . . . . . . . . . . . . . . . . . . . . . . . . 65.2 Genex package . . . . . . . . . . . . . . . . . . . . . . . . . . 65.3 Genex.lib package . . . . . . . . . . . . . . . . . . . . . . . . 6

6 Library parameters 86.1 Parameter adjustment methods . . . . . . . . . . . . . . . . . 86.2 File patterns and input files . . . . . . . . . . . . . . . . . . . 96.3 Input checks for plugin . . . . . . . . . . . . . . . . . . . . . . 9

7 Definitions 9

8 Image input 11

9 DAPI Segmentation 11

10 Obtaining results 1210.1 Export to CSV files . . . . . . . . . . . . . . . . . . . . . . . 1210.2 Getting results directly . . . . . . . . . . . . . . . . . . . . . . 15

11 Basic processing loop 15

12 Data tagger 16

A Call graphs for important classes 16

List of Figures

1 Example of an input image . . . . . . . . . . . . . . . . . . . 42 Main components of the GenEx plugin . . . . . . . . . . . . . 53 Image processing pipeline . . . . . . . . . . . . . . . . . . . . 54 Plugin architecture . . . . . . . . . . . . . . . . . . . . . . . . 85 Setting parameters . . . . . . . . . . . . . . . . . . . . . . . . 96 ImageReader interface and its implementations . . . . . . . . 127 Data tagger – example . . . . . . . . . . . . . . . . . . . . . . 178 Call graph of the GenExPlugin class . . . . . . . . . . . . . . 18

1

Page 3: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

9 Call graph of the GenExParam class . . . . . . . . . . . . . . 1910 Call graph of the Dapi class . . . . . . . . . . . . . . . . . . . 2011 Call graph of the DapiProcessor class . . . . . . . . . . . . . . 2112 Call graph of the SignalProcessor class . . . . . . . . . . . . . 2213 Collaboration graph of the GenexPipeline class . . . . . . . . 23

2

Page 4: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

1 Acknowledgement

This work has been supported by the research project TA010100931 of theTechnology Agency of the Czech Republic.

2 GenEx library for evaluation of FISH mi-croscopy images

In this technical report, the GenEx library for evaluation of FISH microscopyimages is described. The purpose of the library is to find and filter objectsin images from fluorescence microscope and to detect fluorescence signalscontained in these objects. In the GenEx project, it is used for diagnosticsof the Turner syndrome — chromosome aneuploidies in chromosome X, inother words, to find the (roughly round) interphase nuclei and to countthe associated hybridization signals (see illustrative images in Figure 1; thecolour channels of the image are shown also as surface plots, to better revealthe character of the hybridization signals).

The library is built on the top of the ImageJ environment (http://www.imagej.org), which is widely used in bioimaging.

The library is characterized by the following features:

• separate processing channels for DAPI and for the fluorescence signals.

• no restrictions on the number of the signal channels

• output in the form of a CSV-file – ImageJ ResultTable export

The block diagram in Fig. 2 shows the high level functionality of thelibrary: it takes two or more sets of the input images – one for the DAPI-stained images (“DAPI channel” in the following text), the others for theimages with fluorescence markers marking specific chromosomes (such asthe TxR, GFP, etc.) (“signal channel” in the following text) and performsprocessing of the DAPI channel to find cell nuclei contained in the image.The borders of the nuclei found in the DAPI channel, are used to select theregions of interest for the hybridization signals (bright spots) in the otherchannels, corresponding with the chromosomes of interest. As the output,two sets of data are provided for each channel, that is, the mathematicaldescriptors (see Set Measurements section of the ImageJ user guide) and thecontours of the objects.

The processing flow in each channel (DAPI, signal) is schematically de-picted in Figure 3. The pipeline includes background subtraction, noisesuppression, image segmenation, particle analysis and object filter.

3

Page 5: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Composed RGB image, lense magnification 40×

DAPI channel TxR channelCell nuclei Hybridization signals

Figure 1: Example of an input image

4

Page 6: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

DAPIimages

DAPIprocessing

DAPIfilter

Images withsignals (TxR)

Signalprocessing

Signalfilter

Imag

es

Ob

ject

par

amet

ers

DAPI ROI

Parametersof DAPIobjects

Parametersof signals

Figure 2: Main components of the GenEx plugin

3 Source of images

The library takes two options for the source of input images: either an imagestack displayed in the ImageJ image window, or a set of files from a diskdirectory.

4 Library output

The output of the library consists of two sorts of data for each channel: thecontours of the objects found in the image, and the results tables containgparameters of these objects.

Inp

ut

imag

e

Back

grou

nd

sub

tract

ion

Nois

esu

pp

ress

ion

Seg

men

tati

on

Part

icle

analy

sis

and

filt

erin

g

Ou

tpu

t:ob

ject

para

met

ers

Figure 3: Image processing pipeline

5

Page 7: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

5 Architecture of the library

The library consists of two main packages, genex and genexd.lib andseveral specialized packages, such as genex.lib.segmentation. Figure 4shows, on a schematic level, the relations between the main componentscontained in the genex and genex.lib packages. The purpose of thesecomponents is following:

5.1 Default package

• the GenExPlugin class provides the interface for using the plugin fromwithin the ImageJ environment. Note that the rest of the library, whileusing the ImageJ classes, can be linked to any Java code. This classis placed in the default package.

5.2 Genex package

The genex package contains the high/level classes which define the process-ing flow:

• Either of the GenexPipeline and GenexIterator classes can be usedto call the image processing pipeline.

The GenexPipeline class provides more general solution, which canbe configured either to process all available images in one batch, or toprocess them image-by-image.

The GenexIterator class provides an interface conformant to the JavaIterator interface - the hasNext() method returns true if there is anyimage to process, while the next() method provides the results forsingle image.

• The DapiProcessor and SignalProcessor classes define the actualimage processing pipelines for DAPI channel and for the channels withimagess of the hybridization signals.

5.3 Genex.lib package

The genex.lib package contains class that are, in general, used to cope withconcrete problem, plus some helper classes. The important classes containedin this package are the following:

• The Definitions class, GenExDefines.java, is where the constants anddefinitions used in the code are put.

• Image input, that is, the ImageReader.java interface, provides a uni-fied interface for all image input methods, be it the stack of images onthe screen or image files.

6

Page 8: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Current implementations of this interface includeScreenImgReader.java and FileImgReader.java.

• The Segmentation class, Segmentation.java, takes the input imageand performs segmentation and, if enabled, watershed segmentation(which is used to “disconnect” touching particles). The output ofsegmenation is binary image.

The concrete segmentation method to use is selected using theAbstractFactory mechanism (the implementatiom is contained ingenex.lib.thresholder). At this point, several threshold segmen-tation methods are included: the Snell segmentation [Snell2011] (con-tained in genex.lib.thresholder) and the ImageJ segmentationmethods (contained in ij.process.AutoThresholder). However, itis trivial to plug in any other method with the AbstractFactory mech-anism.

• Extended regions (ExtRoi.java) is an encapsulation of the ImageJRoi class (ij.gui.Roi). This encapsulation supplies the standardRoi class with important additional information, such as the linksbetween the nucleus and the fluorescence signals contained therein,the name of the image where the object is located and the validity flagfor the object (only some of the objects found by the segmentationand particle analysis routines are valid objects in the sense that theyrepresent cell nuclei or fluorescence signals).

• Particle Analysys is part of the Channel.java class. Using the seg-mentation output, it determines the particles contained in the image.The output of the implementation in the GenEx library is comple-mented also with the data of the Extended regions class – the linksbetween the objects and the name of the image containing given par-ticle.

Also, as part of paticle analysis, the particles are measured and theResults table (ij.measure.ResultsTable) is filled with object param-eters.

• The purpose of the Object filter (ObjectFilter.java) is to classifythe objects to valid and invalid ones, based on selected criterion.

At this point, simple filter based on area and circularity of the particlesis used. The filter is connected to the code using AbstractFactory,making addition of other methods fairly simple. An adapter methodfor the WEKA data mining tool is in preparation.

7

Page 9: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

ImageJ interfaceGenExPlugin

(optional)

GenEx pipeline GenEx iterator

DAPI processorSignal processor

SegmentationImageinput

DefinitionsExtendedregions

Particleanalysis

Objectfilter

Processing flow definition: genex

Implementation library: genex.lib

Figure 4: Plugin architecture

6 Library parameters

The library uses several parameters to define basic settings of the envi-ronment. The parameters are stored using the java Preferences library(java.util.prefs.Preferences), in the form of key–value pairs. The Pref-erences library automatically cares for the proper approach to the parameterstorage.

The parameters employed in the GenEx library are used to describewhich color channels are used in the essay (at this point, DAPI, RED andGREEN are used), what are the file patterns for these channels, the locationof the image directory and of the directory for the CSV1 result files. Theparameters are summarized in Table 1.

6.1 Parameter adjustment methods

The GenExParams plugin provides simple GUI for input of parameters. Therelation between the plugin, parameter storage and the GenEx library isschematically shown in Figure 5. This GUI can be used to set the channelusage flags for DAPI, GREEN, RED, the file patterns and the image andresults directories. The IS PLUGIN and SAVE BY IMAGE parameters areonly set in the code.

1Comma-separated values format

8

Page 10: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Parameterinput GUI

GenExParam

Parametersstorage

GenExlibrary

Figure 5: Setting parameters

Other option is to set the parameters directly using thejava.util.prefs.Preferences API.

6.2 File patterns and input files

The file patterns are used in the case of separate image files for each channel,to identify the files corresponding to the particular channel. Example: withiXXX-dapi.tiff filenames, where XXX is the number of image, the string“dapi” can be used to identify the DAPI channel.

In the case when the images comes in the form of RGB files, only onecommon pattern is used in all channels, and this pattern may be empty.

The RGB INPUT is used only in the GenExParams plugin, the Genexlibrary uses autodetection of the file contents (the file patterns must be setproperly, though).

6.3 Input checks for plugin

In the case that the IS PLUGIN parameter is set, the parameters enteredby user in the GenExParams plugin are checked for the following:

• the file patterns for illegal characters (regular expressions are not al-lowed, for simple usage).

• if RGB INPUT is not set, the file patterns must be non-empty.

• the input directory must be non-empty and must contain images.

• if RGB INPUT is not set, the number of images contained in thedirectory must be the same for each channel.

7 Definitions

The GenExdefines class is used to introduce important definitions and con-stants, used throughout the code. These include:

ChannelNames is an enumerated type used to define the name of eachchannel and the transformation of this name to a string. This typeshould be extended if more signal channels are needed:

9

Page 11: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Key Value Comment

DAPI boolean is the channel used? (always true)DAPI PATTERN String the pattern used to select

the DAPI image filesGREEN, RED boolean is the channel used?GREEN PATTERN String the pattern used to selectRED PATTERN image files of the given channelIS PLUGIN boolean set if the library is run as ImageJ

plugin (switches on somecorrectness checks on parameterinput)

RGB INPUT boolean the input images are stored inRGB files (used only in theparameter input plugin)

SAVE BY IMAGE boolean if true, the data for each imageare saved immediately after thisimage is processed. If false, theimages are processed in batch anddata is saved after the batch isprocessed.

LAST INPUT DIR String the directory, where the inputimages are stored

CSV DIR String the directory, where the files withresults are stored

Table 1: Parameters used by the GenEx library

public static enum ChannelNames {

DAPI("DAPI"),

RED("RED"),

GREEN("GREEN"),

UNSPECIFIED("");

}

signals is used to define which ChannelNames are reserved for signals:

ChannelNames[] signals = {ChannelNames.RED,

ChannelNames.GREEN};

Note that which signal is actually used depends on the setting of thecorresponding RED and GREEN parameters (see Section 6).

Filters is an enumerated type used to identify the denoising filters:

public static enum Filters {

10

Page 12: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

FILT_MEDIAN, FILT_GAUSSIAN, FILT_DESPECKLE, FILT_NONE

}

objectMeasurements is an integer constants which defines the parame-ters evaluated for particles in the image:

public static int objectMeasurements =

ParticleAnalyzer.SLICE +

ParticleAnalyzer.AREA +

ParticleAnalyzer.CIRCULARITY +

ParticleAnalyzer.PERIMETER +

ParticleAnalyzer.MEAN +

ParticleAnalyzer.CIRCULARITY +

ParticleAnalyzer.RECT +

ParticleAnalyzer.CENTER_OF_MASS +

ParticleAnalyzer.SHAPE_DESCRIPTORS +

ParticleAnalyzer.LABELS;

8 Image input

Image input methods are defined by the ImageReder interface, whichis implemented by two classes, ImgScreenReader and ImgFileRedaer.ImgScreenReader is used to read images from a stack already opened inImageJ and displayed on computer screen, while imgFileReader is used toread images directly from disk files. The relation between these classes isshown by the UML graph in Figure 6.

9 DAPI Segmentation

DAPI segmentation is performed in the Segmentation class, usingan AbstractFactory mechanism to switch between the segmentationmethods – currently either the thresholding methods contained inij.process.Autothresholder or the Snell segmentation method.

This mechanism is illustrated by the following code snippet:

AbstractThresholderFactory thresholderFactory = new

SnellThresholderFactory();

Thresholder thresholder = thresholderFactory.createThresholder();

int[] thr = thresholder.getThreshold(img);

ImageProcessor ip = img.getProcessor();

for (int image=0; image<img.getStackSize(); image++) {

ip.threshold(thr[image]);

}

Note the array used for the thresholds: for greater flexibility, ImageJ Im-ageStack mechanism (ij.ImageStack) is used throughout the code. This al-

11

Page 13: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

genex.lib.ImageReader

+ getDAPI()+ getSignal()+ getSetName()+ isRGB()+ getDAPI()+ getSignal()

genex.lib.FileImgReader

~ prefs~ saveByImage~ isPlugin

+ getDAPI()+ getDAPI()+ getSignal()+ getSignal()+ getSetName()+ isRGB()

genex.lib.ScreenImgReader

+ ScreenImgReader()+ getDAPI()+ getSignal()+ getSetName()+ isRGB()+ getDAPI()+ getSignal()

Figure 6: ImageReader interface and its implementations

lows to use the same code no matter whether a single image or the completestack should be processed in one turn.

With the code above, an individual threshold is applied to each image.With only one image in the stack, the threshold array thr will contain onlyone element.

10 Obtaining results

10.1 Export to CSV files

The results are internally stored in the ImageJ ResultsTable class. At theend of processing, or after processing single file (depends on the setting ofthe processByImage variable in the GenExPlugin class), they saved intoa CSV file, located in a directory set in the CSV DIR key (see Section 6,library parameters). If this key does not exist, the file is saved into the imagedirectory.

The format of the file is shown in the example in Table 2. Con-crete parameters included in the file depend on the setting of theobjectMeasurements variable in the GenExDefines class (see Section 7).

12

Page 14: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Additional keys The following keys are added to those used by defaultin ImageJ:

Label unique label of the particle

Image filename of the image containing the particle

Valid particle validity as determined by the object filter

Expert particle validity as set by expert with the tagger GUI. This key willbe used to train the WEKA classifier and in comparative evaluationof the library.

The following keys are used for signals:

Nucleus index of nucleus containing given signal

Color color of given signal (RED|GREEN). The data for signals in all chan-nels are stored in one common table. channels

13

Page 15: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Label Area Mean Perim. Circ. AR Round Solidity Image Valid Expert

1 10001-0001-0059 1834 77.234 160.610 0.893 1.080 0.926 0.967 01a true true2 10001-0002-0092 2570 119.447 188.752 0.906 1.139 0.878 0.974 01a true true3 10001-0003-0144 2587 52.545 190.652 0.894 1.133 0.882 0.972 01a true true4 10001-0004-0153 3522 54.973 221.380 0.903 1.041 0.961 0.971 01a true true5 10001-0005-0246 2384 77.049 181.581 0.909 1.105 0.905 0.972 01a true true

Note: not all data is included

Table 2: Example of the result table

14

Page 16: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Filename format of the CSV file The filename of the CSV file is con-structed using the filename of first (fnFirst) and last (fnLast) image inthe directory as fnFirst-fnLast-dapi.csv (or -signal, correspondingly).In the case that only one image is processed, the filename is simplified tofilename-dapi.csv.

10.2 Getting results directly

The results can be obtained directly from the code of GenEx library, usingthe GenExPipeline class. It contains the runPipeline method in severalvariants, which returns an object of the Results class:

public Results runPipeline(int objectMeasures)

This is a composed object, containing all data obtained from the images:

public class Results {

public FISHdata getDapi();

public FISHdata getSignal();

public Results(FISHdata dapi, FISHdata signal) {

this.dapi = dapi;

this.signal = signal;

}

}

where the FISHData class contains the results table and the ROIs of theobjects:

public class FISHdata {

public FISHdata(ResultsTable results, ArrayList<ExtRoi> rois) {

this.results = results;

this.rois = rois;

}

public ResultsTable getResultsTable();

public ArrayList<ExtRoi> getRois();

}

The data can be accessed using the getter methods of these classes,combined with the access methods of ij.measure.ResultsTable class.

11 Basic processing loop

In this section, we describe the processing code of the library at the highestlevel. It is fairly simple:

boolean processByImage = false;

Results results = null;

15

Page 17: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

GenexPipeline pipeline = new GenexPipeline(channels);

if (pipeline.readImages()>0) {

results = pipeline.runPipeline(GenExDefines.objectMeasurements);

}

// process results

In the first line, the processing pipeline is instantiated. Then, if a non-zero number of images is read from the pipeline, the processing methodrunPipeline is called. This code is used for batch processing of images.

For processing of individual images, a while-loop is used instead of theif-condition:

boolean processByImage = true;

GenexPipeline pipeline = new GenexPipeline(channels);

while (pipeline.readImages()>0) {

Results results =

pipeline.runPipeline(GenExDefines.objectMeasurements);

// process results

}

12 Data tagger

To be able to collect input from expert and to compare it with the libraryperformance, a graphical data tagger has been designed. It is containedin the genex.lib.RoiLabeler class. The tagger displays the microscopeimage with the contours of detected nuclei and signals overlaid. It allows toenable/disable these contours using a menu-driven interface. The results oftagging are stored in the “Expert” column of the result table. An illustrativescreenshot is given in Figure 7.

A Call graphs for important classes

In this appendix, the call- and collaboration graphs for several importantclasses of the library are shown. Full details are given in the API description.

References

[Snell2011] Violet Snell, William Christmas, and Josef Kittler. Segmenta-tion and shape classification of nuclei in DAPI images. In The 22ndBritish Machine Vision Conference, pages 1–9, Dundee, 2011.

16

Page 18: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

Figure 7: Data tagger – example

17

Page 19: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

GenExPlugin_.run

genex.GenexPipeline.read

Images

genex.GenexPipeline.runPipeline

genex.lib.output.Results.getDapi

genex.lib.output.Results.get

Signal

genex.lib.GraphicsUtils.compose

Image

genex.GenexPipeline.getDapi

genex.GenexPipeline.getSignals

genex.GenexPipeline.getSetName

genex.lib.ChannelStringMap.getMap

genex.DapiProcessor.read

Images

genex.lib.ImageReader.getDAPI

genex.lib.Channel.getStack

Length

genex.SignalProcessor.read

Images

genex.lib.ImageReader.get

Signal

Figure 8: Call graph of the GenExPlugin class

18

Page 20: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

GenExParams_.run

genex.lib.params.InputGui

Main.getParams

genex.lib.params.InputGui

Utils.selectDir

genex.lib.params.InputGui

Utils.selectCSVDir

genex.lib.params.InputGui

Utils.setChannelUseFlags

genex.lib.params.InputGui

Utils.setFilePattern

genex.lib.params.ImageDir

Info.getDir

genex.lib.params.ImageDir

Info.setDir

genex.lib.params.ImageDir

Info.getCSVDir

genex.lib.params.ImageDir

Info.setCSVDir

genex.lib.params.ImageDir

Info.getDirList

genex.lib.params.Channel

Info.getChannel

genex.lib.params.Channel

Info.setUsed

genex.lib.params.Channel

Info.getFilePattern

genex.lib.params.Channel

Info.setFilePattern

Figure 9: Call graph of the GenExParam class

19

Page 21: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

genex.Dapi.runProcessing

genex.AbstractImageReader.getDAPI

genex.Channel.preprocessing

genex.Channel.normalizeIntensity

genex.Dapi.initSnell

genex.Dapi.binarizeSnell

genex.Dapi.measure

genex.ObjectFilter.filter

genex.Util.exportRois

genex.Dapi.getNuclei

genex.ChannelStringMap.getMap

genex.AbstractImageReader.get

SetName

genex.Channel.setBinImg

genex.Channel.analyzeParticles

genex.Util.exportRoi

genex.ExtRoi.getRoi

Figure 10: Call graph of the Dapi class

20

Page 22: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

genex.DapiProcessor.runProcessing

genex.lib.Channel.preprocessing

genex.lib.Channel.normalize

Intensity

genex.lib.Channel.denoise

genex.lib.Channel.setBinImg

genex.lib.Dapi.measure

genex.lib.filter.Abstract

FilterFactory.createFilterNuclei

genex.lib.filter.Filter.filter

genex.lib.Dapi.getNuclei

genex.lib.Dapi.getResults

genex.lib.Util.saveResults

genex.lib.Channel.analyze

Particles

genex.lib.output.FISHdata.get

ResultsTable

genex.lib.Util.exportRois

genex.lib.output.FISHdata.getRois

genex.lib.ChannelStringMap.getMap

genex.lib.Util.exportRoi

genex.lib.ExtRoi.getRoi

Figure 11: Call graph of the DapiProcessor class

21

Page 23: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

genex.SignalProcessor.run

Processing

genex.lib.SignalStats.measureSigs

genex.lib.filter.Abstract

FilterFactory.createFilterSignal

genex.lib.filter.Filter.filter

genex.lib.Util.saveResults

genex.lib.ExtRoi.addLink

genex.lib.output.FISHdata.get

ResultsTable

genex.lib.Util.exportRois

genex.lib.output.FISHdata.getRois

genex.lib.ChannelStringMap.getMap

genex.lib.Util.exportRoi

genex.lib.ExtRoi.getRoi

Figure 12: Call graph of the SignalProcessor class

22

Page 24: Software library for object detection in genetical ...library.utia.cas.cz/separaty/2014/ZOI/schier-0439671.pdf · Contents 1 Acknowledgement3 2 GenEx library for evaluation of FISH

gene

x.G

enex

Pip

elin

e

~ s

aveR

esul

ts~

exp

ortR

oi

+ G

enex

Pip

elin

e()

+ r

eadI

mag

es()

+ r

eadI

mag

es()

+ r

unP

ipel

ine(

)+

run

Pip

elin

e()

+ r

unP

ipel

ine(

)+

get

Dap

i()+

get

Sig

nals

()+

get

Set

Nam

e()

gene

x.lib

.Dap

i

+ D

api()

+ D

api()

+ D

api()

+ D

api()

+ m

easu

re()

+ g

etN

ucle

i()+

get

Res

ults

()

~da

pi

link

gene

x.lib

.Cha

nnel

~ m

inA

rea

~ m

axA

rea

~ m

inC

irc~

max

Circ

+ C

hann

el()

+ C

hann

el()

+ C

hann

el()

+ C

hann

el()

+ C

hann

el()

+ s

etIm

age(

)+

get

Sta

ckLe

ngth

()+

get

Cha

nStr

ing(

)+

get

Cha

nStr

ing(

)+

den

oise

()an

d 6

mor

e...

# ge

tCha

nnel

Nam

e()

Imag

ePlu

s +im

g

Res

ults

Tabl

e

#re

sults ge

nex.

Dap

iPro

cess

or

+ R

AD

IUS

_BA

CK

GR

OU

ND

_DA

PI

~ s

aveB

yIm

age

+ r

eadI

mag

es()

+ r

eadI

mag

es()

+ r

unP

roce

ssin

g()

~ g

etS

etN

ame(

)~

get

File

Info

()

~da

piP

roce

ssor

Pre

fere

nces

~pr

efs

gene

x.lib

.Gen

ExD

efin

es.C

hann

elN

ames

+ D

AP

I+

RE

D+

GR

EE

N+

UN

SP

EC

IFIE

D

+ t

oStr

ing(

)

~ch

anne

ls

gene

x.S

igna

lPro

cess

or

+ S

igna

lPro

cess

or()

+ r

eadI

mag

es()

+ r

eadI

mag

es()

+ r

eadI

mag

es()

+ r

unP

roce

ssin

g()

+ g

etR

esul

ts()

~ g

etS

igR

oi()

~si

gPro

cess

or

Arr

ayLi

st<

gen

ex.li

b.S

igC

hann

el >

~si

gnal

s

Figure 13: Collaboration graph of the GenexPipeline class

23