
Warsztaty z Metod Terapeutycznych
Warsztaty z Metod Terapeutycznych Rok akademicki 2016/17
Instalowanie i uruchamianie vGate 7.2
- Wejdź do katalogu "Warsztaty z metod terapeutycznych" na pulpicie. Rozpakuj plik "vGATE72.vdi.7z" (jeśli nie jest już rozpakowany).
 - Uruchom "Oracle VM VirualBox".
- Dodaj nową wirtualną maszynę (przycisk "Nowa"). Nadaj jej nazwę vgate7. Wybierz typ systemu operacyjnego Linux, wersja Ubuntu (32-bit).
 - W kolejnym oknie wybierz rozmiar pamięci przydzielonej dla wirtualnej maszyny 1024 MB.
 - W kolejnym oknie wybierz "Użyj istniejącego pliku dysku twardego" i wskaż ścieżkę do rozpakowanego pliku "vGATE72.vdi".
 
 - Uruchamianie wirtualnej maszyny
- Wybierz dodaną ostatnio maszynę (jeśli jest więcej niż jedna) i naciśnij "Uruchom"
 - Gdy uruchomi się linux, należy wpisać hasło "virtual"
 
 - Uruchamianie programu "Gate"
- Uruchom terminal.
 - Za pomocą komend "cd nazwa_katalogu" wejdź do katalogu, w którym znajdują się Twoje skrypty. Jeśli takiego nie masz, to stwórz go w katalogu ~/Progs/Gate/gate_v7.2/
 
 - Przydatne linki
 
