Skip to main content

Acoustics toolbox for time domain acoustic and ultrasound simulations in complex and tissue-realistic media.

Project description

k-Wave-python

Documentation Status codecov Binder

This project is a Python implementation of v1.4.0 of the MATLAB toolbox k-Wave as well as an interface to the pre-compiled v1.3 of k-Wave simulation binaries, which support NVIDIA sm 5.0 (Maxwell) to sm 9.0a (Hopper) GPUs.

Mission

With this project, we hope to increase the accessibility and reproducibility of k-Wave simulations for medical imaging, algorithmic prototyping, and testing. Many tools and methods of k-Wave can be found here, but this project has and will continue to diverge from the original k-Wave APIs to leverage pythonic practices.

Installation

To install the most recent build of k-Wave-python from PyPI, run:

pip install k-wave-python

After installing the Python package, the required binaries will be downloaded and installed the first time you run a simulation.

Getting started

After installation, run the B-mode reconstruction example in the examples directory of the repository:

git clone https://github.com/waltsims/k-wave-python
cd k-wave-python
git checkout v0.3.3
pip install '.[example]' 
python3 examples/us_bmode_linear_transducer/us_bmode_linear_transducer.py

This example file steps through the process of:

  1. Generating a simulation medium
  2. Configuring a transducer
  3. Running the simulation
  4. Reconstructing the simulation

Requirements

This example expects an NVIDIA GPU by default to simulate with k-Wave.

To test the reconstruction on a machine with a GPU, set RUN_SIMULATION on line 29 of us_bmode_linear_transducer.py to True, and the example will run without the pre-computed data.

Development

If you're enjoying k-Wave-python and want to contribute, development instructions can be found here.

Related Projects

  1. k-Wave: A MATLAB toolbox for the time-domain simulation of acoustic wave fields.
  2. j-wave: Differentiable acoustic simulations in JAX.
  3. ADSeismic.jl: a finite difference acoustic simulator with support for AD and JIT compilation in Julia.
  4. stride: a general optimisation framework for medical ultrasound tomography.

Documentation

The documentation for k-wave-python can be found here.

Citation

@software{k-Wave-Python,
author = {Yagubbbayli, Farid and Sinden, David and Simson, Walter},
license = {GPL-3.0},
title = {{k-Wave-Python}},
url = {https://github.com/waltsims/k-wave-python}
}

Contact

e-mail wsimson@stanford.edu.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

k_wave_python-0.3.3.tar.gz (185.4 kB view hashes)

Uploaded Source

Built Distribution

k_wave_python-0.3.3-py3-none-any.whl (212.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page