====== Makro jazyk ====== * umožňuje sestavovat příkazy do skupin, * vytvářet varianty zpracování s různými parametry, * provádět hromadné zpracování v rámci studie. **Dělení příkazů:** * funkce kanálnické - příkaz je vázán pouze na jeden kanál * funkce jednorázové - příkaz se provede postupně pro všechny kanály * funkce obslužné - většinou umožňuje přepnutí modu chodu programu, příkaz se provede jedenkrát, nezávisle na zvoleném kanále ====== Funkce kanálnické ====== ^ Příkaz ^ Funkce ^ Parametry ^ Implementace ^ Poznámka ^ Dat.zm.^ || | | | | | |AVG([-3 5 **1 2 4**], 'mean,std,median,selected'); | průměr pro jednu i více modalit|** -3 5** zobrazení před a po stimulu v sec;** 1 2 4** jsou vybrané modality v pořadí segmentace (např. 1-TG, 2-FQ, 3-dis 4-Reakce ), **selected** počítá poue s vybranými trialy definovanými v HDF souboru, varianta je tlačítko //Select Trials//| neúplné segmenty do průměru nejdou | průměr pro velká data, lze i median (nutno ale počítat po bodech)| |cutter('ripp');| katr |parametrický soubor /export/*ripp.txt | rozdělí kanál na intervaly, na kterých lze počítat statistiku, kousky mohou byt ruzne dlouhe, jsou dané tabulkou ripp |naseka data | 1.9.2016| |clearsig('PD2,min,0.57,std,40,fig');| čistí signál např. od artefaktů | fig pro vykreslení okna | pro křivku PD2,pro val < minimální hodnota a val > std* koef nahradí za NaN | | 5.4.2017| |filtr(0,40);|FFT filtr | od - do Hz| | |10/10/10 | |FW([fwSize]);| vzhlazení dat plovoucím oknem | **fwSize** velikost plovoucího okna v sekundách | použije-li se funkce před AVG - vyhladí se celá data, použije-li se po AVG, vyhladí se pouze zprůměrovaná křivka //AVG.mean//| | 18.6.2013 | |info();| | | | | | |info('subject');| | | | | | |info('group');| | | | | | |info('spectrum',[]);| | | | | | |info('rippfile');| | | | | | |info('ripped,0,group');| počítá statistiku z intervalů| 0...FIXME?, group je výstup do společného statistického souboru | | | | |norm('metoda1');|normalize zprůměrněných dat v okně |**BL** - posun na nulu o hodnotu mean(baseliny), **BLpct** - procentuální přepočet vzhledem k baselině | řadí se po **PD** | |05/04/13| |norm('metoda2');|normalize zprůměrněných dat v datové struktuře i bez **PD** |**BL0** - posun na nulu o hodnotu mean(baseliny), **BLpct0** - procentuální přepočet vzhledem k baselině | řadí se před **PD** | |05/04/13| |PD('trials'); |vykreslí průměr a všechny trialy připravené ke zprůměrnění | segmentovaná data předchází-li někde příkaz AVG, který vytvoří stejnojmenné pole **data.AVG**, **'trials'** segmenty přes sebe / nesegmentovaná data; | | | 10/10/10 | |PD('r'); | viz. výše | **'r'** [[#definice barev | RGB definice barev]] | | |10/10/10| |PD([0 1 0]); | viz. výše | **[0 1 0]** [[#definice barev | RGB definice barev]] | | |10/10/10 | |PD(); | standardní nastavení | ostatní viz. výše | | |10/10/10 | |PSD();| Power Spectral Density | periodogram | funkce **psd** | | 20/11/13 | |power(0,40);| komplexní demodulace | od - do Hz| | |10/10/10 | |SAVEch('format,filter/0-40/'); |ulož kanál do HDF | hdf5, mat, mat1ch | | |10/10/10 | | shiftch(param) | přeskládání trialů do 2D matice trialy x čas| all/noArtefacts| | | | | | | sjednotit s postupem: | resample(200);AVG([-2.1 7.1]);remtrend('data');filtr(0.1,5.5);AVG([-2.1 7.1],'update');PD();PD('trials'); | | | |spikes('A',[t1,t2, n],'spike1,Up'); |detekce hrotů po trialech |**'A'/'M'** automatická/manuální detekce, **[t1,t2,n]**, **t1/t2**- čas počátku/konce detekce vztažený k trigeru, **n** počet oblouků nad a pod nulou], **spike1** název údálosti, **'Up'/'Dn'** detekce horních/dolních oblouků, bez uvedení jsou detekovány obě varianty **Up+Dn** | |data jsou normalizována odečtem baseliny, časové údaje v sekundách |29/09/12 | |statsman('Auto/Manual',[from to],'text');| stanovení latencí na základě výpočtu plochy pod křivkou v 50% a 70% maxima/minima | **A** automatic/**M** manual, detekovaný interval, název adresáře pro uložení FIXME | | |04/04/13 | |TFAsegm([freqMin freqMax -tMin tMax],'fw,FWS');| časově frekvenční analýza |**freqMin** dolní frekvence, **freqMax** horní frekvence, **tMin** počáteční čas, **tMax** konečný čas, **fw** vyhlazení každé obálky ve frekvenčním posunu plovoucím oknem před zprůměrněním (fce. //Average//), **FWS** velikost plovoucího okna | Hilbertova transformace, frekvenční skok 4 Hz, posun 1 Hz | paralelní výpočet, údaje v sekundách |15/5/2013 | |TFAch(**filterFrom**,**filterTo**)|spektrogram | | | | | |trials([-t1 t2]); | seskládá trialy do 2D matice | časový rozsah **[-t1 t2]** sec., **t1,t2** vztažené k trigeru| | časové údaje v sekundách | 29/09/12| ====== Funkce jednorázové ====== ^ Příkaz ^ Funkce ^ Parametry ^ Implementace ^ Poznámka ^ Dat.zm. ^ | | | | | | | |[[menu_a_ovladani_programu:makro_jazyk:command_ex|EX]](w); |export dat |w - Scopewin, formát: nesegmentovaný | export pouze nearteficiálních segmentů, exp. pouze všech kanálů, chybějící jsou vynechány FIXME | pokud nestačí data pak prodlopužení nulami nastane pouze pro poslední 2 segmenty FIXME|28/03/11 | |EX(SignalPlant); |export dat |SignalPlant |hdf2signalplant, FIXME v hdf nutno ručně zeditovat Info:Units |formát souboru hdf5 |1.11.2016 | |EXAVG([t1 t2]); |export trialů v danem intervalu po stimulaci | t1,t2 v sekundách | následuje až po funkci AVG(); | | | |file2HDF5(); |data a parametry do HDF5 | | | | 10/10/10 | | InputWizard | selekce dat |součást file2HDF | | pouze pro Psylab | 11.4.2016 | |[[menu_a_ovladani_programu:makro_jazyk:report|report(directory1 ,[])]] | vytvoří tex soubory| subjekt/directory, ze kterého se berou všechny podadresáře | directory2 - dvojice adresářů ke srovnání, bere všechny podadresáře| |7/01/16 | |SEGM([500 10 2000 3000 1540 1555],[TG nonTG dis]); |segmentace dle trigerů |[min.detekční úroveň,délka trigeru v bodech, dolní mez 1, horní mez 1, dm2, hm2,... ] | funkční pouze pokud je šířka trigeru jeden bod | | 10/10/10 | |SEGMsel(Foto,[8 3 1 1]); |nalezne číslo trigrovacího kanálu podle jeho názvu |název kanálu, např. 'Foto'| | |10/10/10| [[#definice barev | RGB definice barev]] ====== Funkce obslužné ====== ^ Příkaz ^ Funkce ^ Parametry ^ Implementace ^ Poznámka ^ Dat.zm. ^ | | | | | | | | { | otevírá skupinu příkazů| | | ve sloupci s názvem souboru | 15/03/11 | | } | uzavírá skupinu příkazů | | |ve sloupci s názvem souboru | 15/03/11 | | FD | vyvolá **File Dialog** | | | ve sloupci s názvem souboru | 24/6/11 | | mark(//n//, type,half); | manuální značkování dat různými typy markerů | //n// - počet detekovaných bodů nebo [] až po ukončení enterem | | | 24/6/11| |montages('action,new'); | |montage([1:12 14:15 17:18],mean,mean/ch0); | vynechané kontakty, typ montáže, cesta pro uložení např. průměru| | nedoděláno FIXME| |SP(win,on); | zapnutí zápisu do jednoho okna, vše následující se vykreslí do jednoho okna | | | | 15/03/11 | |SP(win,off); | vypnutí zápisu do jednoho okna, následující křivka bude vykreslena do samostatného okna | | | | 15/03/11 | |SP(cmap,par);SP(cmap); | nastavení pořadí barev při vykreslení více křivek| nic=default, ... | colorMap | | 5/4/2011 | |SP(wingrid,par); | zobrazení x,y gridu| par: **on**/**off** | | | 27/9/2013 | |SP(FDRinTime, [compute time1 time2]); | FDR korekce počítaná pro p(t1-t2) |[ano/ne, čas1 - čas2] || | | |SP(ylim,[ampl1 ampl2]); | nastavení rozsahu osy y | [] = automat, ... | | 1.11.2016 | ====== Příklady ====== **InputWizard** {{:menu_a_ovladani_programu:inputwizard.png?900|InputWizard}} * selekce dat při importu * implementováno pouze pro Psylab **Vykreslení variant (setX) zpracování pro každý kanál zvlášť (1-4) do jednoho okna** (způsob zápisu, výsledek) **:** {{:menu_a_ovladani_programu:commandspwin.png?900|}} {{:menu_a_ovladani_programu:spwin1.png?500|}} **Vykreslení více kanálů (1-4) pro set34 do jednoho okna** (způsob zápisu, výsledek)**:** {{:menu_a_ovladani_programu:commandspwin2.png?900|}} {{:menu_a_ovladani_programu:spwin2.png?500|}} * kombinovat lze libovolné varianty zpracování (PW, filtrace v různých pásmech), kanály i různé datové soubory * funkci //vykreslení do jednoho okna// lze potlačit z Menu->Options->**Force to Separate Wins** - křivky se budou vykreslovat do samostatných oken, jako by //SP(win,on)// nebylo použito **Vykreslení vybraného kanálu z více souborů do jednoho okna** (způsob zápisu, výsledek)**:** ====== Definice barev ====== ^ RGB Value ^ Short Name ^ Long Name ^ | [1 1 0] | y | yellow | | [1 0 1] | m | magenta | | [0 1 1] | c | cyan | | [1 0 0] | r | red | | [0 1 0] | g | green | | [0 0 1] | b | blue | | [1 1 1] | w | white | | [0 0 0] | k | black | * kód barvy lze zjistit pomocí Menu->Tools->**Color Code**