Warning
This page is located in archive.

Cvičení 12 : PET - měření dat

Pozitronová emisní tomografie je zobrazovací metoda nukleární medicíny. Tomografický obraz je rekonstruován díky současné detekci dvou fotonů, které byly vyzářeny při anihilaci pozitronu vzniklého při rozpadu radiofarmaka v pacientově těle. Názorný popis principu PET najdete na webu Principy PET

Zadání

Úkolem následujícího cvičení je demonstrovat tvorbu signálu v pozitronové emisní tomografii. Potřebná data a kódy si stáhněte zde.

  1. Určete počet (analyticky i numericky) rozpadlých částic po dobu měření (viz přednáška nebo část Tvorba signálu a jeho měření). [0.5b.]
    • ve 30. minutě byla podána látka pacientovi,
    • ve 35. minutě začal být pacient snímán,
    • ve 39. minutě skončilo snímání pacienta,
    • množství podaného radiofarmaka je 5e-12 molu,
    • poločas rozpadu dané látky je 110 minut
  2. Vytvořte funkci [deltaN,detPair]=petMeasure(fantom,ti,tb,te,Nd,r,n,sigma2,taur), kde prvním vstupem vaší funkce bude virtuální fantom reprezentující aktivitu v každém pixelu. Fantom si vytvořte zavoláním funkce phantom(p_def); s použitím definičních matic pro konstrukci fantomu, které jsou uložené v datovém souboru ph_def.mat. Dalši parametry funkce budou následující (ke každé veličině jsou v závorkách uvedeny hodnoty, které použijete, podrobnější vysvětlení je v sekciTvorba signálu a jeho měření). [3b.]
    • deltaN - počet rozpadlých částic po celou dobu snímán pacienta
    • detPair - mřížka s kumulovanými počty ropadů pro každou kombinaci dvojic detektorů (stejná velikost jako je počet detektorů [Nd Nd])
    • fantom - fantom koncentrace radiofarmaka (obrázek o velikosti [128 128])
    • ti - čas ve kterém byla látka pacientovy podána (30. minuta)
    • tb - čas kdy se začal pacient snímat (35. minuta)
    • te - čas kdy skončilo snímání pacienta (39. minuta)
    • Nd - počet detektoru na celém obvodu kružnice (100)
    • r - poloměr kružnice na které jsou rozmístěny detektory (pro celý fantom)
    • n - množství podaného radiofarmaka (5e-12 molu)
    • sigma2 - rozptyl, jak daleko doletí částice před svým rozpadem (3px)
    • taur - poločas rozpadu dané látky (110 minut)
  3. Do reportu vložte obrázek hustoty rozpadů (detPair) vytvořený z fantomu aktivit a symetrické matice detPair (pro číselnou reprezentaci jednotlivých barevných odstínů použijte funkci colorbar). [0.5b.]
  4. Rekonstruujte naměřenou matici detPair zavoláním funkce PETreconstruction(detPair,r,Nd); (nachází se také v úvodním archivu). Spočtete a vizualizujte relativní chybu mezi rekonstruovaným fantomem z vašeho měření a originálním fantomem. [1b.]

Funkce které jste si stáhli na začátku cvičení neodevzdávejte.

Tvorba signálu a jeho měření

Naprogramujte funkci, která vypočítá výstup měřícího prstence PET. Vstupem funkce nechť je čas podání radiofarmaka <latex>T_i</latex> [s], čas začátku měření <latex>T_b</latex> [s], čas konce měření <latex>T_e</latex> [s], počet detektorů Nd, poloměr detektorové kružnice r[px], rozptyl pozitronů <latex>\sigma^2</latex> [px], množství n[mol], poločas rozpadu radiofarmaka <latex>\tau_r</latex> [s] a fantom aktivit (relativní distribuce radiofarmaka v těle pacienta, pro absolutní roložení celý fantom znormujeme, aby součet byl 1 a vynásobíme celkovám počtem rozpadlých částic <latex>\Delta N</latex>). Výstupem pak bude matice současně aktivovaných detektorů P která má na souřadnici [i,j] počet současných aktivací (detekcí) elementů číslo i a j a celkový počet měřených rozpadů <latex>\Delta N</latex> . Získaná data si můžete rekonstruovat pomocí funkce activity=PETreconstruction(P,r,Nd) ze staženého balíčku.

Počet částic

Předpokládejme, že v čase <latex>T=0</latex> bylo vyrobeno radiofarmakum, které pak bylo v čase <latex>T_i</latex> podáno pacientovi.

Počet vyrobených molekul je <latex> N_0 = n \cdot N_A</latex>,kde <latex>N_A</latex> je Avogadrova konstanta <latex>N_A=6.0221415\cdot 10^{23} \textrm{mol}^{-1}</latex>. Pro určení počtu molekul dostupných v čase <latex>T_i</latex> musíme určit, jaká část radioizotopu se do této doby již rozpadla.

Uvažujme, že za čas <latex>dt</latex> se v látce rozpadne <latex>dN</latex> částic <latex> dN = -\lambda_r \cdot N dt \label{difeq}</latex>, kde <latex>\lambda_r</latex> je rozpadová konstanta <latex>\lambda_r=\frac{\ln{2}}{\tau_r}</latex>. Řešením rovnice je známá exponenciální závislost počtu izotopů na čase <latex> N_1=N_0\textrm{e}^{-\lambda_r t} </latex>.

