Biological Effective Dose (BED)

1 visualización (últimos 30 días)
Valentina Vasic
Valentina Vasic el 20 de Feb. de 2023
Comentada: Valentina Vasic el 21 de Feb. de 2023
Hello, everyone,
Does anyone know how to implement the biological effective dose (BED) calculation? The calculation contains a double integral which I do not know how to calculate.
(#) are number and (v) are vectors.
I am trying to use the cumtrapz.
%% BED
AlphaBeta = 2.6;
nu = 0.3571;
t_w = [0:time_h(end)/length(time_h):time_h(end)]; %??
t_w = t_w';
t_w(end) =[];
Int1 = TAC.*exp(-nu.*(t_w-time_h));
Int2 = TAC.*S.*cumtrapz(time_h,Int1);
G = 2./(max(Dose_Gy3)).^2.*cumtrapz(time_h,Int2);
BED = max(Dose_Gy3).*(1+max(G)./AlphaBeta.*max(Dose_Gy3));
The first internal integral must be made from 0 to t, where t is the time vector. I do not know how to interpret the first integral (dw).
Best regards,
Valentina

Respuesta aceptada

Torsten
Torsten el 20 de Feb. de 2023
Editada: Torsten el 20 de Feb. de 2023
Assuming you have two arrays (time_h and TAC) of the same length:
AlphaBeta = 2.6;
mu = 0.3571;
S = 1;
int_inner = cumtrapz(time_h,TAC.*exp(mu*time_h));
int_outer = trapz(time_h,TAC.*exp(-mu*time_h).*int_inner);
G = 2./AUC^2*int_outer;
BED = S*AUC.*(1+G./AlphaBeta.*S*AUC);
For example:
format long
mu = 0.3571;;
Ddot = @(t)t.^2;
fun = @(t,omega)Ddot(t).*Ddot(omega).*exp(-mu*(t-omega));
value = integral2(fun,0,1,0,@(t)t)
value =
0.051556597835785
time_h = 0:0.01:1;
TAC = Ddot(time_h);
int_inner = cumtrapz(time_h,TAC.*exp(mu*time_h));
int_outer = trapz(time_h,TAC.*exp(-mu*time_h).*int_inner)
int_outer =
0.051573876925114
  1 comentario
Valentina Vasic
Valentina Vasic el 21 de Feb. de 2023
Dear Torsten,
Perfect, thank you very much.
Exactly what I was looking for. I didn't have in mind splitting the two exponentials. Great idea.

Iniciar sesión para comentar.

Más respuestas (1)

Matthieu
Matthieu el 20 de Feb. de 2023
if you have the symbolic formula for TAC :
%Define AUC, S, mu, alpha, beta, T beforehand
syms TAC(t) % Define TAC as symbolic function of t
TAC(t) = t^2 ; % Formula for TAC here
dD_dt(t) = TAC(t)*S ;
D = AUC*S ;
syms t w
int1 = int(dD_dt(w)*exp(-mu*(t-w)),w,0,t) ;
int2 = int(dD_dt(t)*int1,t,0,T) ;
G = (2/D^2)*int2 ;
BED = D*(1+G*D*beta/alpha) ;
use vpa(BED) to get an explicit value for BED.
  1 comentario
Valentina Vasic
Valentina Vasic el 21 de Feb. de 2023
Dear Matthieu,
unfortunately I was not looking for this kind of solution. I have vectors and not defined functions.
But I thank you.

Iniciar sesión para comentar.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by