CoperniFUS
CoperniFUS: A flexible Python-based GUI for stereotaxic Focused UltraSound (FUS) experiment planning - Published in JOSS (2025)
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
Scientific Fields
Repository
A flexible Python-based GUI for stereotaxic experiment planning.
Basic Info
- Host: GitHub
- Owner: Tomaubier
- License: gpl-3.0
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://copernifus.readthedocs.io/
- Size: 115 MB
Statistics
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 0
- Releases: 3
Topics
Metadata Files
README.md
CoperniFUS: A flexible Python-based GUI for stereotaxic Focused UltraSound (FUS) experiment planning
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.

Stereotaxic frame module - Armature inheritance
Arbitrary stereotaxic frames can be easily simulated using a flexible dictionary-based 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.

Anatomical calibration module
Atlases scale and orientation can be simply matched to experimental conditions using anatomical landmarks such as Lambda and Bregma for rodents.

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.

k-Wave acoustic simulation
Support axisymmetric simulations in homogeneous domains and 3D simulations in complex mediums.

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.
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
- Using
Install
coperniFUSusingpip(if you are using windows, you might need to install Git)pip install git+https://github.com/Tomaubier/CoperniFUS.git1a. For Linux users: Install
libxcb-cursor-devto satisfyPyQt6requirementssudo apt-get install -y libxcb-cursor-devsee for additional details.1b. For macOS users:
k-wave-pythoncurrently requiersfftw hdf5 zlib libompto be installed. This requirement con be satisfied by runningbrew install fftw hdf5 zlib libompusing Homebrew. See this k-wave-python issue for additional details.
Launch CoperniFUS by running
coperniFUSin 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
- Repositories: 1
- Profile: https://github.com/Tomaubier
JOSS Publication
CoperniFUS: A flexible Python-based GUI for stereotaxic Focused UltraSound (FUS) experiment planning
Authors
LabTAU, INSERM, Centre Léon Bérard, Université Claude Bernard Lyon 1, F-69003, Lyon, France
Tags
Experimental Neuroscience Ultrasound neurostimulationGitHub 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
- actions/checkout v4 composite
- actions/setup-python v5 composite
- 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
- 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
- actions/checkout v4 composite
- actions/upload-artifact v4 composite
- openjournals/openjournals-draft-action master composite
- 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