1 UVOD Elektroporacija je pojav, pri katerem pride do začasno povečane prepustnosti celične membrane zaradi izpostavljenosti električnemu polju, ki ga povzročijo visokonapetostni električni pulzi [1]. Pojav omogoča, da molekule laže prehajajo celične membrane, kar lahko s pridom izkoristimo za potrebe kemoterapije tumorjev [2] in genske terapije [3]. Elektroporacija je v uporabi že od osemdesetih let prejšnjega stoletja [4] za potrebe elektrokemoterapije (EKT), kjer je učinek kemoterapevtikov izboljšan zaradi povečane prepustnosti celične membrane, ki jo povzročijo visokonapetostni električni pulzi [2, 5]. Če so ustrezno izbrani pulzni parametri (amplituda, čas trajanja, število in ponavljalne frekvence) [6], je učinek elektroporacije reverzibilen: biološka celica se po elektroporaciji povrne v njeno prvotno stanje [7]. Tipični električni pulzi za EKT aplikacije imajo amplitude med 40 in 600 V (ali več – odvisno od geometrije elektrod) in čas trajanja med 20 in 1000 µs; ponavadi so uporabljeni v zaporedju do 64 pulzov [8]. Elektroporacijo uporabljamo tudi za gensko transfekcijo celice, pri kateri povzročijo nekoliko daljši električni pulzi oziroma kombinacija visokonapetostnih in nizkonapetostnih pulzov prenos DNK v celice [9, 10]. Še ena možnost uporabe elektroporacije pa je ireverzibilna elektroporacija, ki jo uporabljajo za izvajanje atermične ablacije tkiva [11]. V zadnjem času pa je namenjena posebna pozornost vplivu visokonapetostnih (z amplitudo do 10 kV) električnih pulzov s časom trajanja v nanosekundnem območju (t. i. nanopulzi) [12]. Nanopulzi namreč povzročijo povečano prepustnost ne le zunanje, temveč tudi notranjih membran bioloških celic [13], kar lahko privede do celične apoptoze. Za izvedbo elektroporacije z nanopulzi [14] potrebujemo drugačen tip elektroporatorja, predvsem zato, ker običajne izhodne stopnje elektroporatorjev ne zmorejo generirati pulzov, ki bi bili krajši od 1 µs [15], in zatorej z njimi ne moremo elektroporirati notranjih membran celic. Ker nanosekundni visokonapetostni generatorji še niso bili tržno dostopni, smo se v naši skupini odločili za razvoj lastnega elektroporatorja, ki bi zmogel proizvajati tovrstne električne pulze. Elektroporator, ki smo ga razvili po vzoru drugih raziskovalnih skupin [16], je namenjen laboratorijskemu delu [17] za poskuse s področja elektroporacije. Glavni namen uporabe je proučevanje celičnih odzivov med izpostavitvijo visokonapetostnim nanosekundnim električnim pulzom [18]. Prejet 31. januar, 2011 Odobren 22. februar, 2011 80 PAVLIHA, REBERŠEK, MIKLAVČIČ Za ustrezno upravljanje elektroporatorja je potreben primeren uporabniški vmesnik (angl. User Interface – UI). Ker so elektroporatorji naprave, ki jih uporabljamo v biomedicini, je ključnega pomena, da je UI tako zanesljiv kot tudi hitro odziven [19], pri čemer mora omogočati varno delo z napravo. Pri načrtovanju preprostega in uporabnega elektroporatorja je lahko v pomoč grafični uporabniški vmesnik (angl. Graphical User Interface – GUI). Uporaba GUI lahko namreč skrajša čas, ki je potreben za učenje upravljanja nove naprave, in poveča učinkovitost upravljavca. Izdelali smo torej krmilnik z GUI, ki pomaga uporabniku pri učinkovitejši uporabi našega nanopulznega elektroporatorja. 2 MATERIALI IN METODE 2.1 Strojna oprema Načrtovalec krmilnika z grafičnim uporabniškim vmesnikom (GUI) mora na začetku procesa načrtovanja izbrati ustrezno strojno opremo oz. platformo [19]. Posplošeno lahko razdelimo procesorske strojne platforme v dve grobi skupini: računalnike za splošno rabo (osebni računalniki, angl. Personal Computers – PC) in računalnike za namensko rabo (vgrajene sisteme, angl. embedded systems) [20]. Ker je krmilnik z GUI tako rekoč vgrajeni sistem, saj opravlja zgolj nekaj vnaprej predpisanih opravil, se zdijo najprimernejša izbira strojne platforme prav vgrajeni sistemi. Ravno vgrajeni sistemi so bili v preteklosti pravzaprav prva izbira številnih načrtovalcev uporabniških vmesnikov [15]. Uporaba vgrajenega mikrokrmilnika je namreč lahko prednost, sploh ko obravnavamo kompaktne naprave: en sam vgrajeni sistem v napravi pomeni, da bo le-ta vsebovala manj elektronskih komponent. Poleg tega lahko celotno periferijo programiramo iz enotnega okolja. Slabost takega početja pa je dejstvo, da mora takšen mikrokrmilnik izvajati tako računski del sistema (jedro) kot tudi prikazovalni del sistema (vmesnik). Posledično tako ne moremo doseči modularnosti programske opreme naprave, saj načrtovalci že na začetku nasilno združijo več različnih programskih opravil, kar je slabost uporabe vgrajenih mikrokrmilniških sistemov. Da bi odpravili omenjene slabosti, kar bi privedlo do razvoja zanesljive in hitro odzivne naprave, lahko poskusimo z modularizacijo tako strojne kot tudi programske opreme. Razvoj modularne rešitve namreč odlikuje kar nekaj prednosti: - Opravila so porazdeljena prek vseh sistemskih komponent, kar pomeni, da je tudi poraba sistemskih sredstev porazdeljena pravilneje. - Če je strojna oprema poškodovana, je zamenjava komponent preprostejša; posledično so tudi stroški vzdrževanja nižji, sploh zato, ker ni treba zamenjati vseh komponent v napravi. - Pri načrtovanju različnih sistemov, ki opravljajo podobna opravila, lahko uporabimo obstoječe strojne ali programske komponente in jih vključimo v nove sisteme. Tako znižamo stroške razvoja novih naprav in dosežemo krajši čas do splavitve na trg. Modularno rešitev pa lahko dosežemo tudi s sistemi za splošno rabo (PC), pa čeprav vsekakor obstaja nekaj pomislekov glede uporabe sistemov PC kot krmilnikov z grafičnimi uporabniškimi vmesniki (GUI). Strojne lastnosti tovrstnih sistemov se sicer zdijo primerne za razvoj krmilnikov z GUI: matične plošče, ki temeljijo na arhitekturi x86, pogosto vsebujejo zmogljive procesorje, ki tečejo pri frekvenci 1 GHz ali več, in vključujejo hiter pomnilnik tipa Double Data Rate (DDR) Synchronous Dynamic Random Access Memory (SDRAM). Da bi lahko izdelali modularno rešitev, smo morali izbrati ustrezno strojno platformo, ki bi delovala kot krmilnik z GUI našega nanopulznega elektroporatorja. Odločili smo se, da bo krmilnik zasnovan na platformi Mini-ITX (VIA Technologies, Tajvan, 2001). Uporabili smo matično ploščo VIA EPIA M700, ki temelji na arhitekturi x86 osebnih računalnikov (PC). Velika je 17 x 17 cm in vključuje procesor VIA Eden (VIA Technologies, Tajvan, 2001), ki deluje pri frekvenci 1.2 GHz. VIA EPIA M700 ponuja tudi ležišče za pomnilnik tipa Double Data Rate (DDR) Synchronous Dynamic Random Access Memory (SDRAM) in ima vgrajeno grafično kartico z izhodom Video Graphics Array (VGA) Prisotna sta še mrežni krmilnik (angl. Network Interface Controller – NIC) in krmilnik Universal Serial Bus 2.0 (USB 2.0). Namesto trdega diska smo kot glavni pomnilniški medij raje uporabili kartico CompactFlash (CF). Prednost kartic CF v primerjavi s trdimi diski je namreč odsotnost mehanskih zakasnitev, saj kartice CF shranjujejo podatke s pomočjo tehnologije bliskovnega (angl. flash) pomnilnika. Ta lastnost kartic CF je pomembna predvsem tedaj, ko napravo prenašamo iz enega v drug laboratorij ali celo v drugo stavbo: možnost poškodb podatkovnega medija pri transportu naprave je z uporabo kartice CF torej manjša, kot če bi uporabili trdi disk. Poleg tega omogočajo kartice CF neposreden priklop na vodilo Integrated Drive Electronics (IDE), saj z delovanjem v načinu TrueIDE popolnoma podpirajo standard ATA/ATAPI (angl. Advanced Technology Attachment - Packet Interface). Kartico CF lahko torej priklopimo na matično ploščo zgolj s pomočjo pretvornika CF-IDE in jo uporabljamo namesto trdega diska. 2.2 Izhodna stopnja Izhodna stopnja elektroporatorja je načrtovana in izdelana po vzoru modificirane izvedbe Blumlein, ki omogoča proizvajanje tako bipolarnih kot tudi unipolarnih visokonapetostnih pulzov spremenljivega KRMILNIK BIOMEDICINSKEGA VISOKONAPETOSTNEGA SIGNALNEGA GENERATORJA Z GRAFIČNIM UPORABNIŠKIM … 81 časa trajanja in z visoko ponavljalno frekvenco. Razviti elektroporator sestoji iz visokonapetostnega napajalnika (DC-DC na sliki 1), dveh stikalnih modulov za nabijanje in razbremenitev (Switch and Discharge na Sliki 1) in Blumleinove prenosne linije (Coaxial Transmission Line na sliki 1) z bremenom. Blumleinova prenosna linija se nabije s pomočjo visokonapetostnega napajalnika prek dveh stikalnih modulov za nabijanje, kar omogoča visoko ponavljalno frekvenco pulzov. Izhodni pulzi so proizvedeni tako, da stikalna modula za razbremenitev sprostita prenosno linijo. Zakasnitev med dvema stikalnima moduloma za razbremenitev določa čas trajanja in polariteto pulzov, medtem ko določa izhodna napetost visokonapetostnega napajalnika (HV na sliki 1) amplitudo pulzov. Zakasnitev med obema stikaloma je določena v zakasnitvenem modulu, ki lahko proizvaja tako pozitivne kot tudi negativne zakasnitve med stikaloma. Celotno delovanje vseh udeleženih modulov (visokonapetostnega napajalnika, zakasnitvenega modula in stikalnih modulov) krmili izhodni krmilnik. Električni parametri nanosekundnih pulzov (amplituda 250–1000 V, čas trajanja 40–200 ns, število pulzov 1–100 in ponavljalna frekvenca 1–100.000 Hz) so preneseni od krmilnika GUI do izhodnega krmilnika prek podatkovne povezave Universal Serial Bus 2.0 (USB 2.0). 2.3 Programska oprema Čeprav je strojna oprema, ki temelji na arhitekturi x86, na prvi pogled povsem primerna za načrtovanje in izdelavo naprednih krmilnikov z GUI, pa se porajajo določeni dvomi o uporabi tovrstnih platform kot vgrajenih sistemov. Glavna skrb je prav programska oprema, ki teče na računalnikih za splošno rabo (PC). Če želimo namreč uporabiti platformo PC kot vgrajeni sistem, moramo zmanjšati število opravil, ki jih izvaja takšen sistem. To lahko storimo z izbiro ustreznega operacijskega sistema. Operacijski sistemi, ki so namenjeni računalniškim sistemom za splošno rabo (PC), niso namenjeni uporabi v vgrajenih sistemih, saj so izdelani za končne uporabnike. Čeprav se na trgu dobijo operacijski sistemi za delo v realnem času, ki so izdelani za platformo PC, npr. VxWorks (WindRiver, USA, 2009), se nam ne zdijo primerni za potrebe našega projekta. Želimo namreč izdelati modularen in uporabniku prijazen sistem s kratkim časom do začetka uporabe, zato stremimo k rešitvam, ki bi vsebovale že vnaprej pripravljene in za naš projekt uporabne module oz. predloge. Iz navedenih razlogov smo se odločili za uporabo operacijskega sistema Microsoft Windows CE .NET 5.0 (Microsoft, Redmond, USA, 2006), ki se je nazadnje izkazal za odlično rešitev. Operacijski sistem Microsoft Windows CE .NET 5.0 namreč ponuja podporo za programiranje v ogrodju .NET in je kot tak primeren za hitro prototipiranje. Poleg tega je namenjen za uporabo na računalniških sistemih (npr. PC), ki so uporabljeni kot vgrajeni sistemi. Alternativna možnost za ta operacijski sistem bi sicer lahko bil Embedded Linux, tj. uporaba določenih distribucij operacijskega sistema Linux v vgrajenih sistemih, vendar se zanj nismo odločili. Pokazali so namreč, da se uporaba operacijskega sistema Windows Embedded odraža v krajšem razvojnem času in posledično v hitrejši splavitvi izdelkov [21]. Pomembna lastnost pri načrtovanju pa je tudi nadgradljivost sistema. V operacijskem sistemu Windows CE .NET je strojna oprema podprta prek paketa gonilnikov in diagnostičnih aplikacij, poimenovanega Board-Support Package (BSP). BSP omogoča popolno podporo izbrane strojne opreme v operacijskem sistemu Windows CE .NET. Če je potrebna nadgradnja strojne opreme z novejšo izvedenko platforme PC, sta potrebni zgolj zamenjava paketa BSP z drugim in ponovna prevedba operacijskega sistema. Nadgradljivost sistema je tako torej zagotovljena. 3 REZULTATI 3.1 Strojna oprema Blokovno shemo visokonapetostnega signalnega generatorja (nanopulznega elektroporatorja), ki smo ga razvili [17], prikazuje slika 1. Modularnost sistema, omenjeno v poglavju 2, smo dosegli z ločitvijo krmilnika z grafičnim uporabniškim vmesnikom (GUI Controller na sliki 1) od izhodnega krmilnika (OuS Controller na sliki 1), ki krmili proizvajanje visokonapetostnih pulzov. Slika 1: Blokovna shema razvitega visokonapetostnega signalnega generatorja (GUI – Graphical User Interface, tj. grafični uporabniški vmesnik; USB 2.0 – Universal Serial Bus 2.0; VGA – Video Graphics Array; IDE – Integrated Drive Electronics; CF – Compact Flash; OuS – Output Stage, tj. izhodni krmilnik; I2C – Inter-Integrated Circuit; GPIF – General Purpose Interface; DC-DC – Direct Current - Direct Current; µC – mikrokrmilnik; HV – High Voltage, tj. visoka napetost; LCD – Liquid Crystal Display) Krmilnik z GUI temelji na matični plošči VIA EPIA M700 (VIA Technologies, Taiwan, 2001), ki je izdelana v obliki Mini-ITX. Programsko opremo grafičnega uporabniškega vmesnika (GUI) prikazuje na 15-inčnem zaslonu LCD, občutljivem na dotik (1537L, 82 PAVLIHA, REBERŠEK, MIKLAVČIČ EloTouch, USA, 2005), ki je z matično ploščo povezan prek povezav Video Graphics Array (VGA) in Universal Serial Bus 2.0 (USB 2.0). Slednja je potrebna za prenos signalov dotika iz zaslona LCD v matično ploščo Mini-ITX. Operacijski sistem se nahaja na kartici CompactFlash (CF), ki je priklopljena na matično ploščo prek vodila Integrated Drive Electronics (IDE). Uporabniški podatki so shranjeni na zunanje priklopljeni bliskovni (angl. flash) USB pomnilniški medij, s čimer je zagotovljena prenosljivost podatkov. Izhodni krmilnik (OuS Controller na sliki 1) je povezan s krmilnikom z GUI prek povezave USB 2.0, ki omogoča visoke prenosne hitrosti (v teoriji do 480 Mbps). Z uporabo naše po meri izdelane vgrajene mikrokrmilniške programske opreme (angl. firmware) izhodnega krmilnika smo dosegli prenosne hitrosti do 80 Mbps. Izhodni krmilnik je izdelan z uporabo integriranega vezija EZ-USB FX2LP (CY7C68013A, Cypress, USA, 2002), ki vsebuje popolnoma programirljiv vgrajeni mikrokrmilnik. Mikrokrmilnik visokonapetostnega napajalnika (PIC18F45J10, Microchip, USA, 2005) Direct Current – Direct Current (DC-DC) je povezan z izhodnim krmilnikom prek povezave Inter-Integrated Circuit (I2C), medtem ko je za časovno kritične prenose uporabljen vmesnik General Purpose Interface (GPIF). Takšna povezava je namreč vzpostavljena med integriranim vezjem FX2LP in integriranim vezjem tipa Field-Programmable Gate Array (FPGA), ki se nahaja v izhodnem krmilniku (XC3S200, Xilinx, USA, 2003), in omogoča doseganje hitrih preklopnih časov, ki so nujno potrebni za pravilno izvedbo parametrov nanosekundnih pulzov. 3.2 Meritve izhodnih parametrov Da bi preverili delovanje sistema, smo izvedli meritve izhodnih parametrov. Rezultati meritev prikazujejo, da tako strojna kot programska oprema delujeta v skladu s specifikacijami: pulzi z želenimi parametri (amplituda 250–1000 V, čas trajanja pulzov 40–200 ns, število pulzov 1–100 in ponavljalna frekvenca 1–100.000 Hz) so pravilno proizvedeni. Ker so omenjeni parametri nastavljeni prek programske opreme grafičnega uporabniškega vmesnika (angl. Graphical User Interface – GUI), preverjajo izvedene meritve delovanje tako strojne kot tudi programske opreme. Slika 2 prikazuje meritve izhodne napetosti. Napetost je bila izmerjena z osciloskopom WavePro 7300A (LeCroy, USA, 2008) in visokonapetostne sonde (PPE2KV, LeCroy, USA, 2008). Slika 2: Relativni pogrešek izmerjenih napetosti Napetost smo izmerili na izhodu visokonapetostnega napajalnika Direct Current – Direct Current (DC-DC na sliki 1) v območju med 260 in 1000 V. Rezulati meritev, ki so prikazani na sliki 2, prikazujejo, da se nastavljena napetost (v programski opremi GUI), prikazana napetost (izmerjena interno v napajalniku DC-DC in prikazana v programski opremi GUI) in izmerjena napetost (izmerjena z osciloskopom na izhodu visokonapetostnega napajalnika DC-DC) nahajajo v območju največ enoodstotnega odstopanja. Ta navidezno kaotični pogrešek je posledica kvantizacije napetosti, saj je slednja odposlana od krmilnika z GUI do izhodnega krmilnika kot 8-biten podatek. Omenjeni pogrešek smo ocenili kot sprejemljiv. Izmerili smo tudi čas trajanja pulzov. Čas je bil merjen v korakih po 20 ns od 50 % vrednosti amplitude v dvižnem času do 50 % vrednosti amplitude v upadnem času signala. Meritve so bile izvedene z uporabo algoritmov, ki so vgrajeni v osciloskop WavePro 7300A (LeCroy, USA, 2008), in so prikazane na sliki 3. Slika 3: Relativni pogrešek izmerjenega časa trajanja pulzov Nastavljena napetost [V] Čas trajanja [ns] 1000V 600V 250V Relativni pogrešek [%] 0,5% 0,0% -0,5% -1,0% Prikazana Izmerjena 40% 30% 20% 10% 0% -10% Relativni pogrešek [%] KRMILNIK BIOMEDICINSKEGA VISOKONAPETOSTNEGA SIGNALNEGA GENERATORJA Z GRAFIČNIM UPORABNIŠKIM … 83 Vsak čas trajanja pulza je bil izmerjen kot povprečna vrednost treh vzorcev; poleg tega je bila vsaka meritev časa trajanja izvedena pri treh različnih napetostih, tako da je bilo za vsak korak časa trajanja pulzov izvedenih devet meritev. Ker omogoča nanopulzni elektroporator proizvajanje pulzov s časom trajanja med 40 in 200 ns, smo izmerili čase trajanja v tem območju. Dodatne meritve smo izvedli še pri pulzih s časom trajanja 20 ns, in sicer zato, da bi preverili delovanje izhodne stopnje naprave na mejnih pogojih. Kot je razvidno iz slike 3, se nahaja pogrešek časa trajanja pulzov (med 40 in 200 ns) v območju 10 %, kar smo ocenili kot sprejemljivo. Največja natančnost je bila dosežena pri pulzih z amplitudo 250 V in časom trajanja med 40 in 140 ns. Da smo lahko dosegli rezultate, prikazane na sliki 3, smo morali nanopulzni elektroporator najprej programsko umeriti. Uporabljeni parametri izhodnega krmilnika so namreč odvisni od uporabljenih elektrod; parametri pulzov (napetost in čas trajanja) se namreč lahko občutno spremenijo, če med poskusi uporabimo elektrode, drugačne od tistih, ki so bile uporabljene za programsko umerjanje naprave. Za vsako zamenjavo elektrod z drugačnim tipom mora torej slediti programsko umerjanje naprave, sicer so lahko parametri proizvedenih pulzov nenatančni in odstopajo od želenih. 3.3 Programska oprema Grafični uporabniški vmesnik naprave (angl. Graphical User Interface – GUI) je namensko izdelana programska oprema. Nanopulzni elektroporator z GUI je prikazan na sliki 4. Slika 4: Nanosekundni elektroporator s programsko opremo grafičnega uporabniška vmesnika (GUI) Programska oprema GUI je razvita v programskem jeziku C# v obliki vgrajene programske aplikacije znotraj operacijskega sistema Microsoft Windows CE 5.0 .NET. Velikost izvorne kode programske opreme GUI je 97 kB (2348 vrstic izvorne kode), velikost prevedene programske opreme GUI pa znaša 8.246 kB. GUI omogoča tako nastavljanje vseh potrebnih parametrov pulzov (amplitude, časa trajanja, števila pulzov in ponavljalne frekvence) kot tudi popolnega upravljanja naprave (polnjenja izhodne stopnje, začetka in prekinitve generiranja pulzov). Poleg tega lahko uporabnik shrani parametre generiranja pulzov na zunanje priključeni USB pomnilniški medij oziroma jih s pomnilniškega medija naloži v GUI. 4 SKLEP Razvili smo kompaktni nanopulzni elektroporator, ki deluje zanesljivo in varno. Naprava je zasnovana modularno, strojna in programska oprema pa sta izbrani tako, da dajeta uporabniku prijazno izkušnjo pri uporabi naprave. Meritve izhodnih parametrov so pokazale, da naprava deluje v skladu z zahtevami ter generira pulze z ustreznimi parametri (amplitudo, časom trajanja, številom pulzov in ponavljalno frekvenco). Čeprav je visokonapetostni signalni generator (nanosekundni elektroporator) napredna naprava, obstajajo vedno novi načini za izboljšanje uporabniške izkušnje. Izboljšava bi lahko bilo dodatno programsko okno z meritvami amplitude in časa trajanja pulzov po vzoru vmesnikov osciloskopov. Takšna izboljšava pa bi zahtevala dodatno nadgradnjo tako programske kot tudi strojne opreme, saj so meritve izhodne napetosti v realnem času zahtevno opravilo. Po drugi strani bi takšna izboljšava pomenila, da za izvajanje poskusov ne bi več potrebovali osciloskopa, ki je trenutno potreben za merjenje proizvedenih pulzov. Še ena izboljšava bi lahko bila zmožnost dinamične zamenjave programskih parametrov umerjanja naprave med samim delovanjem; tako bi si lahko privoščili pogostejše zamenjave elektrod različnih tipov, saj bi lahko hitreje spreminjali parametre umerjanja. Omenjenih izboljšav še nismo razvili in uvedli predvsem zato, ker bi zahtevale dodaten razvojni čas in bi posledično podaljšale čas, potreben za razvoj in nato za začetek uporabe naprave. Ker pa je visokonapetostni signalni generator (nanosekundni elektroporator) zasnovan modularno, nam uvedba dodatnih opravil v sistem in posledično povečanje kompleksnosti naprave ne pomenita nikakršne težave. Poleg tega lahko uporabimo veliko razvitih strojnih in programskih komponent iz te naprave pri razvoju novih, podobnih naprav. Tako lahko skrajšamo čas razvoja in znižamo stroške izdelave novih naprav, kar je postopek, ki ga uporablja veliko raziskovalno-razvojnih oddelkov. Naprava, ki smo jo razvili, je lahko najverjetneje primer takšne prakse. ZAHVALA Razvoj naprave je finančno podprla Agencija za raziskave Republike Slovenije (ARRS), številka projekta Z2-2025. Za pomoč pri razvoju naprave se zahvaljujemo Mateju Kranjcu in Juretu Koselju. 84 PAVLIHA, REBERŠEK, MIKLAVČIČ