Skip to content

@irojkov-ph irojkov-ph released this Nov 4, 2019

New Functions

  • Three new tests (pspm_hb2hp_test.m, pspm_filtfilt_test.m, pspm_butter_test.m)


  • pspm_display and pspm_ecg_editor do not perform filtering anymore.
  • Treatment of missing data in DCM is now the same regardless of whether they are specified as NaN or via model.missing.
  • Eyelink import parameter blink/saccade edge discard factor default value has been set to 0. This means no extra samples are discarded around blinks/saccades.


  • Fix a bug in pspm_hb2hp where the function crashed when there is no heartbeat left after lower and upper bound filtering of the heartbeat periods.
  • Fix a bug in import_eyelink which imported more markers than the number of markers in the actual .asc file.
  • Fix a bug in pspm_display which crashed when trying to plot ECG signal that contains NaN.
  • Fix a bug in pspm_prepdata which returned only NaN when input signal contained some NaN values.
  • Fix a bug in pspm_version which crashed when MATLAB was invoked with -nojvm.
  • Fix a bug in pspm_get_viewpoint which returned +,=,+ lines in the marker list and which crashed when given a viewpoint data file containing multiple sessions separated with +,= type of markers.
  • Fix a bug in import_viewpoint which created a new session for every marker containing a + somewhere, e.g.: CS+.
  • Fix a bug in pspm_get_events which was not able to locate a marker if it occurred on the first or last sample in a given data file.
  • Fix a bug in pspm_filtfilt which crashed when the filter parameters were of dimension one.
Assets 4

@eozd eozd released this Sep 20, 2019 · 94 commits to master since this release

New Functions

  • A new pupil data preprocessing function
  • A new pupil foreshortening error correction function
  • A new QRS detection algorithm for fMRI environments

New Features

  • Previously, Eyelink import used to discard 50 ms worth of samples
    from each side of every blink or saccade period. This behaviour is
    preserved; however, sample discard duration can now be set by the
  • Channel processing functions now store extensive historical data in
    PsPM files. This data can be printed in table format using the new
    utility function pspm_format_history_from_file
  • Pupil channel is now loaded according to a new precedence order.
    Refer to GLM documentation in this manual to learn more.


  • Eyelink import now returns times and dates in a slightly different
  • Newest version of PsPM is now obtained from the version string in, not from the download link zip file name
  • GLM now uses the LAST channel of a specified modality in a PsPM
  • Nonlinear SCR model (DCM) now does not use the inter-trial interval
    duration value (ITI) of the last trial when computing session
    specific minimum ITI values. Previously, using these last ITI values
    would lead to abnormally small overall min ITI values in some input
    files, thereby causing the inference and PCA sections to use less
    data for all trials. Now, we prevent this from happening.
  • Eyelink import parameter blink/saccade edge discard factor default
    value has been set to 0. This means no extra samples are discarded
    around blinks/saccades.


  • Fix a bug in pspm_extract_segments where trial onsets were not
    assigned to conditions correctly
  • Fix a bug in Viewpoint import where files in DOS format were being
    parsed incorrectly
  • Fix a bug in Eyelink import where blink/saccade periods where
    misaligned, causing the function to discard useful data and return
    noise instead


  • New utility functions to make PsPM more compatible across different
    operating systems
  • An optimized Eyelink import function that is significantly faster
    and more memory efficient than previous versions
  • An optimized SMI event import function that is significantly faster
    than the previous version
  • Multiple new tests to validate the correctness of the functions
  • API unification: Now all preprocessing functions use
    channel_action variable to choose what to do with the new channel.
Assets 4

@eozd eozd released this Sep 20, 2019 · 168 commits to master since this release

This is a hotfix release that fixes a few issues with 4.1.0 release.


  • pspm_get_eyelink now uses the scaling factor from [@hayes:2015a]
    for area based arbitrary units to milimeters conversion.
  • pspm_get_smi does not perform pixel to milimeters conversion for
    pupil data anymore. Pupil values are returned as is in pixel units.
  • pspm_get_smi performs pixel to milimeters conversion for gaze data
    only if the stimulus resolution in pixels are given as an extra


  • pspm_get_viewpoint is now able to import blink and saccade
    channels from sample files as well. In order to enable this feature,
    event files must be stored asynchronously in the datafile. See
    ViewPoint EyeTracker section in this manual for further information.
Assets 4

@eozd eozd released this Sep 20, 2019 · 183 commits to master since this release

New Functions

  • pspm_convert_pixel2unit: Allows to transfer gaze data from pixel
    to units. This facilitates the use of pspm_find_valid_fixations
    which needs data in unit values.
  • pspm_compute_visual_angle: Computes visual angle from gaze data.
  • pspm_convert_visangle2sps: Convert visual angles from Eyelink to
    Scanpath speed.
  • pspm_bf_spsrf_box: SPSRF basis function with box car.
  • pspm_bf_spsrf_gamma: SPSRF basis function with gamma function.

New Features

  • pspm_extract_segments supports DCM files/structures.
  • GLM for SPS.
  • pspm_find_valid_fixations can now take a bitmap as input.
  • A new way to trim data: Start and end times can be chosen according
    to marker name or value.
  • A new function to import SMI iView X EyeTracker files into PsPM.
  • A new function to import ViewPoint EyeTracker files into PsPM.


  • pspm_find_valid_fixations now computes a circle around the
    fixation points when run in fixations mode.


  • Heart period response function (bf_hprf) coefficients are fixed
    according to the manual
  • pspm_extract_segments bugfixes:
    • Fix bugs related to conditions appearing in different sessions.
  • pspm_get_eyelink now imports markers between two recording
    sessions (previously these markers were "lost")
  • pspm_compute_visual_angle: Fix bug in range computation.
  • pspm_ecg2hb: Fix out of bounds error occurring for highly noisy
    data with many outliers.
  • pspm_get_acq: Fix incorrect linear transformation during ACQ
  • pspm_convert_unit: Fix incorrect transformations between metric
    units and inches.
  • pspm_resp_pp: Fix out of bounds error during convolution in
    cushion mode.
  • pspm_pp in 'simple_qa' mode now uses the default values specified
    in pspm_simple_qa.
  • Various further bugfixes.


  • Blink and saccade channels can be imported with PsPM Eyelink import.
  • GLM structure holds the missing data percentage of each condition
    after segment extraction. Further, the decision to exclude
    conditions can be made depending on the percentage of missing data.
  • pspm_extract_segments now works both with GLM files and already
    loaded structures
  • PsPM now checks if SPM is already in MATLAB path. If so, user is
    asked to remove it from path before initializing PsPM.
  • pspm_load1 now returns statistics about conditions with high NaN
  • pspm_extract_segments now is able to use data stored in GLM/DCM
    structures instead of relying the existence of original data files.
  • Multiple new tests to validate the correctness of the functions.
Assets 3

@eozd eozd released this Sep 20, 2019 · 303 commits to master since this release


  • Fix error when calling 'Convert data' from GUI
  • Fix taking square root if pupil data is recorded in AREA
Assets 3

@eozd eozd released this Sep 20, 2019 · 308 commits to master since this release


  • Fix not working options in Matlabbatch module 'Preprocess heart
Assets 3

@eozd eozd released this Sep 20, 2019 · 330 commits to master since this release

Change from scr_ to pspm_

The prefix scr_ has been exchanged with pspm_. This applies to all
functions contained in PsPM.

Updated toolboxes

Matlabbatch ( and the
VBA toolbox ( were updated to
the latest available versions (08.11.2016). The updated VBA version
fully supports newer Matlab versions and warning messages in Matlab 2014
and newer do not appear anymore (during PsPM startup). In terms of
predictive validity, we noted that there was no consistent benefit of
the old or new version of this code

Subsessions in DCM models

Until now, long periods of NaN values (which are just disregarded) could
cause problems for inversion of DCMs. These periods are now split
(according to threshold value) into subsessions. The subsessions will be
evaluated independently, while at the end the results will be stacked
together. Therefore the output-format will not change and should be
compatible with earlier releases.


New import function for Labchart files

The new import function allows direct import of raw labchart files
without exporting them to a suitable format (as was required to date).
The function is only available on Windows systems.

General linear modeling (GLM)

New modalities

  • Startle eyeblink for EMG (SEB)

Pupil Models

  • Blink channels were removed. Periods during blinks and saccades are
    set to NaN already in the import function. This applies to all
    channels of the respective eye. Accordingly, blink validation
    functionality was removed in the function
    pspm_find_valid_fixations. If needed, blinks and saccades can be
    imported as custom channels using channel ids 7-10 (two eyes) or 4-5
    (one eye), while blinks and left eye come first.
  • Importing pupil channels now allows direct specification of a
    transfer function to convert arbitrary units to mm.
  • Importing of eyes which have not been recorded creates channels
    containing NaN values, so that the same import batches can be used
    for groups of subjects, even if one eye is missing in some of them.
  • Sessions in eyelink files (caused by interruption of recording) will
    be concatenated according to the timing variable.
  • In pspm_find_valid_fixations
    • the use of software aspect ratio was replaced by resolution.
      This allows to correctly map the gaze coordinates to the shapes
      mapped by the stimulus software.
    • gaze coordinates can be plotted in order to verify the
      validation settings.
    • interpolation option was removed and should now be used

Minor changes & Bugfixes

  • Version-Check bug during startup is now fixed.
  • Markerinfos will now according to marker channels be converted to an
    event-based format.
  • The data editor (pspm_data_editor) now allows to specify an output
    file using the command line.
  • pspm_split_sessions additionally allows to specify marker ids at
    which the file should split.
  • Artefact correction was extended with a further function (Simple SCR
    quality correction).
  • Convert pupil data becomes convert data and currently only allows
    area to diameter conversion (arbitrary units to mm is integrated in
    the import function)
Assets 3

@eozd eozd released this Sep 20, 2019 · 425 commits to master since this release

Release version 3.1.2
Assets 2

@eozd eozd released this Sep 20, 2019 · 426 commits to master since this release

Release version 3.1.1
Assets 3

@eozd eozd released this Sep 20, 2019 · 438 commits to master since this release

General linear modelling (GLM)

New modalities

For the first time in PsPM, we introduce models for data types other
than SCR:

  • GLM for evoked HPR
  • GLM for fear-conditioned HPR
  • GLM for evoked RA
  • GLM for fear-conditioned RA
  • GLM for evoked RFR
  • GLM for evoked RP
  • GLM for fear-conditioned PS

Tools & Data preprocessing

Tools are split up into Tools & Data preprocessing. The content of each
section is listed below.


  • Display data
  • Rename file
  • Split sessions
  • Artefact removal
  • Downsample data
  • Interpolate missing data
  • Extract segments
  • Segment mean

Data preprocessing

  • Preprocess heart data
  • Preprocess respiration data
  • Prepare illuminance GLM
  • Find valid fixations
  • Convert pupil data
  • Find startle sound onsets

Data preparation


Support for Philips Scanphyslog files and for bioread-converted
AcqKnowledge files has been added to the import function.

Assets 3
You can’t perform that action at this time.