Skip to main content

Openwater Focused Ultrasound Toolkit

Project description

Actions Status Documentation Status

PyPI version PyPI platforms

GitHub Discussion

openlifu is a toolbox for planning and controlling focused ultrasound treatments. It generally replicates the functionality developed in the MATLAB open-TFUS toolbox.

Installation

Requirements

Python 3.10-3.12 on Windows or Linux.

Create Virtual Environment

Windows:

C:\Users\<uname>\AppData\Local\Programs\Python\Python311\python.exe -m venv env
.\env\Scripts\activate

Linux:

python3.11 -m venv env

Install project (editable)

With this repo as the working directory:

Basic mode

pip install -e .

Dev mode

pip install -e '.[dev]'

Installing Meshroom

If you are using openlifu.nav.photoscan to reconstruct meshes from photo collections, then you will need to set up Meshroom 2025.1.0.

Ubuntu

Download and Extract

  1. Download Meshroom 2025.1.0 for Linux from https://github.com/alicevision/Meshroom/releases/tag/v2025.1.0.

  2. Extract the downloaded archive:

    tar -xvf Meshroom-2025.1.0-Linux.tar.gz

Add Meshroom to PATH

Temporary (Current Session) Run:

export PATH="<path-to-meshroom>/Meshroom-2025.1.0-Linux:$PATH"

Replace <path-to-meshroom> with the actual path where Meshroom was extracted.

Permanent (Persistent Across Sessions) For Bash users:

echo 'export PATH="<path-to-meshroom>/Meshroom-2025.1.0-Linux:$PATH"' >> ~/.bashrc
source ~/.bashrc

Windows

Download and Extract

  1. Download Meshroom 2025.1.0 for Windows from https://github.com/alicevision/Meshroom/releases/tag/v2025.1.0.

  2. Extract the downloaded archive to a directory of your choice.

Add Meshroom to PATH

  1. Open Edit environment variables for your account from the Start menu.

  2. In the Environment Variables window, under User variables, select Path and click Edit.

  3. Click New, and add the path to the folder containing Meshroom.exe.

  4. Click OK to save the changes.

Enable GPU Acceleration

To ensure Meshroom uses your NVIDIA GPU:

  1. Open NVIDIA Control Panel.

  2. In the left sidebar under 3D Settings, click Manage 3D settings.

  3. Go to the Program Settings tab.

  4. Click Add, then browse to and select Meshroom.exe from the folder where you extracted Meshroom.

  5. Under Select the preferred graphics processor for this program, choose High-performance NVIDIA processor.

  6. Click Apply.

Version control of database using DVC (Data Version Control)

Data Version Control (DVC) is a data management tool that is meant to be run alongside Git. In this project, DVC is used to link changes in the code to specific versions of a sample database containing example project files. DVC can be used when this project is installed in Dev mode. You can read more about DVC and how to use it here. Note: Remote access to the sample database stored on google drive is currently restricted. Access requires a gdrive_client_secret for user access authentication to be shared by developers.

DVC usage

To download the sample database:

git pull
dvc remote modify --local shared_gdrive gdrive_client_secret <client_secret_here> # Contact developers for grive_client_secret
dvc pull # Requires access to remote storage

This will download a directory ‘db_dvc’ in the repo directory that contains the corresponding version of example database files.

To commit updates to the sample database:

dvc add db_dvc
git commit -m "Describe updates to database"
git push
dvc push #Requires access to remote storage

Disclaimer

CAUTION - Investigational device. Limited by Federal (or United States) law to investigational use. The system described here has not been evaluated by the FDA and is not designed for the treatment or diagnosis of any disease. It is provided AS-IS, with no warranties. User assumes all liability and responsibility for identifying and mitigating risks associated with using this software.

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

openlifu-0.19.0.tar.gz (374.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openlifu-0.19.0-py3-none-any.whl (221.7 kB view details)

Uploaded Python 3

File details

Details for the file openlifu-0.19.0.tar.gz.

File metadata

  • Download URL: openlifu-0.19.0.tar.gz
  • Upload date:
  • Size: 374.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openlifu-0.19.0.tar.gz
Algorithm Hash digest
SHA256 fbdc5134466e002a13522f95a4bcf83b3495b5e19c100ea0cc27f66c127f3aeb
MD5 268126e3d67c19e10f00abaeb4c2d671
BLAKE2b-256 8d7d664e3593711fac7b204261223ab80c82a03f5d2aaf8c59abdad9d689dd76

See more details on using hashes here.

Provenance

The following attestation bundles were made for openlifu-0.19.0.tar.gz:

Publisher: cd.yml on OpenwaterHealth/openlifu-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openlifu-0.19.0-py3-none-any.whl.

File metadata

  • Download URL: openlifu-0.19.0-py3-none-any.whl
  • Upload date:
  • Size: 221.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for openlifu-0.19.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f084804a4ef8917fe14b3c41c8c28b075509361e468b67a548bf805e37ef371
MD5 3719c283a253761e48eee83f0f1d2353
BLAKE2b-256 47ed2aa78e956a3285e4c6cbfacae6e4f60278904eb2fb11cf3174ee99aa5ce2

See more details on using hashes here.

Provenance

The following attestation bundles were made for openlifu-0.19.0-py3-none-any.whl:

Publisher: cd.yml on OpenwaterHealth/openlifu-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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