]> git.friedersdorff.com Git - max/ct_plotting.git/blob - slides.rst
Resize images for better fit on 4:3 aspect
[max/ct_plotting.git] / slides.rst
1 Looking at microCT data of Brassica pods
2 ========================================
3
4 I am not a biologist, please stop me and correct me if I say silly things.
5
6 Pod Width
7 ---------
8
9 .. image:: plot_bar_pod_widths.png
10    :width: 9cm
11
12 Sphericity
13 ----------
14
15 .. image:: plot_bar_sphericities_of_seeds.png
16    :width: 9cm
17
18 Volume
19 ------
20
21 .. image:: plot_bar_volumes_of_seeds.png
22    :width: 9cm
23
24 Surface Area
25 ------------
26
27 .. image:: plot_bar_surface_area_of_seeds.png
28    :width: 9cm
29
30 Correlations
31 ------------
32
33 Filtering false seeds
34 ---------------------
35
36 .. image:: brassica_pod_lq.png
37    :width: 7.3cm
38
39 * Image analysis produces many false seeds at the beak tip
40 * Density and size is comparable to seed
41 * Hard to recognise by graphical methods alone
42 * Recognise them by mathematical means instead
43
44 Spine fitting
45 -------------
46
47 * For every CT slice we have the centroid of the object
48 * Fit X and Y position as cubic functions of z
49 * Define 'real z' as the distance measured along the fitted curve from 
50   the beak to the z coordinate of the point
51
52 .. image:: fitting_debug.svg
53    :target: https://git.friedersdorff.com/max/ct_plotting/raw/master/fitting_debug.gif
54    :width: 1.22cm
55
56
57 Classify beak tip and Real Seeds™
58 ---------------------------------
59
60 Failed approaches: 
61
62 1. Assert that seeds must not be implausible - Removed insufficiently many seeds
63
64    * Too close to the ends of the pod
65    * Too large given pod dimensions
66
67 2. Real z position of seeds of a pod is a sample from some probability
68    distribution, fit and paramterize the distribution to classify seeds.
69
70    * Sum of two normal(-ish) distributions - noise at beak might be normal,
71      everything else definitely is not
72    * More complicated distribution - too complicated 
73
74 3. K-Means clustering - Silly for 1 dimensional data
75 4. Jenks Natural Breaks Optimisation - Should work in theory, did not work well
76    in practice
77
78 Break at Minimum Kernel Density Estimation (KDE)
79 ------------------------------------------------
80
81 * Beak has no Real Seeds™ and low density
82 * Expect a gap in real z of detected seeds
83
84
85 .. image:: plot_real_zs_genotype_unfiltered.png
86    :width: 11cm
87
88 .. raw:: pdf
89
90    FrameBreak 50
91
92 * Use KDE to find density of seeds as function of real z
93
94 .. image:: kde_debug.png
95    :width: 7cm
96
97 * First seed has real z less than 100?
98 * Find the local minimum at lowest real z where log(KDE)<-10
99 * Keep seeds with greater real z
100 * Profit
101
102 .. image:: plot_real_zs_genotype_filtered.png
103    :width: 11cm
104
105 .. image:: plot_real_zs_genotype_unfiltered.png
106    :width: 11cm
107
108 Beak and Silique length
109 -----------------------
110
111 Use the seed with lowest real z to mark the boundary of beak and silique:
112
113 .. image:: plot_bar_silique_lengths.png
114 .. image:: plot_bar_beak_lengths.png
115