Package gonioanalysis
Goniometric Analysis
Python pacakge gonioanalysis
provides an intergrated set of graphical
and command line tools to analyse goniometric imaging data.
Here goniometry means that the rotation of a sample with respect
to the imaging device is well documented while rotating the sample
between the imaging runs.
More precesily, gonioanalysis
takes advantage of the following data structuring
data_directory
├── specimen_01
│ ├── pos(horizontal, vertical)_some-suffix-stufff
│ │ ├── image_rep0_0.tif
│ │ └── image_rep0_1.tif
│ └── ...
└── ...
Here, the rotation of the sample is encoded in the image folder name with pos prefix. Alternatively, images with a generalized directory structure can be also used
data_directory
├── specimen_01
│ ├── experiment_01
│ │ ├── image_001.tif
│ │ └── image_002.tif
│ └── ...
└── ...
Please mind that gonioanalysis
was created to analyse Drosophila's
deep pseudogonio movement and orientation data across its left and right eyes
and because of this the language used in many places can be droso-centric.
User Interfaces
Currently gonioanalysis
comes with two user interfaces, one being command line based and
the other graphical.
The documentation on this page gives out only general instrctions and ideas.
To have exact usage instructions, please refer to submodule documentation of gonioanalysis.drosom.terminal
and
gonioanalysis.tkgui
.
Initial Analysis
The following two steps have to be performed for every imaged specimen, but luckily only once. The first one is manual needing user intercation but can be performed quite fast depending the amount of image folders, The second one is automated but can take a long time depending on the amount of data.
1) Selecting regions of interest (ROIs)
In gonioanalysis
, rectangular ROIs are manually drawn by the user
once per each image folder.
The idea is to confine the moving feature inside a rectangle but only in the first frame.
2) Measuring movements
After the ROIs have been selected, movement analysis can be run.
Using 2D cross-correlation based methods (template matching), gonioanalysis
automatically quntifies the movement of the ROI bound method across all the frames and repeats.
Because this part requires no user interactions and takes a while, usually it is best to select all the ROIs for all specimens beforehand, then batch run the movement analysis.
After Initial Analysis
Vectormap - 3D directions
The 2D data of the moving features in the camera coordinates can be transferred into a 3D coordinate
system of specimens frame of reference.
To do so, we need to have the rotation of the specimen with respect to the camera specified
in some fixed coordinate system, most naturally in the coordinate system set by the rotation stages
that are used to rotate the fly.
At the moment, gonioanalysis
supports only one rotation stage configuration that is
a specimen fixed on a vertical rotation stage that is fixed on a horizontal rotation stage that is fixed on a table.
Orientation analysis
To analyse directionaly of any arbitrary features (such as hair pointin directions across the head),
you can override the MAnalyser
with OAnalyser
,
making the movement measurement part to be a manual user drawing arrows according to the feature direction analysis.
Then later, you can use any gonioanalysis
code paths just remembering that for example in the vectormap,
the arrows point the direction of the features, not their movement.
Exporting Data
All quitely saved files are stored in a location set in gonioanalysis.directories
.
By default, on Windows this is C:/Users/USER/GonioAnalysis
and on other platforms /home/USER/.gonioanalysis
Command Line Interface
gonioanalysis
also includes a command interface, that can be invoked by
python -m gonioanalysis.drosom.terminal
For all different options and help use --help
option.
In case no ROIs have been selected, the
When elections of the ROIs cannot be done in headless environments.
Sub-modules
gonioanalysis.antenna_level
-
Code paths related to manually alinging the vertical angles for many specimens (aka. antenna level or zero correction)
gonioanalysis.binary_search
-
binary_search.py Determining binocular overlap by half-interval search …
gonioanalysis.coordinates
-
Working in 3D space
gonioanalysis.directories
-
Central settings for save/load directories.
gonioanalysis.droso
-
General methods common for both DrosoM and DrosoX.
gonioanalysis.drosom
gonioanalysis.drosox
gonioanalysis.image_tools
gonioanalysis.rotary_encoders
-
Transforming rotary encoder step values into degrees and vice versa.
gonioanalysis.settings
-
Whole gonioanalysis wide settings here …
gonioanalysis.tkgui
gonioanalysis.version