Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
cbb1987
[param, calibration] separate focal distance from exit and bowl
jkosciessa Mar 3, 2026
63d0a73
[distance] fix geometric focal distance estimation
jkosciessa Mar 3, 2026
0528053
[distance] attempt to calculate transducer distance during load
jkosciessa Mar 3, 2026
92e2c67
[calibration] update settings and naming
jkosciessa Mar 3, 2026
1224bff
[calibration] introduce optional parameter for upper verlocity
jkosciessa Mar 3, 2026
c855b69
[calibration] optimize functions
jkosciessa Mar 4, 2026
6098fea
Merge branch 'development' of github.com:Donders-Institute/PRESTUS in…
jkosciessa Mar 4, 2026
78ab26d
[doc] create mkdocs file
jkosciessa Mar 4, 2026
22dd02a
[docs] automate pages
jkosciessa Mar 4, 2026
5193cf4
[docs] automate pages
jkosciessa Mar 4, 2026
faa1d4e
[doc] minor
jkosciessa Mar 4, 2026
da53daa
[doc] workflow
jkosciessa Mar 4, 2026
17fde94
[doc] mkdocs deployment
jkosciessa Mar 4, 2026
0ff68d0
[doc] update outputs
jkosciessa Mar 4, 2026
1120090
[doc] update output
jkosciessa Mar 4, 2026
d76a82d
[doc] update outputs
jkosciessa Mar 4, 2026
52221eb
[doc] fix syntax
jkosciessa Mar 4, 2026
b17498c
[doc] fix links
jkosciessa Mar 4, 2026
d5f497e
[doc] update
jkosciessa Mar 4, 2026
78c36dd
[doc] gh action
jkosciessa Mar 4, 2026
1fd43cd
[doc] format outputs
jkosciessa Mar 4, 2026
e0f0ac5
[doc] include readme
jkosciessa Mar 4, 2026
0ab229c
[doc] include readme
jkosciessa Mar 4, 2026
e9875fc
[doc] include readme
jkosciessa Mar 4, 2026
63b3bf7
[doc] update requirements
jkosciessa Mar 4, 2026
cae3ff7
[doc] add requirements
jkosciessa Mar 4, 2026
161a12a
[doc] remove index
jkosciessa Mar 4, 2026
b399537
[doc] relink root files
jkosciessa Mar 4, 2026
4d1ad49
[doc] relink root files
jkosciessa Mar 4, 2026
a40b5ad
[doc] duplicate content where necessary
jkosciessa Mar 4, 2026
d810fb2
[doc] install reorder
jkosciessa Mar 4, 2026
fcb2924
[doc] update readmes
jkosciessa Mar 4, 2026
013a6b6
[doc] image integration
jkosciessa Mar 4, 2026
a02cc42
[doc] update documentation pages
jkosciessa Mar 4, 2026
4e7ad86
[doc] hotfixes
jkosciessa Mar 4, 2026
e17dd01
[doc] beauty update
jkosciessa Mar 4, 2026
c583c59
[pct] add example creation script
jkosciessa Mar 4, 2026
ab9cc50
[doc] update documentation pages
jkosciessa Mar 4, 2026
aea5acd
[doc] include examples
jkosciessa Mar 4, 2026
6679702
[doc] attempt to link html
jkosciessa Mar 4, 2026
c966712
[doc] attempt to link html
jkosciessa Mar 4, 2026
0fdb774
[doc] update documentation, starting guide
jkosciessa Mar 4, 2026
7f7eb56
[doc] update pages
jkosciessa Mar 4, 2026
e4a6024
[doc] reorder start guide
jkosciessa Mar 4, 2026
01869f6
[doc] add pct image
jkosciessa Mar 4, 2026
525f50c
[doc] add links
jkosciessa Mar 4, 2026
59155af
added dynamic pressure display in the html report and remove CEM and …
sirmrmarty Mar 5, 2026
83ee019
change the pressure units for the safety dashboard as well
sirmrmarty Mar 5, 2026
2dba8ec
change the pressure units for the acoustic section as well
sirmrmarty Mar 5, 2026
2b99ce8
Merge pull request #108 from sirmrmarty/development
jkosciessa Mar 5, 2026
ac27843
[doc] update contributions
jkosciessa Mar 5, 2026
9f8c49e
Merge branch 'development' of github.com:Donders-Institute/PRESTUS in…
jkosciessa Mar 5, 2026
f1e0035
[doc] add changelog
jkosciessa Mar 5, 2026
450864b
[doc] update formatting
jkosciessa Mar 5, 2026
ae62bae
[calibration] refactor, facilitate structure passing
jkosciessa Mar 5, 2026
23b3e64
[hotfix] uncomment calibration
jkosciessa Mar 5, 2026
7889769
[calibration] hotfixes + outsource force overwrite
jkosciessa Mar 5, 2026
1b3aaf3
[calibration] hotfix
jkosciessa Mar 5, 2026
24e2461
[calibration] hotfixes
jkosciessa Mar 6, 2026
e2d91ed
[calibration] hotfixes, documentation
jkosciessa Mar 6, 2026
f036139
[doc] fix formatting
jkosciessa Mar 6, 2026
3fd5b93
[doc] formula formatting
jkosciessa Mar 6, 2026
874c322
[calibration, doc] document calibration config
jkosciessa Mar 6, 2026
d2af40b
[doc] separate transducer and calibration doc
jkosciessa Mar 6, 2026
b67d51c
[bug] fix exit plane visualization, fix bowl distance param readin
jkosciessa Mar 6, 2026
da99bba
[doc] update simnibs installation guide
jkosciessa Mar 6, 2026
471d449
[seg] hotfix
jkosciessa Mar 6, 2026
dfaf6f6
[log] track SimNIBS version used for segmentation
jkosciessa Mar 6, 2026
f57facc
[pct] individual media mapping flags and functions, updated doc
jkosciessa Mar 9, 2026
d628038
[pct] change use_pseudoCT param name, update doc
jkosciessa Mar 9, 2026
b7f5cb2
[pct, doc] make a note w.r.t. defaults
jkosciessa Mar 9, 2026
505276b
[doc] update parameters
jkosciessa Mar 9, 2026
359ceff
[doc] update parameters
jkosciessa Mar 9, 2026
7027738
[pipeline] add more parameters to turn off pipeline steps
jkosciessa Mar 9, 2026
9ae3215
[grid] optional grid padding to prevent transducer out-of-bounds
jkosciessa Mar 9, 2026
b268bb1
[doc] update
jkosciessa Mar 9, 2026
36f734c
[clean] medium mapping
jkosciessa Mar 9, 2026
970449b
[feature] implement smoothing of acoustic property maps, redefine smo…
jkosciessa Mar 9, 2026
68cd43d
[fix] use profile_target.axial_distance_bowl as x-axis in compute_one…
sirmrmarty Mar 10, 2026
07d93c8
fix the axial_profile issue in plot_sim as well
sirmrmarty Mar 10, 2026
e388e59
[calibration] encourage use of project-specific config folder
jkosciessa Mar 10, 2026
6836dac
[FD] throw warning not error if focal distance is missing (e.g., to a…
jkosciessa Mar 10, 2026
2ef1b7e
[calibration] fix distance encoding for opt oneil
jkosciessa Mar 10, 2026
765821f
[segmentation] add option to call segementation within matlab
jkosciessa Mar 10, 2026
f6dfbfa
[calibration] example: force create output folder
jkosciessa Mar 10, 2026
8019263
[cpp] prevent string error for variable passing
jkosciessa Mar 10, 2026
60252e2
remove outdated examples
jkosciessa Mar 10, 2026
679c8ba
[doc] update link to (outdated) tutorial
jkosciessa Mar 10, 2026
0d75ccb
[doc] update quick start guide
jkosciessa Mar 10, 2026
e5aa59f
[pct] hotfix: uncomment key script parts
jkosciessa Mar 10, 2026
569c8f0
[pct] hotfix for debug plot
jkosciessa Mar 10, 2026
5fd957b
[neuronav] update localite readin for GUM files
jkosciessa Mar 10, 2026
7175f4c
[pct] hotfix
jkosciessa Mar 10, 2026
61a0509
[hotfix] correctly grab labels from medium not layers
jkosciessa Mar 10, 2026
f45b9a2
[bug] skull expansion labels could mismatch when removing layers
jkosciessa Mar 11, 2026
19c1187
[smooth, param] smoothing changed to FWHM mm, parameter name changed
jkosciessa Mar 11, 2026
dc70a4a
[hcp] refactor slurm submission, relabel temp files
jkosciessa Mar 11, 2026
5a4506f
[feature] fitting velocity exactly to desired intensity
sirmrmarty Mar 11, 2026
25177ef
[pct, param] allow to turn off nifti creation, include pCT in html if…
jkosciessa Mar 11, 2026
2ff8725
[fix] adjust the velocity to match the max_isppa
sirmrmarty Mar 11, 2026
25b9293
[pct] add header to html
jkosciessa Mar 11, 2026
ea492c7
[pipeline] allow to turn off individual modules, comment on run_acoustic
jkosciessa Mar 11, 2026
8aea927
[hotfix]
jkosciessa Mar 11, 2026
79f375a
[refactor] pipeline renamed, hpc submission refactored
jkosciessa Mar 11, 2026
609bb98
[platform] rename submit medium to platform, remove special case for …
jkosciessa Mar 11, 2026
1215130
[hotfix]
jkosciessa Mar 11, 2026
3188796
[beauty] simplify variable passing
jkosciessa Mar 11, 2026
a7b607d
[transducer positioning] draft refactoring, hpc integration
jkosciessa Mar 12, 2026
5559d50
[map] central function for coordinate mapping
jkosciessa Mar 12, 2026
bcc5955
[transducer placement] continue refactoring
jkosciessa Mar 12, 2026
10d34f1
[tp-hpc, default] fix tp hpc submission, fix check for expected sim path
jkosciessa Mar 12, 2026
609fbcb
[hotfix] fix PRESTUS path loading
jkosciessa Mar 12, 2026
06847b2
[tp] reorder steps, idenitfy missing plot inputs
jkosciessa Mar 12, 2026
53f202b
[tp] further refactoring, add ear exclusion
jkosciessa Mar 13, 2026
afc09ad
[heuristic feature, refactor, doc] added ear removal to heuristic, lo…
jkosciessa Mar 13, 2026
52cb0b5
[doc] draft documentation for heuristic transducer placement
jkosciessa Mar 13, 2026
7a1177d
Merge remote-tracking branch 'sirmrmarty/development' into development
jkosciessa Mar 13, 2026
5a88d81
adding padding when makeBowl is used and transducer is out of bounds
sirmrmarty Mar 13, 2026
a2be9e8
[fix] the slurm submission error due to sbatch format error
sirmrmarty Mar 13, 2026
0f687c2
[fix] if localite_path isn't defined the fallback should be the outpu…
sirmrmarty Mar 13, 2026
eb03105
[fix] variable img wasn't passed between tp_plot and transducer_posit…
sirmrmarty Mar 13, 2026
936b4c1
[fix] the unoptimized parameters were passed on for recomputing Oneil
sirmrmarty Mar 14, 2026
d53067a
[fix] nii_image wasnt available for cpu as it was still a gpuArray
sirmrmarty Mar 14, 2026
207567d
[fix] nii_image wasnt available for cpu as it was still a gpuArray, a…
sirmrmarty Mar 14, 2026
512bbab
Merge pull request #109 from sirmrmarty/development
jkosciessa Mar 14, 2026
cf5931a
[heuristic placement] add and document additional criteria, convert t…
jkosciessa Mar 14, 2026
7c29003
[doc] add example localite output table
jkosciessa Mar 14, 2026
4aa2eb4
[doc] reformat table
jkosciessa Mar 14, 2026
b8bb150
[doc] refactor neuronav placement and coordinates
jkosciessa Mar 14, 2026
e9cdc3c
[pct] regularize kplan skull sound speed mapping to 1500
jkosciessa Mar 14, 2026
ce2b7b0
[pct doc] add comment on kPlan densities
jkosciessa Mar 14, 2026
732c39a
[calibration] ensure transducer distances are present
jkosciessa Mar 16, 2026
359ac7c
[hpc] hotfix cpu/gpu choice
jkosciessa Mar 16, 2026
4e23050
[segmentation] fix log directory to segmentation folder
jkosciessa Mar 16, 2026
76cdeef
[hotfix] unify hpc_wait_for_job
jkosciessa Mar 16, 2026
fd8486b
[hpc] hotfix: wait for job
jkosciessa Mar 17, 2026
4ea73f1
[hpc] fix job formatting
jkosciessa Mar 17, 2026
1682866
[pct] kplan: regularize min. skull density to water
jkosciessa Mar 17, 2026
cc447e1
[parameter] refactor parameters
jkosciessa Mar 19, 2026
69f45a8
[parameters] segmentation_only mode
jkosciessa Mar 19, 2026
ed2e7fd
[parameters] hotfixes, further parameter rename
jkosciessa Mar 21, 2026
22d87b2
[test] add initial tests
jkosciessa Mar 25, 2026
2562651
[reporting] add MI transcranial
jkosciessa Mar 25, 2026
f90bc2f
[output] standardize intensity and pressure names
jkosciessa Mar 25, 2026
4cb295a
[doc] fix formatting
jkosciessa Mar 25, 2026
28db2ff
[doc] fix formatting
jkosciessa Mar 25, 2026
2c908aa
[doc] refer to external article
jkosciessa Mar 26, 2026
5511162
Squashed commit of the following:
MaCuinea Mar 31, 2026
5d512b8
Revert "Squashed commit of the following:"
MaCuinea Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/workflows/mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Deploy PRESTUS Docs
on:
push:
branches: [ development, main ]
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: '3.x'

- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}

