Brief presentation of the algorithms implementing IMRT in the TPS CAT3D.
CAT3D is a Radiotherapy Planning System (TPS) developed by Mevis Informatica Medica LTDA, Brazil.
1. Implementação da IMRT no CAT3D
Dentro de um sistema de planejamento da IMRT existem diversas etapas que constituem
processos de optimização.
• Optimização do mapas de fluxo de energia.
• Segmentação óptima para Step & Shot.
• Estrategia óptima de velocidade e percursos para Sliding Window.
• Optimização da topografia para moduladores sólidos.
• Optimização do número e ângulos de campos.
2. Objetivo:
Apresentar as ideias básicas do módulo de optimização de fluxo do
CAT3D pois dessa forma estamos melhor preparados para entender
e manipular os parámetros do programa na prática clínica.
3. Formulação do modelo de distribuição de dose a partir de “Beamlets”
ou Pencil Beam finitos.
Plano axial com seções do PTV
(cóncavo) e OARs.
Alguns pontos de controle como
ilustração, a densidade de pontos
de controle é muito maior.
Ilustração da contribuição de dose
de uma série de “beamlets” sobre
os pontos de controle. Todos os
beamlets com igual peso (não
modulados)
Resultado de integrar as
contribuições de todos os
beamlets. Com todos os pesos
iguais, isto é, campo sem
modulação de intensidade..
O cálculo da contribuição de dose por parte de um beamlet a um ponto de controle
pode realizar-se com diversos algoritmos: Monte Carlo, CCC ou Pencil Beam de seção
finita. Os resultados que mostraremos utilizam o modelo de Pencil Beam divergente e
finito.
4. Com os beamlets do modelo anterior, a dose depositada em qualquer ponto pode ser calculada como
a soma das contribuições de todos os beamlets para o ponto de interesse.
Se identificarmos cada beamlet pelo índice m e cada voxel de controle de dose pelo índice n, podemos
calcular e armazenar a fracção da energia recebida por cada voxel de controle desde cada beamlet
como:
Wnm - fracção da energía do beamlet m ao voxel de controle n.
Os conjuntos dos valores Wnm podem ser tratados como matriz .
Assim, podemos calcular a dose em qualquer voxel de controle como:
퐷푛 =
푀
푗=1
푊푛푗 ∗ 퐼 푗
Onde M é o número total de beamlets no tratamento. Ij é a energía inicial recebida pelo beamlet
j-esimo em um plano de referencia.
5. O modelo de dose matricial apresentado permite calcular a dose administrada a todos os voxels de controle de
forma muito rápida. A alteração dos mapas de fluxo não modifica os elementos da matriz do sistema, apenas se
altera o vector Ij .
Como avaliar a qualidade de um plano, dentro do universo de soluções possiveis ?
Precisamos de uma métrica que expresse a distancia entre a distribuição de dose desejada pelo médico e a
distribuição de dose atingida por um plano qualquer do universo de soluções possíveis.
Esta métrica, na nomenclatura dos problemas matemáticos de optimização, se denomina
“função objetivo”.
Na IMRT o normal é criar uma função objetivo que diminui quando ficamos mais perto do plano ideal desejado
pelo medico.
6. Exemplo simples de Função Objetivo articulada.
Fobj = rα EPTV + rβ EOAR + rμ EOHT
onde :
EPTV = 1/N Σ (Dci - Dpi)2
i
EOAR = 1/N Σ [ ( Dci > Dpi) ? (Dci - Dpi)2 : 0.0 ]
EOHT = 1/N Σ [ ( Dci > Dpi) ? (Dci - Dpi)2 : 0.0 ]
Restrições físicas do problema :
Valores da fluencia relativa não podem ser negativos. Na práctica as fluencias
estão limitadas pois a modulação da intensidade enfrenta limitações físicas.
Cada solução no universo de mapas de fluxo possiveis gera o cómputo
completo da função objetivo, incluindo a multiplicação da matriz antes
apresentada, e uma verificação das restrições.
7. Esta não é a única forma de implementar a função objetivo. Outros autores não utilizam o modelo de
penalização quadrática por voxel de controle. Em lugar disto penalizam o desvio de uma proposta
baseada no histograma dose-volume (DVH).
O CAT3D implementa uma forma de função objetivo baseada em penalização quadrática por voxel de
controle.
As retrições físicas são consideradas no CAT3D na forma de uma penalização do gradiente de fluxo. É
conhecido que regiões de alto gradiente criam problemas para todos os métodos de entrega da dose
(delivery), sejam moduladores ou MLC.
Na medida que a função objetivo se torna mais complexa, o problema de optimização global fica menos
garantido, pois criamos concavidades na topologia da função a ser minimizada e o optimizador pode
travar em mínimos locais. O CAT3D procura sair de mínimos locais com um algoritmo mixto de
optimização que utiliza um método baseado em derivadas parciais seguido de perturbações aleatorias,
ao estilo de “simulated annealing” (ideia que tomamos da nossa experiencia com Maximização da
Informação Mútua, para fusão).
Temos planos futuros para implementar outra função objetivo baseada em DVH, de modo que o
usuario possa testar as duas formas e ficar com a melhor para cada caso.
8. Qual é o custo de calcular a distribuição da dose para <m> pontos de controle em um plano com <n>
beamlets ?
d1
d2
d3
.
.
.
dm
W11 w12 w13 . . . w1n
W21 w22 w23 . . . W2n
W31 w32 w33 . . . w3n
.
.
.
wm1 wm2 wm3 . . . wmn
I1
I2
I3
.
.
.
In
= •
do modelo matricial teremos como mínimo :
multiplicações : m * n
adições : m * (n -1)
memory read : (m * n) + n
memory write : m
Por que investigamos em algoritmos e implementações para minimizar o tempo de cálculo ?
- O planejamento de IMRT ainda é um processo de “tentativa e erro” no qual vários parâmetros devem ser ajustados até atingir um
plano clinicamente satisfatório. Sem um programa rápido não é possível conseguir um ambiente interativo para planificação inversa
(Crooks, Xing; I.J. Radiat. Oncol. Biol Phys. 2002).
- Outros parâmetros podem ser investigados automaticamente se a optimização para modulação de intensidade for
suficientemente rápida. Por exemplo, a seleção do número e angulação dos campos ( Gaede, Wong, Rasmussen; “An algorithm for
systematic selection of beam directions for IMRT”, Med. Phys. 31 (2) 2004 ).
9. Como optimizamos no CAT3D o cálculo da distribuicão da dose ?
- Processamento paralelo, conhecido como multithread. O CAT3D utiliza a tecnologia OpenMP,
presente no compilador INTEL C++ .
- Processamento vectorial baseado nas tecnologia SSEx ou AVX. O Compilador da INTEL (*) é
considerado o melhor neste sentido, capaz de fazer vectorização automática. No CAT3D utilizamos até
a tecnologia SSE3 para evitar problemas de compatibilidade com clientes que não tem PCs de última
geração, mas em algum momento vamos a quebrar esta compatibilidade para tirar proveito da AVX
(Advanced Vector Extensions) que ja foi lançada ao mercado em 2011, com os processadores “Sandy
Bridge” , por tanto não é tão nova hoje (2014).
- Utilizar em forma óptima as memorias cache (L1 a L3). A matriz do modelo é muito maior que a
capacidade da L3, por isso necesitamos uma estrategia que maximize os “cache hits”. Podem-se
empregar bibliotecas como MKL de Intel ou cuBLAS e CULA da Nvidia. No CAT3D foi implementada
uma rotina de multiplicação matriz por vector aprimorada neste sentido, sem utilização de biblioteca
externa para isso.
(*) o CAT3D é compilado com o Intel Parallel Composer 2014, para C++ e C99.
10. Recomendações para uma estação de trabalho destinada a IMRT com o CAT3D :
- Memoria RAM de 8 GB ou maior. Memoria o mais rápida possivel.
- Sistema operacional de 64 bits para que cada instância do CAT3D consiga utilizar
até 4 GB. PTVs de grande volume geram matrizes entre 1 e 3 GB !
- Processador i7 de quatro núcleos físicos e oito threads ou melhor. Já existem i7
de 6 núcleos e processadores Xeon de até 10 núcleos e 20 threads.
PC para IMRT. i7, 12 threads
16 GB de RAM. OS de 64 bits.
Todos os núcleos a 100% de carga
na optimização.
11. Muito Obrigado!
mevis.com.br
www.facebook.com/MevisInformaticaMedica
www.linkedin.com/company/mevis-inform-tica-m-dica-ltda-www.