class: center, middle, inverse, title-slide .title[ # A topologist and a plant biologist ] .subtitle[ ## go for a newly shaped beer ] .author[ ###
Erik Amézquita
, Michelle Quigley, Tim Ophelders
Elizabeth Munch, Dan Chitwood
Dan Koenig, Jacob Landis
- ] .institute[ ### Computational Mathematics, Science and Engineering
Michigan State University
- ] .date[ ### 2021-10-14
-
To appear in
inSilico Plants
] --- class: inverse # Plant morphology <div class="row"> <div class="column" style="max-width:50%"> <iframe width="375" height="210" src="https://www.youtube-nocookie.com/embed/oM9kAq0PBvw?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <iframe width="375" height="210" src="https://www.youtube-nocookie.com/embed/V39K58evWlU?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </div> <div class="column" style="max-width:50%"> <iframe width="375" height="210" src="https://www.youtube-nocookie.com/embed/4GBgPIEDoa0?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <iframe width="375" height="210" src="https://www.youtube-nocookie.com/embed/qkOjHHuoUhA?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </div> </div> --- # Topological Data Analysis (TDA) <div class="row"> <div class="column" style="max-width:25%; font-size: 15px;"> <img style="padding: 25px 0 35px 0;" src="../figs/S019_L0_1.gif"> <p style="font-size: 25px; text-align: center; color: DarkRed;"> Raw Data </p> <ul> <li> X-ray CT </li> <li> Point clouds </li> <li> Time series </li> <ul> </div> </div> --- # Topological Data Analysis (TDA) <div class="row"> <div class="column" style="max-width:25%; font-size: 15px;"> <img style="padding: 25px 0 35px 0;" src="../figs/S019_L0_1.gif"> <p style="font-size: 25px; text-align: center; color: DarkRed;"> Raw Data </p> <ul> <li> X-ray CT </li> <li> Point clouds </li> <li> Time series </li> <ul> </div> <div class="column" style="max-width:40%; padding: 0 25px 0 25px; font-size: 15px;"> <img src="../figs/ecc_X.gif"> <p style="font-size: 23px; text-align: center; color: DarkRed;"> Topological Summary </p> <ul> <li> Euler Characteristic </li> <li> Persistence diagrams </li> <li> Mapper/Reeb graphs </li> <ul> </div> </div> --- # Topological Data Analysis (TDA) <div class="row"> <div class="column" style="max-width:25%; font-size: 15px;"> <img style="padding: 25px 0 35px 0;" src="../figs/S019_L0_1.gif"> <p style="font-size: 25px; text-align: center; color: DarkRed;"> Raw Data </p> <ul> <li> X-ray CT </li> <li> Point clouds </li> <li> Time series </li> <ul> </div> <div class="column" style="max-width:40%; padding: 0 25px 0 25px; font-size: 15px;"> <img src="../figs/ecc_X.gif"> <p style="font-size: 23px; text-align: center; color: DarkRed;"> Topological Summary </p> <ul> <li> Euler Characteristic </li> <li> Persistence diagrams </li> <li> Mapper/Reeb graphs </li> <ul> </div> <div class="column" style="max-width:35%; font-size: 15px;"> <img src="../figs/svm_mds_ect.gif"> <p style="font-size: 25px; text-align: center; color: DarkRed;"> Analysis </p> <ul> <li> Statistics </li> <li> Machine learning </li> <li> Classification/prediction </li> <ul> </div> </div> --- # Cross Composite II experiment .pull-right[ ![](../figs/composite_hybrid_mixture.jpg) ] --- background-image: url("../figs/composite_cross_v_01.png") background-size: 425px background-position: 95% 90% # Cross Composite II experiment .pull-left[ ![](../figs/barley_world.jpg) - **28 parents/accessions** `\((F_0)\)` ] .pull-right[ ![](../figs/composite_hybrid_mixture.jpg) ] --- background-image: url("../figs/composite_cross_v_02.png") background-size: 425px background-position: 95% 90% # Cross Composite II experiment .pull-left[ ![](../figs/barley_world.jpg) - **28 parents/accessions** `\((F_0)\)` - Do `\({28 \choose 2}\)` **hybrids** `\((F_1)\)` ] .pull-right[ ![](../figs/composite_hybrid_mixture.jpg) ] --- background-image: url("../figs/composite_cross_v_03.png") background-size: 425px background-position: 95% 90% # Cross Composite II experiment .pull-left[ ![](../figs/barley_world.jpg) - **28 parents/accessions** `\((F_0)\)` - Do `\({28 \choose 2}\)` **hybrids** `\((F_1)\)` - **Self-fertilize** the resulting 379 hybrids ] .pull-right[ ![](../figs/composite_hybrid_mixture.jpg) ] --- background-image: url("../figs/composite_cross_v_04.png") background-size: 425px background-position: 95% 90% # Cross Composite II experiment .pull-left[ ![](../figs/barley_world.jpg) - **28 parents/accessions** `\((F_0)\)` - Do `\({28 \choose 2}\)` **hybrids** `\((F_1)\)` - **Self-fertilize** the resulting 379 hybrids - Each line grows in a different part of an open field ] .pull-right[ ![](../figs/composite_hybrid_mixture.jpg) ] --- background-image: url("../figs/composite_cross_v_05.png") background-size: 425px background-position: 95% 90% # Cross Composite II experiment .pull-left[ ![](../figs/barley_world.jpg) - **28 parents/accessions** `\((F_0)\)` - Do `\({28 \choose 2}\)` **hybrids** `\((F_1)\)` - **Self-fertilize** the resulting 379 hybrids - Each line grows in a different part of an open field **for 58 generations** ] .pull-right[ ![](../figs/composite_hybrid_mixture.jpg) ] --- # Raw Data: X-rays → Image Processing <div class="row"> <div class="column" style="max-width:51%; color: Navy; font-size: 15px;"> <img style="padding: 2px 0 2px 0;" src="../figs/x3000_setup.jpg"> <p style="text-align: center;"> Proprietary X-Ray CT scan reconstruction </p> </div> </div> --- # Raw Data: X-rays → Image Processing <div class="row"> <div class="column" style="max-width:51%; color: Navy; font-size: 15px;"> <img style="padding: 2px 0 2px 0;" src="../figs/x3000_setup.jpg"> <p style="text-align: center;"> Proprietary X-Ray CT scan reconstruction </p> </div> <div class="column" style="max-width:17.5%; color: Navy; font-size: 15px;"> <img src="../figs/S019_L0_1.gif"> <p style="text-align: center;"> 975 spikes </p> </div> </div> --- # Raw Data: X-rays → Image Processing <div class="row"> <div class="column" style="max-width:51%; color: Navy; font-size: 15px;"> <img style="padding: 2px 0 2px 0;" src="../figs/x3000_setup.jpg"> <p style="text-align: center;"> Proprietary X-Ray CT scan reconstruction </p> </div> <div class="column" style="max-width:17.5%; color: Navy; font-size: 15px;"> <img src="../figs/S019_L0_1.gif"> <p style="text-align: center;"> 975 spikes </p> </div> <div class="column" style="max-width:20.5%; color: Navy; font-size: 15px;"> <img src="../figs/S017_L0_seed_10_0.gif"> <p style="text-align: center;"> 38,000 seeds </p> </div> </div> --- # Raw Data: X-rays → Image Processing <div class="row"> <div class="column" style="max-width:51%; color: Navy; font-size: 15px;"> <img style="padding: 2px 0 2px 0;" src="../figs/x3000_setup.jpg"> <p style="text-align: center;"> Proprietary X-Ray CT scan reconstruction </p> </div> <div class="column" style="max-width:17.5%; color: Navy; font-size: 15px;"> <img src="../figs/S019_L0_1.gif"> <p style="text-align: center;"> 975 spikes </p> </div> <div class="column" style="max-width:20.5%; color: Navy; font-size: 15px;"> <img src="../figs/S017_L0_seed_10_0.gif"> <p style="text-align: center;"> 38,000 seeds </p> </div> </div> <div class="row"> <div class="column" style="max-width:35%; color: Navy; font-size: 15px;"> <img style="padding: 2px 0 2px 0;" src="../figs/seed_orientation1.png"> <p style="text-align: center;"> Align all the seeds </p> </div> </div> --- # Raw Data: X-rays → Image Processing <div class="row"> <div class="column" style="max-width:51%; color: Navy; font-size: 15px;"> <img style="padding: 2px 0 2px 0;" src="../figs/x3000_setup.jpg"> <p style="text-align: center;"> Proprietary X-Ray CT scan reconstruction </p> </div> <div class="column" style="max-width:17.5%; color: Navy; font-size: 15px;"> <img src="../figs/S019_L0_1.gif"> <p style="text-align: center;"> 975 spikes </p> </div> <div class="column" style="max-width:20.5%; color: Navy; font-size: 15px;"> <img src="../figs/S017_L0_seed_10_0.gif"> <p style="text-align: center;"> 38,000 seeds </p> </div> </div> <div class="row"> <div class="column" style="max-width:35%; color: Navy; font-size: 15px;"> <img style="padding: 2px 0 2px 0;" src="../figs/seed_orientation1.png"> <p style="text-align: center;"> Align all the seeds </p> </div> <div class="column" style="max-width:55%; color: Navy; font-size: 15px;"> <img src="../figs/boxplot_all_traditional_h.gif"> <p style="text-align: center;"> Traditional shape descriptors </p> </div> </div> --- # Topology: The Euler characteristic `\(\chi\)` `$$\chi = \#(\text{Vertices}) - \#(\text{Edges}) + \#(\text{Faces}).$$` <img src="../../tda/figs/euler_characteristic_2.png" width="400" style="display: block; margin: auto;" /> -- - Summarize **topological features** with the Euler-Poincaré formula `$$\chi = \#(\text{Connected Components}) - \#(\text{Loops}) + \#(\text{Voids}).$$` -- - The Euler characteristic is a **topological invariant**. --- background-image: url("../figs/ecc_ver2.gif") background-size: 750px background-position: 50% 90% # Euler Characteristic Curve (ECC) - Consider a voxel-based image `\(X\subset\mathbb{R}^d\)`. -- - Slice it along a fixed direction. -- - Keep track of how the Euler Characteristic changes as we keep adding slices. --- background-image: url("../figs/ect_ver2.gif") background-size: 800px background-position: 50% 88% # Euler Characteristic Transform (ECT) - Repeat and concatenate for all possible directions. -- - [**Theorem** (Curry, Mukherjee, Turner, 2018)](http://arxiv.org/abs/1805.09782): The ECT is injective. -- - [**Theorem** (Turner, Mukherjee, Boyer, 2014)](https://arxiv.org/abs/1310.1030): The ECT is a sufficient statistic in 3D. --- # Hidden topological shape information - **Goal:** Classify 28 barley accessions using solely grain morphology information. - **3121** grains in total -- .pull-left[ ![](../figs/svm_f0_table_umap_results.png) ] .pull-right[ <img src="../figs/pole_directions_p7_m12_crop.jpg" width="150" style="display: block; margin: auto;" /> ] --- # Hidden topological shape information - **Goal:** Classify 28 barley accessions using solely grain morphology information. - **3121** grains in total .pull-left[ ![](../figs/svm_f0_table_umap_results.png) <img src="../figs/kruskal_wallis_topo_summary.jpg" width="300" style="display: block; margin: auto;" /> ] .pull-right[ <img src="../figs/pole_directions_p7_m12_crop.jpg" width="150" style="display: block; margin: auto;" /> ] --- # Hidden topological shape information - **Goal:** Classify 28 barley accessions using solely grain morphology information. - **3121** grains in total .pull-left[ ![](../figs/svm_f0_table_umap_results.png) <img src="../figs/kruskal_wallis_topo_summary.jpg" width="300" style="display: block; margin: auto;" /> ] .pull-right[ <img src="../figs/discerning_directions.png" width="150" style="display: block; margin: auto;" /> ![](../figs/arrow_seed_09_0.gif) ] --- # Into semi-supervised territory - Train an SVM with 100% of the founders `\((F_0)\)` - Classify the progeny `\((F_{18}\text{ and }F_{58})\)` to detect genotype enrichment -- .pull-left[ ![](../figs/histogram_combined_gen1_d158_T16_topounscaled_vert.svg) ] .pull-right[ ![](../figs/histogram_combined_gen7_d158_T16_topounscaled_vert.svg) ] --- class: right, bottom, inverse background-image: url("../figs/acknowledgments.jpg") background-size: 1000px background-position: 50% 40%