Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

specify prefered "markers" to be imported from eyelink .asc data #602

Closed
SerenXia opened this issue Jan 24, 2024 · 2 comments · Fixed by #702
Closed

specify prefered "markers" to be imported from eyelink .asc data #602

SerenXia opened this issue Jan 24, 2024 · 2 comments · Fixed by #702
Labels
Conceptional The pull request includes conceptional updates

Comments

@SerenXia
Copy link
Contributor

SerenXia commented Jan 24, 2024

Feature Description

I am using PsPM 6.1.1 to import eyelink 1000 plus data. We have both "INPUT" sent via BITSI and "MSG" of different texts sent via IP LINK to the eyelink system.

In the current import_eyelink.m function in PsPM (it is in the "Import" - "eyelink" folder), MSG indices are parsed and filtered out based on predefined and nonconfigurable strings.

Can we have a new feature for defining preferred marker texts or not only looking for "MSG" but look for "INPUT", by providing "options.markers" input argument (or something similar) in future versions of PsPM?

For now, to make sure I have preferred markers for my current data, I just modified it as shown below (in Bold) in my local PsPM. But a more general implementation is needed if we want to have this feature.

import_eyelink.m
line 266-275:
sblink_indices = find(strncmp(messages, 'SBLINK', numel('SBLINK')));
eblink_indices = find(strncmp(messages, 'EBLINK', numel('EBLINK')));
ssacc_indices = find(strncmp(messages, 'SSACC', numel('SSACC')));
esacc_indices = find(strncmp(messages, 'ESACC', numel('ESACC')));
msg_indices = strncmp(messages, 'MSG', numel('MSG'));
for name = {'RECCFG', 'ELCLCFG', 'GAZE_COORDS', 'THRESHOLDS', 'ELCL_', 'PUPIL_DATA_TYPE', '!MODE'}
msg_indices = msg_indices & ~contains(messages, name);
end
msg_indices = msg_indices & (contains(messages, 'trial onset') | contains(messages, '_onset'));
msg_indices = find(msg_indices);

Additionally, if the eyelink datafile contains several TRIALS (defined by eyelink, not the experimental trial design), PsPM would add two 0s in a line, as a sign of new TRIAL onset, in the markerinfo.name and markerinfo.value, but not in the marker data, resulting in inconsistency of the length of marker data and markerinfo.name/value.

Thank you in advance for considering this!

@teddychao
Copy link
Contributor

@dominikbach May we have some comments from you and then assign it to me or someone else to fix this? Thank you.

@teddychao teddychao added the Conceptional The pull request includes conceptional updates label Mar 11, 2024
@dominikbach
Copy link
Contributor

  1. I think it would be helpful to simply import all occurrences of "msg" or "input" in a marker channel. The user can then later parse this from the marker values.
  2. The second issue in the last paragraph seems to be a bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Conceptional The pull request includes conceptional updates
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants