<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
        {font-family:Menlo;
        panose-1:2 11 6 9 3 8 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:234098093;
        mso-list-type:hybrid;
        mso-list-template-ids:-824558460 68354049 68354051 68354053 68354049 68354051 68354053 68354049 68354051 68354053;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1
        {mso-list-id:444470038;
        mso-list-template-ids:-744086802;}
@list l1:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level2
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l2
        {mso-list-id:632905967;
        mso-list-template-ids:-456080052;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7 ;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7 ;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="NL" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;mso-fareast-language:EN-US">Dear Konstantinos,<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">Thank you for your suggestions regarding cfg.artfctdef.zvalue.fltpadding and for your advice on optimizing the filtering process and addressing
 potential gaps between trials. I have implemented the following steps to tackle the issue:<o:p></o:p></span></p>
<ul type="disc">
<li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3">
<span lang="EN-US">Updated the segmentation function to ensure data segments without gaps<o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo3">
<span lang="EN-US">Added 0.1 seconds (and also tried 0.2, 0.3, 0.5, 1) at the beginning and end of each trial for cfg.artfctdef.zvalue.fltpadding to work properly<o:p></o:p></span></li></ul>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">Despite these adjustments, I am still encountering NaN values during the filtering process. Below is a snippet of my code:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo;color:#008013">%% Read in events and segment the data</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">cfg = [];<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">cfg.dataset = data_path;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">cfg.eventfile = event_file_path;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">cfg.trialfun =
<span style="color:#A709F5">'trialfun_sleep'</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">cfg.trialdef.eventtype = events;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">cfg.trialdef.pre = 0.1; 
<span style="color:#008013">% Change accordingly</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">cfg.trialdef.post = 30.1;
<span style="color:#008013">% Change accordingly</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo;color:#008013">% Call ft_definetrial function in order to define the trials/segments based on the event file</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">cfg_trl_def = ft_definetrial(cfg);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo;color:#008013">% Segment data according to the trial definition</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">data_segmented = ft_redefinetrial(cfg_trl_def, data_filt);<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">Upon inspecting data_segmented.cfg.trl, it appears there are no gaps between samples as defined in the trial definition (if my interpretation
 is correct). Could there be something overlooked in my approach, or are the NaN values originating elsewhere in the preprocessing pipeline?<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><i><span lang="EN-US" style="color:black">Snippet of my trl matrix:<o:p></o:p></span></i></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">65981       72021         -20           1 
<br>
71981       78021         -20           1<br>
77981       84021         -20           1<br>
83981       90021         -20           1<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">I would greatly appreciate any further insights or guidance you could provide on resolving this specific issue.<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">Thank you in advance!<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">Kind regards,<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="color:black">Sophie<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo;color:#0E00FF">function
</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">[trl, event] = trialfun_sleep(cfg)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">   
</span><span style="font-size:10.0pt;font-family:Menlo;color:#008013">% Lees de EDF file met de PSG signalen</span><span style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">    </span>
<span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">hdr = ft_read_header(cfg.dataset);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">   
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">    </span><span style="font-size:10.0pt;font-family:Menlo;color:#008013">% Lees de events uit het CSV bestand</span><span style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">    </span>
<span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">csvfile = cfg.eventfile;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">    events = readtable(csvfile);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">   
</span><span style="font-size:10.0pt;font-family:Menlo;color:#008013">% Initialiseer de event structure
</span><span style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">    event = struct();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">    </span>
<span lang="EN-US" style="font-size:10.0pt;font-family:Menlo;color:#008013">% Definieer de trials</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">    trl = [];<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">    pre  = -round(cfg.trialdef.pre  * hdr.Fs);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">    post = round(cfg.trialdef.post * hdr.Fs);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">   
</span><span style="font-size:10.0pt;font-family:Menlo;color:#008013">% Controleer of eventtypes of eventvalues zijn gespecificeerd</span><span style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">    </span>
<span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">eventtype_specified = isfield(cfg.trialdef,
<span style="color:#A709F5">'eventtype'</span>) && ~isempty(cfg.trialdef.eventtype);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">    eventvalue_specified = isfield(cfg.trialdef,
<span style="color:#A709F5">'eventvalue'</span>) && ~isempty(cfg.trialdef.eventvalue);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">   
</span><span style="font-size:10.0pt;font-family:Menlo;color:#008013">% Vul de event structure in en bereken trials</span><span style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">    </span>
<span lang="EN-US" style="font-size:10.0pt;font-family:Menlo;color:#0E00FF">for </span>
<span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">i = 1:height(events)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">        event(i).type     = events.event_type{i};<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">        event(i).sample   = round(events.start_time(i) * hdr.Fs) + 1;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">        event(i).value    = events.event_code(i);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">       
</span><span style="font-size:10.0pt;font-family:Menlo">event(i).offset   = 0; <span style="color:#008013">
% Initialiseer offset</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">        event(i).duration = [];
<span style="color:#008013">% Voeg duur toe indien beschikbaar</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">        <span style="color:#008013">
% Filter de gewenste event types en waarden</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">        </span>
<span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">type_match = ~eventtype_specified || any(ismember(event(i).type, cfg.trialdef.eventtype));<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">        value_match = ~eventvalue_specified || any(ismember(event(i).value, cfg.trialdef.eventvalue));<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">       
</span><span style="font-size:10.0pt;font-family:Menlo;color:#0E00FF">if </span><span style="font-size:10.0pt;font-family:Menlo">type_match && value_match<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">           
<span style="color:#008013">% Bereken de begin- en eindpunten van de trial</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">           
</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">trlbegin = event(i).sample + pre;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">            trlend   = event(i).sample + post;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">           
</span><span style="font-size:10.0pt;font-family:Menlo">offset   = pre;  <span style="color:#008013">
% Offset is het aantal samples voor het event</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">           
<span style="color:#008013">% Controleer of de trial binnen de grenzen van het dataset valt</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo">           
</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo;color:#0E00FF">if
</span><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">trlbegin > 0 && trlend <= hdr.nSamples<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">                newtrl = [trlbegin trlend offset event(i).value];<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">                trl = [trl; newtrl];<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">           
<span style="color:#0E00FF">end</span><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">       
<span style="color:#0E00FF">end</span><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.0pt;font-family:Menlo">   
<span style="color:#0E00FF">end</span><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo;color:#0E00FF">end</span><span style="font-size:10.0pt;font-family:Menlo"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:Menlo"><o:p> </o:p></span></p>
<div id="mail-editor-reference-message-container">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="color:black">Van:
</span></b><span style="color:black">fieldtrip <fieldtrip-bounces@science.ru.nl> namens Konstantinos Tsilimparis via fieldtrip <fieldtrip@science.ru.nl><br>
<b>Datum: </b>donderdag, 4 juli 2024 om 14:37<br>
<b>Aan: </b>FieldTrip discussion list <fieldtrip@science.ru.nl><br>
<b>CC: </b>Konstantinos Tsilimparis <konstantinos.tsilimparis@outlook.com><br>
<b>Onderwerp: </b>Re: [FieldTrip] Issue with NaN values using ft_artifact_zvalue<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-GB" style="font-family:"Calibri",sans-serif">Dear Sophie,</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-family:"Calibri",sans-serif">You have correctly identified that the error arises from the filter padding process. From my experience, if there are gaps (i.e., no available data points) between your trials,
 this will lead to NaN values during filter padding. While I am not fully aware of your data preprocessing and trial selection methods that leads to the
