flatironinstitute/CaImAn-MATLAB

exp2 kernel error in cvx_foopsi

jrclimer opened this issue · 6 comments

Please note that the developer of this package is on leave until January 2019 and might not be able to support you.

For better support, please use the template below to submit your issue. When your issue gets resolved please remember to close it.

  • Describe the issue that you are experiencing

Cannot use exp2 kernel for deconvolution. When I try to run deconvolveCa I run into errors.

  • Copy error log below

y.zip

[c,s,options] = deconvolveCa(y,'exp2','optimize_pars','optimize_b');

Error using .* (line 173)
Disciplined convex programming error:
Cannot perform the operation: {real affine} .* {positive constant}

Error in * (line 36)
z = feval( oper, x, y );

Error in cvx_foopsi (line 27)
norm(y(keep)-c2(keep)-b-c1*gd_vec(keep))<=sqrt(sum(keep))*sn;

Error in constrained_foopsi (line 178)
[c(:,rep),bas(rep),cin(rep)] = cvx_foopsi(y,b,c1,sn,b_lb,g,w_,~mis_data);

Error in deconvolveCa (line 118)
[cc, options.b, c1, options.pars, options.sn, s] =
constrained_foopsi(y,[],[],options.pars,options.sn, ...

  • If you're not reporting an error, type your message below
epnev commented

@jrclimer It appears you cannot use the combination of 'exp2' model with the default method 'constrained_foopsi'. You can change either the 'exp2' to 'ar2' and/or choose the thresholded method by passing 'method', 'thresholded' after the model. Does that work?

epnev commented

@jrclimer What error do you get if you try the following?
deconvolveCa(y, 'exp2', 'method', 'thresholded', 'optimize_pars', 'optimize_b');

epnev commented

@jrclimer Note that the two methods are equivalent when you're learning the kernel but 'ar2' is also faster.
You can recover the 'exp2' kernel stored in options.pars if you run deconvolution with 'ar2' and then compute
filter(1,[1,-options.pars'],[1,zeros(1,N-1)])
where N is the length of the exp2 kernel