Replies: 15 comments 14 replies
-
Hi Dr. Huppert! I just have a quick question regarding the differences between the probe 1020 and probe class. When performing image reconstruction, everything works fine until I run the ImageReconMFX module in which the below error message pops up. I think that the issue may be that my SubjStats contains a probe of the 1020 class, so its probe.link variable is different from the standard probe.link variable. Is there anyway to convert from one to the other? Or am I doing something wrong in the subject analysis portion to have my probe.link end up being the inherited probe1020 class rather then just a probe? ################ Error using tabular/ismember (line 37) Error in nirs.modules.ImageReconMFX/runThis (line 114) Error in nirs.modules.AbstractModule/run (line 77) Best, |
Beta Was this translation helpful? Give feedback.
-
My best guess is that the stimulus you are creating is a struct and not the actual StimulusEvents class.
> raw=nirs.testing.simARNoise;
> stim=nirs.design.StimulusEvents; % create empty stim class. <<<< I THINK YOU ARE MISSING THIS LINE
> stim.onset=[30:30:300]; % events at 30,60,90…300s
> stim.dur=10*ones(1,length(stim.onset)); % all events are 10s duration
> stim.amp=ones(1,length(stim.onset));
> raw.stimulus('MyTaskName')=stim; % assign to the dictionary as “MyTaskName” as the condition
> raw.draw; % this should now show the task marks
> stim.draw; % this should draw the event marks
My postdoc Hendrik (cc’d) can help if this doesn’t solve the issue for you.
…-Ted
Theodore Huppert, PhD
University of Pittsburgh
Department of Electrical and Computer Engineering
Email: ***@***.******@***.***>
Phone: 1-412-383-5167
Website: www.huppertlab.net
From: FatimaSiba ***@***.***>
Reply-To: huppertt/nirs-toolbox ***@***.***>
Date: Tuesday, August 24, 2021 at 11:44 AM
To: huppertt/nirs-toolbox ***@***.***>
Cc: huppertt ***@***.***>, Author ***@***.***>
Subject: Re: [huppertt/nirs-toolbox] Welcome to nirs-toolbox Discussions! (#2)
Dear Dr. Huppertt and lab team members
I'm trying to process some practice for my experiment. I'm still in the beginning of the process. I'm editing the stimulus by creating my own dictionary class variable and assigning it to the raw data. When I visualize the data the stimulus looks correct. However when I try running the GLM model, I'm running into an error:
Warning: No stim conditions left. Did you provide the correct stim names?
Error using fields
Invalid input argument of type 'double'. Input must be a structure or a Java or COM object.
Error in nirs.modules.GLM/runThis (line 154)
if(~ismember('regressor_no_interest',fields(st)))
Error in nirs.modules.AbstractModule/run (line 77)
out = obj.runThis( inputs );
I could see in the GLM function the st variable is empty and that's why the error is occurring.
However, I'm not sure why that is. The stimulus names are correct in the raw.stimulus.key as well as raw.stimulus.values.names.
I appreciate your help
Thanks
Fatima Sibaii
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#2 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ALNU3OXOXALSXCXH5A4WRODT6PZCXANCNFSM4VFTEJPQ>.
Triage notifications on the go with GitHub Mobile for iOS<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675> or Android<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>.
|
Beta Was this translation helpful? Give feedback.
-
dear all, what version of Matlab would be the most stable to work with analyzIR? looks like I am getting errors that are Matlab version specific |
Beta Was this translation helpful? Give feedback.
-
Hello I have found a post from 2018 that discussed getting the residuals after running the GLM using advanded.nirs.modules.GLMResiduals. Thanks |
Beta Was this translation helpful? Give feedback.
-
I think the code was moved to advanced.nirs.modules.GLMresiduals. The advanced namespace contains a bunch of stuff that is either work-in-progress or was part of a paper comparing methods and determined to be not the best method (e.g. some of the variations on how to use short-separation channels are in there after we found putting them in the GLM was the best approach).
The time-course data that will come back after this module will have the average response removed but hasn’t been really filtered beyond that unless you additionally have correction regressors in the GLM (e.g. short-separations or DCT/polynomial detrending terms). E.g. residual = Y – X*beta, so if X has “filtering” regressors, these will also be projected out of the residual. Beta is estimated by the same AR-IRLS GLM model, but it goes back to the “raw” Y to compute the residuals once it finds beta
Theodore Huppert, PhD
Associate Professor
University of Pittsburgh
Department of Electrical and Computer Engineering
Email: ***@***.******@***.***>
Phone: 1-412-383-5167
Website: www.huppertlab.net<http://www.huppertlab.net>
Schedule a meeting with me at https://calendly.com/huppert1
From: Fatima Sibaii ***@***.***>
Date: Tuesday, February 22, 2022 at 12:18 AM
To: huppertt/nirs-toolbox ***@***.***>
Cc: huppertt ***@***.***>, Author ***@***.***>
Subject: Re: [huppertt/nirs-toolbox] Welcome to nirs-toolbox Discussions! (Discussion #2)
Hello
I have found a post from 2018 that discussed getting the residuals after running the GLM using advanded.nirs.modules.GLMResiduals.
Here is the link:
https://huppertlab.net/discussion/forum/topic/can-residuals-be-extracted-after-glm/
I have tried using this function, however I'm getting this error:
Unable to resolve the name nirs.modules.GLMResiduals.
I'm not sure what that error means.
Also, if this were to work, are the residuals from the GLM considered "filtered time series"?
Thanks
Fatima
—
Reply to this email directly, view it on GitHub<#2 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ALNU3OWFUOIHOLBLZNWJBITU4MMB5ANCNFSM4VFTEJPQ>.
Triage notifications on the go with GitHub Mobile for iOS<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675> or Android<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hi, Dr. Huppert. I was watching this webinar and trying to reproduce the ROC curve analysis. I couldn't find the exact code you used in that webinar, so I managed to do it myself in Matlab (2021a), following the video and using the same data files. For any reason, when I compute the ROC curves, two problems appear: the first one is that there seems to be an error in ChannelStatsRoc.m, in Line 153; I suppose that where it says if(iscellstr(types(i))), it should say if(iscellstr(types(j))). Doing this replacement, it works (it doesn't complain, at least :-/ ). Thanks for your time and help, and sorry for bothering you with this. Best regards from Argentina, Demián Vera. |
Beta Was this translation helpful? Give feedback.
-
Dear Dr. Huppert, Thanks a lot for your wonderful and useful toolbox. When I use nirs.design.split_parametric to manipulate my dataset, I have nan values in cond: amp.
After running the code, I got a new stim named con1:amp, with the amp values being all nan. And when stats analysis is performed, this condition is automatically removed. Did I use the function incorrectly? Then to try to solve this, I manually added the parametric modulation term into my data set. So I created a new cond named ‘con1:amp’ with the same onset and duration with con1 and mean-centered amp value. Then perform the stats. Is it correct to do so? Furthermore, I have two environment-related values in each trial (the two values are highly correlated, r = 0.73). So when I want to see the effect of one of them, I need to include another one in the model to regress its effect out. Can I add the second parametric modulation as I did for the first one? Then I have con1 (with amp all equal to 1), con1:amp1, con1:amp2. Should I have other steps to deal with their high correlation (such as orthogonalizing them beforehand)? Or, from my understanding, the regression model can help me deal with this kind of colinearity (I use the AR_IRLS model). Does the order of the two parametric modulated terms matter? I appreciate any answers, tips, and suggestions about that. |
Beta Was this translation helpful? Give feedback.
-
Hi guys, Sorry if this is a silly question. I love the nirs toolbox, I'd love to continue using it, but I don't know how to remove bad channels in the toolbox - which is kind crucial to me. I usually do some preprocessing, glm and then linear mixed model. But if I try to remove bad channels, I usually get some errors, that I think is related to an uneven number of channels (e.g. Unable to perform assignment because the indices on the left side are not compatible with the size Error in nirs.modules.MixedEffects/runThis (line 225) Error in nirs.modules.AbstractModule/run (line 73) Can anybody help me? |
Beta Was this translation helpful? Give feedback.
-
Hi everyone! Thanks in advance! |
Beta Was this translation helpful? Give feedback.
-
Hi! To identify channels with bad data quality, I previously used the scalp coupling index. In addition, I found the structure noise index (nirs.math.structnoiseindex) that is used within the QA report to identify bad channels. It seems to detect channels with large amplitudes (median deviations) that remain after removing autocorrelations. I'd like to understand a bit better what it is doing exactly. Has anyone else used it and could elaborate on its functioning? Best regards, |
Beta Was this translation helpful? Give feedback.
-
Hi, I am wondering whether it is okay to use a band-pass filter before applying the AR-IRLS algorithm to my data. Within the code I see that low-pass filtering is not recommended (see screenshot below) and can lead to unstable AR coefficients. I could not figure out what that means for the data and the glm results, but trying my filter on a simulated dataset does not seem to cause visible problems and helps finding the simulated response. Looking into the literature, I see that in some publications filtering is used with the AR-IRLS glm model estimation. That's also the case for the paper by Santosa et al., 2020. Here however, the reversed problem is mentioned (high-pass filtering being problematic). Can anyone help with this? Best, |
Beta Was this translation helpful? Give feedback.
-
Hi, I am wondering if the connectivity functions in nirs toolbox could be used for task-based as well to examine dynamic networks? |
Beta Was this translation helpful? Give feedback.
-
Hi, Thank you for sharing your toolbox! @huppertt @xuetongzhai @hendriksantosa Thank you in advance. |
Beta Was this translation helpful? Give feedback.
-
Hello, |
Beta Was this translation helpful? Give feedback.
-
Hello Dr. Huppert! Thank you for the NIRS toolbox. I wanted to explore the possibilities and was trying to run the fnirs_example_shortsep.m demo. The dataset which is used in this demo can't be found at huppertlab.net anymore. Could you share the NIRx_data_SS.zip with me? Thank you! |
Beta Was this translation helpful? Give feedback.
-
👋 Welcome!
We’re using Discussions as a place to connect with other members of our community. We hope that you:
build together 💪.
To get started, comment below with an introduction of yourself and tell us about what you do with this community.
Beta Was this translation helpful? Give feedback.
All reactions