{"name":"napari-mAIcrobe","display_name":"mAIcrobe","visibility":"public","icon":null,"categories":[],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-mAIcrobe.phase_example","title":"Load phase contrast S.aureus sample data","python_name":"napari_mAIcrobe._sample_data:phase_example","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-mAIcrobe.membrane_example","title":"Load membrane dye S.aureus sample data","python_name":"napari_mAIcrobe._sample_data:membrane_example","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-mAIcrobe.dna_example","title":"Load DNA dye S.aureus sample data","python_name":"napari_mAIcrobe._sample_data:dna_example","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-mAIcrobe.compute_label","title":"Compute label","python_name":"napari_mAIcrobe._computelabel:compute_label","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-mAIcrobe.compute_cells","title":"Compute cells","python_name":"napari_mAIcrobe._computecells:compute_cells","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-mAIcrobe.filter_cells","title":"Filter cells","python_name":"napari_mAIcrobe._filtercells:filter_cells","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-mAIcrobe.compute_pickles","title":"Save annotated cells as pickles","python_name":"napari_mAIcrobe._compute_pickles:compute_pickles","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"napari-mAIcrobe.batch_analysis","title":"Batch analysis","python_name":"napari_mAIcrobe._batchanalysis:batch_analysis","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-mAIcrobe.compute_label","display_name":"Compute label","autogenerate":false},{"command":"napari-mAIcrobe.compute_cells","display_name":"Compute cells","autogenerate":false},{"command":"napari-mAIcrobe.filter_cells","display_name":"Filter cells","autogenerate":false},{"command":"napari-mAIcrobe.compute_pickles","display_name":"Save annotated cells as pickles","autogenerate":false},{"command":"napari-mAIcrobe.batch_analysis","display_name":"Batch analysis","autogenerate":false}],"sample_data":[{"command":"napari-mAIcrobe.phase_example","key":"unique_id.1","display_name":"Phase contrast S. aureus"},{"command":"napari-mAIcrobe.membrane_example","key":"unique_id.2","display_name":"Membrane dye S.aureus"},{"command":"napari-mAIcrobe.dna_example","key":"unique_id.3","display_name":"DNA dye S.aureus"}],"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"napari-mAIcrobe","version":"0.1.1","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"mAIcrobe","description":"[![License BSD-3](https://img.shields.io/pypi/l/napari-mAIcrobe.svg?color=green)](https://github.com/HenriquesLab/mAIcrobe/raw/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/napari-mAIcrobe.svg?color=green)](https://pypi.org/project/napari-mAIcrobe)\n[![Python Version](https://img.shields.io/pypi/pyversions/napari-mAIcrobe.svg?color=green)](https://python.org)\n[![tests](https://github.com/HenriquesLab/mAIcrobe/actions/workflows/test_oncall.yml/badge.svg)](https://github.com/HenriquesLab/mAIcrobe/actions/workflows/test_oncall.yml)\n[![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/napari-mAIcrobe)](https://napari-hub.org/plugins/napari-mAIcrobe)\n[![Website](https://img.shields.io/badge/maicrobe.henriqueslab.org-purple)](https://maicrobe.henriqueslab.org)\n[![Preprint](https://img.shields.io/badge/preprint-biorxiv-blue)](https://www.biorxiv.org/content/10.1101/2025.10.21.683709v2)\n\n# mAIcrobe\n\n<img src=\"https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/logowhitebg.png?raw=true\" align=\"right\" width=\"200\" style=\"margin-left: 20px;\"/>\n\n**mAIcrobe: a napari plugin for microbial image analysis.**\n\nmAIcrobe is a comprehensive napari plugin that facilitates image analysis workflows of bacterial cells. Combining state-of-the-art segmentation approaches, morphological analysis and adaptable classification models into a napari-plugin, mAIcrobe aims to deliver a user-friendly interface that helps inexperienced users perform image analysis tasks regardless of the bacterial species and microscopy modality. Built using Python 3.10 and 3.11 and tested on Windows, and macOS.\n\n**You can read more about mAIcrobe in our [preprint](https://www.biorxiv.org/content/10.1101/2025.10.21.683709v2).**\n\n## Video Showcase\n\n[![Video](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/Images/Screenshotyoutube.png?raw=true)](https://youtu.be/UQ-dgATCgkU)\n\n## ✨ Why mAIcrobe?\n\n### 🔬 **For Microbiologists**\n- **Automated Cell Segmentation**: StarDist2D, Cellpose, and custom U-Net models. Several pre-trained models also included.\n- **Deep learning classification**: 6 pre-trained CNN models for *S. aureus* cell cycle determination, a pre-trained model for *E. coli* antibiotic phenotyping plus support for custom models.\n- **Morphological Analysis**: Comprehensive measurements using scikit-image regionprops\n- **Interactive Filtering**: Real-time cell selection based on computed statistics\n\n### 📊 **For Quantitative Research**\n- **Colocalization Analysis**: Multi-channel fluorescence quantification\n- **Timelapse Analysis**: 2D+t workflows with optional registration and label reassignment\n- **Batch Processing**: Analyze one folder containing multiple FoVs with merged outputs\n- **Automated Reports**: HTML reports with visualizations and statistics\n- **Data Export**: CSV export for downstream statistical analysis\n\n\n## 🚀 Installation\n\n**Standard Installation:**\n\nWe recommend using an environment manager like [conda](https://docs.conda.io/en/latest/) to handle dependencies and assure reproducibility.\n\nRegardless of environment, you can install via pip in Python 3.10 or 3.11. This should handle all dependencies and might take a couple of minutes depending on your internet connection.\n\n```bash\npip install napari-mAIcrobe\n```\n\n**Development Installation:**\n\n```bash\ngit clone https://github.com/HenriquesLab/mAIcrobe.git\ncd mAIcrobe\npip install -e .\n```\n\n**🎯 [Detailed Installation Instructions →](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/getting-started.md)**\n\n## 🏆 Key Features\n\n### 🎨 **Cell Segmentation**\n- **Thresholding**: Isodata and Local Average methods with watershed\n- **StarDist2D**: custom models (pretrained available for *S. aureus*)\n- **Cellpose**: cyto3 model\n- **Custom U-Net Models**: custom models (pretrained available for *S. aureus*, *B. subtilis*, and *S. pneumoniae*)\n\n### 🧠 **Single cell Classification**\n- **Pre-trained Models**: *S. aureus* cell cycle and *E. coli* antibiotic phenotyping\n- **Custom Model Support**: Build your training dataset in napari with out custom [widget](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/tutorials/generate_trainingdata.md), train using our jupyter notebook and load your own TensorFlow models,\n\n### 📊 **Comprehensive Morphometry**\n- **Shape Analysis**: Area, perimeter, eccentricity\n- **Intensity Measurements**: Fluorescence statistics\n- **Custom Measurements**: Septum detection, colocalization, and more\n\n## 🔗 Integration with other tools\n\nmAIcrobe is designed to fit into broader image-analysis workflows.\n\n- **napari ecosystem**: Keep working in napari with complementary plugins by reusing the layers generated in mAIcrobe (images, labels, and measurements).\n- **Fiji / TrackMate**: Export labels and measurement tables for downstream tracking and curation workflows in Fiji, including TrackMate-compatible analysis pipelines.\n- **Open outputs**: Use exported CSV tables in Python, R, Prism, or spreadsheet tools for custom analysis and visualization.\n\n## 📖 Documentation\n\n| Guide | Purpose |\n|-------|---------|\n| **[🚀 Getting Started](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/getting-started.md)** | Installation to first analysis using sample data|\n| **[🔬 Segmentation Guide](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/segmentation-guide.md)** | Explore the available segmentation methods|\n| **[📊 Cell Analysis](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/cell-analysis.md)** | Explore complete analysis workflow and check the metrics measured |\n| **[🧠 Cell Classification Guide](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/cell-classification.md)** | Explore the available classification models |\n| **[⏱️ Timelapse Analysis](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/timelapse-analysis.md)** | Analyze `(T, Y, X)` data with optional registration and relabeling |\n| **[📁 Batch Analysis Workflow](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/batch-analysis.md)** | Process many FoVs from one root folder and export merged tables |\n\n| Tutorial | Purpose |\n|-------|---------|\n| **[🎨 Basic Workflow](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/tutorials/basic-workflow.md)** | Step-by-step guide with a simple example (<5 minutes)|\n| **[🛠️ Generate Training Data](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/tutorials/generate_trainingdata.md)** | Create annotated datasets for custom model training |\n\n\n| Video | Purpose |\n|-------|---------|\n| **[🎨 Basic Workflow](https://youtu.be/UQ-dgATCgkU)** | Step-by-step guide with a simple example (<5 minutes)|\n| **[🛠️ Full workflow](https://youtu.be/szYAi0zSKSA)** | Full workflow from installation to export of results |\n| **[🧠 How to retrain the classifier ](https://youtu.be/fO3XxTM3xk8)** | Create annotated datasets, train your custom model and use it in mAIcrobe |\n\n\n**For programmatic usage:**\n| **[⚙️ API Reference](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/api/api-reference.md)**\n\n\n## 📚 Available Jupyter Notebooks\n\nExplore advanced functionality with included notebooks:\n\n- **[Cell Cycle Model Training](https://github.com/HenriquesLab/mAIcrobe/blob/main/notebooks/napari_mAIcrobe_cellcyclemodel.ipynb)**: To train custom classification models\n- **[StarDist Segmentation](https://github.com/HenriquesLab/mAIcrobe/blob/main/notebooks/StarDistSegmentationTraining.ipynb)**: To retrain a StarDist segmentation model\n\n## 🤝 Community\n\n- **🐛 [Issues](https://github.com/HenriquesLab/mAIcrobe/issues)** - Report bugs, request features\n- **📚 [napari hub](https://napari-hub.org/plugins/napari-mAIcrobe)** - Plugin ecosystem\n\n## 🏗️ Contributing\n\nWe welcome contributions! Whether it's:\n\n- 🐛 Bug reports and fixes\n- ✨ New segmentation algorithms\n- 📖 Documentation improvements\n- 🧪 Additional test datasets\n- 🤖 New AI models for classification\n\n**Quick contributor setup:**\n```bash\ngit clone https://github.com/HenriquesLab/mAIcrobe.git\ncd mAIcrobe\npip install -e .[testing]\npre-commit install\n```\n\n**Testing:**\n```bash\n# Run tests\npytest -v\n\n# Run tests with coverage\npytest --cov=napari_mAIcrobe\n\n# Run tests across Python versions\ntox\n```\n\n**[📋 Full Contributing Guide →](CONTRIBUTING.md)**\n\n\n## 📜 License\n\nDistributed under the terms of the [BSD-3](http://opensource.org/licenses/BSD-3-Clause) license, mAIcrobe is free and open source software.\n\n## 🙏 Acknowledgments\n\nmAIcrobe is developed in the [Henriques](https://henriqueslab.org) and [Pinho](https://www.itqb.unl.pt/research/biology/bacterial-cell-biology) Labs with contributions from the napari and scientific Python communities.\n\n**Built with:**\n- [napari](https://napari.org/) - Multi-dimensional image viewer\n- [TensorFlow](https://tensorflow.org/) - Machine learning framework\n- [StarDist](https://github.com/stardist/stardist) - Object detection with star-convex shapes\n- [Cellpose](https://github.com/MouseLand/cellpose) - Generalist cell segmentation\n- [scikit-image](https://scikit-image.org/) - Image processing library\n\n---\n\n<div align=\"center\">\n\n**🔬 From the [Henriques](https://henriqueslab.org) and [Pinho](https://www.itqb.unl.pt/research/biology/bacterial-cell-biology) Labs**\n\n*\"Advancing microbiology through AI-powered image analysis.\"*\n\n**[🚀 Get Started →](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/getting-started.md)** | **[⏱️ Timelapse Guide →](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/timelapse-analysis.md)** | **[📁 Batch Workflow →](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/user-guide/batch-analysis.md)** | **[⚙️ API Docs →](https://github.com/HenriquesLab/mAIcrobe/blob/main/docs/api/api-reference.md)**\n\n</div>\n","description_content_type":"text/markdown","keywords":null,"home_page":"https://github.com/HenriquesLab/napari-mAIcrobe","download_url":null,"author":"António Brito","author_email":"antmsbrito95@gmail.com","maintainer":null,"maintainer_email":null,"license":"BSD-3-Clause","classifier":["Development Status :: 2 - Pre-Alpha","Framework :: napari","Intended Audience :: Developers","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["numpy<2.0","magicgui>=0.10.0","napari[all]","tensorflow<=2.15.0","napari-skimage-regionprops","stardist-napari==2022.12.6","scikit-learn","scikit-image==0.20.0","pandas","cellpose==3.1.1.1","tox; extra == \"testing\"","pytest; extra == \"testing\"","pytest-cov; extra == \"testing\"","pytest-qt; extra == \"testing\"","napari; extra == \"testing\"","pyqt5; extra == \"testing\"","jupyterlab; extra == \"jupyter\"","seaborn; extra == \"jupyter\""],"requires_python":">=3.8","requires_external":null,"project_url":["Bug Tracker, https://github.com/HenriquesLab/mAIcrobe/issues","Documentation, https://github.com/HenriquesLab/mAIcrobe#README.md","Source Code, https://github.com/HenriquesLab/mAIcrobe","User Support, https://github.com/HenriquesLab/mAIcrobe/issues"],"provides_extra":["testing","jupyter"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}