napari-stitcher 0.1.0__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.
- napari_stitcher-0.1.0/.github/workflows/documentation_main.yml +27 -0
- napari_stitcher-0.1.0/.github/workflows/documentation_release.yml +31 -0
- napari_stitcher-0.1.0/.github/workflows/test_and_deploy.yml +89 -0
- napari_stitcher-0.1.0/.gitignore +87 -0
- napari_stitcher-0.1.0/.napari-hub/DESCRIPTION.md +35 -0
- napari_stitcher-0.1.0/.napari-hub/config.yml +18 -0
- napari_stitcher-0.1.0/.pre-commit-config.yaml +41 -0
- napari_stitcher-0.1.0/LICENSE +28 -0
- napari_stitcher-0.1.0/MANIFEST.in +5 -0
- napari_stitcher-0.1.0/PKG-INFO +102 -0
- napari_stitcher-0.1.0/README.md +56 -0
- napari_stitcher-0.1.0/docs/contributing.md +3 -0
- napari_stitcher-0.1.0/docs/docs_requirements.txt +84 -0
- napari_stitcher-0.1.0/docs/images/demo_3d.mp4 +0 -0
- napari_stitcher-0.1.0/docs/images/logo.png +0 -0
- napari_stitcher-0.1.0/docs/images/naming_convention_example.png +0 -0
- napari_stitcher-0.1.0/docs/images/napari-stitcher-loaded-mosaic-annotated-inkscape.svg +169 -0
- napari_stitcher-0.1.0/docs/images/napari-stitcher-loaded-mosaic-annotated.png +0 -0
- napari_stitcher-0.1.0/docs/images/napari-stitcher-loaded-mosaic.png +0 -0
- napari_stitcher-0.1.0/docs/images/preposition.gif +0 -0
- napari_stitcher-0.1.0/docs/images/preposition3d.gif +0 -0
- napari_stitcher-0.1.0/docs/images/preposition_mosaic.gif +0 -0
- napari_stitcher-0.1.0/docs/index.md +27 -0
- napari_stitcher-0.1.0/docs/installation.md +137 -0
- napari_stitcher-0.1.0/docs/loading.md +14 -0
- napari_stitcher-0.1.0/docs/naming_convention.md +22 -0
- napari_stitcher-0.1.0/docs/prearrangement.md +54 -0
- napari_stitcher-0.1.0/docs/scripting.md +12 -0
- napari_stitcher-0.1.0/docs/writing.md +7 -0
- napari_stitcher-0.1.0/mkdocs.yml +90 -0
- napari_stitcher-0.1.0/pyproject.toml +14 -0
- napari_stitcher-0.1.0/setup.cfg +68 -0
- napari_stitcher-0.1.0/src/napari_stitcher/__init__.py +16 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_mosaic_widget.py +192 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_reader.py +98 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_sample_data.py +66 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_stitcher_widget.py +594 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_tests/__init__.py +0 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_tests/test_mosaic_widget.py +54 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_tests/test_reader.py +36 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_tests/test_stitcher_widget.py +277 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_tests/test_viewer_utils.py +69 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_tests/test_writer.py +95 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_utils.py +102 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_version.py +16 -0
- napari_stitcher-0.1.0/src/napari_stitcher/_writer.py +65 -0
- napari_stitcher-0.1.0/src/napari_stitcher/napari.yaml +55 -0
- napari_stitcher-0.1.0/src/napari_stitcher/viewer_utils.py +399 -0
- napari_stitcher-0.1.0/src/napari_stitcher.egg-info/PKG-INFO +102 -0
- napari_stitcher-0.1.0/src/napari_stitcher.egg-info/SOURCES.txt +54 -0
- napari_stitcher-0.1.0/src/napari_stitcher.egg-info/dependency_links.txt +1 -0
- napari_stitcher-0.1.0/src/napari_stitcher.egg-info/entry_points.txt +2 -0
- napari_stitcher-0.1.0/src/napari_stitcher.egg-info/requires.txt +21 -0
- napari_stitcher-0.1.0/src/napari_stitcher.egg-info/top_level.txt +1 -0
- napari_stitcher-0.1.0/tox.ini +20 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Generate main documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
docs-main:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- name: Checkout repository
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
with:
|
|
15
|
+
fetch-depth: 0
|
|
16
|
+
- name: Set up Python
|
|
17
|
+
uses: actions/setup-python@v4
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.11"
|
|
20
|
+
- name: Install dependencies
|
|
21
|
+
run: pip install -r docs/docs_requirements.txt
|
|
22
|
+
- name: Setup doc deploy
|
|
23
|
+
run: |
|
|
24
|
+
git config --global user.name Docs deploy
|
|
25
|
+
git config --global user.email docs@dummy.bot.com
|
|
26
|
+
- name: Build docs website
|
|
27
|
+
run: mike deploy main --push && mike set-default --push main
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Generate [version] documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
build:
|
|
9
|
+
name: Deploy docs to GitHub Pages
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- name: Checkout repository
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
with:
|
|
15
|
+
fetch-depth: 0
|
|
16
|
+
- name: Set up Python
|
|
17
|
+
uses: actions/setup-python@v4
|
|
18
|
+
with:
|
|
19
|
+
python-version: "3.11"
|
|
20
|
+
- name: Install dependencies
|
|
21
|
+
run: pip install -r docs/docs_requirements.txt
|
|
22
|
+
- name: Setup doc deploy
|
|
23
|
+
run: |
|
|
24
|
+
git config --global user.name Docs deploy
|
|
25
|
+
git config --global user.email docs@dummy.bot.com
|
|
26
|
+
- name: Set release notes tag
|
|
27
|
+
run: |
|
|
28
|
+
export RELEASE_TAG_VERSION="${{ github.event.release.tag_name }}"
|
|
29
|
+
echo RELEASE_TAG_VERSION="${RELEASE_TAG_VERSION:1}" >> "$GITHUB_ENV"
|
|
30
|
+
- name: Build docs website
|
|
31
|
+
run: mike deploy "${RELEASE_TAG_VERSION}" --push
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# This workflows will upload a Python Package using Twine when a release is created
|
|
2
|
+
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
|
|
3
|
+
|
|
4
|
+
name: Test and Deploy
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
tags:
|
|
11
|
+
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
|
|
12
|
+
pull_request:
|
|
13
|
+
branches:
|
|
14
|
+
- main
|
|
15
|
+
workflow_dispatch:
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
test:
|
|
19
|
+
name: ${{ matrix.platform }} py${{ matrix.python-version }}
|
|
20
|
+
runs-on: ${{ matrix.platform }}
|
|
21
|
+
strategy:
|
|
22
|
+
matrix:
|
|
23
|
+
# platform: [ubuntu-latest, windows-latest, macos-latest]
|
|
24
|
+
platform: [ubuntu-latest, macos-latest]
|
|
25
|
+
python-version: ['3.9', '3.10', '3.11']
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v3
|
|
29
|
+
|
|
30
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
31
|
+
uses: actions/setup-python@v4
|
|
32
|
+
with:
|
|
33
|
+
python-version: ${{ matrix.python-version }}
|
|
34
|
+
|
|
35
|
+
# these libraries enable testing on Qt on linux
|
|
36
|
+
- uses: tlambert03/setup-qt-libs@v1
|
|
37
|
+
|
|
38
|
+
# strategy borrowed from vispy for installing opengl libs on windows
|
|
39
|
+
- name: Install Windows OpenGL
|
|
40
|
+
if: runner.os == 'Windows'
|
|
41
|
+
run: |
|
|
42
|
+
git clone --depth 1 https://github.com/pyvista/gl-ci-helpers.git
|
|
43
|
+
powershell gl-ci-helpers/appveyor/install_opengl.ps1
|
|
44
|
+
|
|
45
|
+
# note: if you need dependencies from conda, considering using
|
|
46
|
+
# setup-miniconda: https://github.com/conda-incubator/setup-miniconda
|
|
47
|
+
# and
|
|
48
|
+
# tox-conda: https://github.com/tox-dev/tox-conda
|
|
49
|
+
- name: Install dependencies
|
|
50
|
+
run: |
|
|
51
|
+
python -m pip install --upgrade pip
|
|
52
|
+
python -m pip install setuptools tox tox-gh-actions
|
|
53
|
+
|
|
54
|
+
# this runs the platform-specific tests declared in tox.ini
|
|
55
|
+
- name: Test with tox
|
|
56
|
+
uses: GabrielBB/xvfb-action@v1
|
|
57
|
+
with:
|
|
58
|
+
run: python -m tox
|
|
59
|
+
env:
|
|
60
|
+
PLATFORM: ${{ matrix.platform }}
|
|
61
|
+
|
|
62
|
+
- name: Coverage
|
|
63
|
+
uses: codecov/codecov-action@v2
|
|
64
|
+
|
|
65
|
+
deploy:
|
|
66
|
+
# this will run when you have tagged a commit, starting with "v*"
|
|
67
|
+
# and requires that you have put your twine API key in your
|
|
68
|
+
# github secrets (see readme for details)
|
|
69
|
+
needs: [test]
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
if: contains(github.ref, 'tags')
|
|
72
|
+
steps:
|
|
73
|
+
- uses: actions/checkout@v3
|
|
74
|
+
- name: Set up Python
|
|
75
|
+
uses: actions/setup-python@v4
|
|
76
|
+
with:
|
|
77
|
+
python-version: "3.x"
|
|
78
|
+
- name: Install dependencies
|
|
79
|
+
run: |
|
|
80
|
+
python -m pip install --upgrade pip
|
|
81
|
+
pip install -U setuptools setuptools_scm wheel twine build
|
|
82
|
+
- name: Build and publish
|
|
83
|
+
env:
|
|
84
|
+
TWINE_USERNAME: __token__
|
|
85
|
+
TWINE_PASSWORD: ${{ secrets.TWINE_API_KEY }}
|
|
86
|
+
run: |
|
|
87
|
+
git tag
|
|
88
|
+
python -m build .
|
|
89
|
+
twine upload dist/*
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
env/
|
|
12
|
+
build/
|
|
13
|
+
develop-eggs/
|
|
14
|
+
dist/
|
|
15
|
+
downloads/
|
|
16
|
+
eggs/
|
|
17
|
+
.eggs/
|
|
18
|
+
lib/
|
|
19
|
+
lib64/
|
|
20
|
+
parts/
|
|
21
|
+
sdist/
|
|
22
|
+
var/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
|
|
27
|
+
# PyInstaller
|
|
28
|
+
# Usually these files are written by a python script from a template
|
|
29
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
30
|
+
*.manifest
|
|
31
|
+
*.spec
|
|
32
|
+
|
|
33
|
+
# Installer logs
|
|
34
|
+
pip-log.txt
|
|
35
|
+
pip-delete-this-directory.txt
|
|
36
|
+
|
|
37
|
+
# Unit test / coverage reports
|
|
38
|
+
htmlcov/
|
|
39
|
+
.tox/
|
|
40
|
+
.coverage
|
|
41
|
+
.coverage.*
|
|
42
|
+
.cache
|
|
43
|
+
nosetests.xml
|
|
44
|
+
coverage.xml
|
|
45
|
+
*,cover
|
|
46
|
+
.hypothesis/
|
|
47
|
+
.napari_cache
|
|
48
|
+
|
|
49
|
+
# Translations
|
|
50
|
+
*.mo
|
|
51
|
+
*.pot
|
|
52
|
+
|
|
53
|
+
# Django stuff:
|
|
54
|
+
*.log
|
|
55
|
+
local_settings.py
|
|
56
|
+
|
|
57
|
+
# Flask instance folder
|
|
58
|
+
instance/
|
|
59
|
+
|
|
60
|
+
# Sphinx documentation
|
|
61
|
+
docs/_build/
|
|
62
|
+
|
|
63
|
+
# MkDocs documentation
|
|
64
|
+
/site/
|
|
65
|
+
|
|
66
|
+
# PyBuilder
|
|
67
|
+
target/
|
|
68
|
+
|
|
69
|
+
# Pycharm and VSCode
|
|
70
|
+
.idea/
|
|
71
|
+
venv/
|
|
72
|
+
.vscode/
|
|
73
|
+
|
|
74
|
+
# IPython Notebook
|
|
75
|
+
.ipynb_checkpoints
|
|
76
|
+
|
|
77
|
+
# pyenv
|
|
78
|
+
.python-version
|
|
79
|
+
|
|
80
|
+
# OS
|
|
81
|
+
.DS_Store
|
|
82
|
+
|
|
83
|
+
# written by setuptools_scm
|
|
84
|
+
**/_version.py
|
|
85
|
+
|
|
86
|
+
src/napari_stitcher/_playground
|
|
87
|
+
doc_old
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!-- This file is a placeholder for customizing description of your plugin
|
|
2
|
+
on the napari hub if you wish. The readme file will be used by default if
|
|
3
|
+
you wish not to do any customization for the napari hub listing.
|
|
4
|
+
|
|
5
|
+
If you need some help writing a good description, check out our
|
|
6
|
+
[guide](https://github.com/chanzuckerberg/napari-hub/wiki/Writing-the-Perfect-Description-for-your-Plugin)
|
|
7
|
+
-->
|
|
8
|
+
|
|
9
|
+
# Description
|
|
10
|
+
|
|
11
|
+
This plugin stitches images (napari layers) in 2/3D+t. Images can either be (pre-)aligned manually or on a grid.
|
|
12
|
+
|
|
13
|
+
Here's it's [user guide](https://multiview-stitcher.github.io/napari-stitcher/) and [github repository](https://github.com/multiview-stitcher/napari-stitcher). napari-stitcher uses [`multiview-stitcher`](https://github.com/multiview-stitcher/multiview-stitcher) for registration and fusion.
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
<small>Image data by Arthur Michaut @ Jérôme Gros Lab @ Institut Pasteur.</small>
|
|
19
|
+
|
|
20
|
+
1. Directly stitch napari layers: Use napari to load, visualize and [preposition](prearrangement.md) the tiles to be stitched.
|
|
21
|
+
2. When working with multi-channel data, stick to the following [naming convention](naming_convention.md): `{tile} :: {channel}`.
|
|
22
|
+
3. Load either all or just a subset of the layers into the plugin.
|
|
23
|
+
4. Choose registration options: registration channel, binning and more.
|
|
24
|
+
5. Stitching = registration (refining the positions, optional) + fusion (joining the tiles into a single image).
|
|
25
|
+
6. The registration result is shown in the viewer and the fused channels are added as new layers.
|
|
26
|
+
|
|
27
|
+
## Demo
|
|
28
|
+
|
|
29
|
+
[Link](https://github.com/user-attachments/assets/8773e49f-af18-4ff3-ab2f-2a5f1b1cadf2) to video demo.
|
|
30
|
+
|
|
31
|
+
<video controls>
|
|
32
|
+
<source src="https://github.com/multiview-stitcher/napari-stitcher/raw/refs/heads/main/docs/images/demo_3d.mp4" type="video/mp4">
|
|
33
|
+
</video>
|
|
34
|
+
|
|
35
|
+
<small>This demo uses the awesome [`napari-threedee`](https://github.com/napari-threedee/napari-threedee) for prepositioning the tiles. Image data: [BigStitcher](https://imagej.net/plugins/bigstitcher/).</small>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# You may use this file to customize how your plugin page appears
|
|
2
|
+
# on the napari hub: https://www.napari-hub.org/
|
|
3
|
+
# See their wiki for details https://github.com/chanzuckerberg/napari-hub/wiki
|
|
4
|
+
|
|
5
|
+
# Please note that this file should only be used IN ADDITION to entering
|
|
6
|
+
# metadata fields (such as summary, description, authors, and various URLS)
|
|
7
|
+
# in your standard python package metadata (e.g. setup.cfg, setup.py, or
|
|
8
|
+
# pyproject.toml), when you would like those fields to be displayed
|
|
9
|
+
# differently on the hub than in the napari application.
|
|
10
|
+
|
|
11
|
+
# Add labels the plugin from the EDAM Bioimaging ontology
|
|
12
|
+
labels:
|
|
13
|
+
ontology: EDAM-BIOIMAGING:alpha06
|
|
14
|
+
terms:
|
|
15
|
+
- Image registration
|
|
16
|
+
- Image reconstruction
|
|
17
|
+
- 2D image
|
|
18
|
+
- 3D image
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v4.2.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-docstring-first
|
|
6
|
+
- id: end-of-file-fixer
|
|
7
|
+
- id: trailing-whitespace
|
|
8
|
+
exclude: ^\.napari-hub/.*
|
|
9
|
+
- repo: https://github.com/PyCQA/isort
|
|
10
|
+
rev: 5.10.1
|
|
11
|
+
hooks:
|
|
12
|
+
- id: isort
|
|
13
|
+
- repo: https://github.com/asottile/pyupgrade
|
|
14
|
+
rev: v2.32.1
|
|
15
|
+
hooks:
|
|
16
|
+
- id: pyupgrade
|
|
17
|
+
args: [--py38-plus, --keep-runtime-typing]
|
|
18
|
+
- repo: https://github.com/myint/autoflake
|
|
19
|
+
rev: v1.4
|
|
20
|
+
hooks:
|
|
21
|
+
- id: autoflake
|
|
22
|
+
args: ["--in-place", "--remove-all-unused-imports"]
|
|
23
|
+
- repo: https://github.com/psf/black
|
|
24
|
+
rev: 22.3.0
|
|
25
|
+
hooks:
|
|
26
|
+
- id: black
|
|
27
|
+
- repo: https://github.com/PyCQA/flake8
|
|
28
|
+
rev: 4.0.1
|
|
29
|
+
hooks:
|
|
30
|
+
- id: flake8
|
|
31
|
+
additional_dependencies: [flake8-typing-imports>=1.9.0]
|
|
32
|
+
- repo: https://github.com/tlambert03/napari-plugin-checks
|
|
33
|
+
rev: v0.2.0
|
|
34
|
+
hooks:
|
|
35
|
+
- id: napari-plugin-checks
|
|
36
|
+
# https://mypy.readthedocs.io/en/stable/introduction.html
|
|
37
|
+
# you may wish to add this as well!
|
|
38
|
+
# - repo: https://github.com/pre-commit/mirrors-mypy
|
|
39
|
+
# rev: v0.910-1
|
|
40
|
+
# hooks:
|
|
41
|
+
# - id: mypy
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
Copyright (c) 2022, Marvin Albert
|
|
3
|
+
All rights reserved.
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
* Neither the name of copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: napari-stitcher
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Stitch napari image layers in 2-3D+t
|
|
5
|
+
Author: Marvin Albert
|
|
6
|
+
Author-email: marvin.albert@gmail.com
|
|
7
|
+
License: BSD-3-Clause
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/multiview-stitcher/napari-stitcher/issues
|
|
9
|
+
Project-URL: Documentation, https://multiview-stitcher.github.io/napari-stitcher/
|
|
10
|
+
Project-URL: Source Code, https://github.com/multiview-stitcher/napari-stitcher
|
|
11
|
+
Project-URL: User Support, https://github.com/multiview-stitcher/napari-stitcher/issues
|
|
12
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
13
|
+
Classifier: Framework :: napari
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: numpy>=1.18
|
|
28
|
+
Requires-Dist: magicgui
|
|
29
|
+
Requires-Dist: qtpy
|
|
30
|
+
Requires-Dist: tifffile>=2022.7.28
|
|
31
|
+
Requires-Dist: multiview-stitcher[aicsimageio]==0.1.14
|
|
32
|
+
Requires-Dist: spatial_image==0.3.0
|
|
33
|
+
Requires-Dist: multiscale_spatial_image==0.11.2
|
|
34
|
+
Provides-Extra: testing-no-gui
|
|
35
|
+
Requires-Dist: tox; extra == "testing-no-gui"
|
|
36
|
+
Requires-Dist: pytest; extra == "testing-no-gui"
|
|
37
|
+
Requires-Dist: pytest-cov; extra == "testing-no-gui"
|
|
38
|
+
Requires-Dist: pytest-qt; extra == "testing-no-gui"
|
|
39
|
+
Provides-Extra: testing
|
|
40
|
+
Requires-Dist: tox; extra == "testing"
|
|
41
|
+
Requires-Dist: pytest; extra == "testing"
|
|
42
|
+
Requires-Dist: pytest-cov; extra == "testing"
|
|
43
|
+
Requires-Dist: pytest-qt; extra == "testing"
|
|
44
|
+
Requires-Dist: napari; extra == "testing"
|
|
45
|
+
Requires-Dist: pyqt5; extra == "testing"
|
|
46
|
+
|
|
47
|
+
[](https://napari-hub.org/plugins/napari-stitcher)
|
|
48
|
+
[](https://github.com/multiview-stitcher/napari-stitcher/raw/main/LICENSE)
|
|
49
|
+
[](https://pypi.org/project/napari-stitcher)
|
|
50
|
+
[](https://python.org)
|
|
51
|
+
[](https://github.com/multiview-stitcher/napari-stitcher/actions)
|
|
52
|
+
[](https://codecov.io/gh/multiview-stitcher/napari-stitcher)
|
|
53
|
+
[](https://zenodo.org/doi/10.5281/zenodo.13151252)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# napari-stitcher
|
|
57
|
+
|
|
58
|
+
A napari plugin for stitching large multi-positioning datasets in 2/3D+t using [`multiview-stitcher`](https://github.com/multiview-stitcher/multiview-stitcher).
|
|
59
|
+
|
|
60
|
+

|
|
61
|
+
<small>Image data by Arthur Michaut @ Jérôme Gros Lab @ Institut Pasteur.</small>
|
|
62
|
+
|
|
63
|
+
#### Quick guide:
|
|
64
|
+
|
|
65
|
+
1. Directly stitch napari layers: Use napari to load, visualize and [preposition](prearrangement.md) the tiles to be stitched.
|
|
66
|
+
2. When working with multi-channel data, stick to the following [naming convention](naming_convention.md): `{tile} :: {channel}`.
|
|
67
|
+
3. Load either all or just a subset of the layers into the plugin.
|
|
68
|
+
4. Choose registration options: registration channel, binning and more.
|
|
69
|
+
5. Stitching = registration (refining the positions, optional) + fusion (joining the tiles into a single image).
|
|
70
|
+
6. The registration result is shown in the viewer and the fused channels are added as new layers.
|
|
71
|
+
|
|
72
|
+
## Demo
|
|
73
|
+
|
|
74
|
+
https://github.com/user-attachments/assets/8773e49f-af18-4ff3-ab2f-2a5f1b1cadf2
|
|
75
|
+
|
|
76
|
+
<small>This demo uses the awesome [`napari-threedee`](https://github.com/napari-threedee/napari-threedee) for prepositioning the tiles. Image data: [BigStitcher](https://imagej.net/plugins/bigstitcher/).</small>
|
|
77
|
+
|
|
78
|
+
## Documentation
|
|
79
|
+
|
|
80
|
+
Head over to the [user guide](https://multiview-stitcher.github.io/napari-stitcher/main/) for more details.
|
|
81
|
+
|
|
82
|
+
## Installation
|
|
83
|
+
|
|
84
|
+
You can install `napari-stitcher` via `pip`:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
pip install napari-stitcher
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
For more installation options, see the [installation docs](https://multiview-stitcher.github.io/napari-stitcher/main/installation/).
|
|
91
|
+
|
|
92
|
+
## Contributing
|
|
93
|
+
|
|
94
|
+
Contributions are very welcome. Tests can be run with `tox`.
|
|
95
|
+
|
|
96
|
+
## License
|
|
97
|
+
|
|
98
|
+
Distributed under the terms of the [BSD-3] license, "napari-stitcher" is free and open source software
|
|
99
|
+
|
|
100
|
+
## Issues
|
|
101
|
+
|
|
102
|
+
If you encounter any problems, please [file an issue](https://github.com/multiview-stitcher/napari-stitcher/issues) along with a detailed description.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[](https://napari-hub.org/plugins/napari-stitcher)
|
|
2
|
+
[](https://github.com/multiview-stitcher/napari-stitcher/raw/main/LICENSE)
|
|
3
|
+
[](https://pypi.org/project/napari-stitcher)
|
|
4
|
+
[](https://python.org)
|
|
5
|
+
[](https://github.com/multiview-stitcher/napari-stitcher/actions)
|
|
6
|
+
[](https://codecov.io/gh/multiview-stitcher/napari-stitcher)
|
|
7
|
+
[](https://zenodo.org/doi/10.5281/zenodo.13151252)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# napari-stitcher
|
|
11
|
+
|
|
12
|
+
A napari plugin for stitching large multi-positioning datasets in 2/3D+t using [`multiview-stitcher`](https://github.com/multiview-stitcher/multiview-stitcher).
|
|
13
|
+
|
|
14
|
+

|
|
15
|
+
<small>Image data by Arthur Michaut @ Jérôme Gros Lab @ Institut Pasteur.</small>
|
|
16
|
+
|
|
17
|
+
#### Quick guide:
|
|
18
|
+
|
|
19
|
+
1. Directly stitch napari layers: Use napari to load, visualize and [preposition](prearrangement.md) the tiles to be stitched.
|
|
20
|
+
2. When working with multi-channel data, stick to the following [naming convention](naming_convention.md): `{tile} :: {channel}`.
|
|
21
|
+
3. Load either all or just a subset of the layers into the plugin.
|
|
22
|
+
4. Choose registration options: registration channel, binning and more.
|
|
23
|
+
5. Stitching = registration (refining the positions, optional) + fusion (joining the tiles into a single image).
|
|
24
|
+
6. The registration result is shown in the viewer and the fused channels are added as new layers.
|
|
25
|
+
|
|
26
|
+
## Demo
|
|
27
|
+
|
|
28
|
+
https://github.com/user-attachments/assets/8773e49f-af18-4ff3-ab2f-2a5f1b1cadf2
|
|
29
|
+
|
|
30
|
+
<small>This demo uses the awesome [`napari-threedee`](https://github.com/napari-threedee/napari-threedee) for prepositioning the tiles. Image data: [BigStitcher](https://imagej.net/plugins/bigstitcher/).</small>
|
|
31
|
+
|
|
32
|
+
## Documentation
|
|
33
|
+
|
|
34
|
+
Head over to the [user guide](https://multiview-stitcher.github.io/napari-stitcher/main/) for more details.
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
You can install `napari-stitcher` via `pip`:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install napari-stitcher
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
For more installation options, see the [installation docs](https://multiview-stitcher.github.io/napari-stitcher/main/installation/).
|
|
45
|
+
|
|
46
|
+
## Contributing
|
|
47
|
+
|
|
48
|
+
Contributions are very welcome. Tests can be run with `tox`.
|
|
49
|
+
|
|
50
|
+
## License
|
|
51
|
+
|
|
52
|
+
Distributed under the terms of the [BSD-3] license, "napari-stitcher" is free and open source software
|
|
53
|
+
|
|
54
|
+
## Issues
|
|
55
|
+
|
|
56
|
+
If you encounter any problems, please [file an issue](https://github.com/multiview-stitcher/napari-stitcher/issues) along with a detailed description.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
appnope==0.1.4
|
|
2
|
+
asttokens==2.4.1
|
|
3
|
+
attrs==24.2.0
|
|
4
|
+
babel==2.16.0
|
|
5
|
+
backcall==0.2.0
|
|
6
|
+
beautifulsoup4==4.12.3
|
|
7
|
+
bleach==6.1.0
|
|
8
|
+
certifi==2024.8.30
|
|
9
|
+
charset-normalizer==3.4.0
|
|
10
|
+
click==8.1.7
|
|
11
|
+
colorama==0.4.6
|
|
12
|
+
decorator==5.1.1
|
|
13
|
+
defusedxml==0.7.1
|
|
14
|
+
docopt==0.6.2
|
|
15
|
+
EditorConfig==0.12.4
|
|
16
|
+
executing==2.1.0
|
|
17
|
+
fastjsonschema==2.20.0
|
|
18
|
+
ghp-import==2.1.0
|
|
19
|
+
griffe==1.4.1
|
|
20
|
+
idna==3.10
|
|
21
|
+
importlib_metadata==8.5.0
|
|
22
|
+
importlib_resources==6.4.5
|
|
23
|
+
ipython==8.12.3
|
|
24
|
+
jedi==0.19.1
|
|
25
|
+
Jinja2==3.1.4
|
|
26
|
+
jsbeautifier==1.15.1
|
|
27
|
+
jsonschema==4.23.0
|
|
28
|
+
jsonschema-specifications==2024.10.1
|
|
29
|
+
jupyter_client==8.6.3
|
|
30
|
+
jupyter_core==5.7.2
|
|
31
|
+
jupyterlab_pygments==0.3.0
|
|
32
|
+
Markdown==3.7
|
|
33
|
+
MarkupSafe==3.0.1
|
|
34
|
+
matplotlib-inline==0.1.7
|
|
35
|
+
mergedeep==1.3.4
|
|
36
|
+
mike==2.1.3
|
|
37
|
+
mistune==3.0.2
|
|
38
|
+
mkdocs==1.6.1
|
|
39
|
+
mkdocs-autorefs==1.2.0
|
|
40
|
+
mkdocs-get-deps==0.2.0
|
|
41
|
+
mkdocs-material==9.5.41
|
|
42
|
+
mkdocs-material-extensions==1.3.1
|
|
43
|
+
mkdocs-mermaid2-plugin==1.1.1
|
|
44
|
+
mkdocstrings==0.26.2
|
|
45
|
+
mkdocstrings-python==1.12.1
|
|
46
|
+
nbclient==0.10.0
|
|
47
|
+
nbconvert==7.16.4
|
|
48
|
+
nbformat==5.10.4
|
|
49
|
+
packaging==24.1
|
|
50
|
+
paginate==0.5.7
|
|
51
|
+
pandocfilters==1.5.1
|
|
52
|
+
parso==0.8.4
|
|
53
|
+
pathspec==0.12.1
|
|
54
|
+
pexpect==4.9.0
|
|
55
|
+
pickleshare==0.7.5
|
|
56
|
+
pipreqs==0.5.0
|
|
57
|
+
platformdirs==4.3.6
|
|
58
|
+
prompt_toolkit==3.0.48
|
|
59
|
+
ptyprocess==0.7.0
|
|
60
|
+
pure_eval==0.2.3
|
|
61
|
+
Pygments==2.18.0
|
|
62
|
+
pymdown-extensions==10.11.2
|
|
63
|
+
pyparsing==3.2.0
|
|
64
|
+
python-dateutil==2.9.0.post0
|
|
65
|
+
PyYAML==6.0.2
|
|
66
|
+
pyyaml_env_tag==0.1
|
|
67
|
+
pyzmq==26.2.0
|
|
68
|
+
referencing==0.35.1
|
|
69
|
+
regex==2024.9.11
|
|
70
|
+
requests==2.32.3
|
|
71
|
+
rpds-py==0.20.0
|
|
72
|
+
six==1.16.0
|
|
73
|
+
soupsieve==2.6
|
|
74
|
+
stack-data==0.6.3
|
|
75
|
+
tinycss2==1.3.0
|
|
76
|
+
tornado==6.4.1
|
|
77
|
+
traitlets==5.14.3
|
|
78
|
+
urllib3==2.2.3
|
|
79
|
+
verspec==0.1.0
|
|
80
|
+
watchdog==5.0.3
|
|
81
|
+
wcwidth==0.2.13
|
|
82
|
+
webencodings==0.5.1
|
|
83
|
+
yarg==0.1.9
|
|
84
|
+
zipp==3.20.2
|
|
Binary file
|
|
Binary file
|
|
Binary file
|