opentps.core.processing.deformableDataAugmentationToolBox package
Submodules
opentps.core.processing.deformableDataAugmentationToolBox.BreathingSignalGeneration module
Created on Wed Feb 16 08:43:30 2022
@author: grotsartdehe
- events(L, meanDurationEvents, varianceDurationEvents, Tend)
Generate the timestamps of the events.
- Parameters:
L (float) – parameter of the exponential distribution.
meanDurationEvents (float) – mean duration of the events.
varianceDurationEvents (float) – variance of the duration of the events.
Tend (float) – duration of the signal.
- Returns:
timestamp – list of the timestamps of the events.
- Return type:
list
- signal2DGeneration(amplitude=20, period=4.0, mean=0, sigma=3, step=0.5, signalDuration=100, coeffMin=0.1, coeffMax=0.45, meanEvent=0.05, meanEventApnea=0.008333333333333333, otherDimensionsRatio=[0.3, 0.4], otherDimensionsNoiseVar=[0.1, 0.05])
Generate a 2D breathing signal.
- Parameters:
amplitude (float) – amplitude of the breathing signal. default is 20.
period (float) – period of the breathing signal. default is 4.0.
mean (float) – mean of the noise. default is 0.
sigma (float) – standard deviation of the noise. default is 3.
step (float) – step between two timestamps. default is 0.5.
signalDuration (float) – duration of the signal. default is 100.
coeffMin (float) – minimum coefficient of the breathing signal. default is 0.10.
coeffMax (float) – maximum coefficient of the breathing signal. default is 0.45.
meanEvent (float) – mean of the event. default is 1/20.
meanEventApnea (float) – mean of the apnea event. default is 1/120.
otherDimensionsRatio (list) – list of the ratio of the other dimensions. default is [0.3, 0.4].
otherDimensionsNoiseVar (list) – list of the noise variance of the other dimensions. default is [0.1, 0.05].
- Returns:
timestamps (array) – timestamps of the signal.
signal2D (array) – 2D breathing signal.
- signal3DGeneration(amplitude=20, period=4.0, mean=0, sigma=3, step=0.5, signalDuration=100, coeffMin=0.1, coeffMax=0.45, meanEvent=0.05, meanEventApnea=0.008333333333333333, otherDimensionsRatio=[0.3, 0.4], otherDimensionsNoiseVar=[0.1, 0.05])
Generate a 3D breathing signal.
- Parameters:
amplitude (float) – amplitude of the breathing signal. default is 20.
period (float) – period of the breathing signal. default is 4.0.
mean (float) – mean of the noise. default is 0.
sigma (float) – standard deviation of the noise. default is 3.
step (float) – step between two timestamps. default is 0.5.
signalDuration (float) – duration of the signal. default is 100.
coeffMin (float) – minimum coefficient of the breathing signal. default is 0.10.
coeffMax (float) – maximum coefficient of the breathing signal. default is 0.45.
meanEvent (float) – mean of the event. default is 1/20.
meanEventApnea (float) – mean of the apnea event. default is 1/120.
otherDimensionsRatio (list) – list of the ratio of the other dimensions. default is [0.3, 0.4].
otherDimensionsNoiseVar (list) – list of the noise variance of the other dimensions. default is [0.1, 0.05].
- Returns:
timestamps (array) – timestamps of the signal.
signal3D (array) – 3D breathing signal.
- signalGeneration(amplitude=10, period=4.0, mean=0, sigma=3, step=0.5, signalDuration=100, coeffMin=0.1, coeffMax=0.15, meanEvent=0.05, meanEventApnea=0.008333333333333333)
Generate the breathing signal.
- Parameters:
amplitude (float) – amplitude of the signal. default is 10.
period (float) – period of the signal. default is 4.0.
mean (float) – mean of the noise. default is 0.
sigma (float) – standard deviation of the noise. default is 3.
step (float) – step of the timestamps. default is 0.5.
signalDuration (float) – duration of the signal. default is 100.
coeffMin (float) – minimum value of the coefficient of the variation of the amplitude and the frequency. default is 0.10.
coeffMax (float) – maximum value of the coefficient of the variation of the amplitude and the frequency. default is 0.15.
meanEvent (float) – mean of the duration of the events. default is 1/20.
meanEventApnea (float) – mean of the duration of the apnea events. default is 1/120.
- Returns:
timestamps (array) – timestamps of the signal.
signal (array) – breathing signal.
- vectorSimulation(coeffMin, coeffMax, amplitude, frequency, timestamps, listOfEvents)
Generate the amplitude and the frequency of the signal.
- Parameters:
coeffMin (float) – minimum value of the coefficient of the variation of the amplitude and the frequency.
coeffMax (float) – maximum value of the coefficient of the variation of the amplitude and the frequency.
amplitude (float) – amplitude of the signal.
frequency (float) – frequency of the signal.
timestamps (array) – timestamps of the signal.
listOfEvents (list) – list of the timestamps of the events.
- Returns:
y_amplitude (array) – amplitude of the signal.
y_frequency (array) – frequency of the signal.
opentps.core.processing.deformableDataAugmentationToolBox.generateDynamicSequencesFromModel module
- computePhaseRatio(sampleValuePos, CTPhasesSubPart, CTPhasesPartsIndexes, ascendDescendCase, meanPos)
given a sample value position, the CT phases positions, the CT phases indexes, the ascent or descent case and the mean position, compute the phase ratio
- Parameters:
sampleValuePos (float) – the sample value position
CTPhasesSubPart (1D numpy array) – the CT phases positions
CTPhasesPartsIndexes (1D numpy array) – the CT phases indexes
ascendDescendCase (str) – ‘ascending’ or ‘descending’
meanPos (float) – the mean position
- Returns:
[interExtraCase, phaseIndex, correctedPhaseIndex] (list)
with –
- interExtraCasestr
’I’ or ‘E’ meaning inter or extra
- phaseIndexint
the phase index
- correctedPhaseIndexfloat
the phase ratio
- phaseRatiofloat
the phase ratio
- generateDeformationListFromBreathingSignalsAndModel(model, signalList, ROIList, signalIdxUsed=[0, 0], dimensionUsed='Z', outputType=<class 'numpy.float32'>, tryGPU=True)
Generate a list of deformation fields from a model, in which each given ROI follows its breathing signal
- Parameters:
model (Dynamic3DModel) – The dynamic 3D model that will be used to create the images of the resulting sequence
signalList (list) – list of breathing signals as 1D numpy arrays
ROIList (list) – list of points as [X, Y, Z] or (X, Y, Z) –> does not work with ROI’s as masks or struct
dimensionUsed (str) – X, Y, Z or norm, the dimension used to compare the breathing signals with the model deformation values
outputType (pixel data type (np.float32, np.uint16, etc))
- Returns:
a list of deformation fields
- Return type:
deformationList (list)
- generateDynSeqFromBreathingSignalsAndModel(model, signalList, ROIList, signalIdxUsed=[0, 0], dimensionUsed='Z', outputType=<class 'numpy.float32'>, tryGPU=True)
Generate a dynamic 3D sequence from a model, in which each given ROI follows its breathing signal
- Parameters:
model (Dynamic3DModel) – The dynamic 3D model that will be used to create the images of the resulting sequence
signalList (list) – list of breathing signals as 1D numpy arrays
ROIList (list) – list of points as [X, Y, Z] or (X, Y, Z) –> does not work with ROI’s as masks or struct
dimensionUsed (str) – X, Y, Z or norm, the dimension used to compare the breathing signals with the model deformation values
outputType (pixel data type (np.float32, np.uint16, etc))
- Returns:
dynseq (Dynamic3DSequence)
- Return type:
a new sequence containing the generated images
- getPhaseValueList(ROI, model, signal, signalIdxUsed, dimensionUsed='Z', tryGPU=True)
Get the phase value list for a given ROI and a given model
- Parameters:
ROI (list) – list of points of the ROI as [X, Y, Z] or (X, Y, Z) –> does not work with ROI’s as masks or struct
model (Dynamic3DModel) – The dynamic 3D model that will be used to create the images of the resulting sequence
signal (1D numpy array) – the breathing signal
signalIdxUsed (list) – the indexes of the signal to use
dimensionUsed (str) – X, Y, Z or norm, the dimension used to compare the breathing signals with the model deformation values
- Returns:
a list of phase values for each sample of the breathing signal
- Return type:
phaseValueList (list)
- isAscentOrDescentCase(signal, currentIndex)
given a signal and a current index, return if the current index is in an ascent or descent case
- Parameters:
signal (1D numpy array) – the breathing signal
currentIndex (int) – the current index of the signal
- Returns:
ascendDescendCase – ‘ascending’ or ‘descending’
- Return type:
str
- splitAscentDescentSubsets(CTPhasePositions)
Split the CTPhasePositions into ascent and descent subsets
- Parameters:
CTPhasePositions (1D numpy array) – the CT phase positions
- Returns:
ascentPart (1D numpy array) – the CT phase positions of the ascent subset
ascentPartIndexes (1D numpy array) – the indexes of the ascent subset
descentPart (1D numpy array) – the CT phase positions of the descent subset
descentPartIndexes (1D numpy array) – the indexes of the descent subset
amplitude (float) – the amplitude of the CT phase positions
opentps.core.processing.deformableDataAugmentationToolBox.generateRandomSamplesFromModel module
- generateRandomDeformationsFromModel(model, numberOfSamples=1, amplitudeRange=[0.8, 1.2], ampDistribution='uniform')
generate random deformations from a model
- Parameters:
model (DeformableModel) – the model to generate the deformations from
numberOfSamples (int) – number of deformations to generate
amplitudeRange (list of 2 floats) – range of the amplitude of the deformation
ampDistribution (string) – distribution of the amplitude of the deformation
- Returns:
sampleDeformationList – list of the generated deformations
- Return type:
list of Deformation
- generateRandomImagesFromModel(model, numberOfSamples=1, amplitudeRange=[0.8, 1.2], ampDistribution='uniform', tryGPU=True, outputType=<class 'numpy.int16'>)
generate random images from a model
- Parameters:
model (DeformableModel) – the model to generate the images from
numberOfSamples (int) – number of images to generate
amplitudeRange (list of 2 floats) – range of the amplitude of the deformation
ampDistribution (string) – distribution of the amplitude of the deformation
tryGPU (bool) – try to use the GPU
outputType (numpy type) – type of the output image
- Returns:
sampleImageList – list of the generated images
- Return type:
list of numpy arrays
opentps.core.processing.deformableDataAugmentationToolBox.interFractionChanges module
opentps.core.processing.deformableDataAugmentationToolBox.modelManipFunctions module
- getAverageFieldValueAroundPosition(position, field, dimensionUsed='Z')
Get the average values in the specified dimension around the given position in the given field.
- Parameters:
position (tuple or list of 3 elements) – The 3D position around which the 3x3x3 field values are extracted
field (VectorField3D) – The 3D vector field from which the data is extracted
dimensionUsed (str) – X, Y, Z or norm, the dimension extracted from the 3D vector field
- Returns:
usedValue (float) (the average deformation value on the 3X3X3 cube in the specified dimension around the field)
speficied position
- getAverageModelValuesAroundPosition(position, model, dimensionUsed='Z', tryGPU=True)
Get the average values in the specified dimension around the given position for each field in a Dynamic3DModel.
- Parameters:
position (tuple or list of 3 elements) – The 3D position at which the fields values are extracted
model (Dynamic3DModel) – The dynamic 3D model containing the deformation fields
dimensionUsed (str) – X, Y, Z or norm, the dimension extracted from the deformation fields
- Returns:
modelDefValuesArray (np.ndarray) (the average deformation values on the 3X3X3 cube in the specified dimension)
around the speficied position for each field in the deformation model
- getFieldValueAtPosition(position, field, dimensionUsed='Z')
Get the field value in the specified dimension at the given position in the given field. Alternative function to getAverageFieldValueAroundPosition. This one does not compute an average on a 3x3x3 cube around the position but gets the exact position value.
- Parameters:
position (tuple or list of 3 elements) – The 3D position at which the field value is extracted
field (VectorField3D) – The 3D vector field from which the data is extracted
dimensionUsed (str) – X, Y, Z or norm, the dimension extracted from the 3D vector field
- Returns:
usedValue (float)
- Return type:
the deformation value in the specified dimension at the field speficied position
opentps.core.processing.deformableDataAugmentationToolBox.multiProcSpawnMethods module
- deformImageAndMask(img, ROIMask, deformation, tryGPU=True, GPUNumber=0)
This function is specific to this example and used to : - deform a CTImage and an ROIMask, - compute the deformed mask 3D center of mass - create DRR’s for both, - binarize the DRR of the ROIMask - compute the 2D center of mass for the ROI DRR
- multiProcDeform(deformationList, dynMod, GTVMask, ncore=None, GPUNumber=0)
Deform images and masks in parallel using multiprocessing.spawn method.
- Parameters:
deformationList (list of Deformation objects) – List of Deformation objects containing the deformation fields.
dynMod (CTImage object) – CTImage object to deform.
GTVMask (ROIMask object) – ROIMask object to deform.
ncore (int, optional) – Number of logical cores to use. If None, all logical cores are used. The default is None.
GPUNumber (int, optional) – Number of the GPU to use. If None, the CPU is used. The default is 0.
- Returns:
resultDeformImageAndMask – List of deformed CTImage and ROIMask objects.
- Return type:
list of CTImage and ROIMask objects
opentps.core.processing.deformableDataAugmentationToolBox.weightMaps module
- createExternalPoints(imgSize, numberOfPointsPerEdge=0)
Create a list of points that are outside the image, to be used for the weight maps
- Parameters:
imgSize (list) – size of the image
numberOfPointsPerEdge (int) – number of points to create per edge of the image. default is 0, which means no points are created.
- Returns:
externalPoints – list of points that are outside the image
- Return type:
list
- createWeightMaps(absoluteInternalPoints, imageGridSize, imageOrigin, pixelSpacing)
Create a list of weight maps, one for each internal point. Each weight map is a 3D array of the same size as the image, with values between 0 and 1. The value 1 is at the position of the internal point, and the value 0 is at the position of the external points.
- Parameters:
absoluteInternalPoints (list) – list of internal points coordinates in absolute coordinates
imageGridSize (list) – size of the image
imageOrigin (list) – origin of the image
pixelSpacing (list) – pixel spacing of the image
- Returns:
weightMapList – list of weight maps
- Return type:
list
- generateDeformationFromTrackers(midpModel, phases, amplitudes, internalPoints)
Generate a deformation field from a list of internal points, phases and amplitudes.
- Parameters:
midpModel (MidPositionModel) – mid-position model
phases (list) – list of phases
amplitudes (list) – list of amplitudes
internalPoints (list) – list of internal points coordinates in absolute coordinates
- Returns:
field (Image3D) – deformation field
weightMapList (list) – list of weight maps
- generateDeformationFromTrackersAndWeightMaps(midpModel, phases, amplitudes, weightMapList)
generate a deformation field from a list of weight maps, phases and amplitudes.
- Parameters:
midpModel (MidPositionModel) – mid-position model
phases (list) – list of phases
amplitudes (list) – list of amplitudes
weightMapList (list) – list of weight maps
- Returns:
field – deformation field
- Return type:
- getWeightMapsAsImage3DList(internalPoints, ref3DImage)
Create a list of weight maps, one for each internal point. Each weight map is a 3D array of the same size as the image, with values between 0 and 1.
- Parameters:
internalPoints (list) – list of internal points coordinates in absolute coordinates
ref3DImage (Image3D) – reference image
- Returns:
image3DList – list of weight maps as Image3D objects
- Return type:
list
- showPoints(pointList)
Show a list of points in a plot.
- Parameters:
pointList (list) – list of points coordinates