Commit b4ebc427 authored by Jean-Yves TINEVEZ's avatar Jean-Yves TINEVEZ
Browse files

WIP: document deproj class methods.

parent 18a689b7
......@@ -32,7 +32,7 @@ o =
### Main `epicell` methods.
There are no important user methods for `epicell`. All the important information is already in the properties.
There are no important user methods for `epicell`. All the important information is already in the properties. Check the [documentation on properties](DeProjProperties.md).
### Secondary `epicell` methods.
......@@ -200,8 +200,132 @@ The first output arguments `f3d` contains the ellipse parameter in cartesian for
The second argument `R` is the rotation matrix computed from the Euler angles.
## The `deproj` class methods.
A `deproj` instance has several interesting methods, that let you export and display the analysis results. In particular the plotting routines: you will most likely be adapting them to your needs with a bit of MATLAB.
In the following we suppose that `dpr` is an instance of `deproj`, for instance obtained by executing the a [self-contained example](RunExample.m) in this repository:
```matlab
>> dpr
dpr =
deproj with properties:
epicells: [426×1 epicell]
junction_graph: [1×1 graph]
units: 'µm'
```
### Main `deproj` methods.
#### `to_table`
`T = to_table( obj )`
Export masurements to a MATLAB table.
```matlab
>> T = dpr.to_table;
>> head(T)
ans =
8×23 table
id xc yc zc area perimeter euler_alpha ...
__ ______ ______ _______ ______ _________ ___________ ...
1 1.3039 22.669 0.61254 2.507 7.2365 0.71603 ...
2 2.4739 23.827 0.66689 8.0899 11.849 0.90395 ...
3 3.5615 3.6656 5.0947 12.317 15.599 -2.0397 ...
4 2.4705 11.183 3.1008 8.0176 12.523 -2.0734 ...
5 2.6884 26.749 0.24663 5.141 9.1999 -2.1016 ...
6 3.6096 14.773 2.7521 13.812 16.114 -2.1033 ...
7 5.0077 8.8491 4.6461 40.057 26.8 -2.0163 ...
8 3.9601 29.361 0.22428 7.6378 11.323 -2.0704 ...
```
The table also stores the physical units of each columns:
```matlab
>> T.Properties.VariableUnits
ans =
1×23 cell array
Columns 1 through 7
{0×0 char} {'µm'} {'µm'} {'µm'} {'µm²'} {'µm'} {'radians'} ...
```
A short description of the columns is present:
```matlab
>> T.Properties.VariableDescriptions{7}
ans =
'First Euler angle for the cell plane (rotation around Z)'
```
And a table description:
```matlab
>> T.Properties.Description
ans =
'Data generated from DeProj software, exported on 21-Jul-2020 23:07:02.'
```
#### `to_file`
`to_file( obj, file_name, include_header )`
Exports results to a spreadsheet file.
If `file_name` has `.csv` as extension, the data is saved as a CSV file. If it has `.xlsx` as an extension, it is saved as an Excel spreadsheet. The boolean flag `include_header` specifies whether the file will have a header with column names and units.
```matlab
dpr.to_file( 'table.csv' )
dpr.to_file( 'table.xlsx' )
```
![ExampleExport](static/ExampleExport.png)
#### `plot_sizes`
`[ hf, ax1, ax2 ] = plot_sizes( obj, scale_bar_length )`
Generate a figure with the cells area and perimeter. All the plots generated by the `plot_*` methods are 3D plots. The cells are drawn with their 3D coordinates and you can zoom, rotate, pan to make the curvature of the tissue appear.
The `scale_bar_length` parameter specifies what should be the length (in physical units) of the scale bar added to the bottom left of the plot. By default it is 10. The output arguments `[ hf, ax1, ax2 ]` are respectfully the handles to the figure created, to the top axes and to the bottom axes.
```matlab
>> dpr.plot_sizes
```
![ExampleResults_fig1a_CellSize](static/ExampleResults_fig1a_CellSize.png)
#### `plot_fit_plane`
`[ hf, ax1, ax2, ax3 ] = plot_fit_plane( obj, scale_bar_length )`
Generate a figure with the local plane orientation for each cell. This orientation is given as 3 Euler angles in the [ZX'Z'' convention](https://en.wikipedia.org/wiki/Euler_angles#Chained_rotations_equivalence).
- The first one, `alpha` is the orientation of the cell plane (top panel below). As an analogy, imaging you are facing a hill, the slope going up. The direction (south, west…) in which the slope is the largest is given by the angle `alpha`. On these figures we wrap the angle between 0º and 180º to and because of MATLAB convention, this angle is measured counterclockwise from the Y axis (so 90º corresponds to a slope going up in the east-west direction).
- The second one, `beta` measures the slope of this plane with XY plane (middle panel). A value of 0º indicates that the cell plane is parallel to XY.
- The third one , `gamma` measures the cell main orientation in the cell plane (bottom panel). Because the cell plane was rotated a first time by `alpha`, this angle does not give a result immediately usable.
```matlab
>> dpr.plot_fit_plane
```
![ExampleResults_fig2_EulerAngles](static/ExampleResults_fig2_EulerAngles.png)
### Secondary `deproj` methods.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment