dwoll / DVHmetrics

Analyze Dose-Volume Histograms and Check Constraints using R
GNU General Public License v2.0
11 stars 5 forks source link

EQD2 conversion #10

Open rhj1993119 opened 1 year ago

rhj1993119 commented 1 year ago

Hi I am using NTCP function to calculcate NTCP , but the prescrbied dose is 60Gy/4fx..and I feel like if I need to convert this to isoeffective doses in 2 Gy per fraction (EQD2). Is there anyway that I can achieve this conversio? Thanks!

dwoll commented 1 year ago

Hi, you can use the function getEQD2() for this.

library(DVHmetrics)
x_eqd2 <- getEQD2(dataMZ[[c(1, 1)]], fd=4, ab=3)

You have to specify the alpha/beta ratio for option ab. The output object can then be used for NTCP calculation as the original DVH object.

rhj1993119 commented 1 year ago

Thanks, I tried that with the demo data, but I am getting the same result. Do you have any idea on this issue? In addition, when I perform this : getEQD2(D=60, fn=4, ab=c(3)) I get an error as well: Error in getEQD2.default(D = 60, fn = 4, ab = c(3)) : !is.null(fd) is not TRUE thanks!!

1. converted

x_eqd2 <- getEQD2(dataMZ[[c(1, 1)]], fd=4, ab=3) Warning message: In getEQD2.default(D = D$dvh[, "dose"], fd = fd, ab = ab) : 'D' must be > 0

getNTCP(x_eqd2, NTCPtd50=2450,NTCPm=0.45,NTCPn=1,NTCPtype="probit") NTCP patID structure 1 0.01369915 P123 HEART

2. orignial

getNTCP(dataMZ[[c(1, 1)]], NTCPtd50=2450,NTCPm=0.45,NTCPn=1,NTCPtype="probit") NTCP patID structure 1 0.01369915 P123 HEART

rhj1993119 commented 1 year ago

Instead, I found another way to get NTCP for SABR plan. Do you think it is possible to perform the below formula by using the package? I want to get Dmean multiplied by 1.8 and then calculate NTCP from there. Thanks for your help!!1

From the reference: I caTo analyze normal-tissue complication probability (NTCP) for radiation pneumonitis, the MLD was converted to MLD(3Gy) using the following equation calculated by Borst et al (derived from the linear quadratic model):

MLD(3Gy)=MLD×1.8, (2) where α/β = 3 and the slope of the line of best fit (regression coefficient of 0.92) for SABR treatments of 12 Gy per fraction was 1.8.19 The NTCP for radiation pneumonitis was then calculated using the following equation:

NTCP=12𝜋‾‾‾√∫−∞te−x22dx,(3) where t=MLD(3Gy)−TD50m*TD50, TD50 = 20.8 Gy (the dose for a 50% NTCP), and m = 0.45 (steepness parameter in the Lyman model).19,20

dwoll commented 1 year ago

In getEQD2() for a single total dose, you have to specify the fraction dose explicitly. The following works:

getEQD2(D=60, fd=4, ab=c(3))

For the sample data dataMZ, I guess the results are the same because the data happens to be from RT with 2 Gy fractions already.

rhj1993119 commented 1 year ago

Thanks, but I am converting the organ at risk dose from conventional to hypofraction. Therefore, there is no way to know the fraction dose for normal organs, is there?

dwoll commented 1 year ago

Sorry for the delay. I'm not sure I understand correctly. If you want to convert to a different fractionation scheme, you indeed have to know the applied fraction dose. If you do not have this information for an OAR, you need to get it first. However, if you have the DVH for the organ, can you not infer the fraction dose via dividing the dose by the number of fractions? (Obviously assuming no setup errors, same field geometry for each fraction (i.e., no adaptive re-planning)).