{"name":"napari-atlas-cci","display_name":"Atlas CCI","visibility":"public","icon":null,"categories":[],"schema_version":"0.3.0","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"napari-atlas-cci.open_widget","title":"AtlasCCI","python_name":"napari_atlas_cci:AtlasCCIWidget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"napari-atlas-cci.open_widget","display_name":"AtlasCCI","autogenerate":false,"default_dock_area":"right","tabify":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configurations":{}},"package_metadata":{"metadata_version":"2.4","name":"napari-atlas-cci","version":"1.1.8","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"A plugin that allows napari to run atlas stitching and alignement tool","description":"# napari atlas cci\n\nNapari plugin to give a GUI interface to the cci atlas tool.\n\nThis is a wrapper around the [cci atlas](https://github.com/CCI-GU-Sweden/ATLAS) package.\n\n## Installation\n\nA standalone version of napari is available at [napari.org](https://napari.org/dev/tutorials/fundamentals/installation_bundle_conda.html), and the plugin is available on the [napari hub](https://napari-hub.org/plugins/napari-omero-downloader-cci.html). Just follow the installation instruction from napari. You can install the plugin from the plugin manager.\n\nIt is also possible to install the plugin from [source code](https://github.com/CCI-GU-Sweden/napari-atlas-cci) or from pip with `pip install napari-atlas-cci`. In this case, be sure to isolate the installation in a dedicated environment with napari.\n\n## How to use\n\nBrowse and load an atlas project. An atlas project is composed of a series of S_ folder, each containing 1 or multiple tiff images.\n\n![Initial status](assets/Unprocessed_folder.png)\n\n### 2D stitching\n\nFor 2D stitching, it is possible to process one, multiple or all S_ folder. This will stitch images in a S_ folder in one tiff image. The number of images being processes at the same time is dependent to the number of core in your PC. Be carefull on RAM consumption.\n\n![On going stitching](assets/Stitching_ongoing.png)\n\nAfter processing, you can select one S_ folder and display the image in Napari.\n\n### Z alignement\n\nIt is only possible to process to the z-alignement if all S_ folder has been stitched.\nThe alignement is required to run first a on downsampled image. This downsampling factor can be control in the Options.\n\nOnce the initial alignement is completed, a preview image is display. Please confirm that the alignement is correct through the z volume.\n\n![Initial align preview](<assets/Initial align preview.png>)\n\nTo adjust alignment, choose a correction mode and click **Enter Correction**.\nThe default, **Trace: one point per plane**, creates a single **Reference Points**\nlayer. Follow the same feature through consecutive Z planes, placing one point\nper plane, consistently forward or backward. Points are used in the order you\nenter them: `[P0, P1, P2]` creates the pairs `P0 → P1` and `P1 → P2`.\n\nA gap in Z starts a separate trace. For example, points on planes\n`[2, 3, 4, 8, 9, 10]` create four pairs, never a pair from plane 4 to plane 8.\nEach trace needs at least two points. There can be only one reference point per\nplane across all traces. Duplicate planes, isolated points, and invalid ordering\nare rejected before correction starts; edit the points and try again.\n\nFor the original workflow, choose **Explicit point pairs**. This creates\n**Reference Points** and **Adjustable Points**. Place matching landmarks in the\nsame order in both layers, with each reference point one Z slice before its\nadjustable point. Both layers must contain the same number of points. The mode\nselector determines which workflow is used; tracing ignores any existing\nAdjustable Points layer.\n\nOnce done, click on the \"Apply correction\" button. It will reprocess the downsample image, then display the corrected zstack. Check that the correction happen.\n\nWIP: Small video Youtube to display alignement correction.\n\nOnce the data is aligned, it can be processed for the \"Final Z Alignement\". This step can be time consuming based on the size of the dataset, so please, be patient.\n\n![Final alignment](assets/Final_align_view.png)\n\n### Options and saved preferences\n\nThe **Options...** dialog includes lower and upper saturation percentiles for\nalignment processing. Defaults are **1.0** and **99.95**; values must satisfy\n`0 ≤ lower < upper ≤ 100`. They apply to saved previews, previews regenerated\nafter manual correction, and full-resolution aligned outputs. Changing them\ndoes not modify outputs that have already been generated.\n\nClick **OK** to apply and save the Options values; **Cancel** leaves them\nunchanged. Thread count, maximum stitching shift, alignment downsampling,\nCZI compression, and both percentiles are restored next time the plugin opens.\nAxial pixel size and its explicit unit are also saved when the edit is finished\nor the unit changes. Thread count is limited to one fewer than the available CPU\ncores (with a minimum of one).\n\nPreferences are saved as readable JSON in\n`<Qt GenericConfigLocation>/napari-atlas-cci/settings.json`, under the user's\nAppData directory on Windows. They apply across projects on that computer.\nMissing preferences use the defaults; invalid files produce feedback and fall\nback to defaults. Upload tokens and project paths are excluded. This implements\nlocal user preferences alongside [#12](https://github.com/CCI-GU-Sweden/napari-atlas-cci/issues/12);\nportable project configurations and historical run snapshots described in\n[#14](https://github.com/CCI-GU-Sweden/napari-atlas-cci/issues/14) remain separate work.\n\n### Export and upload\n\nAll intermediate files are stored in the root folder of the Atlas project. Individual planes are stored as tiff images, will the alignement is stored as a pickle pandas table. The z aligned files (both the downsample and the final ones) are saved in a ome-zarr format.\n\nFor easier data manipulation, it is possible to export the final alignement as a czi file. The other option is to upload the data on [Webknossos](https://webknossos.org/), which is great for both visualization and fine z-alignement. To do this upload, it is required to have a account on webknossos and to indicate your token for the upload.\n\n![Upload to webknossos](assets/upload_to_wkn.png)\n\n![webknossos ulpoad success](<assets/webknossos upload.png>)\n\nAfter fine alignment in WebKnossos, use **Download from webknossos...** at the\nbottom of the plugin. Enter your token, the new aligned dataset's ID or full\ndataset URL, an output filename, and the destination folder (defaults to the\ncurrent project). No local aligned output is required to use this button.\n\nThe download reads the full-resolution `color` layer one Z plane at a time and\nwrites that plane as CZI tiles of at most 1024 × 1024 pixels. All channels are\npreserved, XY axes are converted to CZI order, and voxel sizes are copied from\nthe remote dataset. Source bounding-box offsets are rebased to CZI coordinates\nstarting at zero. CZI compression follows **Options...** at download start.\nAn existing destination file is never overwritten; choose a new filename.\nIf a transfer fails after writing starts, a partial CZI may remain at that path.\n\nLocal **Export to CZI** uses the same tiled writer and reads one aligned Zarr\nplane at a time, without loading the entire volume. Downloads run in the existing\nbackground export worker, with an activity indicator and completion/error\nnotifications. Tokens are used for the request and are not saved in preferences.\n\n## Troubleshooting\n\n\n## Contributing\n\nContributions are very welcome. Tests can be run with [tox], please ensure\nthe coverage at least stays the same before you submit a pull request.\n","description_content_type":"text/markdown","keywords":null,"home_page":null,"download_url":null,"author":null,"author_email":"Simon Leclerc <simon.leclerc@gu.se>","maintainer":null,"maintainer_email":null,"license":"MIT License\n\nCopyright (c) 2026 LECLERC Simon\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","classifier":["Development Status :: 3 - Alpha","Framework :: napari","Intended Audience :: Science/Research","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Topic :: Scientific/Engineering :: Image Processing"],"requires_dist":["numpy","qtpy","scipy","ome-zarr","dask","webknossos<5,>=4.0.0","pylibCZIrw","atlas-cci-align>=1.3","napari[all]; extra == \"all\"","pytest; extra == \"testing\"","pytest-cov; extra == \"testing\"","pytest-qt; extra == \"testing\"","napari[qt]; extra == \"testing\"","napari-omero-downloader-cci[testing]; extra == \"dev\"","black; extra == \"dev\"","ruff; extra == \"dev\""],"requires_python":"<3.13,>=3.11","requires_external":null,"project_url":null,"provides_extra":["all","testing","dev"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}