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