CoperniFUS

CoperniFUS: A flexible Python-based GUI for stereotaxic Focused UltraSound (FUS) experiment planning - Published in JOSS (2025)

https://github.com/tomaubier/copernifus

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

neuroscience-experiments neurostimulation ultrasound

Scientific Fields

Sociology Social Sciences - 87% confidence
Psychology Social Sciences - 60% confidence
Engineering Computer Science - 45% confidence
Last synced: 4 months ago · JSON representation

Repository

A flexible Python-based GUI for stereotaxic experiment planning.

Basic Info
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 3
Topics
neuroscience-experiments neurostimulation ultrasound
Created 12 months ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License

README.md

CoperniFUS: A flexible Python-based GUI for stereotaxic Focused UltraSound (FUS) experiment planning

Tests status

In the quest for a better control and understanding of the mechanisms of ultrasound neuromodulation and neurostimulation, the planning of experiments, evaluation of acoustic parameters via simulations, and post-processing of results often rely on distinct software programs with their own coordinate systems, which greatly complicates the integration, analysis, and interpretation of key information.

Designed around a unified coordinate system architecture, CoperniFUS is built to address this challenge by offering a versatile software platform for planning stereotaxic focused ultrasound (FUS) procedures.

Check out the Documentation and step by step tutorial to learn more on its usage.

[!IMPORTANT]
Like any other numerical modeling technique, the quality of the results produced by CoperniFUS depends entirely on the choice of input parameters. This software, developed in the context of my PhD, is also subject to bugs. It is therefore of the responsibility of the user to design and perform careful assessments of the results validity. If you identify any issues, please report them in GitHub's dedicated section.

Key features

BrainGlobe + Structure highlighting

Supports a large range of Brain Atlases and associated structures thanks to BrainGlobe Atlas API. Atlas viz demo

Stereotaxic frame module - Armature inheritance

Arbitrary stereotaxic frames can be easily simulated using a flexible dictionary-based editor. Armature config editor Stereotaxic frame elements (referred as armatures) can be associated in a hierarchical tree structure allowing to perform operations such as mesh boolean operation or acoustic simulations in any spatial reference frame. Armature inheritance demo

Anatomical calibration module

Atlases scale and orientation can be simply matched to experimental conditions using anatomical landmarks such as Lambda and Bregma for rodents. Atlas viz demo

Trimesh boolean operations

Integration with the Python library trimesh allow for the manipulation of meshes. This feature greatly simplifies the execution of acoustic simulations in the presence of skulls. Trimesh integration demo

k-Wave acoustic simulation

Support axisymmetric simulations in homogeneous domains and 3D simulations in complex mediums. k-Wave integration demo

Getting started

Tested on macOS 15, Ubuntu 24.04.2 LTS, Linux Mint 21.1, Windows 10 & 11 using Python 3.12.

Installation

For detailed instructions and troubleshooting steps checkout the documentation here.

  1. Optional but highly recommended: setup a dedicated Python 3.12 environment (I recommended using miniconda)

    • Using conda: conda create -n coperniFUS_env python=3.12
    • Activate the newly created environment using conda activate coperniFUS_env
  2. Install coperniFUS using pip (if you are using windows, you might need to install Git)

    • pip install git+https://github.com/Tomaubier/CoperniFUS.git

      1a. For Linux users: Install libxcb-cursor-dev to satisfy PyQt6 requirements sudo apt-get install -y libxcb-cursor-dev see for additional details.

      1b. For macOS users: k-wave-python currently requiers fftw hdf5 zlib libomp to be installed. This requirement con be satisfied by running brew install fftw hdf5 zlib libomp using Homebrew. See this k-wave-python issue for additional details.

  3. Launch CoperniFUS by running coperniFUS in a terminal. Checkout this page for detailed usage instructions.

Contributing to the project

With the aim of making CoperniFUS suitable for a wide range of applications, your feedback and contributions are always welcome! Please refer to the Contribution Guidelines if you wish to do so.

Related projects

Owner

  • Name: Tom Aubier
  • Login: Tomaubier
  • Kind: user

JOSS Publication

