# RhizoNET
[](https://pypi.org/project/rhizonet/)
[](https://github.com/lbl-camera/rhizonet)
<!-- [](https://github.com/lbl-camera/rhizonet/actions/workflows/rhizonet-CI.yml) -->
[](https://rhizonet.readthedocs.io/en/latest/)
[](https://codecov.io/github/lbl-camera/rhizonet)
Segmentation pipeline for EcoFAB images
* License: MIT license
* Documentation: https://rhizonet.readthedocs.io
## Installation
```commandline
pip install rhizonet
```
## Features
* Create patches
* Train
* Inference
* Post-processing
* Evaluate metrics
## Copyright Notice
RhizoNet Copyright (c) 2023, The Regents of the University of California,
through Lawrence Berkeley National Laboratory (subject to receipt of
any required approvals from the U.S. Dept. of Energy) and University
of California, Berkeley. All rights reserved.
If you have questions about your rights to use or distribute this software,
please contact Berkeley Lab's Intellectual Property Office at
IPO@lbl.gov.
NOTICE. This Software was developed under funding from the U.S. Department
of Energy and the U.S. Government consequently retains certain rights. As
such, the U.S. Government has been granted for itself and others acting on
its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the
Software to reproduce, distribute copies to the public, prepare derivative
works, and perform publicly and display publicly, and to permit others to do so.
## License Agreement
MIT License
Copyright (c) 2025, Zineb Sordo
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
## Credits
Please reference this work:
<div class="row">
<pre class="col-md-offset-2 col-md-8">
@article{Sordo2024-ul,
title = "{RhizoNet} segments plant roots to assess biomass and growth for
enabling self-driving labs",
author = "Sordo, Zineb and Andeer, Peter and Sethian, James and Northen,
Trent and Ushizima, Daniela",
abstract = "Flatbed scanners are commonly used for root analysis, but typical
manual segmentation methods are time-consuming and prone to
errors, especially in large-scale, multi-plant studies.
Furthermore, the complex nature of root structures combined with
noisy backgrounds in images complicates automated analysis.
Addressing these challenges, this article introduces RhizoNet, a
deep learning-based workflow to semantically segment plant root
scans. Utilizing a sophisticated Residual U-Net architecture,
RhizoNet enhances prediction accuracy and employs a convex hull
operation for delineation of the primary root component. Its main
objective is to accurately segment root biomass and monitor its
growth over time. RhizoNet processes color scans of plants grown
in a hydroponic system known as EcoFAB, subjected to specific
nutritional treatments. The root detection model using RhizoNet
demonstrates strong generalization in the validation tests of all
experiments despite variable treatments. The main contributions
are the standardization of root segmentation and phenotyping,
systematic and accelerated analysis of thousands of images,
significantly aiding in the precise assessment of root growth
dynamics under varying plant conditions, and offering a path
toward self-driving labs.",
journal = "Scientific Reports",
volume = 14,
number = 1,
pages = "12907",
month = jun,
year = 2024
}
</pre>
</div>
This package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter)
and the [audreyr/cookiecutter-pypackage](https://github.com/audreyr/cookiecutter-pypackage)
project template.
Raw data
{
"_id": null,
"home_page": "https://github.com/lbl-camera/rhizonet",
"name": "rhizonet",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "rhizonet",
"author": "Zineb Sordo, Daniela Ushizima, Peter Andeer, James Sethian and Trent Northen.",
"author_email": "zsordo@lbl.gov",
"download_url": "https://files.pythonhosted.org/packages/6c/8a/54139d769669ce48c9b75bf52d6ba4ab40777a92532bb1d51b5d08cb2eb0/rhizonet-0.0.2.tar.gz",
"platform": null,
"description": "# RhizoNET\n\n\n\n[](https://pypi.org/project/rhizonet/)\n[](https://github.com/lbl-camera/rhizonet)\n<!-- [](https://github.com/lbl-camera/rhizonet/actions/workflows/rhizonet-CI.yml) -->\n[](https://rhizonet.readthedocs.io/en/latest/)\n[](https://codecov.io/github/lbl-camera/rhizonet)\n\nSegmentation pipeline for EcoFAB images\n\n* License: MIT license\n* Documentation: https://rhizonet.readthedocs.io\n\n## Installation\n```commandline\npip install rhizonet\n```\n\n\n## Features\n\n* Create patches\n* Train\n* Inference\n* Post-processing\n* Evaluate metrics\n\n\n## Copyright Notice \n\nRhizoNet Copyright (c) 2023, The Regents of the University of California,\nthrough Lawrence Berkeley National Laboratory (subject to receipt of\nany required approvals from the U.S. Dept. of Energy) and University\nof California, Berkeley. All rights reserved.\n\nIf you have questions about your rights to use or distribute this software,\nplease contact Berkeley Lab's Intellectual Property Office at\nIPO@lbl.gov.\n\nNOTICE. This Software was developed under funding from the U.S. Department\nof Energy and the U.S. Government consequently retains certain rights. As\nsuch, the U.S. Government has been granted for itself and others acting on\nits behalf a paid-up, nonexclusive, irrevocable, worldwide license in the\nSoftware to reproduce, distribute copies to the public, prepare derivative \nworks, and perform publicly and display publicly, and to permit others to do so.\n\n\n## License Agreement \n\nMIT License\n\nCopyright (c) 2025, Zineb Sordo\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n## Credits\n\nPlease reference this work:\n <div class=\"row\">\n <pre class=\"col-md-offset-2 col-md-8\">\n @article{Sordo2024-ul,\n title = \"{RhizoNet} segments plant roots to assess biomass and growth for\n enabling self-driving labs\",\n author = \"Sordo, Zineb and Andeer, Peter and Sethian, James and Northen,\n Trent and Ushizima, Daniela\",\n abstract = \"Flatbed scanners are commonly used for root analysis, but typical\n manual segmentation methods are time-consuming and prone to\n errors, especially in large-scale, multi-plant studies.\n Furthermore, the complex nature of root structures combined with\n noisy backgrounds in images complicates automated analysis.\n Addressing these challenges, this article introduces RhizoNet, a\n deep learning-based workflow to semantically segment plant root\n scans. Utilizing a sophisticated Residual U-Net architecture,\n RhizoNet enhances prediction accuracy and employs a convex hull\n operation for delineation of the primary root component. Its main\n objective is to accurately segment root biomass and monitor its\n growth over time. RhizoNet processes color scans of plants grown\n in a hydroponic system known as EcoFAB, subjected to specific\n nutritional treatments. The root detection model using RhizoNet\n demonstrates strong generalization in the validation tests of all\n experiments despite variable treatments. The main contributions\n are the standardization of root segmentation and phenotyping,\n systematic and accelerated analysis of thousands of images,\n significantly aiding in the precise assessment of root growth\n dynamics under varying plant conditions, and offering a path\n toward self-driving labs.\",\n journal = \"Scientific Reports\",\n volume = 14,\n number = 1,\n pages = \"12907\",\n month = jun,\n year = 2024\n }\n </pre>\n </div>\n\nThis package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter)\nand the [audreyr/cookiecutter-pypackage](https://github.com/audreyr/cookiecutter-pypackage)\nproject template.\n\n\n\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Segmentation pipeline for EcoFAB images",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://github.com/lbl-camera/rhizonet"
},
"split_keywords": [
"rhizonet"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9bbd445e185ad06c7f3345551d9f86e12c332813d1761a4070c45bcf65e683e3",
"md5": "6c3a5de01517ce8cf89984b0125a84d2",
"sha256": "1662a6933f68eecf7632b427eaffad77e2c744e5fa851afe12ad1364e0331804"
},
"downloads": -1,
"filename": "rhizonet-0.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "6c3a5de01517ce8cf89984b0125a84d2",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.8",
"size": 29912,
"upload_time": "2025-01-22T22:46:14",
"upload_time_iso_8601": "2025-01-22T22:46:14.932285Z",
"url": "https://files.pythonhosted.org/packages/9b/bd/445e185ad06c7f3345551d9f86e12c332813d1761a4070c45bcf65e683e3/rhizonet-0.0.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6c8a54139d769669ce48c9b75bf52d6ba4ab40777a92532bb1d51b5d08cb2eb0",
"md5": "91c1c580734f6f2c7b904041b5d96d29",
"sha256": "24d480b6225820ce711592fef332371994c24abf29ae55ae8537be0ec945f6f3"
},
"downloads": -1,
"filename": "rhizonet-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "91c1c580734f6f2c7b904041b5d96d29",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 170210,
"upload_time": "2025-01-22T22:46:16",
"upload_time_iso_8601": "2025-01-22T22:46:16.894974Z",
"url": "https://files.pythonhosted.org/packages/6c/8a/54139d769669ce48c9b75bf52d6ba4ab40777a92532bb1d51b5d08cb2eb0/rhizonet-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-22 22:46:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lbl-camera",
"github_project": "rhizonet",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "versioneer",
"specs": []
},
{
"name": "wheel",
"specs": []
},
{
"name": "cachetools",
"specs": [
[
"==",
"5.3.1"
]
]
},
{
"name": "constants",
"specs": [
[
"==",
"0.6.0"
]
]
},
{
"name": "contourpy",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "einops",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "gitdb",
"specs": [
[
"==",
"4.0.10"
]
]
},
{
"name": "GitPython",
"specs": [
[
"==",
"3.1.37"
]
]
},
{
"name": "graphviz",
"specs": [
[
"==",
"0.20.1"
]
]
},
{
"name": "imageio",
"specs": [
[
"==",
"2.31.5"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.3.2"
]
]
},
{
"name": "lightning",
"specs": [
[
"==",
"2.0.9.post0"
]
]
},
{
"name": "lightning-cloud",
"specs": [
[
"==",
"0.5.39"
]
]
},
{
"name": "lightning-utilities",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "monai",
"specs": [
[
"==",
"1.3.2"
]
]
},
{
"name": "neptune",
"specs": [
[
"==",
"1.8.1"
]
]
},
{
"name": "networkx",
"specs": [
[
"==",
"3.1"
]
]
},
{
"name": "nibabel",
"specs": [
[
"==",
"5.2.1"
]
]
},
{
"name": "numpy",
"specs": []
},
{
"name": "opencv-python",
"specs": [
[
"==",
"4.8.1.78"
]
]
},
{
"name": "pandas",
"specs": []
},
{
"name": "Pillow",
"specs": [
[
"==",
"9.3.0"
]
]
},
{
"name": "pytorch-lightning",
"specs": [
[
"==",
"2.0.9.post0"
]
]
},
{
"name": "scikit-image",
"specs": [
[
"==",
"0.19.3"
]
]
},
{
"name": "scikit-learn",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.10.0"
]
]
},
{
"name": "tensorboard",
"specs": []
},
{
"name": "torch",
"specs": [
[
"==",
"2.4.1"
]
]
},
{
"name": "torchaudio",
"specs": [
[
"==",
"2.4.1"
]
]
},
{
"name": "torchdata",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "torchmetrics",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "torchtext",
"specs": [
[
"==",
"0.18.0"
]
]
},
{
"name": "torchvision",
"specs": [
[
"==",
"0.19.1"
]
]
},
{
"name": "torchviz",
"specs": [
[
"==",
"0.0.2"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.1"
]
]
},
{
"name": "wandb",
"specs": [
[
"==",
"0.18.3"
]
]
}
],
"lcname": "rhizonet"
}