Skip to content

Conversation

@wahln
Copy link
Contributor

@wahln wahln commented Oct 27, 2025

Release Version

Updates matRad to the new minor release v3.2.0.

3.2.0 introduces several improvements and updates across the codebase, including the addition of an interface to FRED MC (if installed), VHEE planning, enhancements to DICOM and DVH handling, updates to developer attribution, and example script improvements.

Release Checklist

  • Adapted Changelog.md
  • All required mex files compiled
  • Third Party libraries / scripts up to date
  • Standalone(s) generated and tested
  • Wiki adapted
  • Optional changes to README.md
  • Check license information
  • Version number changed in matRad_getVersion

Main New Features

  • FRED MC interface (if installed)
  • VHEE planning with a Generic (unfocused) beam and a focused beam. The Generic beam can be forwarded to TOPAS as well.
  • New matRad_plotSlice function with keyword / value synxtax for more intuitive plotting of slices

Bug Fixes & Performance

  • DICOM Import widget allow selection of multiple RTDose files.
  • DICOM Import Widget and importer handle selected patient more consistently and robustly.
  • DICOM Exporter writes quantities beyond dose, importer tries to import them correctly.
  • DICOM Exporter now always writes ReferencedRTPlanSequence. Importer can now survive without it.
  • DVH widget does not throw a warning in updates, handle scenarios correctly / more robustly and missing xlabel axesHandle parameter.
  • GUI fixes regarding setting of gantry angles and other parameters in the PlanningWidget
  • EXTERNAL contours now correctly recognized
  • performance improvement for obtaining jacobian structure in optimization
  • Available Classes (e.g., dose engines) are now cached for faster loading

User Experience

  • Added new examples for usage of FRED & VHEE and a workflow example for comparing dose calculation on synthetic CT to planning CT
  • Updated examples to use matRad_plotSlice
  • GUI fixes for use in Matlab Online
  • The analyitcal functions from the Bortfeld Bragg Peak Model are now public and can be used to compute standard approximations (e.g. range-energy relationship)

Development and CI

  • Added a new .gitlab-ci.yml file to support GitLab CI/CD, including test and package stages, artifact handling, and configuration for MATLAB container images and licensing.
  • Added a .gitattributes file to standardize line endings, treat certain file types as binary, and ensure .m files are not marked as executable.
  • In .github/actions/test-matlab/action.yml, added Global_Optimization_Toolbox to the list of MATLAB products for testing.
  • In .github/workflows/coverage-report.yml, made the coverage PR comment step tolerant to errors to avoid workflow failures.
  • More comprehensive dose calculation tests
  • Added new contributors

wahln and others added 30 commits November 19, 2024 13:19
Codecov Update and GitLab Pipeline for building matRad

See merge request e040/e0404/matRad!580
Signed-off-by: Niklas Wahl <[email protected]>
* Writes ReferencedRTPlanSequence always when RTDose is exported.

* Check for conditionally required ReferencedRTPlanSequence field during dose cube import

* enable export and reimport of additional cubes (BED, LET, alpha, beta)

* enable addition fields for dicom export (BED, LET, alpha, beta, RBE, effect)

* fix selection bug that only one rt dose file could be selected

* consistent usage of the importers "patients" property (always a cell)

* update changelog
* fix visualization of brachytherapy

* fix for nifti writer only allowing 80 characters in description string
* Fix for the issue with dispWindow update for cases: locksetting, change in cube, vieweroptions
also fix for too many viewing widget updates for Plan widget changes

* bug fix for iso dose line update failure.

* small added fix for showing RBExDose by default

---------

Co-authored-by: Niklas Wahl <[email protected]>
The new function Plot Slice allows to plot a single dose slice in a flexible way: ct and dose cube are the only required parameters, but other optional, e.g. colorbar, legend, iso dose lines, line and text properties, can be specified. The bug fixing ensures that a 2D quantity is correctly called within the function.
…when it is not there, therefore it was removed
Persistent Caching of available Implementations (Dose Engines, Stf Generators, etc.)
wahln and others added 9 commits September 3, 2025 16:30
Fix for overwriting isocenter with NaN from the GUI when multiple isocenters are defined
* Add getTissueParameters function to bioModel class

* Update PlanWidget to allow biological tissue definiiton

* clean up matRad_bioModel by calling the validate function from the model itself

* add biological model tests for getting available tissue parameters

* sanitize tissue btn callback

* update the tissue table

* test tissue selection button

---------

Co-authored-by: Niklas Wahl <[email protected]>
)

* consistent treatment of weights in pencil beam engine for particles
* stf generator does now consider airOffset
* updated test dataset

* add HongPB dose calculation tests

* add photon dose calc test and adapt dose engine for tracking weights in bixel struct

* add tests for fine sampling dose engine

* disable dij sampling for octave in photon engine tests
* changes to master

* revert

* dev edits

* merged

Fabio & Louis merged

* Normalize line endings

* Renormalize file modes

* Ignore DS_Store

* Correct File Modes for MCSquare

* incorrect merge revert and code cleanup