CoperniFUS: A flexible Python-based GUI for stereotaxic Focused UltraSound (FUS) experiment planning
Published
July 24, 2025
Volume 10, Issue 111, Page 8128
Authors
Tom Aubier ORCID
LabTAU, INSERM, Centre Léon Bérard, Université Claude Bernard Lyon 1, F-69003, Lyon, France
Ivan M. Suarez-Castellanos ORCID
LabTAU, INSERM, Centre Léon Bérard, Université Claude Bernard Lyon 1, F-69003, Lyon, France
W. Apoutou N'Djin ORCID
LabTAU, INSERM, Centre Léon Bérard, Université Claude Bernard Lyon 1, F-69003, Lyon, France
Editor
Kevin M. Moerman ORCID
Tags
Experimental Neuroscience Ultrasound neurostimulation

GitHub Events

Total
  • Create event: 2
  • Release event: 1
  • Issues event: 18
  • Watch event: 7
  • Issue comment event: 23
  • Public event: 1
  • Push event: 63
  • Fork event: 2
Last Year
  • Create event: 2
  • Release event: 1
  • Issues event: 18
  • Watch event: 7
  • Issue comment event: 23
  • Public event: 1
  • Push event: 63
  • Fork event: 2

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 15
  • Total pull requests: 0
  • Average time to close issues: 8 days
  • Average time to close pull requests: N/A
  • Total issue authors: 6
  • Total pull request authors: 0
  • Average comments per issue: 2.4
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 15
  • Pull requests: 0
  • Average time to close issues: 8 days
  • Average time to close pull requests: N/A
  • Issue authors: 6
  • Pull request authors: 0
  • Average comments per issue: 2.4
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Tomaubier (8)
  • Julie-Fabre (3)
  • iiotkanyu (1)
  • richardkoehler (1)
  • adamltyson (1)
  • plooney (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/python-app.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
docs/requirements.txt pypi
  • directory_tree *
  • furo ==2024.8.6
  • nbconvert ==7.16.6
  • nbsphinx ==0.9.6
  • sphinx ==8.1.3
  • sphinx-autodoc-typehints ==3.0.1
  • sphinx_mdinclude ==0.6.2
pyproject.toml pypi
  • PyQt6 ==6.7.0
  • bg_atlasapi ==1.0.3
  • brainglobe_atlasapi ==2.0.7
  • dask ==2024.5.2
  • k-Wave-python ==0.3.4
  • mapbox_earcut ==1.0.1
  • matplotlib ==3.9.0
  • napari ==0.5.4
  • numpy ==1.26.4
  • numpy-stl ==3.1.1
  • onnxruntime ==1.19.2
  • opencv-python ==4.10.0.84
  • pillow ==10.3.0
  • pyqtgraph ==0.13.7
  • rembg ==2.0.59
  • rtree ==1.3.0
  • scikit-spatial ==7.2.0
  • scipy ==1.13.1
  • shapely ==2.0.5
  • si-prefix ==1.3.3
  • tqdm ==4.66.4
  • trimesh ==4.0.1
  • zarr ==2.18.3
.github/workflows/draft-pdf.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • openjournals/openjournals-draft-action master composite
requirements.txt pypi
  • PyQt6 ==6.7.0
  • brainglobe_atlasapi ==2.0.7
  • dask ==2025.3.0
  • k-Wave-python ==0.4.0
  • manifold3d ==3.1.1
  • mapbox_earcut ==1.0.1
  • matplotlib ==3.10.0
  • napari ==0.6.1
  • networkx ==3.5
  • numpy ==1.26.4
  • numpy-stl ==3.1.1
  • onnxruntime ==1.19.2
  • opencv-python ==4.10.0.84
  • pillow ==10.3.0
  • pymeshfix ==0.17.1
  • pyqtgraph ==0.13.7
  • rembg ==2.0.59
  • rtree ==1.3.0
  • scikit-spatial ==7.2.0
  • scipy ==1.14.1
  • shapely ==2.1.1
  • si-prefix ==1.3.3
  • tqdm ==4.66.4
  • trimesh ==4.6.10
  • zarr ==2.18.3