<i>data_segment</i>, it believe that your trials have gaps in between. For instance, inspecting
<i>data_segment.samplenfo</i> might reveal that the trials do not consist of continuous, uncut segments.</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-family:"Calibri",sans-serif">One option is to
</span><span lang="EN-US" style="font-family:"Calibri",sans-serif;color:black">set the filter padding to 0</span><span lang="EN-GB" style="font-family:"Calibri",sans-serif">, but this won’t take care of the filter-induced edge effects. Another option is to
 go back in your analysis and change the way you segment your data. When you split your data into trials do not leave any gaps between trials. For example, split your signal in 30 seconds trials without gaps in between.</span><span lang="EN-US" style="font-family:"Calibri",sans-serif;color:#212121">
 O</span><span lang="EN-GB" style="font-family:"Calibri",sans-serif">r if you leave gaps between trials, make sure to keep 0.1 sec more in the beginning and the end of each trial for
</span><i><span lang="EN-US" style="font-family:"Calibri",sans-serif;color:black">cfg.artfctdef.zvalue.fltpadding = 0.1</span></i><span lang="EN-US" style="font-family:"Calibri",sans-serif;color:black"> to work properly</span><span lang="EN-GB" style="font-family:"Calibri",sans-serif">.
</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-family:"Calibri",sans-serif"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-family:"Calibri",sans-serif">Best regards,<br>
Konstantinos Tsilimparis</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> <o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> fieldtrip <fieldtrip-bounces@science.ru.nl>
<b>On Behalf Of </b>Schubert, E.S. (Sophie) via fieldtrip<br>
<b>Sent:</b> Wednesday, July 3, 2024 4:14 PM<br>
<b>To:</b> fieldtrip@science.ru.nl<br>
<b>Cc:</b> Schubert, E.S. (Sophie) <E.S.Schubert@umcutrecht.nl><br>
<b>Subject:</b> [FieldTrip] Issue with NaN values using ft_artifact_zvalue</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">Dear FieldTrip Support Team,</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#212121"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">I am writing to seek assistance with an issue I am encountering while using the ft_artifact_zvalue function in FieldTrip for artifact rejection. Despite my data containing no NaN values initially,
 I receive an error during the bandpass filtering process indicating that the input is expected to be finite.</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#212121"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">Here is a detailed description of the problem:</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">searching for artifacts in 2 channels</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Warning: data contains NaNs, not all processing methods are robust to NaNs, so the NaNs</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">might spread </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Warning: data contains NaN values </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Error using filtfilt>efiltfilt</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Error using filtfilt</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Expected input to be finite.</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black"> </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Error in filtfilt (line 102)</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">        y = efiltfilt(b,a,x);</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black"> </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Error in filter_with_correction (line 73)</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">    filt = filtfilt(B, A, dat')';</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black"> </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Error in ft_preproc_bandpassfilter (line 300)</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">    filt = filter_with_correction(B,A,dat,dir,usefftfilt);</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black"> </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Error in preproc (line 405)</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">if strcmp(cfg.bpfilter, 'yes'),     dat = ft_preproc_bandpassfilter(dat, fsample, cfg.bpfreq, cfg.bpfiltord, cfg.bpfilttype, cfg.bpfiltdir, cfg.bpinstabilityfix, cfg.bpfiltdf, cfg.bpfiltwintype,
 cfg.bpfiltdev, cfg.plotfiltresp, cfg.usefftfilt); end</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black"> </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">Error in ft_artifact_zvalue (line 315)</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black">  thisdat = preproc(thisdat, cfg.artfctdef.zvalue.channel, offset2time(0, hdr.Fs, size(thisdat,2)), cfg.artfctdef.zvalue, fltpadding, fltpadding);</span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" style="color:black"> </span></i><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="color:black">The code that I use:</span></b><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">frontalEye = {'EOG LOC-A2', 'EOG ROC-A2'}; % for artifact rejection</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg = [];</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.channel = frontalEye;</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.cutoff = 2.5;</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.trlpadding = 0;</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.artpadding = 0.4;</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.fltpadding = 0.1;</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.bpfilter = 'yes';</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.bpfreq = [0.5 2];</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.bpfiltord = 4;</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.bpfilttype = 'but';</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.hilbert = 'yes';</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">cfg.artfctdef.zvalue.interactive = 'no';</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">[cfg, artifact_EOG_eye] = ft_artifact_zvalue(cfg, data_segmented);</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="color:black"> </span></b><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="color:black">Important notes:</span></b><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<ol style="margin-top:0cm" start="1" type="1">