* Final cleanup of incorrect merge

* fix VHEE stf generator name in matRad config

* fix some naming issue and GUI display

* Add TOPAS parameters to FermiEyges machine and facilitate use of the TOPAS interface

* use physics list from publication

* add paper reference to VHEE physics list

* Updated Authors/Citation & Added VHEE example

* Integrate asymmetric calculation for focused VHEE into matRad_ParticleHongPencilBeamEngine, drop VHEE Engine due to only minor additions.

* revert matRad.m script

* matRad.m script now also includes comments for VHEE

* Single Bixel stf generator orks with VHEE now.

* rename example to keep order

* Update Normalization of machine data

* fix tests

* * add test data
* add stf test
* fix stf generator default radiation mode setting

* * Final code cleanup
* Decision to name the default VHEE engine "Generic" instead of "FermiEyges"
* Added documentation

* Remove commented code

Co-authored-by: Copilot <[email protected]>

* add some basic tests to cover VHEE engine for both divergent and focused beam

* more comprehensive dose calculation tests

* Update VHEE tests

* update energy handling in stf VHEE generator and tests

---------

Co-authored-by: b96935fd <[email protected]>
Co-authored-by: Fabdan <[email protected]>
Co-authored-by: Niklas Wahl <[email protected]>
Co-authored-by: Copilot <[email protected]>
added a switch to check if it is called from matlab online or not, the easiest way to check this is with isunix as matlab online runs with unix. Without this switch the initial GUI window can be a little bit smaller than fullscreen when run from matlab Desktop
to prevent the matRadGUI window beeing to big if used in MATLAB Online
Highligh changes for 3.2.0
@codecov
Copy link

codecov bot commented Oct 27, 2025

Codecov Report

❌ Patch coverage is 69.35051% with 571 lines in your changes missing coverage. Please review.
✅ Project coverage is 53.88%. Comparing base (0994481) to head (e455e93).
⚠️ Report is 126 commits behind head on master.

Files with missing lines Patch % Lines
...Rad_ParticleFREDEngine/matRad_ParticleFREDEngine.m 52.07% 162 Missing ⚠️
...atRad/doseCalc/+DoseEngines/matRad_TopasMCEngine.m 65.80% 145 Missing ⚠️
...+DoseEngines/@matRad_ParticleFREDEngine/calcDose.m 76.21% 44 Missing ⚠️
matRad/4D/matRad_calc4dDose.m 41.30% 27 Missing ⚠️
...@matRad_ParticleFREDEngine/writePlanDeliveryFile.m 82.65% 17 Missing ⚠️
matRad/gui/widgets/matRad_WorkflowWidget.m 0.00% 16 Missing ⚠️
...optimization/projections/matRad_EffectProjection.m 18.75% 13 Missing ⚠️
matRad/gui/widgets/matRad_PlanWidget.m 78.18% 12 Missing ⚠️
...nes/@matRad_DoseEngineBase/matRad_DoseEngineBase.m 56.00% 11 Missing ⚠️
...eEngines/matRad_ParticleAnalyticalBortfeldEngine.m 74.41% 11 Missing ⚠️
... and 32 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #873      +/-   ##
==========================================
+ Coverage   50.27%   53.88%   +3.61%     
==========================================
  Files         299      308       +9     
  Lines       18631    19954    +1323     
==========================================
+ Hits         9366    10752    +1386     
+ Misses       9265     9202      -63     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@github-actions
Copy link

github-actions bot commented Oct 27, 2025

Test Results

    3 files  ±  0      3 suites  ±0   44m 7s ⏱️ + 10m 28s
  319 tests + 58    319 ✅ + 58  0 💤 ±0  0 ❌ ±0 
1 053 runs  +174  1 048 ✅ +174  5 💤 ±0  0 ❌ ±0 

Results for commit e455e93. ± Comparison against base commit 0994481.

This pull request removes 2 and adds 60 tests. Note that renamed tests count towards both.
test_gui_PlanWidget ‑ test_PlanWidget_constructWithData
test_gui_viewingWidget ‑ test_viewingWidget_constructWithData
test_FREDEngine ‑ test_additionalParameters
test_FREDEngine ‑ test_bioCalculation
test_FREDEngine ‑ test_constructFREDEngine
test_FREDEngine ‑ test_constructFailOnWrongRadMode
test_FREDEngine ‑ test_loadDij
test_FREDEngine ‑ test_propertyAssignmentFromPln
test_FREDEngine ‑ test_writeFiles
test_FSPB ‑ test_calcDoseSubsamplingPBcarbon
test_FSPB ‑ test_calcDoseSubsamplingPBhelium
test_FSPB ‑ test_calcDoseSubsamplingPBprotonsFitCircle
…

♻️ This comment has been updated with latest results.

JenHardt
JenHardt previously approved these changes Oct 28, 2025
@github-actions
Copy link

Code Coverage

Package Line Rate Health
coverage Package 1 54%
Summary 54% (10745 / 19954)

@wahln wahln merged commit 162bde8 into master Oct 30, 2025
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants