[FSL] [TitleIndex] [WordIndex

Running PNM

pnm_gui.png

GUI

The recommended (and easiest) way to run PNM is via the Pnm GUI.

This GUI allows you to specify the following inputs:

It also allows the user to specify the desired outputs:

Interaction EVs

The interaction EVs combine cardiac and respiratory frequencies. For instance, if the cardiac frequency is fc and the respiratory frequency is fr then the interaction terms have frequencies nc*fc +/- nr*fr where the permitted values of nc and nr are determined by the order of interactions entered in the GUI. For example, cardiac order 3 and respiratory order 2 would generate frequencies: 1*fc +/- 1*fr ; 2*fc +/- 1*fr ; 3*fc +/- 1*fr ; 1*fc +/- 2*fr ;2*fc +/- 2*fr ; 3*fc +/- 2*fr. For each frequency a pair of regressors (sin and cos) are generated. So the number of interaction EVs (regressors) can grow quite large.

Note that in practice the frequencies here are changing throughout the scan (as heart rate and breathing rate vary) so they should be thought of more like instantaneous frequencies.

PNM stage 1

Set up the GUI and click Go when ready.

Manual check/edit

Unfortunately, physiological recordings, and the detection of the peaks in them, tends not to be perfect. Therefore we have a simple and quick method for manually checking the recordings and peak detections, and noting down errors to be corrected by the following stage. This is all done within a browser that shows the waveforms and the appropriate peaks.

The output directory will be created and when stage 1 has finished running there will be a file ending with _pnm1.html.

If you do not have the firefox browser (or cannot install it) then you can either skip this step (hoping for the best) or use some other software to view the outputs (e.g. matlab/octave) and note down the times (in seconds) of erroneous/extra peaks or missing peaks. You can then rerun popp (see the log file to get the previous options) and add the options --respadd,--respdel,--cardadd,--carddel for respiratory/cardiac additions/deletions.

PNM stage 2

If you have done the manual check/edit in the browser then follow the instructions given in the browser window (which are tailored to your particular directory and data).

If you have not done a manual check/edit then go to the output directory and run the script pnm_stage2.

Outputs of PNM

The main output of PNM is a file containing the desired regressor information. Since the timing of the MR acquisition varies with slice in the FMRI data, you do not get a simple text file output. Instead you get a set of outputs in the NIFTI format that are voxelwise regressors. There is also a text file with a name ending in _evlist.txt can contains the appropriately ordered list of all of these voxelwise regressors.

Using PNM in FEAT

To use the output of PNM with FEAT all you need to do is to find the file with the name ending in _evlist.txt and enter this (via the file browser) in the Voxelwise Confound List in the FEAT GUI (on the Stats tab). This will use these regressors as confounds, giving them automatic zero entries in all contrasts. With the GLM this ensures that wherever there is any shared variance between these and the EVs of interest (specified in the main design matrix) that the shared variance will be assigned to the physiological noise model. This is the conservative, and more correct, option and avoids inflating false positive rates, maintaining interpretability of any significant output results as being due to the changes of interest and not due to physiological noise.

Note on randomise

Since randomise currently cannot account for time-series autocorrelations (it invalids the exchangeability) it is not possible to use PNM with randomise.



Other tools (advanced)

The basic command-line tools used by PNM are: popp and pnm_evs.

The usage for these are:

Part of FSL (build 500)
popp
Copyright(c) 2011, University of Oxford (Mark Jenkinson)

Usage: 
popp [options] -i <input data file> -o <output data file>

Compulsory arguments (You MUST set one or more of):
        -i,--in input physiological data filename (text format)
        -o,--out        output basename for physiological data and timing/triggers (no extensions)

Optional arguments (You may optionally specify one or more of):
        -s,--samplingrate       sampling rate in Hz (default is 100Hz)
        --tr    TR value in seconds
        --resp  specify column number of respiratory input
        --cardiac       specify column number of cardiac input
        --trigger       specify column number of trigger input
        --rvt   generate RVT data
        --heartrate     generate heartrate data
        --pulseox_trigger       specify that cardiac data is a trigger
        --smoothcard    specify smoothing amount for cardiac (in seconds)
        --smoothresp    specify smoothing amount for respiratory (in seconds)
        --highfreqcutoff        high frequency cut off for respiratory filter in Hz (default is 5Hz)
        --lowfreqcutoff low frequency cut off for respiratory filter in Hz (default is 0.1Hz)
        --initthreshc   initial threshold percentile for cardiac (default 90)
        --nthreshc      neighbourhood exclusion threshold percentile for cardiac (default 60)
        --initthreshr   initial threshold percentile for respiratory (default 80)
        --nthreshr      neighbourhood exclusion threshold percentile for respiratory (default 80)
        --invertresp    invert respiratory trace
        --invertcardiac invert cardiac trace
        --noclean1      turn off cleanup phase 1
        --noclean2      turn off cleanup phase 2
        --loadcardphase input cardiac phase for reprocessing (text format)
        --loadrespphase input respiratory phase for reprocessing (text format)
        --vol   input volumetric image (EPI) filename
        --startingsample        set sample number of the starting time (t=0)
        --respadd       comma separated list of times (in sec) to add to respiratory peak list (uses nearest local max)
        --respdel       comma separated list of times (in sec) to delete from respiratory peak list (uses nearest existing peak)
        --cardadd       comma separated list of times (in sec) to add to cardiac peak list (uses nearest local max)
        --carddel       comma separated list of times (in sec) to delete from cardiac peak list (uses nearest existing peak)
        -v,--verbose    switch on diagnostic messages
        --debug output debugging information
        -h,--help       display this message

and

Part of FSL (build 500)
pnm_evs
Copyright(c) 2011, University of Oxford (Mark Jenkinson)

Usage: 
pnm_evs [options] --tr=3.0 -i fmri_data.nii.gz -o pnmevs -r resp.txt -c card.txt

Compulsory arguments (You MUST set one or more of):
        -i,--in input image filename (of 4D functional/EPI data)
        -o,--out        output filename (for confound/EV matrix)
        --tr    TR of fMRI volumes (in seconds)

Optional arguments (You may optionally specify one or more of):
        -c,--cardiac    input filename for cardiac values (1 or 2 columns: time [phase])
        -r,--respiratory        input filename for respiratory phase values (1 or 2 columns: time [phase])
        --oc    order of basic cardiac regressors (number of Fourier pairs) - default=2
        --or    order of basic respiratory regressors (number of Fourier pairs) - default=1
        --multc order of multiplicative cardiac terms (also need to set --multr) - default=0
        --multr order of multiplicative respiratory terms (also need to set --multc) - default=0
        --csfmask       filename of csf mask image (and generate csf regressor)
        --rvt   input filename of RVT data (2 columns: time value)
        --heartrate     input filename for heartrate data (2 columns: time value)
        --rvtsmooth     Optional smoothing of RVT regressor (in seconds - default 0)
        --heartratesmooth       Optional smoothing of heart rate regressor (in seconds - e.g. 10)
        --slicedir      specify slice direction (x/y/z) - default is z
        --sliceorder    specify slice ordering (up/down/interleaved_up/interleaved_down)
        --slicetiming   specify slice timing via an external file
        --debug turn on debugging output
        -v,--verbose    switch on diagnostic messages
        -h,--help       display this message

Fuller documentation for these tools will be available in the near future.


2012-09-05 11:30