Skip to content

Releases: ProteusMRIgHIFU/BabelBrain

Fix for large multipoints simulations

23 May 16:57
Compare
Choose a tag to compare
  • Fix: Correct handling of cases with a large number of sonication points in Step 3 when using low duty cycle.
  • Fix: Address hanging in Step 2 when running inside Brainsight with a large list of sonication points

Fix on export CSV file for BSonix devices

20 Apr 04:00
Compare
Choose a tag to compare
  • Export CSV for BSonix transducers had a bug preventing the export.

Improved speed in Step 2

06 Apr 04:43
Compare
Choose a tag to compare
  • Improvement: Significantly faster calculations in Step 2. Improvements to the modeling of acoustic sources in r0.3.2 allowed the elimination of the two-step calculations used in previous versions. Computational cost savings should range between 48% to 40%. A large numerical study was executed to ensure the precision of calculations was not affected.
  • Improvement. No more need for Blender. We finally found a native Python CSG library that is robust enough to perform the geometry tasks we have been using with Blender until now. This has only a minor implication for those users running BabelBrain in their own Python environment (see details above about installing the pycork library). For those using the stand-alone applications, there is no impact other than Blender can be safely uninstalled if there is no more need for it.
  • New: Support to new transducers. We added three new phased array devices: Two concave arrays and one flat 2D array. The I12378 transducer is a 128-element device operating at 650 kHz with a focal length of 72 mm and a diameter of 103 mm. The ATAC transducer is a 128-element device operating at 1 MHz with a focal length 53.2 mm and a diameter of 58 mm. The REMOPD transducer is a 256-element flat 2D array operating at 300 kHz with a diameter of 58 mm. We thank the team at Vanderbilt University for sharing the transducer definitions of their concave arrays (I12378 and ATAC transducers). We thank the team at Toronto Western Hospital and Fraunhofer IBMT for sharing the transducer definition of their REMOPD transducer.
  • New: Automatic calculation for mechanical corrections in X and Y directions. After running a first pass of simulation in Step 2, a new button action is now available to calculate the distance from the target to the center of mass of the focal spot at -6dB and suggest applying the required mechanical corrections in X and Y directions. This action should help to minimize the number of iterations in simulations looking to ensure the focal spot is aligned in the X and Y directions to the intended target.
  • New: Possibility to update thermal profile in Step 3. The initial design of BabelBrain assumed that the parameters of the timing of LIFU exposures would vary little in a study. That is why it is asked as initial input when initiating BabelBrain. However, some users have expressed their need to have more flexibility to explore variated settings without having to restart BabelBrain. For this purpose, we added in Step 3 a new action button that can be used to load an updated version of the thermal profile file.
  • New: Multi-point LIFU exposures. BabelBrain now offers the possibility to execute electronic steering over a list of points if a concave array is selected. In the first dialog, if any of the three concave arrays is selected (H317, I12378 and ATAC), the user can select a new profile definition specific to multi-point steering. You can consult an example in the Profiles subdirectory in BabelBrain. Coordinates in the profile are relative to the user-specified steering in Step 2. Be aware that the selected duty cycle for the thermal simulations is split among all multi-point entries. It is assumed that a single burst is applied per steering location, before steering to the next location. For example, if simulating three-point steering with a duty cycle of 30%, this implies that each point will represent 10% of the duty cycle.
  • New: Examples for offline batch processing. We added a couple of Jupyter notebooks in the OfflineBatchExamples directory in the BabelBrain repository, along with a README file indicating steps to create an environment ready to run these examples. These notebooks can be very useful when running very large parametric studies. For example, the CompareRayleightWithFDTD case is the one we used to study the acoustic simulations in water-only conditions that facilitate reducing the computational costs in Step 2.
  • Fix: Occasional mask generation issues with high-resolution conditions. In some cases, Step 1 would produce incomplete tissue masks when using high PPW values (9 and higher) or with high frequency ( 1 MHz) when using Metal-based devices. The GPU filtering functions were rewritten to cover better these cases or at least provide a more meaningful error message to notify the users.
  • Fix: Enforce float type in profile files. Entries in thermal profiles such as duty cycle must be float values. Entries such as "1" should be "1.0". An error will be shown when loading profiles that do not adhere to this convention. This should imply minor changes to old profile files.

Integration with Brainsight 2.5.3

