Skip to content

kfaizi/ariadne

Repository files navigation

Ariadne

🌱 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.

⚠️ This is very much a work-in-progress! These are custom scripts written for a small, ongoing research project — so all code is provided as-is.

🔨 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.

Installation

Using conda

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

Use

To get started, type

python main.py

Keybinds

  • Left-click: place/select node. To pan, hold Alt or Ctrl and drag
  • t: 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 file
  • d: Delete currently selected node(s)
  • Ctrl-Z: Undo last action

References

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

Acknowledgments

Matt (for guidance, ideas, and support); Illia (for technical advice); Tosh (for late-night debugging help)

About

GUI for image segmentation of Arabidopsis roots

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages