optimizacion en imrt
TRANSCRIPT
Optimización en IMRT
Armando Alaminos Bouza
MEVIS Informática Médica LTDA.
CEPRO – São Paulo, Brasil
PTV en “C” !!
La planificación de Radioterapia de Intensidad Modulada ( IMRT )
conduce a procesos de optimización en más de una etapa. Las fases
que generan situaciones de optimización suelen ser :
• Optimización de mapas de flujo para cada campo.
• Segmentación óptima para Step & Shot.
• Esquemas de ruta/velocidad óptima para Sliding Window.
• Optimización de la topografía de moduladores sólidos.
• Posible optimización del número y ángulos de campo.
En esta presentación vamos a centrarnos en una posibleimplementación de la optimización de los mapas de flujo.
Nos proponemos mostrar de forma clara como es el algoritmo que
conduce a los mapas de intensidad de flujo para cada campo.
Algoritmos presentes en los programas para planificación inversa con modulación de intensidad
(IMRT).
- La planificación inversa se implementa como un proceso de optimización de los parámetros
para cada haz de radiación. Cada conjunto de parámetros define un posible tratamiento para
ser evaluado y comparado con los otros posibles.
- La función que mide la calidad del tratamiento se denomina “función objetivo”. La función
objetivo expresa numericamente la distancia entre la distribución de dosis “deseada” y la
alcanzada por el plan que está siendo probado.
- En IMRT los haces de radiación tienen un perfil de fluencia complejo, generalmente dividido en
pequeños sub-haces (“beamlet”), cuya distribución de intensidades debe ser investigada hasta
conseguir el mejor resultado de la función objetivo.
- Un problema típico de planificación inversa (7 campos de 100 cm2 cada) debe optimizar 700
intensidades. Dicho de otra forma: buscar un extremo de la función objetivo en un espacio de
700 dimensiones.
- Métodos de optimización empleados:mínimos cuadrados iterativos.
Powell, Downhill-simplex, Simulated annealing.
Davidon-Fletcher-Powell (en general , con evaluación de derivadas).
programación lineal.
entre otros, todos con virtudes y fragilidades.
El problema inverso de la RT no tiene solución analítica y debe ser
formulado como una optimización, computacionalmente costosa.
Posibles formas de optimización automática :
1. Optimiza un número de aperturas por campo del Sistema Colimador /
MLC (DAO).
2. Optimiza el mapa de flujo de cada campo, considerando al campo como un conjunto de mini-haces que llamamos “beamlet”.
El método DAO (Direct Aperture Optimization) usualmente se implementa como Simulated Annealing, pues el universo de posibles soluciones a
explorar es gigantesco y nosotros no necesitamos el óptimo absoluto,
apenas uno suficientemente bueno.
El DAO tiene una ventaja para el uso en MLC, en el solo hay una etapa ,
pues las aperturas posibles se eligen entre las que sean físicamente posibles
para el MLC
En esta charla vamos a concentrarnos en el método 2, basado en “Beamlets”.
Formulación del modelo de distribución de dosis a partir de “Beamlets”
o Pencil Beam finitos.
Plano axial con secciones
del PTV (cóncavo) y OARs.
Algunos puntos de control
como ilustración, la
densidad de puntos de
control es mucho mayor.
Ilustración de la
contribución de dosis de
una serie de “beamlets”
sobre los puntos de control.
Todos los beamlets con
igual peso (no modulados)
Integración de
contribuciones de todos los
beamlets. Con todos los
pesos iguales, es decir
campo sin modulación de
intensidad.
El cálculo del aporte de dosis por parte de un beamlet a un punto de
control puede realizarse con diversos algoritmos: Monte Carlo, CCC o Pencil Beam de sección finita. Los resultados que mostraremos utilizan el
modelo de Pencil Beam divergente y finito.
Con el modelo anterior de Beamlets la dosis depositada en cualquier punto
puede calcularse como la sumatoria de los aportes de todos los beamlets al
punto de interés.
Si a cada beamlet lo identificamos por un índice m y a cada voxel de
control de dosis le atribuimos el índice n, podemos calcular y almacenar que
fracción de la energía recibida por cada beamlet se le entrega a cada
voxel de control.
Wnm - fracción de energía del beamlet m al punto n.
Los valores de Wnm se pueden almacenar en forma de matriz .
De esta forma podemos calcular la dosis en cualquier voxel de
control como :
𝐷𝑛 =
𝑗=1
𝑀
𝑊𝑛𝑗 ∗ 𝐼𝑗
Donde M es el número total de beamlets en el tratamiento. Ij es la energía
inicial recibida por el beamlet j en un plano de referencia.
Ahora ya podemos evaluar la dosis administrada a cualquier voxel de control
de una forma muy rápida.
¿ Como evaluar la calidad de un plan que pertence al universo de soluciones
posibles ?
Debemos crear una métrica que exprese la distancia entre la distribución de
dosis deseada por el médico y la distribución alcanzada por el plan siendo
evaluado. Esta métrica puede incluir parámetros físicos (dosis) y
radiobiológicos.
Esta métrica usualmente se denomina como “función objetivo”, como es usual
en los problemas de optimización.
En optimización de IMRT generalmente queremos minimizar la función objetivo,
por la forma en que ella se formula (como distancia a un plan ideal).
F = rα EPTV + rβ EOAR + rμ EOHT
donde :
EPTV = 1/N Σ (Dci - Dpi)2i
EOAR = 1/N Σ [ ( Dci > Dpi) ? (Dci - Dpi)2 : 0.0 ]
EOHT = 1/N Σ [ ( Dci > Dpi) ? (Dci - Dpi)2 : 0.0 ]
Función objetivo articulada, ejemplo.
Restricciones físicas del problema :
Los valores de fluencia relativa son no negativos. En la práctica
las fluencias están acotadas, pues la modulación de intensidad enfrenta
limitaciones físicas.
Cada punto del dominio que el método de optimización
investiga genera una evaluación de la función objetivo
y un chequeo de las restricciones.
La función objetivo puede contener también métricas basadas en:
• Histograma Dosis Volumen (DVH) para cada estructura de interés.
• Limitaciones físicas, tales como límites al gradiente de flujo.
Los elementos incluidos en la función objetivo pueden tornar el problema
cada vez más complejo de optimizar globalmente pues se introducen
más concavidades al comportamiento de la función en el dominio de
soluciones.
Para funciones objetivo complejas los métodos de optimización basados
solo en gradiente de la función pueden resultar insuficientes por no lograr
salir de mínimos locales. En estos casos métodos como el “simulated
annealing” pueden ayudar, al costo de mayores tiempos de
convergencia.
d1
d2
d3
.
.
.
dm
w11 w12 w13 . . . w1n
w21 w22 w23 . . . W2n
w31 w32 w33 . . . w3n
.
.
.
wm1 wm2 wm3 . . . wmn
I1
I2
I3
.
.
.
In
= •
Cual es el costo de evaluar la distribución de dosis para <m> puntos de control en
un plan con <n> beamlets ?
del modelo matricial anterior se deduce que son necesarias (como mínimo) :
multiplicaciones : m * n
adiciones : m * (n -1)
memory read : (m * n) + n
memory write : m
Por que investigamos en algoritmos e implementaciones para minimizar el tiempo de cálculo ?- La planificación de IMRT aún es un proceso de “prueba y error” en que varios parámetros deben ser
ajustados hasta alcanzar un plan clinicamente satisfactorio. Sin un programa rápido no se consigue un
ambiente interactivo para planificación inversa (Crooks, Xing; I.J. Radiat. Oncol. Biol Phys. 2002).
- Otros parámetros pueden investigarse automáticamente si la optimización para modulación de
intensidad es suficientemente rápida. Por ejemplo la selección del número y angulación de los campos
( Gaede, Wong, Rasmussen; “An algorithm for systematic selection of beam directions for IMRT”, Med.
Phys. 31 (2) 2004 ).
¿ Como optimizamos las implementaciones de IMRT ?
• Procesamiento en paralelo, conocido como multithread. Dividimos la ejecución
de una tarea en varias sub-tareas. Podemos paralelizar la multiplicación matriz
por vector, pues esa matriz tiene usualmente dimensión de 780x65000, es decir 50
millones de elementos, mientras que el vector es de 65000 elementos. Ya he visto
casos con 7 o más campos grandes tener matrices cercanas a 2 GB! Esto lo
favorecen las arquitecturas de multinúcleos (multicores) y el hyper-threading.
También puede emplearse procesamiento en GPU o Xeon Phi, que generan
multithread masivo, es decir cientos o miles de threads.
• Es necesario adaptar el algoritmo para explotar estos recursos. Procesamiento
vectorial de con las instrucciones SSEx y AVX, presentes en CPUs de INTEL y AMD.
Usando compiladores capaces de explotar el recurso.
• Emplear en forma óptima la memoria llamada cache (L1 a L3). En la matriz del
modelo de IMRT y en sus puntos de control y constrains empleamos mucho más
espacio de direcciones que la capacidad de la L3, por ello necesitamos una
estrategia que maximice los “cache hits”. O programar con cuidado o emplear
bibliotecas optimizadas como MLK (INTEL), cuBLAS o CULA (estas de Nvidia).
Recomendaciones para la estación de trabajo destinada a IMRT:
• Memoria RAM amplia y lo más rápida posible. 8 GB o mayor.
• Sistema operacional de 64 bits, para poder explotar espacio de
direcciones superior a 4 GB.
• Múltiples núcleos para procesamiento y tecnología hyper-threading.
Caso con PTV en forma de una letra “H”, lo que
configura un volumen cóncavo. OARs anterior y
posterior, invadiendo parcialmente las concavidades.
9 campos. Genera 1824 beamlets efectivos, con 16004
puntos de control. Sólo la matrix de wik ocupa 116
MegaBytes ! El tiempo de acceso a memoria no es
despreciable.
Tomado de: Haas Olivier, “Radiotherapy Treatment
Planning, New System Approaches”, Springer-
Verlag, 1999. Página 111.)
Caso 1: Solución de un problema “benchmark”.
Solución de Haas (*) en blanco y negro. Solución del CAT3D
en figuras coloridas.
NOTA : Puede demostrarse que, en la ausencia de
modulación de intensidad es posible producir planes
conformados que se ajusten a PTVs convexos, utilizando
suficientes haces. Para el caso de PTVs con superficies
concavas, sólo puede conseguirse buena conformación de la
dosis empleando modulación de intensidad.
(*) Haas Olivier, “Radiotherapy Treatment Planning, New
System Approaches”, Springer-Verlag, 1999. Página 25.
Caso 1: Solución de un problema “benchmark”.
Caso 2: Tratar cuerpo vertebral, protegiendomédula. Fig a. - método CLS, de Crooks and Xing. SGI O2, R5000, t ~ 1 min, beamlets 10x10mm (*)
Fig b. - CORVUS (Nomos Corporation), motherboard con 4 pentiums pro en paralelo, 400MHz cada. t ~ 30 min . (*)
Figura a derecha : CAT3D, Pentium HT 3.0GHz.512 MB, t ~ 20s . Beamlets de 8x8mm
(*) Application of
constrained least-square
technique to IMRT treatment
planning. Int. J. Radiation
Oncol. Biol. Phys, vol. 54,
no.4, 2002. Crooks and
Xing, Dept. Radiat. Oncol.,
Stanford Univ. School of
Medicine, CA.
Caso 2: Detalles de tres planos diferentes de la solución con 9 campos. 295 beamlets de
8x8mm. Considera radiación dispersa. PTV = 100, W=1.0; Médula < 30, W=0.6; OHT < 43,
W=0.5
Tratamiento de los pesos y las prioridades:
• El peso de un OAR muy próximo al PTV,
necesariamente deteriorará la cobertura del PTV. Por
eso, comience con peso muy bajo y aumente solo
hasta pasar su constrain.
• Lo mismo ocurre con el peso de OHT, si es muy alto
deteriora el borde del PTV. Comience con peso muy
bajo y aumente hasta evitar regiones calientes
importantes fuera del PTV.
• La prioridad le permite decidir que condición toma el
programa en caso de colisión del volúmenes., ejemplo
si el PTV invade a un OAR.
• La penalización de gradiente impone un límite realista
a su capacidad física de modular, sea con MLC o con
moduladores.
Pero este proceso funciona como “prueba y error”.
No hay una receta mágica que siempre sea feliz.
La tabla de parámetros anteriores corresponde a este ejemplo
Caso de un PTV en forma de “C” con OAR interno
Superficie de 97%
(este es un caso extremo, pero es un buen caso de prueba para sondear nuestro TPS)
Pencil Beam integration Collapsed Cone Convolution/Superposition
Optimizamos flujo con un algoritmo. Podemos calcular la distribución de dosis con otro :
Conclusiones :
• La optimización de flujo para IMRT exige mucho tiempo en exploración de
soluciones para el equipo de radioterapia (médico + físico + dosimetrista).
• No es posible lograr “cualquier” distribución de dosis. Las restricciones físicas
imponen barreras a nuestros deseos (flujo no negativo, dosis dispersa, etc).
• Si comprendemos como funciona nuestro TPS al optimizar flujo seremos más
capaces y rápidos para alcanzar buenos planes.
• Debemos conocer nuestro TPS para entender como responde ante los
cambios de parámetros de optimización.
• Además de optimizar flujo podemos mejorar, a mano, otros parámetros,
como ángulos de gantry, número de campos, etc. Para ello nuestro TPS debe
ser rápido.
• Nuestro TPS será más rápido si contamos con una estación bien poderosa
para ejecutar la optimización de IMRT. Comparar los tiempos de dos TPS que
disponen de diferentes hardware va a conducirnos a errores de apreciación.
• En IMRT el control de calidad tiene que ser muy riguroso.
Muchas gracias