Skip to content

A Python interface to k-Wave GPU accelerated binaries

License

Notifications You must be signed in to change notification settings

Dezmon/k-wave-python

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k-Wave-python

This project is a Python implementation of most 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 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 in order 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
pip install '.[example]' 
python3 examples/bmode_reconstruction_example.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 14 of bmode_reconstruction_example.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.

Contact

e-mail [email protected].

About

A Python interface to k-Wave GPU accelerated binaries

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.8%
  • MATLAB 4.2%