Před začátkem měření je potřeba vyčkat, než se radioaktivní látka dostane do místa určení (často je podávána systémově, například intravenózně), proto zahájíme měření až v <latex>T_b</latex>. Naše úloha bude simulovat měření pomocí fludeoxyglukózy (FDG), která je analogem glukózy s inkorporovaným atomem fluóru 18. Protože je aktivní látka od času <latex>T_i</latex> v lidském těle, začne se, kromě rozpadu, také vylučovat. Přibližně 75% FDG je zachyceno ve tkáni a rozpadá se s <latex>\tau_r=110</latex> min, 25% látky se vyloučí ledvinami s <latex>\tau_v=16</latex> min. To je samozřejmě možné modelovat, ale vzhledem ke krátkému <latex>\tau_v</latex> a známému poměru zachyceného a vyloučeného radiofarmaka si můžeme práci zjednodušit (při zachování dostatečné přesnosti) a uvažovat, že je pro rozpad k dispozici jen 75% molekul radiofarmaka.

Každý z rozpadajících se atomů vyzáří pozitron, který se pohybuje náhodným směrem tkání a poté co ztratí svou kinetickou energii, anihiluje s elektronem hmoty. Při tom vzniknou dva fotony s energií přibližně 511 keV, vzdalující se od místa srážky na opačné strany po náhodně orientované přímce. Pokud dvojice fotonů poletí podél osy pacientova těla, nemá pro náš zobrazovací systém význam. Z geometrického uspořádání je jasné, že našeho myšleného prstencového detektoru dosáhne jen malá část záření.

Uvažujme pacienta vysokého 180 cm, z něhož pořizujeme přibližně 5 mm řez. Pokud by bylo radiofarmakum zachycováno rovnoměrně podél osy pacientova těla, pak v našem řezu zůstane přibližně 5/1800 částic. Toto zjednodušeni nám výrazně usnadní práci, při zachování řádové přesnosti.

Náš detektor je tenký prstenec kolmý k ose pacienta a z toho je jasně patrné, že nemůže zachytit fotony, jejichž dráha není téměř kolmá k pacientovu tělu. Takové dvojice fotonů minou detektor a jsou z našeho pohledu nepodstatné, protože nepřispívají k tvorbě obrazu. Definujme že rozdílový úhel (mezi rovinou detektoru a dráhou fotonů) může být maximálně <latex>1^\circ</latex> , detektor tedy zasáhnou jen 2/180 fotonů vzniklých v řezu.

Další postup

Z první části dostáváme celkový počet detekcí v jedné vrstvě. Pokračovat budeme konfigurací detektoru a výpočtem (simulací) detekovaných rozpadů.

  1. Rozdělte kružnici opsanou fantomu (s poloměrem r a středem uprostřed fantomu/obrázku) na <latex>D</latex> částí (detektorů). Detektory číslujte od jedničky (standard Matlabu) proti směru hodinových ručiček od úhlu <latex>\alpha=0</latex> viz obrázek. Číslování jednotlivých detektorů PET.
  2. Začleňte do simulace náhodný pohyb pozitronu před anihilací (rozpadem). Předpokládejte, že místo anihilace je určeno Gaussovou funkcí s diagonální kovarianční maticí. Oba prvky diagonály nechť jsou <latex>\sigma^2</latex> px (tento náhodný jev se dá snadno modelovat pomocí filtrace fantomu Gaussovským filtrem s danou kovarianční maticí. Filtr vytvoříte snadno pomocí funkce fspecial a aplikujete ho na data pomocí imfilter),
  3. Znormalizujte fantom aktivit tak, aby celkový součet přes všechny pozice byl 1. Přenásobením normalizovaného fantomu s celkovým počtem detekcí v jedné vrstvě dostaneme matici se stejnou velikostí jako fantom, která na každé pozici obsahuje počet rozpadů.
  4. Pro každý rozpad určete:
    1. místo a čas anihilace (viz krok (2)).
    2. směr letu fotonů (každému rozpadu přiřaďte náhodné číslo od 0 do <latex>\pi</latex>)
    3. průsečík trajektorie fotonů s detektorovou kružnicí (určete které detektory zachytily letící fotony) Určení průsečíků
  5. Vytvořte výstupní matici <latex>P</latex> funkce o rozměrech <latex>[N_D\times N_D]</latex>, která bude obsahovat počet excitací pro každou dvojici synchronně aktivovaných detektorů.
  6. Naprogramovanou funkci vyzkoušejte na fantomu aktivit s parametry (viz Zadání), poloměr detektorové kružnice volte tak, aby přesně opsala čtverec fantomu <latex>

r= \sqrt{ m^2 + n^2 } \cdot \frac{1}{2} </latex> kde m,n jsou velikosti obrázku/fantomu).

 Původní fantom hustoty ropadu.  Výsledná matice spoludetekovaných fotonů.


Určení průsečíků

K určení průsečíků lze použít funkci lineAndCircle2intersectionAngles(a, b, c, rad, mid_point); z uvodního balíčku. První tři parametry jsou vektory koeficientů jednotlivých přímek (v obecném tvaru <latex>a \cdot x + b \cdot y + c = 0</latex>). rad je poloměr detektorového kruhu, mp souřadnice středu fantomu. Funkce vrací průsečíky (ang1, ang2) s detektorovým kruhem jako úhel od počátku. Výše zmíněná funkce také může vykreslit jednotlivé čáry, pokud jí navíc dáme jako parametr i vstupní matici fantomu. Možný výstup pro bod se čtyřmi rozpady je na následujícím obrázku Event lines PET.

courses/a6m33zsl/lab12_pet.txt · Last modified: 2018/05/14 16:41 by herinjan