{"id":46028030,"url":"https://github.com/uvarc/mitosisanalyzer","last_synced_at":"2026-03-01T03:14:33.273Z","repository":{"id":104773043,"uuid":"386017304","full_name":"uvarc/mitosisanalyzer","owner":"uvarc","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-12T04:54:49.000Z","size":1244,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-26T20:22:15.886Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uvarc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-07-14T17:10:08.000Z","updated_at":"2025-10-24T02:20:34.000Z","dependencies_parsed_at":"2023-04-16T21:38:04.504Z","dependency_job_id":"d3180fd8-e3f0-4e7a-b712-1ea5976cb1ba","html_url":"https://github.com/uvarc/mitosisanalyzer","commit_stats":null,"previous_names":[],"tags_count":3,"template":true,"template_full_name":null,"purl":"pkg:github/uvarc/mitosisanalyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvarc%2Fmitosisanalyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvarc%2Fmitosisanalyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvarc%2Fmitosisanalyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvarc%2Fmitosisanalyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uvarc","download_url":"https://codeload.github.com/uvarc/mitosisanalyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uvarc%2Fmitosisanalyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29959288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T01:47:18.291Z","status":"online","status_checked_at":"2026-03-01T02:00:07.437Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-01T03:14:32.570Z","updated_at":"2026-03-01T03:14:33.265Z","avatar_url":"https://github.com/uvarc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mitosisanalyzer\n\n[![License BSD-3](https://img.shields.io/github/license/uvarc/mitosisanalyzer?label=license\u0026style=flat)](https://github.com/uvarc/mitosisanalyzer/blob/main/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/mitosisanalyzer.svg?color=green)](https://pypi.org/project/mitosisanalyzer)\n[![Python Version](https://img.shields.io/pypi/pyversions/mitosisanalyzer.svg?color=green)](https://python.org)\n[![codecov](https://codecov.io/gh/uvarc/mitosisanalyzer/branch/main/graph/badge.svg)](https://codecov.io/gh/uvarc/mitosisanalyzer)\n\nPlugin to track spindle poles in mitotic cells over time. It leverages [Cellpose](https://www.cellpose.org/), [OpenCV](https://github.com/opencv/opencv-python), and [Scikit-Image](https://scikit-image.org/) for segmentation and [Prefect](https://www.prefect.io/) and [Dask](https://www.dask.org/) for workflow orchestration.\n\n## Installation \n\nYou can install `mitosisanalyzer` via [pip]:\n\n    pip install mitosisanalyzer\n\n\nTo install latest development version:\n\n    pip install git+https://github.com/uvarc/mitosisanalyzer.git\n\n## Image file formats\n\nMitosisAnalyzer is reading image files using the [Bioio](https://github.com/bioio-devs/bioio) package. A variety of plugins exist to support common image file formats, including .tiff, .ome-tiff, .zarr, .nd2, .czi, .lif, etc.. By installing these additional bioio plugins you can easily expand MitosisAnalyzer's ability to process a large variety of image formats without the need to touch the source code.  \n\n## Running the MitosisAnalyzer application\n\nIn a command line shell, run the following command:\n```\nmitosisanalyzer -i imagestack.nd2 -o my_outputdir -s 1 -d 2 -r 1\n```\n\n**Command line arguments:**\n\n```\n-h, --help                              show this help message and exit\n-i INPUT, --input INPUT                 single image file or directory with image files to be processed\n-o OUTPUT, --output OUTPUT              output file or directory\n-s SPINDLE, --spindle SPINDLE           channel # for tracking spindle poles\n-d DNA, --dna DNA                       channel # for tracking dna\n-r REFFRAME, --refframe REFFRAME        reference frame to determine spindle pole axis (0=autodetect based on cell long axis)\n-t THRESHOLD, --threshold THRESHOLD     threshold of cytoplasmic background signal in spindle channel; value relative to max \n                                            spindle intensity 0.0-1.0 (0.0=autodetect using Otsu)\n-b BLUR, --blur BLUR                    applies a gaussian blur before segmenting spindle poles. The value determines the \n                                            blurring radius; a value of 0 omits blurring.\n-c, --cellpose, --no-cellpose           use Cellpose to detect cell contour\n-f FRAMERATE, --framerate FRAMERATE     number of frames per second\n-e EXECUTOR, --executor EXECUTOR        set executor. Options: sequential, concurrent, dask\n--address ADDRESS                       provide address to existing Dask Scheduler. Default: local, spins up a new Dask \n                                            scheduler and clients on localhost using the --process and --threads options.\n--processes PROCESSES                   number of parallel processes. Ignored when --adress is set.\n--threads THREADS                       number of threads per process. Ignored when --address is set.\n```                  \n\n## Advanced Settings\n\n### Prefect\n\nProcessing of images is orchestrated as [Prefect](https://www.prefect.io/) workflows. You may set up a Prefect API key which enables you to authenticate a local environment to work with [Prefect Cloud](https://docs.prefect.io/v3/manage/cloud/index). **Prefect Cloud is an *optional* tool to help you observe execution of your analysis pipeline; the MitosisAnalyzer executes just fine without Prefect Cloud.**\n\n### Dask\n\nBy default, MitosisAnalyzer is executing pipeline tasks on a single computer/node in *local concurrent mode*. For large processing workloads that involve very large or many image files, you may choose to distribute tasks via [Dask](https://www.dask.org/) using the `-e/--executor` flag, see above. By default, a local Dask cluster is spun up with the specified number of processes, each process with a single thread. The `--processes` and `--threads` options override these defaults and set the number of workers (processess) and threads per worker process. The local Dask Cluster is torn down after the analysis run is finished. \n\nAlternatively, you may connect execution of the MitosisAnalyzer pipeline to an existing Dask cluster, using the `--address` command line argument, see above. The existing Dask cluster may run locally or on a different host, assuming that host can be reached from your execution environment.\n\nWhen using the `-e dask` option, images are read as delayed Dask arrays, meaning that IO operations occur only for the image chunks needed at the specific computational step. This a key aspect contributing to the pipeline's scalability. \n\n**Additonal environment variables:**\n\n*DASK_CHUNK_DIMS*\n\nBy default image data are read as `ZYX` chunks, meaning that a single flocal plane is read to memory at a time. This offers maximal potential to scale out to distribute the large datasets but can impact overall performance. For relatively small image files, you will likely get better performance by defining a different strategy to chunk the data. For example, if your dataset has a single focal plane (Z=1), the timeseries analysis will likely perform faster using `TYX` chunking.\n\nYou can set the chunking strategy via environment variable like so:\n```\nexport DASK_CHUNK_DIMS=TYX\n```\n\n*DASK_PERSIST_INPUT*\n\nWhen `DASK_PERSIST_INPUT` is set to `1` (or `\"True\"`), image dask arrays are persisted in memory. This can provide a significant performance boost for small image arrays. However, large image arrays may produce an out-of-memory error. \n\nFor example:\n```\nDASK_PERSIST_INPUT=1\n```\n\n*DASK_PERFORMANCE_REPORT*\n\nWhen `DASK_PERFORMANCE_REPORT` is specified, the dask scheduler will write a performance report in html format to this location. The file location must be writeable by the dask scheduler.\n\nFor example:\n```\nDASK_PERFORMANCE_REPORT=\"/MY/PATH/dask-report.html\"\n```\n\n\n## Contributing\n\nContributions are very welcome.\n\n## License\n\nDistributed under the terms of the [BSD-3] license, \"mitosisanalyzer\" is free and open source software\n\n## Issues\n\nIf you encounter any problems, please [file an issue] along with a detailed description.\n\n[BSD-3]: http://opensource.org/licenses/BSD-3-Clause\n\n[file an issue]: https://github.com/uvarc/mitosisanalyzer/issues\n\n[pip]: https://pypi.org/project/pip/\n[PyPI]: https://pypi.org/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuvarc%2Fmitosisanalyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuvarc%2Fmitosisanalyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuvarc%2Fmitosisanalyzer/lists"}