- name: Install dependencies
run: |
pip install -U pip
pip install mkdocs mkdocs-material pymdown-extensions

- name: Build
run: mkdocs build --clean

- uses: actions/upload-pages-artifact@v3
with:
path: ./site

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
*.o[0-9][0-9][0-9][0-9]*


######################
# Ignore mkdocs site #
######################

site/

###################
# Matlab specific #
###################
Expand Down Expand Up @@ -80,4 +86,5 @@ $RECYCLE.BIN/
.directory
.Trash-*
core.*
.Rhistory
.Rhistory
.claude
50 changes: 17 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
PRESTUS (PREprocessing & Simulations for Transcranial Ultrasound Stimulation) is an open-source MATLAB toolbox that aims to streamline imaging-informed simulations of Transcanial Ultrasound Stimulation (TUS): from the segmentation of T1-weighted MRI head scans and mapping of medium tissue properties (possibly informed for skull via (pseudo-)CT images) in a simulation grid, to the execution of acoustic and thermal simulations using the widely adopted k-Wave engine. High-performance computing (HPC) support via SLURM and CentOS enables efficient parallelization, and large-scale analyses. Output 3D NifTI images are automatically mapped to a standard template (MNI) space to facilitate group reporting.

Key features include:

- Automated MRI segmentation (using SimNIBS 4 charm) and preprocessing.
- 2D / 3D grid setup.
- Multi-layer medium property mapping (water, skin, multi-layer skull, and brain).
Expand All @@ -17,55 +18,36 @@ Key features include:
- 3D NifTI outputs for major reporting metrics (in subject- & MNI-space).