<li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo1"><span lang="EN-US">I have checked and verified that the data does not contain any NaN values before the filtering process.</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-list:l1 level1 lfo1"><span lang="EN-US">I have tried different configurations, including setting the padding to 0, which prevents the error</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></li></ol>
<p class="MsoNormal"><span lang="EN-US" style="color:black"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">It appears that NaN values are being introduced during the filtering process, but I am unable to determine the cause. I understand that the filterpadding specifies how much extra data around each trial's
 segment is read from the file. This extra data (padding) is used to mitigate edge artifacts that can occur after applying filters to the data. However, given the encountered error, I am uncertain if I am utilizing this function correctly. Could you please
 provide guidance on how to resolve this issue? </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">Thank you for your support!</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">Kind regards,</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#212121"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:black">Sophie Schubert</span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB" style="font-size:11.0pt"><o:p></o:p></span></p>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<p><i><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:black">De informatie opgenomen in dit bericht kan vertrouwelijk zijn en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onterecht ontvangt, wordt u verzocht de inhoud
 niet te gebruiken en de afzender direct te informeren door het bericht te retourneren. Het Universitair Medisch Centrum Utrecht is een publiekrechtelijke rechtspersoon in de zin van de W.H.W. (Wet Hoger Onderwijs en Wetenschappelijk Onderzoek) en staat geregistreerd
 bij de Kamer van Koophandel voor Midden-Nederland onder nr. 30244197. </span></i><span lang="EN-GB"><o:p></o:p></span></p>
<p><i><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:green">Denk s.v.p aan het milieu voor u deze e-mail afdrukt.
</span></i><span lang="EN-GB"><o:p></o:p></span></p>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<p><i><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:black">This message may contain confidential information and is intended exclusively for the addressee. If you receive this message unintentionally, please do not use the contents but notify
 the sender immediately by return e-mail. University Medical Center Utrecht is a legal person by public law and is registered at the Chamber of Commerce for Midden-Nederland under no. 30244197.
</span></i><span lang="EN-GB"><o:p></o:p></span></p>
<p><i><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:green">Please consider the environment before printing this e-mail.
</span></i><span lang="EN-GB"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</body>
</html>