[Master Index] [Index for Toolbox]

# extract_ctf_markers

## (Toolbox/extract_ctf_markers.m in BrainStorm 2.0 (Alpha))

### Function Synopsis

    DATA = extract_ctf_markers(DS_FOLDER, MARKER_RANGE, CHANNELS, MarkerNames, MARKERPARAM, VERBOSE);

### Help Text

    EXTRACT_CTF_MARKERS - Extract signal block from a .ds CTF data set based on the Markers information in the Markerfile
     function DATA = extract_ctf_markers(DS_FOLDER, MARKER_RANGE, CHANNELS, MarkerNames, MARKERPARAM, VERBOSE);

     function DATA = extract_ctf_markers(DS_FOLDER, MARKER_RANGE, CHANNELS, MarkerNames, MARKERPARAM, VERBOSE);
     DS_FOLDER : String containing the name of the .ds folder (CTF data set format only)
     MARKER_RANGE : Time window of extraction (in seconds) about the listed markers.
     CHANNELS : Vector of channel indices to be extracted.
     MarkerNames : Cell array of strings of Marker NAMES to be read from the MarkerFile in corresponding DS_FOLDER.
               Marker names need to correspond to marker names found in dataset's MarkerFile.
               If left blank, all Markers from DS_FOLDER will be read.
     MARKERPARAM : Cell array of structure (one cell per Marker) containing Marker information with following fields:
               .nsamples   :  Vector containing the number of occurences of each Marker in data set.
               .trial_time : Array Ntrials x 2 ; Ntrials is the number of trials where corresponding marker was found
                             First column is the index of the trials where Marker was found
                             Second column is the set of latencies from trial time 0 where Marker was found in given trial

     VERBOSE : Verbose flag.

### Cross-Reference Information

This function calls

    ds2brainstorm                      C:\BrainStorm_2001\Toolbox\ds2brainstorm.m
    readmarkerfile_ctf                 C:\BrainStorm_2001\Toolbox\readmarkerfile_ctf.m

This function is called by

    importdata                         C:\BrainStorm_2001\Toolbox\importdata.m

