{"name":"confusius","display_name":"ConfUSIus","visibility":"public","icon":"","categories":[],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"confusius.open_widget","title":"Open ConfUSIus","python_name":"confusius._napari._widget:ConfUSIusWidget","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"confusius.read_nifti","title":"Read NIfTI file","python_name":"confusius._napari._io._readers:read_nifti","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"confusius.read_scan","title":"Read SCAN file","python_name":"confusius._napari._io._readers:read_scan","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"confusius.read_zarr","title":"Read Zarr store","python_name":"confusius._napari._io._readers:read_zarr","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"confusius.write_nifti","title":"Write NIfTI file","python_name":"confusius._napari._io._writers:write_nifti","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"confusius.write_nifti_labels","title":"Write labels to NIfTI file","python_name":"confusius._napari._io._writers:write_nifti","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"confusius.write_zarr","title":"Write Zarr store","python_name":"confusius._napari._io._writers:write_zarr","short_title":null,"category":null,"icon":null,"enablement":null},{"id":"confusius.write_zarr_labels","title":"Write labels to Zarr store","python_name":"confusius._napari._io._writers:write_zarr","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":[{"command":"confusius.read_nifti","filename_patterns":["*.nii","*.nii.gz"],"accepts_directories":false},{"command":"confusius.read_scan","filename_patterns":["*.scan"],"accepts_directories":false},{"command":"confusius.read_zarr","filename_patterns":["*.zarr"],"accepts_directories":true}],"writers":[{"command":"confusius.write_nifti","layer_types":["image"],"filename_extensions":[".nii",".nii.gz"],"display_name":""},{"command":"confusius.write_nifti_labels","layer_types":["labels"],"filename_extensions":[".nii",".nii.gz"],"display_name":""},{"command":"confusius.write_zarr","layer_types":["image"],"filename_extensions":[".zarr"],"display_name":""},{"command":"confusius.write_zarr_labels","layer_types":["labels"],"filename_extensions":[".zarr"],"display_name":""}],"widgets":[{"command":"confusius.open_widget","display_name":"ConfUSIus","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"confusius","version":"0.0.1a25","dynamic":null,"platform":null,"supported_platform":null,"summary":"Python package for analysis and visualization of functional ultrasound imaging data.","description":"[![PyPI version](https://img.shields.io/pypi/v/confusius)](https://pypi.org/project/confusius/)\n[![Python versions](https://img.shields.io/pypi/pyversions/confusius)](https://pypi.org/project/confusius/)\n[![DOI](https://zenodo.org/badge/1155356116.svg)](https://doi.org/10.5281/zenodo.18611124)\n[![codecov](https://codecov.io/gh/confusius-tools/confusius/graph/badge.svg?token=TL5AIRNSHS)](https://codecov.io/gh/confusius-tools/confusius)\n\n# ConfUSIus <img src=\"docs/images/confusius-logo.svg\" width=\"200\" title=\"ConfUSIus\" alt=\"ConfUSIus\" align=\"right\">\n\n> [!NOTE]\n> **Pre-Alpha Status** — ConfUSIus is in pre-alpha and under active development—the API\n> may change between releases and some features may be incomplete. We are happy to help\n> you get started: join our [weekly drop-in hours](https://confusius.tools/latest/user-guide/getting-started/#getting-help)\n> on Discord or open an [issue on GitHub](https://github.com/confusius-tools/confusius/issues)\n> for questions and feature requests.\n\nConfUSIus is a Python package and napari plugin for handling, visualization,\npreprocessing, and statistical analysis of functional ultrasound imaging (fUSI) data.\n\n## Features\n\n> [!NOTE]\n> ConfUSIus is not designed as an out-of-the-box, end-to-end fUSI analysis pipeline.\n> Because the fUSI field has not yet converged on standard processing workflows,\n> ConfUSIus instead aims to provide the fundamental building blocks needed to implement\n> any processing workflow described in the fUSI literature, or to design entirely new\n> ones. Researchers can combine these blocks to build analysis pipelines suited to\n> their experimental needs.\n\n- **I/O Operations**: Load and save fUSI data in various formats (AUTC, EchoFrame,\n  Iconeus, NIfTI, Zarr), with automatic fUSI-BIDS sidecars for NIfTI.\n- **Beamformed IQ Processing**: Process raw beamformed IQ signals into power Doppler,\n  velocity, and other derived metrics.\n- **Quality Control**: Compute quality metrics (DVARS, tSNR, CV) to assess data quality\n- **Registration**: Motion correction and spatial alignment tools.\n- **Brain Atlas Integration**: Map fUSI data to standard brain atlases for region-based\n  analysis.\n- **Signal Extraction**: Extract signals from regions of interest using spatial masks.\n- **Signal Processing**: Denoising, filtering, detrending, and confound regression.\n- **Visualization**: Rich plotting utilities for fUSI data exploration.\n- **Napari Plugin**: Interactive data loading, live signals inspection, and quality\n  control directly in the napari viewer—no scripting required.\n- **Xarray Integration**: Seamless integration with Xarray for labeled multi-dimensional\n  arrays.\n\n## Installation\n\n### 1. Setup a virtual environment\n\nWe recommend that you install ConfUSIus in a virtual environment to avoid dependency\nconflicts with other Python packages. Using\n[uv](https://docs.astral.sh/uv/guides/install-python/), you may create a new project\nfolder with a virtual environment as follows:\n\n```bash\nuv init new_project\n```\n\nIf you already have a project folder, you may create a virtual environment as follows:\n\n```bash\nuv venv\n```\n\n### 2. Install ConfUSIus\n\nConfUSIus is available on PyPI. Install it using:\n\n```bash\nuv add confusius\n```\n\nOr with pip:\n\n```bash\npip install confusius\n```\n\nTo install the latest development version from GitHub:\n\n```bash\nuv add git+https://github.com/confusius-tools/confusius.git\n```\n\n### 3. Check installation\n\nCheck that ConfUSIus is correctly installed by opening a Python interpreter and\nimporting the package:\n\n```python\nimport confusius\n```\n\nIf no error is raised, you have installed ConfUSIus correctly.\n\n## Quick Start\n\n```python\nimport confusius as cf\n\n# Load fUSI data\ndata = cf.load(\"path/to/data.nii.gz\")\n\n# Perform motion correction\ncorrected_data = data.fusi.register.volumewise()\n\n# Visualize with napari\ncorrected_data.fusi.plot()\n```\n\nSee the [documentation](https://confusius.tools/latest) for more detailed usage examples\nand tutorials.\n\n## Citing ConfUSIus\n\nIf you use ConfUSIus in your research, please cite it using the following reference:\n\n> Le Meur-Diebolt, S., & Cybis Pereira, F. (2026). ConfUSIus (v0.0.1-a25). Zenodo.\n> https://doi.org/10.5281/zenodo.18611124\n\nOr in BibTeX format:\n\n```bibtex\n@software{confusius,\n  author    = {Le Meur-Diebolt, Samuel and Cybis Pereira, Felipe},\n  title     = {ConfUSIus},\n  year      = {2026},\n  publisher = {Zenodo},\n  version   = {v0.0.1-a25},\n  doi       = {10.5281/zenodo.18611124},\n  url       = {https://doi.org/10.5281/zenodo.18611124}\n}\n```\n","description_content_type":"text/markdown","keywords":null,"home_page":null,"download_url":null,"author":"ConfUSIus developers","author_email":null,"maintainer":null,"maintainer_email":null,"license":null,"classifier":["Development Status :: 2 - Pre-Alpha","Programming Language :: Python","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Operating System :: OS Independent","Intended Audience :: Science/Research","Topic :: Scientific/Engineering","Topic :: Scientific/Engineering :: Image Processing","Topic :: Scientific/Engineering :: Visualization","Typing :: Typed","Framework :: napari"],"requires_dist":["brainglobe-atlasapi>=2.3.0","dask[complete]>=2025.9.0","flox>=0.11.1","h5py>=3.15.1","ipython>=9.6.0","joblib>=1.5.2","joblib-progress>=1.0.6","matplotlib>=3.10.7","napari[all]>=0.7.0","nibabel>=5.0.0","numpy>=2.3.4","pooch>=1.9.0","requests>=2.32.5","rich>=14.2.0","scikit-learn>=1.5.0","scipy>=1.16.3","simpleitk>=2.5.3","xarray[complete]>=2025.1.0","zarr>=3.1.3"],"requires_python":">=3.11, <3.14","requires_external":null,"project_url":null,"provides_extra":null,"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}