A toolbox for acoustic simulations of transcranial ultrasound
TUSX (Transcranial Ultrasound Simulation Toolbox) is an open-source MATLAB toolbox to perform acoustic simulations using subject-specific medical images for transcranial ultrasound experiments. TUSX consists of an integrated processing pipeline that takes in structural MRI (magnetic resonance) or CT (computed tomography) head images, processes them for accurate simulation, and runs the simulations using k-Wave, an existing open-source acoustics toolbox for MATLAB and C++.
TUSX written in MATLAB. As such, download TUSX and add TUSX to your MATLAB seach path.
If you have Git, download TUSX by cloning TUSX:
git clone https://github.com/ianheimbuch/tusx.git
Alternatively, a ZIP of the current version of TUSX can be downloaded via GitHub on a web browser.
Code -> Download ZIP
k-Wave is a powerful open-source toolbox to perform computationally efficient acoustic simulations in MATLAB and C++ developed by Bradley Treeby and Ben Cox (University College London) and Jiri Jaros (Brno University of Technology). TUSX uses k-Wave to run acoustic simulations, so one must install k-Wave and add it to the MATLAB search path to use TUSX. k-Wave can be downloaded for free on their website. Please cite k-Wave if you perform acoustic simulations with the help of TUSX.
The central function in TUSX is tusx_sim_setup
:
[kgrid, medium, source, sensor, input_args] = tusx_sim_setup(skullMask_filename, scVox, cxVox, scale, alphaPower)
skullNifti
: File path to NIfTI file of binary skull volume (i.e. skull mask).scalpLocation
: 3-element array of NIfTI voxel coordinates (fslX, fslY, fslZ).
scalpLocation = [104,6,122]
ctxTarget
: 3-element array of NIfTI voxel coordinates (fslX, fslY, fslZ).
ctxTarget = [105,34,116]
scale
: Integer to scale up by (upscale resolution via nearest neighbor interpolation).
alphaPower
: y of alpha coeff. Dictates if dispersion is simulated.
tusx_sim_setup
runs such that the subsequent k-Wave simulation will not simulate dispersion.There are a host of optional name-value pairs that may be input into tusx_sim_setup
. See the help section within tusx_sim_setup
for details.
transducer
brainMaskNifti
reorientToGrid
true
, volume will be rotated in 3D space and interpolated such that the trajectory defined by the two NIfTI "target" and "scalpLocation" is aligned orthogonally to the computational grid.scale
parameter).The outputs of tusx_sim_setup
can then be directly input into k-Wave's function:
kspaceFirstOrder3D(kgrid, medium, source, sensor, input_args{:})
Tutorial documentaion available here.
If you use TUSX, please cite both TUSX and k-Wave:
TUSX was created by Ian Heimbuch (@ianheimbuch) at the University of California, Los Angeles
The TUSX logo was created by Vaughan Greer
The code in this project is licensed under the BSD-3-Clause open source license.