These features make PRESTUS an accessible tool for researchers to plan, validate, and report transcranial ultrasound targeting.
The ```documentation``` folder contains evolving documentation of the main workflows and parameters, alongside a tutorial on how to run the integrated pipeline.

A recent overview poster can be found [here](https://jkosciessa.github.io/downloads/2025-FUN25-PRESTUS.pdf).

If you would like to assist the community development of this tool, please consider [CONTRIBUTING](CONTRIBUTING.md).

# Installation

## Donders Institute HPC Cluster

When working on the Donders High-Performance-Computing cluster, PRESTUS and its dependencies (SimNIBS, k-Wave) are already installed.

Type ``module load simnibs/4.0.0`` (or add the command to your .bashrc so that it is executed automatically once you login) and add ``addpath('/opt/prestus/dev')`` to your matlab path. This will use the most up-to-date version of PRESTUS (i.e., the current development branch). If you want to use an older version you can also use ``addpath('/opt/prestus/0.2.0')``, or older versions. Now you can start matlab R2022b.
# Documentation

For more information on HPC usage, see [doc_hpc](documentation/doc_hpc.md)

If you want to get started with simulations, you can use the PRESTUS example dataset. This command will copy the dataset to your home directory:

```
cp /opt/prestus/example_data/PRESTUS_example_data.zip ${HOME}
```

## Outside the Donders HPC

Follow the [installation guide](documentation/doc_installation.md).
Please see the [PRESTUS documentation](https://donders-institute.github.io/PRESTUS/).

# Reference

Chetverikov, A.\*, Kosciessa, J. Q.\*, Cornelissen, M., Carpino, E., van der Zee, K., & Verhagen, L. (2025). PRESTUS (0.4.0). Zenodo. https://doi.org/10.5281/zenodo.15965832
If you use this tool for publications, please cite:
Kosciessa, J. Q.\*, Chetverikov, A.\*, Cornelissen, M., van der Zee, K., Carpino, E., Wimmers, M., Adelhöfer, N., Meijer, S., & Verhagen, L. (2026). PRESTUS (0.5.0). Zenodo. https://doi.org/10.5281/zenodo.15095860

# Contributors

[![Contributors](https://img.shields.io/github/contributors/Donders-Institute/PRESTUS.svg?color=00B4D8&style=flat-square)](https://github.com/Donders-Institute/PRESTUS/graphs/contributors)
[![All Contributors](https://img.shields.io/github/all-contributors/Donders-Institute/PRESTUS?color=00B4D8&style=flat-square)](#contributors)
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://juliankosciessa.eu"><img src="https://avatars.githubusercontent.com/u/40263608?v=4?s=100" width="100px;" alt="Julian Kosciessa"/><br /><sub><b>Julian Kosciessa</b></sub></a><br /><a href="#code-jkosciessa" title="Code">💻</a> <a href="#ideas-jkosciessa" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tutorial-jkosciessa" title="Tutorials">✅</a> <a href="#maintenance-jkosciessa" title="Maintenance">🚧</a> <a href="#bug-jkosciessa" title="Bug reports">🐛</a> <a href="#doc-jkosciessa" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://andreychetverikov.org"><img src="https://avatars.githubusercontent.com/u/1465806?v=4?s=100" width="100px;" alt="Andrey Chetverikov"/><br /><sub><b>Andrey Chetverikov</b></sub></a><br /><a href="#code-achetverikov" title="Code">💻</a> <a href="#ideas-achetverikov" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tutorial-achetverikov" title="Tutorials">✅</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KTZ228"><img src="https://avatars.githubusercontent.com/u/51954604?v=4?s=100" width="100px;" alt="Kenneth van der Zee"/><br /><sub><b>Kenneth van der Zee</b></sub></a><br /><a href="#code-KTZ228" title="Code">💻</a> <a href="#ideas-KTZ228" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-KTZ228" title="Maintenance">🚧</a> <a href="#bug-KTZ228" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MaCuinea"><img src="https://avatars.githubusercontent.com/u/134381864?v=4?s=100" width="100px;" alt="Margely Cornelissen"/><br /><sub><b>Margely Cornelissen</b></sub></a><br /><a href="#code-MaCuinea" title="Code">💻</a> <a href="#maintenance-MaCuinea" title="Maintenance">🚧</a> <a href="#tutorial-MaCuinea" title="Tutorials">✅</a> <a href="#bug-MaCuinea" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/eleonoracarpino"><img src="https://avatars.githubusercontent.com/u/123380299?v=4?s=100" width="100px;" alt="Eleonora Carpino"/><br /><sub><b>Eleonora Carpino</b></sub></a><br /><a href="#code-eleonoracarpino" title="Code">💻</a> <a href="#ideas-eleonoracarpino" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mekman"><img src="https://avatars.githubusercontent.com/u/139282?v=4?s=100" width="100px;" alt="Matthias Ekman"/><br /><sub><b>Matthias Ekman</b></sub></a><br /><a href="#bug-mekman" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sirmrmarty"><img src="https://avatars.githubusercontent.com/u/140894211?v=4?s=100" width="100px;" alt="Martin Wimmers"/><br /><sub><b>Martin Wimmers</b></sub></a><br /><a href="#tutorial-sirmrmarty" title="Tutorials">✅</a> <a href="#bug-sirmrmarty" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/neurodream"><img src="https://avatars.githubusercontent.com/u/117816806?v=4?s=100" width="100px;" alt="Nico Adelhöfer"/><br /><sub><b>Nico Adelhöfer</b></sub></a><br /><a href="#ideas-neurodream" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://lennartverhagen.com"><img src="https://avatars.githubusercontent.com/u/12236166?v=4?s=100" width="100px;" alt="Lennart Verhagen"/><br /><sub><b>Lennart Verhagen</b></sub></a><br /><a href="#ideas-lennartverhagen" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="10%"><a href="http://juliankosciessa.eu"><img src="https://avatars.githubusercontent.com/u/40263608?v=4?s=100" width="100px;" alt="Julian Kosciessa"/><br /><sub><b>Julian Kosciessa</b></sub></a><br /><a href="#code-jkosciessa" title="Code">💻</a> <a href="#ideas-jkosciessa" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tutorial-jkosciessa" title="Tutorials">✅</a> <a href="#maintenance-jkosciessa" title="Maintenance">🚧</a> <a href="#bug-jkosciessa" title="Bug reports">🐛</a> <a href="#doc-jkosciessa" title="Documentation">📖</a></td>
<td align="center" valign="top" width="10%"><a href="http://andreychetverikov.org"><img src="https://avatars.githubusercontent.com/u/1465806?v=4?s=100" width="100px;" alt="Andrey Chetverikov"/><br /><sub><b>Andrey Chetverikov</b></sub></a><br /><a href="#code-achetverikov" title="Code">💻</a> <a href="#ideas-achetverikov" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tutorial-achetverikov" title="Tutorials">✅</a></td>
<td align="center" valign="top" width="10%"><a href="https://github.com/KTZ228"><img src="https://avatars.githubusercontent.com/u/51954604?v=4?s=100" width="100px;" alt="Kenneth van der Zee"/><br /><sub><b>Kenneth van der Zee</b></sub></a><br /><a href="#code-KTZ228" title="Code">💻</a> <a href="#ideas-KTZ228" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-KTZ228" title="Maintenance">🚧</a> <a href="#bug-KTZ228" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="10%"><a href="https://github.com/MaCuinea"><img src="https://avatars.githubusercontent.com/u/134381864?v=4?s=100" width="100px;" alt="Margely Cornelissen"/><br /><sub><b>Margely Cornelissen</b></sub></a><br /><a href="#code-MaCuinea" title="Code">💻</a> <a href="#maintenance-MaCuinea" title="Maintenance">🚧</a> <a href="#tutorial-MaCuinea" title="Tutorials">✅</a> <a href="#bug-MaCuinea" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="10%"><a href="https://github.com/eleonoracarpino"><img src="https://avatars.githubusercontent.com/u/123380299?v=4?s=100" width="100px;" alt="Eleonora Carpino"/><br /><sub><b>Eleonora Carpino</b></sub></a><br /><a href="#code-eleonoracarpino" title="Code">💻</a> <a href="#ideas-eleonoracarpino" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="10%"><a href="https://github.com/sirmrmarty"><img src="https://avatars.githubusercontent.com/u/140894211?v=4?s=100" width="100px;" alt="Martin Wimmers"/><br /><sub><b>Martin Wimmers</b></sub></a><br /><a href="#code-sirmrmarty" title="Code">💻</a> <a href="#tutorial-sirmrmarty" title="Tutorials">✅</a> <a href="#bug-sirmrmarty" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="10%"><a href="https://github.com/neurodream"><img src="https://avatars.githubusercontent.com/u/117816806?v=4?s=100" width="100px;" alt="Nico Adelhöfer"/><br /><sub><b>Nico Adelhöfer</b></sub></a><br /><a href="#code-neurodream" title="Code">💻</a> <a href="#ideas-neurodream" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="10%"><a href="https://github.com/meijer-s"><img src="https://avatars.githubusercontent.com/u/243970592?v=4&s=100" width="100px;" alt="meijer-s"/><br /><sub><b>meijer-s</b></sub></a><br /><a href="#code-meijer-s" title="Code">💻</a> <a href="#ideas-meijer-s" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="10%"><a href="https://github.com/mekman"><img src="https://avatars.githubusercontent.com/u/139282?v=4?s=100" width="100px;" alt="Matthias Ekman"/><br /><sub><b>Matthias Ekman</b></sub></a><br /><a href="#bug-mekman" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="10%"><a href="http://lennartverhagen.com"><img src="https://avatars.githubusercontent.com/u/12236166?v=4?s=100" width="100px;" alt="Lennart Verhagen"/><br /><sub><b>Lennart Verhagen</b></sub></a><br /><a href="#ideas-lennartverhagen" title="Ideas, Planning, & Feedback">🤔</a></td>
</tr>
</tbody>
</table>
Expand All @@ -75,6 +57,8 @@ Chetverikov, A.\*, Kosciessa, J. Q.\*, Cornelissen, M., Carpino, E., van der Zee

<!-- ALL-CONTRIBUTORS-LIST:END -->

If you would like to assist the community development of this tool, please consider [CONTRIBUTING](CONTRIBUTING.md).

# License

Released under GNU General Public License v3.0 (see LICENSE).
Expand Down
57 changes: 29 additions & 28 deletions configs/calibration_config.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
# The configuration is structured using YAML (https://yaml.org/). Note that YAML uses spaces, not tabs, for identation.

# Simulation paths (note: specific for calibration) [Change to your directories...]
## Parameters for standalone calibration (using Donders equipment)

# Simulation paths (no defaults; change to your directories...)
path_input_axial: '//home/common/matlab/PRESTUS/Axial_profiles/' # Base path for axial profiles
path_input_phase: '//home/common/matlab/PRESTUS/Phase_tables/' # Base path for phase data
path_output: '/project/2425122.01/calibration/data/calibration/' # Folder path for saving simulation results
path_output_profiles: '/project/2425122.01/calibration/data/PRESTUS_virtual_parameters/' # Folder for saving optimized profile data
filename_calibrated_CSV: '' # Filename of calibrated CSV data (default: standalone script generates name based on equipment)
path_input_phase: '//home/common/matlab/PRESTUS/Phase_tables/' # Base path for phase data

# Internal settings

submit_medium: 'slurm' # Simulation submit mode: matlab (debug; doesn't overwrite; force cpu mode), slurm (recommended), or qsub
save_in_calibration_folder: true # Boolean flag to save outputs in general output folder or simulation-specific folder. If TRUE, simulations are run in calibration output directory; results are appended to existing calibration for this equipment instead of overwritten.
skip_front_peak_mm: 10 # Distance to ignore from the start of axial profile (mm) to avoid near-field peak artifacts
optmethod: 'FEXminimize' # 'FEXminimize' (open source subtoolbox) | 'GlobalSearch' (MATLAB's Global Optimization Toolbox)
weights: 1 # Weighting of the original profile during fitting (towards 0 = narrower Gaussian; 1 = equal weighting)
seed: 251024 # Random seed for optimization
addEPdistance: 1 # Append distance from transducer bowl to exit plane (if zero point in provided profiles = exit plane, != transducer bowl)
interpolateToEP: 1 # Interpolate values between bowl and exit plane [default: add initial value in empirical measurements]
force_kwavearray: 1 # Force to run free-water simulations with kwavearray?
axisymmetric2D: 0 # [EXPERIMENTAL; default: 0] Convert (default; depends on study config) 3D free-water simulation setup to 2D axisymmetry for efficiency

# List combinations of setups (e.g., transducer-TPO) and calibration targets.
# List combinations of setups (e.g., transducer-TPO) and calibration targets (no defaults)
# Every [] specification will be performed for the corresponding (ordered) index equipment combination.
# Example: all foci within the first [] will be executed for the first equipment combination.
# If array is empty ([]), all focal depths of available characterization data will be used.
Expand All @@ -35,12 +21,27 @@
- [35, 83]
- [35, 83]

# Example for multiple equipment-depth-intensity combinations:
# combinations:
# - IS_PCD15287_01001_IGT_128_ch_comb_10_ch
# - IS_PCD15287_01002_IGT_128_ch_comb_10_ch
# focal_depths_wrt_exit_plane:
# - [85]
# - [30, 50]
# desired_intensities:
# - [30]
# For curved transducers: are distances in empirical profiles provided from the exit plane?
add_FDO: 1 # Append Focal Distance Offset (distance from transducer bowl to exit plane). Use if zero point in provided profiles = exit plane, != transducer bowl.

## Parameters for calibration function

# I/O
path_output: '/project/2425122.01/calibration/data/calibration/' # Folder for saving simulation results [Change to your directories...]
path_output_profiles: '/project/2425122.01/calibration/data/PRESTUS_virtual_parameters/' # Folder for saving optimized profile data [Change to your directories...]
save_in_calibration_folder: true # Boolean flag to save outputs in general output folder or simulation-specific folder (`parameters.calibration.path_output`). If TRUE, simulations are run in calibration output directory; results are appended to existing calibration for this equipment instead of overwritten.
filename_calibrated_CSV: '' # Filename of calibrated CSV data (default: standalone script generates name based on equipment)

# Simulation submission overrrides
force_kwavearray: 1 # Force to run free-water simulations with kwavearray?
axisymmetric2D: 0 # Convert (default; depends on study config) 3D free-water simulation setup to 2D axisymmetry for efficiency

# Optimization
opt_method: 'FEXminimize' # 'FEXminimize' (open source subtoolbox) | 'GlobalSearch' (MATLAB's Global Optimization Toolbox)
opt_weights: 0 # Weighting of the original profile during fitting (0 = uniform weighting, >1 increasingly narrow Gaussian FWHM)
opt_seed: 251024 # Random seed for optimization
opt_upper_velocity: 0.2 # Upper velocity in global search
fit_velocity_to_intensity: true # Correct velocity after global search to match desired peak intensity

# Other
skip_front_peak_mm: 10 # Distance to ignore from the start of axial profile (mm) to avoid near-field peak artifacts in reporting
Loading
Loading