bachlab / PsPM

A matlab suite for Psycho-Physiological Modelling
GNU General Public License v3.0
45 stars 11 forks source link

Problems using SF #486

Closed andyvie closed 1 year ago

andyvie commented 1 year ago

Summary

I want to run a SF analysis on some of our EDA data using the GUI. I've made a script that converts our data into PsPM format. Trim, Downsample, and Display Data work nicely. However, when I use the SF module, I get the following error:


31-May-2023 14:50:05 - Running job #1

31-May-2023 14:50:05 - Running 'SF' SF analysis: S:\userdata\data__CPT\PsPM_TestData\dtVPN_1_1_220721_115930_PSPM.mat ...Warning: fn needs to be an existing file or a struct.

In pspm_load_data (line 155) In pspm_sf (line 220) In pspm_cfg_run_sf (line 84) In cfg_run_cm (line 29) In cfg_util>local_runcj (line 1708) In cfg_util (line 968) In cfg_ui>MenuFileRun_Callback (line 703) In gui_mainfcn (line 95) In cfg_ui (line 53) Warning: Could not load data In pspm_sf (line 222) In pspm_cfg_run_sf (line 84) In cfg_run_cm (line 29) In cfg_util>local_runcj (line 1708) In cfg_util (line 968) In cfg_ui>MenuFileRun_Callback (line 703) In gui_mainfcn (line 95) In cfg_ui (line 53) 31-May-2023 14:50:06 - Done 'SF' 31-May-2023 14:50:06 - Done

Thus, it cannot even load the data file. I figured that "fn" is not recognised in "pspm_load_data.m", because it is not a string, but a cell array. Therefore, I've added the following simple fix after line 104 in "pspm_load_data.m": if (iscell(fn)) fn=char(fn); end

Am I using PsPM in a wrong way, or is this a bug?

Furthermore, the module SF does work when I specify epochs using seconds (Time Units: Seconds). But when I use markers (Time Units: Markers), I get the following error:


02-Jun-2023 17:50:05 - Running job #1

02-Jun-2023 17:50:05 - Running 'SF' SF analysis: S:\userdata\data__CPT\PsPM_TestData\dtVPN_1_1_220721_115930_PSPM.mat ...epoch 1 ...mp 02-Jun-2023 17:50:07 - Failed 'SF' Unrecognized function or variable 'asf'. In file "S:\userdata\gartusa3\data__Anna_CPT\PsPM_v6.0.0\pspm_sf_mp.m" (???), function "pspm_sf_mp" at line 248. In file "S:\userdata\gartusa3\data__Anna_CPT\PsPM_v6.0.0\pspm_sf.m" (???), function "pspm_sf" at line 261. In file "S:\userdata\gartusa3\data__Anna_CPT\PsPM_v6.0.0\pspm_cfg\pspm_cfg_run_sf.m" (???), function "pspm_cfg_run_sf" at line 84.

The following modules did not run: Failed: SF If the problem can be fixed without modifying the job, the computation can be resumed by running cfg_util('cont',1) from the MATLAB command line.

Any ideas? It would probably be possible to specify epochs using seconds. But as this is different for every data file, it would be quite inconvenient.

Steps to Reproduce

1. 2. 3.

Expected Results

Actual Results

(Optional) Possible Cause and Solutions

(Optional) Screenshots if Graphical User Interface is Used

Technical Info

teddychao commented 1 year ago

Hi @andyvie Thank you for posting the issue and the very detailed interpretation. May I know if we can have a sample file that can be used for replicating the error? My email address is skgtdz0@ucl.ac.uk if an email can be sent to me with the error files. It will help us to resolve the issue sooner for you. Best wishes Teddy