🌱 is a small software package for analyzing images of Arabidopsis thaliana roots.
📷 It features a GUI for semi-automated image segmentation
⏰ with support for time-series GIFs
☠️ that creates dynamic 2D skeleton graphs of the root system architecture (RSA).
🔍 It's designed specifically to handle complex, messy, and highly-branched root systems well — the same situations in which current methods fail.
📊 It also includes some (very cool) algorithms for analyzing those skeletons, which were mostly developed by other (very cool) people1,2. The focus is on measuring cost-performance trade-offs and Pareto optimality in RSA networks.
🔨 That said, if you're interested in tinkering with the code, enjoy! PRs are always welcome. And please reach out with any comments, ideas, suggestions, or feedback.
After cloning the repo, open a command line and navigate to it. Now type
conda env create --file environment.yaml
A new Python virtual environment, with all the necessary dependencies installed, is now ready to use. Activate it with
conda activate ariadne
To get started, type
python main.py
Left-click
: place/select node. To pan, holdAlt
orCtrl
and dragt
: toggle skeleton visibility (default: on)e
: next frame (GIFs only)q
: previous frame (GIFs only)r
: toggle proximity override. By default, clicking on or near an existing node will select it. When this override is on, a new node will be placed instead. Useful for finer control in crowded areas (default: off)i
: toggle insertion mode. By default, new nodes extend a branch (i.e., have a degree of 1). Alternatively, use insertion mode to intercalate a new node between 2 existing ones. Useful for handling emering lateral roots in regions you have already segmented (default: off)g
: Save output filed
: Delete currently selected node(s)Ctrl-Z
: Undo last action
1. Chandrasekhar, Arjun, and Navlakha, Saket. "Neural arbors are Pareto optimal." Proceedings of the Royal Society B 286.1902 (2019): 20182727. https://doi.org/10.1098/rspb.2018.2727 ↩
2. Conn, Adam, et al. "High-resolution laser scanning reveals plant architectures that reflect universal network design principles." Cell Systems 5.1 (2017): 53-62. https://doi.org/10.1016/j.cels.2017.06.017 ↩
Matt (for guidance, ideas, and support); Illia (for technical advice); Tosh (for late-night debugging help)