### Listing of function C:\BrainStorm_2001\Toolbox\extract_ctf_markers.m

    function DATA = extract_ctf_markers(DS_FOLDER, MARKER_RANGE, CHANNELS, MarkerNames, MARKERPARAM, VERBOSE);
    %EXTRACT_CTF_MARKERS - Extract signal block from a .ds CTF data set based on the Markers information in the Markerfile
    % function DATA = extract_ctf_markers(DS_FOLDER, MARKER_RANGE, CHANNELS, MarkerNames, MARKERPARAM, VERBOSE);
    %
    % function DATA = extract_ctf_markers(DS_FOLDER, MARKER_RANGE, CHANNELS, MarkerNames, MARKERPARAM, VERBOSE);
    % DS_FOLDER : String containing the name of the .ds folder (CTF data set format only)
    % MARKER_RANGE : Time window of extraction (in seconds) about the listed markers.
    % CHANNELS : Vector of channel indices to be extracted.
    % MarkerNames : Cell array of strings of Marker NAMES to be read from the MarkerFile in corresponding DS_FOLDER.
    %           Marker names need to correspond to marker names found in dataset's MarkerFile.
    %           If left blank, all Markers from DS_FOLDER will be read.
    % MARKERPARAM : Cell array of structure (one cell per Marker) containing Marker information with following fields:
    %           .nsamples   :  Vector containing the number of occurences of each Marker in data set.
    %           .trial_time : Array Ntrials x 2 ; Ntrials is the number of trials where corresponding marker was found
    %                         First column is the index of the trials where Marker was found
    %                         Second column is the set of latencies from trial time 0 where Marker was found in given trial
    %
    % VERBOSE : Verbose flag.

    %<autobegin> ---------------------- 26-May-2004 11:30:15 -----------------------
    % --------- Automatically Generated Comments Block Using AUTO_COMMENTS ---------
    %
    % CATEGORY: Data Processing
    %
    % Alphabetical list of external functions (non-Matlab):
    %   toolbox\ds2brainstorm.m
    %   toolbox\readmarkerfile_ctf.m
    %
    % At Check-in: $Author: Mosher $  $Revision: 12 $  $Date: 5/26/04 9:59a $
    %
    % This software is part of BrainStorm Toolbox Version 2.0 (Alpha) 24-May-2004
    %
    % Principal Investigators and Developers:
    % ** Richard M. Leahy, PhD, Signal & Image Processing Institute,
    %    University of Southern California, Los Angeles, CA
    % ** John C. Mosher, PhD, Biophysics Group,
    %    Los Alamos National Laboratory, Los Alamos, NM
    % ** Sylvain Baillet, PhD, Cognitive Neuroscience & Brain Imaging Laboratory,
    %    CNRS, Hopital de la Salpetriere, Paris, France
    %
    % See BrainStorm website at http://neuroimage.usc.edu for further information.
    %
    % Copyright (c) 2004 BrainStorm by the University of Southern California
    % This software distributed  under the terms of the GNU General Public License
    % as published by the Free Software Foundation. Further details on the GPL
    % license can be found at http://www.gnu.org/copyleft/gpl.html .
    %
    % FOR RESEARCH PURPOSES ONLY. THE SOFTWARE IS PROVIDED "AS IS," AND THE
    % UNIVERSITY OF SOUTHERN CALIFORNIA AND ITS COLLABORATORS DO NOT MAKE ANY
    % WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
    % MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, NOR DO THEY ASSUME ANY
    % LIABILITY OR RESPONSIBILITY FOR THE USE OF THIS SOFTWARE.
    %<autoend> ------------------------ 26-May-2004 11:30:15 -----------------------

    % /---Script Author-------------------------------------\
    % |                                                      |
    % |  *** Sylvain Baillet, Ph.D.                          |
    % |  Cognitive Neuroscience & Brain Imaging Laboratory   |
    % |  CNRS UPR640 - LENA                                  |
    % |  Hopital de la Salpetriere, Paris, France            |
    % |  sylvain.baillet@chups.jussieu.fr                    |
    % |                                                      |
    % \------------------------------------------------------/

    % Script History --------------------------------------------------------
    %
    % Script Creation : March 2001 (bst_extractmarkersctf.m).
    % SB  28-Jul-2002 : Renamed to currenty mfilename
    % ............... : Updated help header and file description
    % ............... : MakerNames (was MarkerNames in bst_extract...) used to be a set of indices; it is now a cell array of strings (Marker names)

    % NOTE : Some of the variables (e.g. ONLINE_AV) are used when function is used as a stand-alone script.
    % SB : will leave it this way in first BsT MMII release.

    ONLINE_AV = 0; % if set to 1, runs the online average of each trial and does not return the original data.
    ONLINE_SW_AV = 0; % Same thing but for sample-weighted average
    % MarkerNames = [2]; % Array of markers to be read from the file - if empty, reads out all trials from all markers
    %
    % VERBOSE = 1;
    % [MARKERPARAM.names,MARKERPARAM.nsamples ,MARKERPARAM.trial_time] = readmarkerfile_ctf(DS_FOLDER);

    % Original root folder
    rootfolder = pwd;

    % Name of MarkerFile
    MarkerFile = fullfile(DS_FOLDER,'MarkerFile.mrk');
    % Check if MarkerFile exists
    if ~exist(MarkerFile,'file')
        error(...
            sprintf('MarkerFile $s was not found in %s.',MarkerFile,DS_FOLDER));
        return
    end

    % Read MarkerFile information
    [MARKERPARAM.names,MARKERPARAM.nsamples ,MARKERPARAM.trial_time] = readmarkerfile_ctf(DS_FOLDER);
    if isempty(MarkerNames) % Read all Markers in file
        MarkerNames = MARKERPARAM.names;
    end

    % Number of selected markers
    n_markers = length(MarkerNames);

    % Find Markers indices in MarkerFile
    iMarkers = []; % set of indices of selected Markers in MarkerFile
    for kk = 1:length(MarkerNames)
        iMarkers = [iMarkers, find(strcmp(MARKERPARAM.names,MarkerNames{kk}))];
    end

    imark = 0;

    for i = iMarkers

        imark = imark+1;

        % Are there several time from sync points for this marker ?
        utime = unique(MARKERPARAM.trial_time{i}(:,2));
        if length(utime) == 1 % NO
            % Read all trials at once
            %F = ds2brainstorm(DS_FOLDER,VERBOSE,0,CHANNELS,MARKER_RANGE,MARKERPARAM.trial_time{i}(:,1)');
            F = ds2brainstorm(DS_FOLDER,VERBOSE,0,CHANNELS,MARKERPARAM.trial_time{i}(2)+MARKER_RANGE,MARKERPARAM.trial_time{i}(1));

            % F is a MARKERPARAM.trial_time{i}(:,1)-long cell array
            %        DATA{imark}  = zeros(length(CHANNELS),size(F{1},2),MARKERPARAM.nsamples(i)));
            for k = 1:length(MARKERPARAM.trial_time{i}(:,1))
                DATA{imark}(:,:,k) = F{k};
                F{k} = [];
            end
            clear F

        else % YES
            % Read trial by trial
            for k = 1:MARKERPARAM.nsamples(i)
                cd(rootfolder)
                F = ds2brainstorm(DS_FOLDER,VERBOSE,0,CHANNELS,MARKERPARAM.trial_time{i}(k,2)+MARKER_RANGE,MARKERPARAM.trial_time{i}(k,1));
                if k>1
                    if size(F{1},2) < size(DATA{imark},2)
                        error('Please check the duration of MARKER_RANGE')
                    else
                        F{1} = F{1}(:,1:size(DATA{imark},2));
                    end
                else
                    if ONLINE_AV == 0;
                        DATA{imark} = zeros(length(CHANNELS),size(F{1},2),MARKERPARAM.nsamples(i));
                    else
                        DATA{imark} = zeros(length(CHANNELS),size(F{1},2));
                    end

                end

                if ONLINE_AV == 0
                    DATA{imark}(:,:,k) = F{1};
                else
                    DATA{imark} = DATA{imark}+F{1}/MARKERPARAM.nsamples(i);
                end

                if VERBOSE
                    fprintf('Trial %d\n',k);
                end

                clear F
            end

        end

    end

    % This part for averaging only

    %
    % for i = 1:n_markers
    %     data_av{i} = mean(DATA{imark},3);
    %     figure, plot(MARKER_RANGE(1):1/SAMPLING_RATE:MARKER_RANGE(2),data_av{i}')
    %     title(['Marker ',num2str(i)])
    % end

Produced by color_mat2html, a customized BrainStorm 2.0 (Alpha) version of mat2html on Tue Nov 2 16:17:59 2004
Cross-Directory links are: ON