Home > vbmeg > functions > gui > preAnalysis > meeg_processor > utility > private_func > vb_continuous_file_extract_trial.m

vb_continuous_file_extract_trial

PURPOSE ^

Extract trial list for each trigger.

SYNOPSIS ^

function [trial_list] = vb_continuous_file_extract_trial(obj, trig_list, trial_setting)

DESCRIPTION ^

 Extract trial list for each trigger.
 [USAGE]
   trial_list = continous_file_extract_trial(obj, trig_list, trial_setting);
 [IN]
              obj : continous_file object
        trig_list : trigger parameter list {N}
    trial_setting : trial_setting
                          .pretrigger_ms  : pretrigger length of trials 
                          .posttrigger_ms : posttrigger length of trials
                     .minumum_distance_ms : minimum distance between trials
                                            if empty is specified, distance won't be checked.
 [OUT]
       trial_list : extracted trial list  {trials x N}

 [see also]
    vb_job_trial_onset;

 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [trial_list] = vb_continuous_file_extract_trial(obj, trig_list, trial_setting)
0002 % Extract trial list for each trigger.
0003 % [USAGE]
0004 %   trial_list = continous_file_extract_trial(obj, trig_list, trial_setting);
0005 % [IN]
0006 %              obj : continous_file object
0007 %        trig_list : trigger parameter list {N}
0008 %    trial_setting : trial_setting
0009 %                          .pretrigger_ms  : pretrigger length of trials
0010 %                          .posttrigger_ms : posttrigger length of trials
0011 %                     .minumum_distance_ms : minimum distance between trials
0012 %                                            if empty is specified, distance won't be checked.
0013 % [OUT]
0014 %       trial_list : extracted trial list  {trials x N}
0015 %
0016 % [see also]
0017 %    vb_job_trial_onset;
0018 %
0019 % Copyright (C) 2011, ATR All Rights Reserved.
0020 % License : New BSD License(see VBMEG_LICENSE.txt)
0021 
0022 %
0023 % --- Previous check
0024 %
0025 if nargin < 3
0026     error('This function needs 3 arguments. Please check your code.');
0027 end
0028 %
0029 % --- Main Procedure
0030 %
0031 if ~isfield(trial_setting, 'minimum_distance_ms')
0032     trial_setting.minimum_distance_ms = [];
0033 end
0034 trial_list = cell(0);
0035 
0036 freq = vb_continuous_file_get_sample_freq(obj);
0037 minimum_distance = freq * trial_setting.minimum_distance_ms/1000;
0038 
0039 for k=1:length(trig_list)
0040 
0041     %
0042     % --- create parameter
0043     %
0044 
0045     % trigger property
0046     parm = vb_trigger_get_parameter(trig_list{k});
0047 
0048     % data property
0049     parm.fsamp = vb_continuous_file_get_sample_freq(obj);
0050 
0051     % trial property
0052     parm.Pretrigger_ms  = trial_setting.pretrigger_ms;
0053     parm.Posttrigger_ms = trial_setting.posttrigger_ms;
0054 
0055     %
0056     % --- Trial extraction
0057     %
0058 
0059     % load status channel data
0060     load_spec = struct;
0061     load_spec.ChannelName = parm.status_ch;
0062     status_data = vb_load_meg_data(obj.filename, load_spec);
0063     vb_disp(sprintf('extracting from continuous_file :%s....', obj.filename'));
0064 
0065     [ix_trial, trig, cond_id, status_val, status] = ...
0066         vb_get_trial_time_index(status_data, parm);
0067 
0068     % create Trial set
0069     trial_set = [];
0070     Ntrial = size(ix_trial, 2);
0071     for j=1:Ntrial
0072         trial_samples = ix_trial(:, j);
0073 
0074         from  = trial_samples(1);
0075         to    = trial_samples(end);
0076         onset = trig(j);
0077 
0078         trial = vb_trial_new(from, to, onset);
0079 
0080         if ~isempty(trial_set)
0081             previous_onset = trial_set(end).onset;
0082             distance = onset - previous_onset;
0083             if distance < minimum_distance
0084                 continue;
0085             end
0086         end
0087         trial_set = [trial_set; trial];        
0088     end
0089 
0090     % Register trial_set
0091     trial_list{k} = trial_set;
0092 end
0093 
0094 %
0095 % --- After check
0096 %
0097 if nargout < 1
0098     error('your program didn''t receive extracted trial set list.');
0099 end

Generated on Mon 22-May-2023 06:53:56 by m2html © 2005