ElegansBot
Newtonian Mechanics Model for C. elegans Locomotion
https://github.com/TaegonChung/elegansbot/assets/29942136/ca554471-4397-4e19-bbf3-e83e2ce5ed81
(Left: Experimental video from [1], Right: ElegansBot)
[1] Broekmans, O. D., Rodgers, J. B., Ryu, W. S., & Stephens, G. J. (2016). Resolving coiled shapes reveals new reorientation behaviors in C. elegans. ELife, 5, e17227. https://doi.org/10.7554/eLife.17227
Web Demo
- https://taegonchung.github.io/elegansbot/
- Use the sliders to observe the worm's movement changes.
- Water-Agar Slider: Adjust this to modify the ground's frictional coefficients.
- Swim-Crawl Slider: This slider alters the period and linear wave number of C. elegans' locomotion.
- Use the sliders to observe the worm's movement changes.
Requirements
- Python (version 3)
- NumPy
- Numba
- SciPy (required as a dependency of numba)
- Matplotlib
(Optional)
- FFmpeg (for saving a video.)
- Jupyter Notebook (for interactive block coding)
Tested Environment
Please, check "https://github.com/TaegonChung/ElegansBot/tested_environments.txt".
Usage
- Install library by
pip install elegansbot. - Use
from elegansbot import Wormto import the library. - Refer to the detailed instructions in the docstring of the "Worm" class. Below is a brief overview of potential use-cases:
- If you want to determine $\theta_{\mathrm{ctrl}}$ dynamically, it's advised to update "act" (equivalent to theta_ctrl) manually and then invoke the "steps" method on an instance of the "Worm" class.
- If you wish to use ElegansBot with a pre-determined $\theta_{\mathrm{ctrl}}$ (kymogram), it's recommended to utilize the "run" method of an instance of the "Worm" class.
Examples
You may want to check out examples in the "examples/" directory.
For instance, you can execute the example code with:
python examples/example01.py
Files:
- examples/example01.py : Dynamic input
- examples/example02.py : Kymogram input
- examples/example03.py : Kymogram input (Omega-turn)
- examples/example04.py : Kymogram input (Delta-turn)
- examples/example05.py : Frictional forces, power, and behavioral classification
Local Demo
Execute the following command:
python -m elegansbot.elegansbot
File Description
elegansbot.py: Main codeVideo_S1_omega_turn.avi: Video from the supplementary section of our paper.Video_S2_delta_turn.avi: Another video from the supplementary section of our paper.
Citing ElegansBot
- If ElegansBot has been significant in your research, and you would like to acknowledge this work in your academic publication, we suggest citing the following paper:
Taegon Chung, Iksoo Chang, Sangyeol Kim (2024) Development of equation of motion deciphering locomotion including omega turns of Caenorhabditis elegans eLife 12:RP92562 https://doi.org/10.7554/eLife.92562
Metadata
Release files for ElegansBot 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| elegansbot-1.0.2.tar.gz | 346.6 kB | Without provenance | Details for elegansbot-1.0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| elegansbot-1.0.2-py3-none-any.whl | Python 3 | none | any | Details for elegansbot-1.0.2-py3-none-any.whl |
Total release size: 360.6 kB
Release files / elegansbot-1.0.2.tar.gz
| Download URL | elegansbot-1.0.2.tar.gz |
|---|---|
| Size | 346.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
16ad4cd055b420ea45f42a9d4c914a58405da5373c6a47bac71b67c3807152ca
|
|
BLAKE2b-256 checksum How to use checksums |
b1073a1453d6e2df7f59e7a5d8fe3a652afbf7d77f23479bddd6767a18c1b0b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|
Release files / elegansbot-1.0.2-py3-none-any.whl
| Download URL | elegansbot-1.0.2-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fb6c8a39f3e60a8bbec94f25071b1664db50dfea129bfc3f3560454f2de74fdc
|
|
BLAKE2b-256 checksum How to use checksums |
1fb1208491dbb521c651f648fe9668ae1c7e9c2e2c0f04b9e8fe0ddfb3b26e17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.9
|
Security for ElegansBot 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.