1 Looking at microCT data of Brassica pods
2 ========================================
4 I am not a biologist, please stop me and correct me if I say silly things.
9 .. image:: plot_bar_pod_widths.png
15 .. image:: plot_bar_sphericities_of_seeds.png
21 .. image:: plot_bar_volumes_of_seeds.png
27 .. image:: plot_bar_surface_area_of_seeds.png
36 .. image:: brassica_pod_lq.png
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
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
52 .. image:: fitting_debug.svg
53 :target: https://git.friedersdorff.com/max/ct_plotting/raw/master/fitting_debug.gif
57 Classify beak tip and Real Seeds™
58 ---------------------------------
62 1. Assert that seeds must not be implausible - Removed insufficiently many seeds
64 * Too close to the ends of the pod
65 * Too large given pod dimensions
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.
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
74 3. K-Means clustering - Silly for 1 dimensional data
75 4. Jenks Natural Breaks Optimisation - Should work in theory, did not work well
78 Break at Minimum Kernel Density Estimation (KDE)
79 ------------------------------------------------
81 * Beak has no Real Seeds™ and low density
82 * Expect a gap in real z of detected seeds
85 .. image:: plot_real_zs_genotype_unfiltered.png
92 * Use KDE to find density of seeds as function of real z
94 .. image:: kde_debug.png
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
102 .. image:: plot_real_zs_genotype_filtered.png
105 .. image:: plot_real_zs_genotype_unfiltered.png
108 Beak and Silique length
109 -----------------------
111 Use the seed with lowest real z to mark the boundary of beak and silique:
113 .. image:: plot_bar_silique_lengths.png
114 .. image:: plot_bar_beak_lengths.png