-
Notifications
You must be signed in to change notification settings - Fork 41
MeetingConstraints
Goal: Define priorities, current status and prepare working plan for ILL internship.
Agenda:
1. Presentation: Nicolas Martinez (background, current admin situation, internship dates: April-September 2020?)
2. Current issues/requests from ILL:
2.1 Thorough testing of UI for constraints, as there are frequent glitches (although not always reproducible). See also https://github.com/SasView/sasview/issues/1490. A reproducible bug is that once that a constraint has been defined, the corresponding parameter appears highlighted in the interface even after 'deactivating' the constraint (note that this is only a GUI problem, as the constraint is not applied in the fit). A clear problem with this is when the user decides to add all the constraints before removing those not needed. Furthermore, doing this also sets to 'fittable' those parameters that had not been selected to fit. Related to this, the added parameters that are then deactivated disappear from the 'Complex Constraint' box, so it is not possible to add them again. Conclusion: Need to check and if needed implement an updating mechanism for the whole interface when a constraint is deselected.
2.2 Editing the constraints that appear in the constraint list does not have any effect. This is quite confusing because the list is editable, but any change is not taken into account (the initial constraint as set in the Complex Constraint box remains in place). An active update is also needed here (otherwise the list should not be editable, except for the possibility of activating/deactivating a constraint). Also mentioned in https://github.com/SasView/sasview/issues/1490.
2.3 Setting many and/or complex constraints through the UI is cumbersome and error-prone. Need to add the possibility of uploading a file where the user has defined the desired constraints. Discuss format/style of such file.
2.4 Would like to have relative constraints, e.g: M2.thickness < M1.thickness * 0.9. Is this possible (with a reasonable effort)? Otherwise, this can be done using the reparameterization and adding extra factors (as in lmfit). E.g: M2.thickness = M1.thickness * factor, and 0 < factor < 0.9. Conclusion: Check with Paul Kienzle possible ways of introducing inequality constraints!
2.5 Would like to have several parameters ‘encompassed’ into a single global parameter to which polydispersity is applied. E.g. I have thickness1, thickness2, thickness3, but I don’t want to have 3 independent polydispersity loops. Instead, I would define a total polydispersed thickness and the 3 thickness will change accordingly. Again, possibly the easiest way is to use the reparameterization. Conclusion: Lionel Porcar will test present capabilities provided by reparameterize.
3. Other work/needs (Richard, ISIS, etc.)
3.1 Reparameterize works and it has been used by Richard to e.g. rewrite core_shell_ellipsoid to vary radius and thickness inside a single polydispersity loop (i.e. point 2.5). The bug that made that non-translated params did not appear in the UI has been solved now. To do - see also Richard's mail or Notes: Further testing / Simple enough for the average user? / This creates multiple models. Should we have a single model with sub-levels to choose the preferred form? (See https://github.com/SasView/sasmodels/issues/215)
3.2 S(Q), beta approximation and constraints.
4. Related issues:
https://github.com/SasView/sasview/issues/1490 (problems using constraints)
https://github.com/SasView/sasview/issues/1376 --> Pull request (DONT MERGE) https://github.com/SasView/sasview/pull/1373
https://github.com/SasView/sasmodels/pull/211 (reparameterize, done)
https://github.com/SasView/sasmodels/pull/211 (pegylated vesicle model, new model, S(Q)?)
https://github.com/SasView/sasmodels/issues/215 (point 3.1)
https://github.com/SasView/sasview/issues/1470 (point 3.2)
https://github.com/SasView/sasmodels/issues/182 (pass non-fitted params back from models)
https://github.com/SasView/sasview/issues/978 (doable with reparameterize, close?)
https://github.com/SasView/sasview/issues/621 (relational operator vs assignment operator, document clearly and close?)
https://github.com/SasView/sasview/issues/1478 (P(Q)S(Q) plugin)
https://github.com/SasView/sasview/issues/1456 (points 2.1 and 2.2)
https://github.com/SasView/sasview/issues/1420 (copy/paste params)
https://github.com/SasView/sasview/issues/1333 (prefactor when P(Q) and S(Q))
https://github.com/SasView/sasview/issues/1329 (error values and normalised residuals)
https://github.com/SasView/sasview/issues/1305 (P1S1 + P2S2 sum of products plugin)
https://github.com/SasView/sasview/issues/1301 (test and close?)
https://github.com/SasView/sasview/issues/1267 (support fits to models with data operations)
https://github.com/SasView/sasview/issues/1221 (change data in a FitPage)
https://github.com/SasView/sasview/issues/1145 (headless sasview fitting)
https://github.com/SasView/sasview/issues/1144 (remote fitting service)
https://github.com/SasView/sasview/issues/1021 (refactor SimultaneousFitPage)
https://github.com/SasView/sasview/issues/1019 (fit values and parameters in CanSAS 1D xml)
https://github.com/SasView/sasview/issues/1007 (better feedback when fitting fails)
https://github.com/SasView/sasview/issues/994 (correlation matrix for Levenberg-Marquardt)
https://github.com/SasView/sasview/issues/978 (user defined fit parameters --> reparameterize, close?)
https://github.com/SasView/sasview/issues/899 (warn is user ask DREAM for too many samples)
https://github.com/SasView/sasview/issues/863 (easier to use same fit setup with other data)
https://github.com/SasView/sasview/issues/861 (save results of every fit in a session)
https://github.com/SasView/sasview/issues/585 (add DREAM results to report)
https://github.com/SasView/sasview/issues/571 (add correlation coefficient to correlation plot)
https://github.com/SasView/sasview/issues/569 (add compute button to simultaneous/constrained fitting page)
https://github.com/SasView/sasview/issues/525 (optimizer engine options tied to fitting panel)
https://github.com/SasView/sasview/issues/427 (fix batch fit so that dropdown links to results of batch fitting)
https://github.com/SasView/sasview/issues/270 (add report capability to simultaneous fitting)
https://github.com/SasView/sasview/issues/269 (reports for batch should provide more options)
https://github.com/SasView/sasview/issues/257 (simplified interface for constraining fit on one data set)
5. Anything else?
5.1 Constraints used during the fitting should appear in the report.
5.2 It would be good to have a way of changing data weights when needed. Examples given: When combining x-ray and neutron SANS, the x-ray data dominate because of the large number of points and small errors. How to proceed if one is particularly interested in the low or high-Q regime? But it is not clear at all how to do this in the correct way nor in a general way! Two simple possibilities that were suggested are:
- Minimize log I instead of I.
- Calculate chi^2 as the sum of the reduced_chi2 for each curve
They should be tested in some appropriate cases and if proven useful they could be provided as alternatives to the default (letting the user decide if this is sensible in his/her particular case).
5.3 Constraints in polydispersity loops? In mixture models? Need to discuss with Paul K and follow his work on this.
6. Proposition of working plan for Nicolas
6.1 Familiarise with code and Qt interface (contact: Piotr). Create class diagrams? (https://github.com/SasView/sasview/issues/1471)
6.2 Solve GUI issues (2.1, 2.2, https://github.com/SasView/sasview/issues/1490) (contact: Piotr)
6.3 Design a procedure to give more easily the constraints (constraint editor, read an Ascii file, excel?) (contact: Lionel)
6.4 Add information about constraints in fit report.
6.5 Decide how to handle inequality constraints (interface + link with bumps) (contact: Paul K)
6.6 General methods to change data weighting?
6.7 Work on issues listed above.
- View/Subscribe to the SasView Calendar
- Fortnightly developer's agenda/minutes
- Developer Guides
- Admin Processes and Procedure Notes
- Active Project Pages
- Historical Archive of Obsolete Pages
- Contributor e-Learning Course (free)
- Non Coding contribution needs/projects
- New functionality projects
- DRAFT for acknowledging contributions