Traitly is an open-source Python tool for automated, high-throughput fruit phenotyping from digital images. Using computer vision methods, it quantifies morphological, symmetry, and color traits across both internal structures and the external appearance of the fruit.
It supports both single-image analysis and batch processing workflows, making it easy to handle large image datasets with just a few lines of code, which is especially useful in plant breeding programs and research.
What can Traitly do?
Traitly processes fruit images to measure:
- Fruit morphology: Area, perimeter, circularity, dimensions, and aspect ratio
- Locule anatomy: Locule number, size distribution, and spatial arrangement
- Pericarp structure: Thickness, uniformity (CV), and surface irregularity (lobedness)
- Color phenotypes: Multi-channel analysis (RGB, HSV, Lab) across different fruit regions
Usage
Traitly can be used from Python, the command line (CLI), or as a web application (Shiny App). For more details:
- Input image specifications
- Traitly architecture
- Python quickstart
- CLI and Shiny App
- Results overview
- Try our interactive demo onlineˎˊ˗
Publications & Presentations
Posters related to Traitly can be found in this folder:
- Posters ★ˎˊ˗
- Presentations ★ˎˊ˗
These materials provide additional methodological details and results from research derived from our package.
Citation
We are working on a manuscript describing this software and its applications, expected to be submitted in Spring–Summer 2026. In the meantime, if you use Traitly in your research, please cite it as:
Torres-Meraz, M. A., Lopez-Moreno, H., & Zalapa, J. (2026). Traitly: A Python Toolkit for High-Throughput Fruit Phenotyping. Zenodo. https://doi.org/10.5281/zenodo.18738366
Contact
For questions or comments about the project, feel free to reach out to:
We are open to collaborations, including adding new traits, and creating tutorials or workflows for specific crops or plant tissues.
Contributions
Inspired by All Contributors, we recognize all kinds of contributions, not just code:
| Contributor | Role |
|---|---|
| 💻 🚧 📓 ✅ 🐛 📖 ⚠️ 💬 👀 🌍 | |
| 📖 📓 ✅ 🤔 🐛 🔣 🌍 | |
| Juan Zalapa | 🔣 |
| 🐛 |
Acknowledgements ♡
We thank the developers of OpenCV, Ultralytics, EasyOCR, NumPy, Pandas, Matplotlib, and Shiny, as well as all open-source libraries that made this project possible.
Metadata
Release files for traitly 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| traitly-0.2.0.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| traitly-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.6 MB
Release files / traitly-0.2.0.tar.gz
| Download URL | traitly-0.2.0.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bc46cd97646b636d80375992d878d81333e780e201385054360820d52a44b521
|
|
BLAKE2b-256 checksum How to use checksums |
dae23d8142acb40da114374043e1b5d440c31a85d20e84a4d25d3a4f4ca3482b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|
Release files / traitly-0.2.0-py3-none-any.whl
| Download URL | traitly-0.2.0-py3-none-any.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c8c1b4bac5ebfb391e751e61eb77d2c1951c3780eaca2ae3bee13f925a8c0d51
|
|
BLAKE2b-256 checksum How to use checksums |
26dffb9889793c870b5e463bd6d146eb9cbca5ad1a3f6503d494802f9c5408e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|