The cst cell - e0404/matRad GitHub Wiki
The constraints of all defined volumes of interest (VOIs) are stored inside the cst-cell. It is structured as follows:
Screenshot of the cst-cell:
Column | Content | Description |
---|---|---|
1 | VOI index | number to identify the VOI |
2 | VOI name | string describing the VOI |
3 | VOI type | Specification whether the VOI is an organ at risk (OAR), a target volume or should be ignored |
4 | Voxel indices | Vectors containing the indices of all voxels of the CT that are covered by the VOI. Stored as a cell array of vectors (for enabling handling of multiple scenarios |
5 | Tissue parameters | Structure containing information about the tissue of the VOI and its overlap priority |
6 | Dose objectives | Cell array containing information about the functions used to calculate the objective & constraint function value |
7 | Precomputed Contours | After GUI startup, this column contains precomputed contour data for display |
All defined VOIs are enumerated starting with 0.
The VOI name is a string containing an organ name or a short description of the volume (e.g. 'BODY', 'Liver', 'GTV', ...).
The VOI type specifies how the volume is considered during treatment planning:
VOI type | Handling during treatment planning |
---|---|
TARGET | The VOI will be covered with spot positions (protons / carbon ions) and bixels (photons) as defined in the stf struct. During the fluence optimization, it will be considered according to the defined dose objectives. |
OAR | The VOI will not be covered with spot positions or bixels. During the fluence optimization, it will be considered according to the defined dose objectives. |
IGNORED | The VOI will not be considered during the treatment planning. |
The indices of all voxels (of the CT-cube) that are covered by the VOI are stored in a vector within a cell array. I.e. we store the segmentation for the VOI as a binary mask, the polygon contour data is not part of matRad's standard data sets. As the same voxel can be covered by more than one VOI, an overlap priority (see tissue parameters) is defined to handle potential discrepancies when calculating the objective function value and generating the stf struct.
Field | Description |
---|---|
TissueClass | The base data file contains depth-dependent α- and β- values, which are different depending on the tissue class. This parameter defines the tissue class of the VOI. |
αX | α is the linear parameter of the linear-quadratic model, here the constant value for a photon irradiation is given. It is used to check the consistency of the base data file and the cst settings, and to calculate the reference effect in the biological objective function. |
βX | β is the quadratic parameter of the linear-quadratic model, here the constant value for a photon irradiation is given. It is used to check the consistency of the base data file and the cst settings, and to calculate the reference effect in the biological objective function. |
Priority | The overlap priority defines to which VOI a voxel belongs, if there are several VOIs covering the same voxel. If the overlap priority is the same for two VOIs, "overlapping" voxels are considered twice (once for each VOI) during the calculation of the objective function value. Lowest Priority value means the organ overlaps all other organs. |
Visible | Switch to control organ and target display in the GUI. 0 indicates the structure is not displayed in the GUI. 1 indicates the structure is displayed in the GUI. |
visibleColor | Color for organ and target contour display in the GUI. |
Note that α, and β are only considered during biological optimization for carbon ion therapy.
This cell array stores the objectives and constraints defined for inverse planning. In version 2.10.0 we introduced an object-oriented approach for handling objectives and constraints. Since then, each cell of this array holds one objective/constraint. Per default, each objective/constraint is stored as struct with the fields className
, parameters
and penalty
(latter only for objectives). className
corresponds to the respective class in the optimization/+DoseConstraints and optimization/+DoseObjectives folder (e.g. className = 'DoseObjectives.matRad_SquaredOverdosing'
), while the parameters correspond to the parameters defined for this class.
The struct format can be directly created by the struct(obj)
command with obj being an instance of an objective/constraint. It is also possible to put an instance of the class into the cell array directly. Here are two examples for creating squared deviation objectives with penalty 800 and dose level 60:
cst{1,6}{1} = struct(DoseObjectives.matRad_SquaredDeviation(800,60)); %Struct format (better compatibility across versions when saving the mat file)
cst{1,6}{2} = DoseObjectives.matRad_SquaredDeviation(800,60); %Stores the object directly (incompatabilities might arise when storing the mat file)
Data can also be stored as in the old format (see below).
New constraints or objectives can be implemented by adding a respective class definition to the +DoseConstraints or +DoseObjectives folder.
In the earlier version, matRad stored the objectives and constraints defined for inverse planning as an array of structs.
matRad supports inverse planning based on the minimization of a weighted sum of objectives subject to non-linear yet differentiable hard constraints. The following kind of individual objectives are currently supported:
Type | Effect on the objective function |
---|---|
square underdosing | Only dose values lower than the threshold dose for this VOI are considered for the objective function. The deviations are squared, multiplied with the penalty factor and added to the objective function value. The penalty is normalized to the number of voxels per VOI. |
square overdosing | Only dose values larger than the threshold dose for this VOI are considered for the objective function. The deviations are squared, multiplied with the penalty factor and added to the objective function value. The penalty is normalized to the number of voxels per VOI. |
square deviation | All deviation from a reference dose for this VOI are considered for the objective function. All deviations are squared, multiplied with the penalty factor and added to the objective function value. The penalty is normalized to the number of voxels per VOI. |
mean | All dose values inside this VOI are weighted with the specified, and normalized (see above), penalty factor and added to the objective function value. |
EUD | EUD is the abbreviation for equivalent uniform dose. For this method a weighting factor and an exponent a have to be defined. For the calculation of the objective function value the dose in each voxel is taken to the power of a. Then the sum of all these values is taken (∑ Dia ) and divided by the number of voxels. The a-th root of this value is then multiplied with the weighting factor and added to the objective function value. |
Min/max DVH objective | Only deviations from the reference dose over/under a reference volume are considered according to Wu & Mohan (2000 Medical Physics). |
The definition of constraints on the minimum and maximum dose, on the minimum and maximum mean dose, on dose volume points or the EUD within an organ can be done in a similar way via the same interface. Just select the according constraints in the column obj. / const. and fill in the required parameters.
matRad distinguishes between different objectives according to the column obj. / const.. The relative weighting of the objective within the overall objective function corresponds to the column penalty; potential dose reference parameters are to be specified in the column parameters (e.g. a reference dose for the squared deviation dose). The exponent for the EUD objective/constraint goes into the column EUD, and the volume parameter for DVH objectives/constraints can be specified in the column volume. The column robustness is only available in a special research version.
The patient data contained within matRad (ALDERSON, BOXPHANTOM, HEAD_AND_NECK, LIVER, PROSTATE and TG119) have default values defined within the cst-cell.
These values are chosen to produce a reasonable treatment plan, when using coplanar and equidistant photon beams. They can be used as a reference point for more sophisticated treatment plans.