spacr 0.4.2__tar.gz → 0.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {spacr-0.4.2/spacr.egg-info → spacr-0.4.3}/PKG-INFO +1 -1
- {spacr-0.4.2 → spacr-0.4.3}/setup.py +1 -1
- {spacr-0.4.2 → spacr-0.4.3}/spacr/core.py +19 -2
- {spacr-0.4.2 → spacr-0.4.3}/spacr/gui_core.py +37 -19
- {spacr-0.4.2 → spacr-0.4.3}/spacr/io.py +36 -127
- {spacr-0.4.2 → spacr-0.4.3/spacr.egg-info}/PKG-INFO +1 -1
- {spacr-0.4.2 → spacr-0.4.3}/.readthedocs.yaml +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/LICENSE +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/MANIFEST.in +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/README.rst +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/deploy_docs.sh +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/requirements.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/Makefile +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/doctrees/environment.pickle +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_sources/index.rst.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/basic.css +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/badge_only.css +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-bold.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-normal.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/theme.css +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/doctools.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/documentation_options.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/file.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bold.eot +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bold.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-italic.eot +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-italic.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-regular.eot +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-regular.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/jquery.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/js/badge_only.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/js/theme.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/js/versions.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/language_data.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/minus.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/plus.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/pygments.css +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/searchtools.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/sphinx_highlight.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/genindex.html +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/index.html +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/objects.inv +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/search.html +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/searchindex.js +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/conf.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/index.rst +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/docs/source/make.bat +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/environment.yaml +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/fonts/OpenSans-Regular.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/path/home/carruthers/datasets/plate1/measurements/measurements.db +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/path/home/carruthers/datasets/plate1/settings/measure_crop_settings.csv +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/path/settings/preprocess_generate_masks_settings.csv +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/requirements.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/settings/measure_crop_settings.csv +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/setup.cfg +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/setup_docs.sh +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/source/conf.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/source/index.rst +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/source/modules.rst +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/source/setup.rst +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/source/spacr.rst +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/__main__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/app_annotate.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/app_classify.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/app_make_masks.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/app_mask.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/app_measure.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/app_sequencing.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/app_umap.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/cellpose.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/chat_bot.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/deep_spacr.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/gui.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/gui_elements.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/gui_utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/logger.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/measure.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/mediar.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/ml.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/openai.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/plot.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/.gitignore +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/LICENSE +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/README.md +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/SetupDict.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/baseline.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/mediar_example.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/pred/pred_mediar.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/step1_pretraining/phase1.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/step1_pretraining/phase2.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/step2_finetuning/finetuning1.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/step2_finetuning/finetuning2.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/step3_prediction/base_prediction.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/config/step3_prediction/ensemble_tta.json +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/BasePredictor.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/BaseTrainer.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/Baseline/Predictor.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/Baseline/Trainer.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/Baseline/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/Baseline/utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/MEDIAR/EnsemblePredictor.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/MEDIAR/Predictor.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/MEDIAR/Trainer.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/MEDIAR/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/MEDIAR/utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/core/utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/evaluate.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/generate_mapping.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/image/examples/img1.tiff +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/image/examples/img2.tif +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/image/failure_cases.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/image/mediar_framework.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/image/mediar_model.PNG +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/image/mediar_results.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/main.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/predict.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/requirements.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/custom/CellAware.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/custom/LoadImage.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/custom/NormalizeImage.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/custom/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/custom/modalities.pkl +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/datasetter.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/transforms.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/data_utils/utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/measures.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/models/MEDIARFormer.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/models/__init__.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/MEDIAR/train_tools/utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/data/lopit.csv +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/data/toxoplasma_metadata.csv +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/OFL.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/README.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-Bold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-BoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-ExtraBold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-ExtraBoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-Italic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-Light.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-LightItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-Medium.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-MediumItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-Regular.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-SemiBold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans-SemiBoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Bold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-BoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-ExtraBoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Italic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Light.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-LightItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Medium.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-MediumItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-Regular.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_Condensed-SemiBoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Bold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-BoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Italic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Light.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-LightItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Medium.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-MediumItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-Regular.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBold.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/font/open_sans/static/OpenSans_SemiCondensed-SemiBoldItalic.ttf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/abort.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/annotate.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/cellpose_all.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/cellpose_masks.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/classify.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/convert.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/default.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/dna_matrix.mp4 +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/download.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/logo.pdf +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/logo_spacr.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/logo_spacr_1.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/make_masks.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/map_barcodes.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/mask.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/measure.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/ml_analyze.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/plaque.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/recruitment.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/regression.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/run.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/sequencing.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/settings.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/train_cellpose.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/icons/umap.png +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/images/plate1_E01_T0001F001L01A01Z01C02.tif +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/images/plate1_E01_T0001F001L01A02Z01C01.tif +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/resources/images/plate1_E01_T0001F001L01A03Z01C03.tif +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/sequencing.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/settings.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/sim.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/sp_stats.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/submodules.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/timelapse.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/toxo.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr/version.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr.egg-info/SOURCES.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr.egg-info/dependency_links.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr.egg-info/entry_points.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr.egg-info/requires.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/spacr.egg-info/top_level.txt +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_annotate_app.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_core.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_gui_classify_app.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_gui_mask_app.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_gui_measure_app.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_gui_sim_app.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_gui_utils.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_io.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_mask_app.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_measure.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_plot.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_sim.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_timelapse.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_train.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_umap.py +0 -0
- {spacr-0.4.2 → spacr-0.4.3}/tests/test_utils.py +0 -0
@@ -9,7 +9,7 @@ warnings.filterwarnings("ignore", message="3D stack used, but stitch_threshold=0
|
|
9
9
|
|
10
10
|
def preprocess_generate_masks(settings):
|
11
11
|
|
12
|
-
from .io import preprocess_img_data, _load_and_concatenate_arrays, convert_to_yokogawa
|
12
|
+
from .io import preprocess_img_data, _load_and_concatenate_arrays, convert_to_yokogawa, convert_separate_files_to_yokogawa
|
13
13
|
from .plot import plot_image_mask_overlay, plot_arrays
|
14
14
|
from .utils import _pivot_counts_table, check_mask_folder, adjust_cell_masks, print_progress, save_settings, delete_intermedeate_files, format_path_for_system, normalize_src_path
|
15
15
|
from .settings import set_default_settings_preprocess_generate_masks
|
@@ -30,10 +30,27 @@ def preprocess_generate_masks(settings):
|
|
30
30
|
if isinstance(settings['src'], list):
|
31
31
|
source_folders = settings['src']
|
32
32
|
for source_folder in source_folders:
|
33
|
+
|
33
34
|
print(f'Processing folder: {source_folder}')
|
34
35
|
|
35
36
|
if settings['metadata_type'] == 'auto':
|
36
|
-
|
37
|
+
if settings['custom_regex'] == None:
|
38
|
+
try:
|
39
|
+
convert_separate_files_to_yokogawa(folder=source_folder, regex=settings['custom_regex'])
|
40
|
+
except:
|
41
|
+
try:
|
42
|
+
convert_to_yokogawa(folder=source_folder)
|
43
|
+
except Exception as e:
|
44
|
+
print(f"Error: Tried to convert image files and image file name metadata with regex {settings['custom_regex']} then without regex but failed both.")
|
45
|
+
print(f'Error: {e}')
|
46
|
+
return
|
47
|
+
else:
|
48
|
+
try:
|
49
|
+
convert_to_yokogawa(folder=source_folder)
|
50
|
+
except Exception as e:
|
51
|
+
print(f"Error: Tried to convert image files and image file name metadata without regex but failed.")
|
52
|
+
print(f'Error: {e}')
|
53
|
+
return
|
37
54
|
|
38
55
|
source_folder = format_path_for_system(source_folder)
|
39
56
|
settings['src'] = source_folder
|
@@ -913,34 +913,52 @@ def check_src_folders_files(settings, settings_type, q):
|
|
913
913
|
conditions = [pictures_continue, folder_chan_continue, folder_stack_continue, folder_npz_continue]
|
914
914
|
|
915
915
|
if settings_type == 'measure':
|
916
|
+
if not os.path.basename(path) == 'merged':
|
917
|
+
path = os.path.join(path, "merged")
|
916
918
|
npy_continue = _folder_has_images(path, image_extensions={".npy"})
|
917
919
|
conditions = [npy_continue]
|
918
920
|
|
919
|
-
if settings_type == 'recruitment':
|
920
|
-
|
921
|
-
|
921
|
+
#if settings_type == 'recruitment':
|
922
|
+
# if not os.path.basename(path) == 'measurements':
|
923
|
+
# path = os.path.join(path, "measurements")
|
924
|
+
# db_continue = _folder_has_images(path, image_extensions={".db"})
|
925
|
+
# conditions = [db_continue]
|
922
926
|
|
923
|
-
if settings_type == 'umap':
|
924
|
-
|
925
|
-
|
927
|
+
#if settings_type == 'umap':
|
928
|
+
# if not os.path.basename(path) == 'measurements':
|
929
|
+
# path = os.path.join(path, "measurements")
|
930
|
+
# db_continue = _folder_has_images(path, image_extensions={".db"})
|
931
|
+
# conditions = [db_continue]
|
926
932
|
|
927
|
-
if settings_type == 'analyze_plaques':
|
928
|
-
|
933
|
+
#if settings_type == 'analyze_plaques':
|
934
|
+
# if not os.path.basename(path) == 'measurements':
|
935
|
+
# path = os.path.join(path, "measurements")
|
936
|
+
# db_continue = _folder_has_images(path, image_extensions={".db"})
|
937
|
+
# conditions = [db_continue]
|
929
938
|
|
930
|
-
if settings_type == 'map_barcodes':
|
931
|
-
|
939
|
+
#if settings_type == 'map_barcodes':
|
940
|
+
# if not os.path.basename(path) == 'measurements':
|
941
|
+
# path = os.path.join(path, "measurements")
|
942
|
+
# db_continue = _folder_has_images(path, image_extensions={".db"})
|
943
|
+
# conditions = [db_continue]
|
932
944
|
|
933
|
-
if settings_type == 'regression':
|
934
|
-
|
935
|
-
|
945
|
+
#if settings_type == 'regression':
|
946
|
+
# if not os.path.basename(path) == 'measurements':
|
947
|
+
# path = os.path.join(path, "measurements")
|
948
|
+
# db_continue = _folder_has_images(path, image_extensions={".db"})
|
949
|
+
# conditions = [db_continue]
|
936
950
|
|
937
|
-
if settings_type == 'classify':
|
938
|
-
|
939
|
-
|
951
|
+
#if settings_type == 'classify':
|
952
|
+
# if not os.path.basename(path) == 'measurements':
|
953
|
+
# path = os.path.join(path, "measurements")
|
954
|
+
# db_continue = _folder_has_images(path, image_extensions={".db"})
|
955
|
+
# conditions = [db_continue]
|
940
956
|
|
941
|
-
if settings_type == 'analyze_plaques':
|
942
|
-
|
943
|
-
|
957
|
+
#if settings_type == 'analyze_plaques':
|
958
|
+
# if not os.path.basename(path) == 'measurements':
|
959
|
+
# path = os.path.join(path, "measurements")
|
960
|
+
# db_continue = _folder_has_images(path, image_extensions={".db"})
|
961
|
+
# conditions = [db_continue]
|
944
962
|
|
945
963
|
if not any(conditions):
|
946
964
|
q.put(f"Error: The following path(s) is missing images or folders: {path}")
|
@@ -3104,157 +3104,66 @@ def generate_dataset_from_lists(dst, class_data, classes, test_split=0.1):
|
|
3104
3104
|
|
3105
3105
|
return os.path.join(dst, 'train'), os.path.join(dst, 'test')
|
3106
3106
|
|
3107
|
-
def
|
3108
|
-
""
|
3109
|
-
|
3110
|
-
|
3111
|
-
|
3112
|
-
|
3107
|
+
def convert_separate_files_to_yokogawa(folder, regex):
|
3108
|
+
ROWS = "ABCDEFGHIJKLMNOP"
|
3109
|
+
COLS = [f"{i:02d}" for i in range(1, 25)]
|
3110
|
+
WELLS = [f"{r}{c}" for r in ROWS for c in COLS]
|
3111
|
+
|
3113
3112
|
def _get_next_well(used_wells):
|
3114
|
-
"""
|
3115
|
-
Determines the next available well position in a 384-well format.
|
3116
|
-
Iterates wells, and after P24, switches to plate2.
|
3117
|
-
"""
|
3118
3113
|
plate = 1
|
3119
3114
|
for well in WELLS:
|
3120
3115
|
well_name = f"plate{plate}_{well}"
|
3121
3116
|
if well_name not in used_wells:
|
3122
3117
|
return well_name
|
3123
|
-
if well == "P24":
|
3124
|
-
plate += 1
|
3118
|
+
if well == "P24":
|
3119
|
+
plate += 1
|
3125
3120
|
return f"plate{plate}_A01"
|
3126
3121
|
|
3127
|
-
|
3128
|
-
ROWS = "ABCDEFGHIJKLMNOP"
|
3129
|
-
COLS = [f"{i:02d}" for i in range(1, 25)]
|
3130
|
-
WELLS = [f"{r}{c}" for r in ROWS for c in COLS]
|
3122
|
+
pattern = re.compile(regex, re.I)
|
3131
3123
|
|
3132
|
-
|
3124
|
+
files_by_fov = {}
|
3133
3125
|
rename_log = []
|
3134
3126
|
csv_path = os.path.join(folder, "rename_log.csv")
|
3135
3127
|
used_wells = set(os.listdir(folder))
|
3128
|
+
fov_to_well = {}
|
3136
3129
|
|
3130
|
+
# Group files by FOV
|
3137
3131
|
for file in os.listdir(folder):
|
3138
|
-
|
3139
|
-
|
3140
|
-
|
3141
|
-
|
3142
|
-
if ext == 'nd2':
|
3143
|
-
nd2 = ND2Reader(path)
|
3144
|
-
metadata = nd2.metadata
|
3145
|
-
|
3146
|
-
timepoints = metadata.get("frames", [0])
|
3147
|
-
fields = metadata.get("fields_of_view", [0])
|
3148
|
-
z_levels = list(metadata.get("z_levels", range(1)))
|
3149
|
-
channels = metadata.get("channels", [])
|
3150
|
-
|
3151
|
-
for t_idx in timepoints:
|
3152
|
-
for f_idx in fields:
|
3153
|
-
for c_idx, channel in enumerate(channels):
|
3154
|
-
well = _get_next_well(used_wells)
|
3155
|
-
|
3156
|
-
z_stack = [nd2.get_frame_2D(t=t_idx, v=f_idx, z=z_idx, c=c_idx) for z_idx in z_levels]
|
3157
|
-
mip_image = np.max(np.stack(z_stack), axis=0)
|
3158
|
-
dtype = z_stack[0].dtype
|
3159
|
-
|
3160
|
-
filename = f"{well}_T{t_idx+1:04d}F{f_idx+1:03d}L01C{c_idx+1:02d}.tif"
|
3161
|
-
filepath = os.path.join(folder, filename)
|
3162
|
-
tifffile.imwrite(filepath, mip_image.astype(dtype))
|
3163
|
-
used_wells.add(well)
|
3164
|
-
rename_log.append({"Original File": file, "Renamed TIFF": filename})
|
3165
|
-
|
3166
|
-
### **Process Zeiss CZI Files**
|
3167
|
-
elif ext == 'czi':
|
3168
|
-
with czifile.CziFile(path) as czi:
|
3169
|
-
shape = czi.shape
|
3170
|
-
|
3171
|
-
timepoints = range(shape[0])
|
3172
|
-
z_levels = range(shape[1])
|
3173
|
-
channels = range(shape[2])
|
3174
|
-
|
3175
|
-
for t_idx in timepoints:
|
3176
|
-
for c_idx in channels:
|
3177
|
-
well = _get_next_well(used_wells)
|
3178
|
-
|
3179
|
-
z_stack = [czi.asarray()[t_idx, z_idx, c_idx] for z_idx in z_levels]
|
3180
|
-
mip_image = np.max(np.stack(z_stack), axis=0)
|
3181
|
-
dtype = z_stack[0].dtype
|
3182
|
-
|
3183
|
-
filename = f"{well}_T{t_idx+1:04d}F001L01C{c_idx+1:02d}.tif"
|
3184
|
-
filepath = os.path.join(folder, filename)
|
3185
|
-
tifffile.imwrite(filepath, mip_image.astype(dtype))
|
3186
|
-
used_wells.add(well)
|
3187
|
-
rename_log.append({"Original File": file, "Renamed TIFF": filename})
|
3188
|
-
|
3189
|
-
### **Process Leica LIF Files**
|
3190
|
-
elif ext == 'lif':
|
3191
|
-
lif_file = readlif.Reader(path)
|
3192
|
-
|
3193
|
-
for image in lif_file.getIterImage():
|
3194
|
-
timepoints = range(image.dims.t)
|
3195
|
-
z_levels = range(image.dims.z)
|
3196
|
-
channels = range(image.dims.c)
|
3197
|
-
|
3198
|
-
for t_idx in timepoints:
|
3199
|
-
for c_idx in channels:
|
3200
|
-
well = _get_next_well(used_wells)
|
3132
|
+
match = pattern.match(file)
|
3133
|
+
if not match:
|
3134
|
+
print(f"Skipping {file}: does not match regex.")
|
3135
|
+
continue
|
3201
3136
|
|
3202
|
-
|
3203
|
-
mip_image = np.max(np.stack(z_stack), axis=0)
|
3204
|
-
dtype = z_stack[0].dtype
|
3137
|
+
meta = match.groupdict()
|
3205
3138
|
|
3206
|
-
|
3207
|
-
|
3208
|
-
|
3209
|
-
used_wells.add(well)
|
3210
|
-
rename_log.append({"Original File": file, "Renamed TIFF": filename})
|
3139
|
+
# Extract required metadata
|
3140
|
+
fov = meta['fov']
|
3141
|
+
channel = int(meta['channel'])
|
3211
3142
|
|
3212
|
-
|
3213
|
-
|
3214
|
-
|
3215
|
-
well = _get_next_well(used_wells)
|
3216
|
-
num_pages = len(tif.pages)
|
3143
|
+
# Optional metadata with defaults
|
3144
|
+
time = int(meta.get('time', 1))
|
3145
|
+
z_slice = int(meta.get('slice', 1))
|
3217
3146
|
|
3218
|
-
|
3219
|
-
# Assume multi-channel or z-stack
|
3220
|
-
images = tif.asarray()
|
3221
|
-
if images.ndim == 4: # (T, Z, C, Y, X)
|
3222
|
-
timepoints = range(images.shape[0])
|
3223
|
-
z_levels = range(images.shape[1])
|
3224
|
-
channels = range(images.shape[2])
|
3147
|
+
files_by_fov.setdefault(fov, []).append((file, channel, time, z_slice))
|
3225
3148
|
|
3226
|
-
|
3227
|
-
|
3228
|
-
|
3229
|
-
|
3149
|
+
# Assign wells per FOV
|
3150
|
+
for fov, file_list in files_by_fov.items():
|
3151
|
+
if fov not in fov_to_well:
|
3152
|
+
fov_to_well[fov] = _get_next_well(used_wells)
|
3153
|
+
used_wells.add(fov_to_well[fov])
|
3230
3154
|
|
3231
|
-
|
3232
|
-
filepath = os.path.join(folder, filename)
|
3233
|
-
tifffile.imwrite(filepath, mip_image.astype(dtype))
|
3234
|
-
used_wells.add(well)
|
3235
|
-
rename_log.append({"Original File": file, "Renamed TIFF": filename})
|
3155
|
+
well = fov_to_well[fov]
|
3236
3156
|
|
3237
|
-
|
3238
|
-
|
3239
|
-
|
3240
|
-
dtype = images.dtype
|
3157
|
+
for original_file, channel, time, z_slice in file_list:
|
3158
|
+
img = tifffile.imread(os.path.join(folder, original_file))
|
3159
|
+
dtype = img.dtype
|
3241
3160
|
|
3242
|
-
|
3243
|
-
|
3244
|
-
|
3245
|
-
used_wells.add(well)
|
3246
|
-
rename_log.append({"Original File": file, "Renamed TIFF": filename})
|
3247
|
-
else:
|
3248
|
-
image = tif.pages[0].asarray()
|
3249
|
-
dtype = image.dtype
|
3161
|
+
filename = f"{well}_T{time:04d}F001L01C{channel:02d}Z{z_slice:03d}.tif"
|
3162
|
+
filepath = os.path.join(folder, filename)
|
3163
|
+
tifffile.imwrite(filepath, img.astype(dtype))
|
3250
3164
|
|
3251
|
-
|
3252
|
-
filepath = os.path.join(folder, filename)
|
3253
|
-
tifffile.imwrite(filepath, image.astype(dtype))
|
3254
|
-
used_wells.add(well)
|
3255
|
-
rename_log.append({"Original File": file, "Renamed TIFF": filename})
|
3165
|
+
rename_log.append({"Original File": original_file, "Renamed TIFF": filename})
|
3256
3166
|
|
3257
|
-
# Save rename log as CSV
|
3258
3167
|
pd.DataFrame(rename_log).to_csv(csv_path, index=False)
|
3259
3168
|
print(f"Processing complete. Files saved in {folder} and rename log saved as {csv_path}.")
|
3260
3169
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/_sphinx_javascript_frameworks_compat.js
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.eot
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.svg
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.ttf
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/fontawesome-webfont.woff2
RENAMED
File without changes
|
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-bold-italic.woff2
RENAMED
File without changes
|
File without changes
|
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/css/fonts/lato-normal-italic.woff2
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/Lato/lato-bolditalic.woff2
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/docs/source/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/path/home/carruthers/datasets/plate1/measurements/measurements.db
RENAMED
File without changes
|
{spacr-0.4.2 → spacr-0.4.3}/path/home/carruthers/datasets/plate1/settings/measure_crop_settings.csv
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|