-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement arbitrary penalties for SNLLS & Pathway amplitudes contstraint #108
Conversation
- add option to pass a custom penalty function - snlls new returns separate uncertainty quantification objects for the linear and nonlinear components - adapted fitisignal to new outputs of snlls
The new keyword argument in Another notation issue might be the difference between the built-in smoothness penalty (needed to ensure the linear problem is correctly computed) and any custom penalty passed by the user. A way to refer to them would be linear-penalty (for the smoothness penalty applied to the linear problem) and non-linear penalty (the user-defined penalty applied to the non-linear problem). We need to adjust this before merging. |
Description
This is a major upgrade to
snlls.py
andfitmodel.py
. It improvessnlls.py
to be able to handle arbitrary penalties defined by outer functions or scripts. This allows us to implement a penalty infitmodel.py
that constrains the pathway amplitudes and makes the separation of theLam0
andV0
parameters identifiable, strongly improving the fit accuracy and suppressing most uncertainty in fits of multi-pathway models such as 5-pulse DEER, etc.Changelog:
snlls.py
fitmodel.py
Lam0+sum(lam)<=1
to ensure identifiability ofLam0
andV0
during SNLLS optimization (Scale invariability of pathway amplitudes and redundancy with V0 #76).snlls.py
.Related Issues:
Closes #103
Closes #76