├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ ├── feature_request.md │ └── installation-issue.md └── workflows │ └── test_and_deploy.yml ├── .gitignore ├── .readthedocs.yml ├── .style.yapf ├── LICENSE ├── MANIFEST.in ├── README.md ├── cellpose ├── __init__.py ├── __main__.py ├── cli.py ├── contrib │ └── distributed_segmentation.py ├── core.py ├── denoise.py ├── dynamics.py ├── export.py ├── gui │ ├── gui.py │ ├── gui3d.py │ ├── guihelpwindowtext.html │ ├── guiparts.py │ ├── guitrainhelpwindowtext.html │ ├── io.py │ ├── make_train.py │ └── menus.py ├── io.py ├── logo │ ├── cellpose.ico │ └── logo.png ├── metrics.py ├── models.py ├── plot.py ├── train.py ├── transforms.py ├── utils.py ├── version.py └── vit_sam.py ├── codecov.yml ├── conftest.py ├── docs ├── _static │ ├── cellpose_to_imagej.gif │ ├── ex_seg.png │ ├── favicon.ico │ └── fig1.PNG ├── api.rst ├── benchmark.rst ├── cli.rst ├── command.rst ├── conf.py ├── distributed.rst ├── do3d.rst ├── faq.rst ├── gui.rst ├── index.rst ├── inputs.rst ├── installation.rst ├── models.rst ├── notebook.rst ├── outputs.rst ├── requirements.txt ├── restore.rst ├── settings.rst └── train.rst ├── environment.yml ├── imagej_roi_converter.py ├── model_quantization.ipynb ├── notebooks ├── run_Cellpose-SAM.ipynb ├── run_cellpose3.ipynb ├── test_Cellpose-SAM.ipynb └── train_Cellpose-SAM.ipynb ├── paper ├── 1.0 │ ├── cp_unets.py │ ├── performance_figs.py │ └── train_maskrcnn.py ├── 2.0 │ ├── datasets.py │ ├── train_specialists.py │ └── train_subsets.py ├── 3.0 │ ├── README.md │ ├── analysis.py │ ├── care.py │ ├── fig_utils.py │ ├── figures.py │ ├── noise2self.py │ ├── noise2void.py │ └── train_subsets.py ├── cpsam │ ├── benchmark_all_sam.ipynb │ ├── benchmarks.py │ ├── eval_3D.py │ ├── fig_utils.py │ ├── figures.py │ ├── invariances.ipynb │ ├── semantic.py │ └── train_subsets.py └── neurips │ ├── analysis.py │ ├── fig_utils.py │ └── figures.py ├── pyinstaller ├── cli_mac.spec └── cli_windows.spec ├── setup.cfg ├── setup.py ├── tests ├── test_dynamics.py ├── test_import.py ├── test_output.py ├── test_shape.py ├── test_train.py ├── test_transforms.py └── test_utils.py └── tox.ini /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/installation-issue.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/.github/ISSUE_TEMPLATE/installation-issue.md -------------------------------------------------------------------------------- /.github/workflows/test_and_deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/.github/workflows/test_and_deploy.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/.gitignore -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/.readthedocs.yml -------------------------------------------------------------------------------- /.style.yapf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/.style.yapf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/MANIFEST.in -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/README.md -------------------------------------------------------------------------------- /cellpose/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/__init__.py -------------------------------------------------------------------------------- /cellpose/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/__main__.py -------------------------------------------------------------------------------- /cellpose/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/cli.py -------------------------------------------------------------------------------- /cellpose/contrib/distributed_segmentation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/contrib/distributed_segmentation.py -------------------------------------------------------------------------------- /cellpose/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/core.py -------------------------------------------------------------------------------- /cellpose/denoise.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/denoise.py -------------------------------------------------------------------------------- /cellpose/dynamics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/dynamics.py -------------------------------------------------------------------------------- /cellpose/export.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/export.py -------------------------------------------------------------------------------- /cellpose/gui/gui.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/gui.py -------------------------------------------------------------------------------- /cellpose/gui/gui3d.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/gui3d.py -------------------------------------------------------------------------------- /cellpose/gui/guihelpwindowtext.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/guihelpwindowtext.html -------------------------------------------------------------------------------- /cellpose/gui/guiparts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/guiparts.py -------------------------------------------------------------------------------- /cellpose/gui/guitrainhelpwindowtext.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/guitrainhelpwindowtext.html -------------------------------------------------------------------------------- /cellpose/gui/io.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/io.py -------------------------------------------------------------------------------- /cellpose/gui/make_train.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/make_train.py -------------------------------------------------------------------------------- /cellpose/gui/menus.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/gui/menus.py -------------------------------------------------------------------------------- /cellpose/io.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/io.py -------------------------------------------------------------------------------- /cellpose/logo/cellpose.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/logo/cellpose.ico -------------------------------------------------------------------------------- /cellpose/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/logo/logo.png -------------------------------------------------------------------------------- /cellpose/metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/metrics.py -------------------------------------------------------------------------------- /cellpose/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/models.py -------------------------------------------------------------------------------- /cellpose/plot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/plot.py -------------------------------------------------------------------------------- /cellpose/train.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/train.py -------------------------------------------------------------------------------- /cellpose/transforms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/transforms.py -------------------------------------------------------------------------------- /cellpose/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/utils.py -------------------------------------------------------------------------------- /cellpose/version.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/version.py -------------------------------------------------------------------------------- /cellpose/vit_sam.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/cellpose/vit_sam.py -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/codecov.yml -------------------------------------------------------------------------------- /conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/conftest.py -------------------------------------------------------------------------------- /docs/_static/cellpose_to_imagej.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/_static/cellpose_to_imagej.gif -------------------------------------------------------------------------------- /docs/_static/ex_seg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/_static/ex_seg.png -------------------------------------------------------------------------------- /docs/_static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/_static/favicon.ico -------------------------------------------------------------------------------- /docs/_static/fig1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/_static/fig1.PNG -------------------------------------------------------------------------------- /docs/api.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/api.rst -------------------------------------------------------------------------------- /docs/benchmark.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/benchmark.rst -------------------------------------------------------------------------------- /docs/cli.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/cli.rst -------------------------------------------------------------------------------- /docs/command.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/command.rst -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/distributed.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/distributed.rst -------------------------------------------------------------------------------- /docs/do3d.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/do3d.rst -------------------------------------------------------------------------------- /docs/faq.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/faq.rst -------------------------------------------------------------------------------- /docs/gui.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/gui.rst -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/inputs.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/inputs.rst -------------------------------------------------------------------------------- /docs/installation.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/installation.rst -------------------------------------------------------------------------------- /docs/models.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/models.rst -------------------------------------------------------------------------------- /docs/notebook.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/notebook.rst -------------------------------------------------------------------------------- /docs/outputs.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/outputs.rst -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/requirements.txt -------------------------------------------------------------------------------- /docs/restore.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/restore.rst -------------------------------------------------------------------------------- /docs/settings.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/settings.rst -------------------------------------------------------------------------------- /docs/train.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/docs/train.rst -------------------------------------------------------------------------------- /environment.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/environment.yml -------------------------------------------------------------------------------- /imagej_roi_converter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/imagej_roi_converter.py -------------------------------------------------------------------------------- /model_quantization.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/model_quantization.ipynb -------------------------------------------------------------------------------- /notebooks/run_Cellpose-SAM.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/notebooks/run_Cellpose-SAM.ipynb -------------------------------------------------------------------------------- /notebooks/run_cellpose3.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/notebooks/run_cellpose3.ipynb -------------------------------------------------------------------------------- /notebooks/test_Cellpose-SAM.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/notebooks/test_Cellpose-SAM.ipynb -------------------------------------------------------------------------------- /notebooks/train_Cellpose-SAM.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/notebooks/train_Cellpose-SAM.ipynb -------------------------------------------------------------------------------- /paper/1.0/cp_unets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/1.0/cp_unets.py -------------------------------------------------------------------------------- /paper/1.0/performance_figs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/1.0/performance_figs.py -------------------------------------------------------------------------------- /paper/1.0/train_maskrcnn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/1.0/train_maskrcnn.py -------------------------------------------------------------------------------- /paper/2.0/datasets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/2.0/datasets.py -------------------------------------------------------------------------------- /paper/2.0/train_specialists.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/2.0/train_specialists.py -------------------------------------------------------------------------------- /paper/2.0/train_subsets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/2.0/train_subsets.py -------------------------------------------------------------------------------- /paper/3.0/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/README.md -------------------------------------------------------------------------------- /paper/3.0/analysis.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/analysis.py -------------------------------------------------------------------------------- /paper/3.0/care.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/care.py -------------------------------------------------------------------------------- /paper/3.0/fig_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/fig_utils.py -------------------------------------------------------------------------------- /paper/3.0/figures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/figures.py -------------------------------------------------------------------------------- /paper/3.0/noise2self.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/noise2self.py -------------------------------------------------------------------------------- /paper/3.0/noise2void.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/noise2void.py -------------------------------------------------------------------------------- /paper/3.0/train_subsets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/3.0/train_subsets.py -------------------------------------------------------------------------------- /paper/cpsam/benchmark_all_sam.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/benchmark_all_sam.ipynb -------------------------------------------------------------------------------- /paper/cpsam/benchmarks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/benchmarks.py -------------------------------------------------------------------------------- /paper/cpsam/eval_3D.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/eval_3D.py -------------------------------------------------------------------------------- /paper/cpsam/fig_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/fig_utils.py -------------------------------------------------------------------------------- /paper/cpsam/figures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/figures.py -------------------------------------------------------------------------------- /paper/cpsam/invariances.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/invariances.ipynb -------------------------------------------------------------------------------- /paper/cpsam/semantic.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/semantic.py -------------------------------------------------------------------------------- /paper/cpsam/train_subsets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/cpsam/train_subsets.py -------------------------------------------------------------------------------- /paper/neurips/analysis.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/neurips/analysis.py -------------------------------------------------------------------------------- /paper/neurips/fig_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/neurips/fig_utils.py -------------------------------------------------------------------------------- /paper/neurips/figures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/paper/neurips/figures.py -------------------------------------------------------------------------------- /pyinstaller/cli_mac.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/pyinstaller/cli_mac.spec -------------------------------------------------------------------------------- /pyinstaller/cli_windows.spec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/pyinstaller/cli_windows.spec -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/setup.cfg -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/setup.py -------------------------------------------------------------------------------- /tests/test_dynamics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tests/test_dynamics.py -------------------------------------------------------------------------------- /tests/test_import.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tests/test_import.py -------------------------------------------------------------------------------- /tests/test_output.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tests/test_output.py -------------------------------------------------------------------------------- /tests/test_shape.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tests/test_shape.py -------------------------------------------------------------------------------- /tests/test_train.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tests/test_train.py -------------------------------------------------------------------------------- /tests/test_transforms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tests/test_transforms.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tests/test_utils.py -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MouseLand/cellpose/HEAD/tox.ini --------------------------------------------------------------------------------