06 Mar 09:07
Compare
Choose a tag to compare
  • New: Full integration with Brainsight (Rogue Research) version 2.5.3 is now operational. In Brainsight, you need to start a new Simbnibs project and during the planning stage, a new "FUS" button in the Brainsight GUI can be used to invoke BabelBrain. Once simulations are completed, the results of the normalized transcranial simulation (normalized between 0 and 1 in the brain region) will be loaded automatically in Brainsight.
  • New: Export of thermal maps into Nifti format. In Step 3, the current thermal simulation on display can now be exported in Nifti for inspection in neuronavigation and visualization software.
  • New: Smart reuse of preexisting middle files. Previous versions recalculate in Step 1 every single middle file required to generate the domain for simulations. Some of these files can be perfectly reused in recalculations with the same subject if frequency and resolution are the same. However, there is an important safety aspect to preserve; that is why, in the first versions, we opted always to recalculate everything. In this new version, we developed a method to use hash signatures that help to detect any external changes to the files. If no changes are detected, then the middle files can be reused. This approach can save from 20% to 80 % of time or more (especially when using CT) in the execution time of Step 1.
  • New: Support for PETRA scans. We adopted the formulas proposed by Brad Treeby's lab at UCL (petra-to-ct). Now in the first screen of BabelBrain you can select between real CT, ZTE, PETRA or none in the options to use CT-type data for the simulations.
  • New: Add 35-mm focusing devices to the list of devices associated with Schafer et al.
  • Improvement: The precision for all transducers was improved. The method that couples the Rayleigh integral component, which models the transducer sources, to the FDTD domain was revised, improving precision for all calculations.
  • Fix: Re-enable support for older versions of macOS (Monterey and up) for ARM64.
  • Fix: Saved modified trajectory had an incorrect sign direction.
  • Fix: Far field PML had an issue in Metal backend (solved in BabelViscoFDTD 1.0.5)

Change scaling in Step3 and new output data

06 Nov 16:31
12cb7f7
Compare
Choose a tag to compare
  • New: Add checkboxes to hide marks on plots.
  • New: Replace labels in Step 3 with a table to organize better output metrics.
  • New: Add metrics in Step 3 of temperature and thermal dose at the target, which often does match the maximal temperature in the brain. Also, a metric of distance from maximal peak intensity in the brain to the target.
  • Fix an issue with display results in Step 3. Results were scaled to the intensity at the target instead of maximal intensity in the brain region, as done when calculating the required Isppa in water.
  • Fix an issue with the display results of the H317 Transducer.
  • Fix the remaining "bleeding" of the skin label in the brain region.
  • Fix NaN calculations when the target is accidentally outside the brain region.
  • Fix passing version to macOS bundle.

Fully signed for macOS applications

14 Oct 21:08
Compare
Choose a tag to compare

IMPORTANT:
If you downloaded macOS ARM64 file of this version before Oct 18, please re-download as we spotted an issue with the signing of the elastix module. The new package installer addresses this.
If you downloaded macOS Intel x64 file of this version before Oct 26 and are using an old version of macOS (Monterey and up), there are chances Step 2 may not run because of some incompatibility of a compiled library with older versions of macOS. Please re-download as the new package installer addresses this.

  • macOS application fully signed
  • Fix on saving AllCombinations file in Step 3

Fix for Apple Silicon GPUs and improved BHTE

21 Sep 22:25
Compare
Choose a tag to compare
  • Add fix for Apple Silicon systems with latest versions of MacOS. In some systems, occasional crashes were occurring. Fix was addressed at the underlying library at https://github.com/ProteusMRIgHIFU/py-metal-compute.
  • Address slow BHTE calculations in Step 3 in external AMD GPUs in Apple X64 system. Fix done in underlying library BabelViscoFDTD 1.0.1
  • Extra GPU optimizations in Step 1
  • Correct handling of dark mode display settings

New GPU functions, scroll acoustic fields and simulated scalp pressing

03 Aug 02:09
Compare
Choose a tag to compare
  • Add scrolling of imaging planes of acoustic fields in Step 2
  • Add the possibility in Step 2 of adjusting the positioning of the transducer to recreate the transducer pressed on the scalp. Use with caution. The processing will remove tissue layers. Limited to 10 mm.
  • Add multiple behind-the-scenes new GPU code to accelerate calculations for Step 1. Because now operations are float32, some very minor differences can be expected for the produced mask for simulations with previous versions.

0.2.7-a

09 May 01:15
Compare
Choose a tag to compare

0.2.7-a

  • Fix missing files in DMG installer
    0.2.7
    • New devices as detailed in Schafer et al.
    • Option to show water-only modeling results added in Step 2
    • Adjustment of Z mechanical for CTX 500 device added for scenarios where a pad is added
    • New Nifti output (with extension _Sub_NORM.nii.gz) containing normalized pressure output (0 to 1.0) in the brain region. All other tissue regions are set to 0. This simplifies visualization and thresholding in tools such as fsleyes.

Windows installer and Improvement for Tx with high F# and minor bugs

04 Apr 08:05
9a57256
Compare
Choose a tag to compare

Windows Installer for standalone application now available
Solves important (#14) and a minor issue (#13)