Zadanie 1
Zdefiniuj geometrię kolimatora: płaskiego pudła ołowianego, w którym zostało wywiercone 25 okrągłych otworów z powietrza w geometrii sześciokątnej. (za 2 punkty)
Skrypty wywołuje się komendą
/control/execute nazwa_skryptu.mac
Poniżej skrypt, który definiuje właściwości świata i umieszcza w nim kostkę Rubika (3x3 pudełka utworzone z powietrza). (Na stronie [4] można znaleźć przykłady i więcej opisów jak budować geometrię)
# na początku trzeba wczytać bazę danych dostępnych materiałów
/gate/geometry/setMaterialDatabase ../GateMaterials.db
# Aby oglądać tworzoną geometrię na etapie jej definiowania;
# podczas dłuższych obliczeń należałoby z tego zrezygnować.
/vis/enable
/control/execute vis.mac
# wymiary świata
/gate/world/geometry/setXLength 100. cm
/gate/world/geometry/setYLength 100. cm
/gate/world/geometry/setZLength 50. cm
# definicja wymiarów, położenia, materiałów z których wykonano pudło
/gate/world/daughters/name pudlo
/gate/world/daughters/insert box
/gate/pudlo/geometry/setXLength 1. cm
/gate/pudlo/geometry/setYLength 1. cm
/gate/pudlo/geometry/setZLength 1. cm
/gate/pudlo/placement/setTranslation 20. 0. 0. cm
/gate/pudlo/setMaterial Air
/gate/pudlo/vis/forceWireframe
# powtórzenie pudła po 3 razy w każdą stronę poprzez dodanie do niego powtarzacza cubicArray
/gate/pudlo/repeaters/insert cubicArray
/gate/pudlo/cubicArray/setRepeatNumberX 3
/gate/pudlo/cubicArray/setRepeatNumberY 3
/gate/pudlo/cubicArray/setRepeatNumberZ 3
/gate/pudlo/cubicArray/setRepeatVector 1.1 1.1 1.1 cm
# przydatne często, gdy wprowadziło się nowe definicje geometrii, które nie zostały jeszcze zwizualizowane
/gate/geometry/rebuild
Odwołuje się przy tym do skryptu vis.mac
#	V I S U A L I S A T I O N
/vis/open OGLSX   # biblioteka graficzna
/vis/viewer/set/viewpointThetaPhi 60 60   # punkt obserwacji
/vis/viewer/zoom 1.5   # powiększenie
/vis/drawVolume
/vis/viewer/flush
/tracking/verbose 0   # poziom gadatliwości, czyli ile informacji wyświetlać w terminalu podczas obliczeń
/tracking/storeTrajectory 1   # ile trajektorii zapamiętywać
/vis/scene/add/trajectories 
/vis/scene/endOfEventAction accumulate
Aby włożyć do pudła cylindryczny otwór
/gate/pudlo/daughters/name dziura 		# utworzenie otworu
/gate/pudlo/daughters/insert cylinder
/gate/dziura/geometry/setHeight 1. cm
/gate/dziura/geometry/setRmax .15 cm
/gate/dziura/geometry/setRmin 0. cm
/gate/dziura/placement/setRotationAxis 0 1 0 	# cylinder można obrócić
/gate/dziura/placement/setRotationAngle 90 deg
/gate/dziura/setMaterial Air
Oczywiście w kolimatorze to nie pudło, a otwór powinien zostac odpowiednią ilość razy powtórzony.
Zadanie 2
Napromieniuj dwoma punktowymi źródełkami Technetu 99 fantom wodny poprzez kolimator i bez kolimatora. Odczytaj wyniki używając programu ImageJ. (za 2 punkty)
Ustawienie symulowanych zjawisk fizycznych może być dokonane w osobnym pliku (np. fizyka.mac) Propozycję jego zawartości można znaleźć na stronie [5] Na tej samej stronie widnieje propozycja ustawienia odcięć w ciele pacjenta ("cuts", czyli cząstek o jakim średnim zasięgu już nie śledzimy).
Do zdefiniowanego wcześniej fantomu można dołączyć "aktora", czyli zdolność interakcji z symulacją - w tym wypadku zapisania zdeponowanej energii w fantomie. Fantom możemy potraktować jako macierz 100x100 elementów.
#=====================================================
# MATRIX FOR DOSE MAP OUTPUT
#=====================================================
/gate/actor/addActor                               DoseActor  doseDistribution
/gate/actor/doseDistribution/save                  output/plik_wynikowy.hdr
/gate/actor/doseDistribution/attachTo    	   moj_fantom
/gate/actor/doseDistribution/stepHitType           random
/gate/actor/doseDistribution/setPosition           0 0 0 cm
# fantom podzielony na macierz, nie interesuje nas pomiar wgłąb (gdyby interesował, należałoby podać też trzecią rozdzielczość)
/gate/actor/doseDistribution/setResolution         100 100 1  
/gate/actor/doseDistribution/saveEveryNSeconds     60
/gate/actor/doseDistribution/enableEdep            true	# będziemy mierzyć zdeponowaną energię
/gate/actor/doseDistribution/enableUncertaintyEdep false # innych możliwych wielkości (niepewności, dawki, ilości zliczeń) na razie nie będziemy mierzyć
/gate/actor/doseDistribution/enableDose            false
/gate/actor/doseDistribution/enableUncertaintyDose false
/gate/actor/doseDistribution/enableNumberOfHits    false
/gate/actor/addActor               SimulationStatisticActor stat
/gate/actor/stat/save              output/stat-wynik.txt
/gate/actor/stat/saveEveryNSeconds 60
Po zdefiniowaniu geometrii, zjawisk fizycznych oraz aktora, a przed zdefiniowaniem źródeł i uruchomieniem symulacji należy dokonać inicjalizacji
#=====================================================
# INITIALISATION
#=====================================================
/gate/run/initialize
Teraz zdefiniujemy pojedyncze źródełko.
# D E F I N E  T H E  S O U R C E
#####
/gate/source/addSource zrodlo
/gate/source/zrodlo/gps/type Volume
/gate/source/zrodlo/gps/shape Cylinder
/gate/source/zrodlo/gps/radius 2. cm
/gate/source/zrodlo/gps/halfz 14.5 cm
/gate/source/zrodlo/gps/centre 0. 0. 0. cm
/gate/source/zrodlo/gps/particle gamma
/gate/source/zrodlo/gps/energy 140. keV
/gate/source/zrodlo/setActivity 30000. Bq
/gate/source/zrodlo/gps/angtype iso
# W niektórych wypadkach może być wygodnie podłączyć do zdefiniowanego wcześniej obiektu, np.
/gate/source/zrodlo/attachTo kolorowa_pastylka