McSAS Integration Project

There is a desire to incorporate McSAS into SasView as another optimization tool for the users without having to install and run a separate package. From the development and maintenance perspective this should also simplify keeping all the features working and updated in a consistent manner.

McSAS fits data using an MC algorithm to extract a parameter distribution. For example for a system of spheres, it will return a distribution of sphere sizes with minimal a priori information. As such it most resembles an optimizer in SasView which optimized the center and polydispersity of a parameter. The integration thus probably should involve changing the optimization framework in SasView to allow a different optimization engine per FitPage and provide McSAS as an optimizer. Care needs to be taken with how the parameters are presented in this case as McSAS always optimizes scale and background and otherwise always fits a polydispersity — so there may need to be a switching of GUI for parameter set ups. Finally the output needs to be fed back so that a fit can continue using a different optimizer but maintaining the McSAS distribution output as a fixed array polydispersity on that parameter. Of course the primary output of McSAS would be the plots of the distribution of the parameters which actually should use the underlying infrastructure created for ticket #17.


We can take a stepwise approach where each part could be worked on independently. For example number 2 and 4 would be useful independently of integrating or not McSAS.

  1. Get McSAS running as an optimizer within SasView
  2. Build infrastructure to plot distribution of a parameter
  3. Output McSAS "population" to work as an array distribution
  4. Change UI to allow separate optimizer choice in each fit page
  5. Refine UI for ease of use of McSAS fitting and switching between regular fitting vs McSAS fitting.


Milestone: SasView 4.2.0 (1 match)

Ticket Resolution Summary Owner Reporter
#1173 fixed more problems with math in plugins pkienzle butler

Milestone: SasView 4.2.1 (1 match)

Ticket Resolution Summary Owner Reporter
#1206 fixed Incorrect (and confusing) presentation of dQ from data in instrumental smearing section GitHub <noreply@…> butler

Milestone: SasView 5.0.0 (2 matches)

Ticket Resolution Summary Owner Reporter
#1182 python old buffer interface deprecated in python 3 pkienzle
#1171 Expose volume calculation in SasModels pkienzle toqduj

Milestone: SasView 4.3.0 (7 matches)

Ticket Resolution Summary Owner Reporter
#1230 parallelize polydispersity loops pkienzle
#1224 Add warning to smearing sizer in fitpage when dq is too large butler
#1220 fixed log scale 2D data with zeros and negative values not plotted correctly GitHub <noreply@…> pkienzle
#1219 and categories.json are overwriten when running from wojciech
#1207 don't create .pyc files in ~/.sasview pkienzle
#1186 be_polyelectrolyte model needs proper validation check butler
#1169 Limit of core_shell_cylinder should be exactly the same as hollow_cylinder butler

Milestone: SasView 5.1.0 (5 matches)

Ticket Resolution Summary Owner Reporter
#1270 Add McSAS as optimizer ibressler ibressler
#1269 build fitting options from optimizer defaults automatically ibressler ibressler
#1268 abstract optimizer handling ibressler ibressler
#1172 Allow "polydispersity" to be defined by series/sets of uncorrelated, discrete points toqduj
#17 fixed Ability to plot the distribution functions from polydispersity ajjackson

Milestone: SasView Next Release +1 (1 match)

Ticket Resolution Summary Owner Reporter
#1177 array distribution not respecting hard limits on parameter pkienzle

Milestone: sasmodels 1.0 (1 match)

Ticket Resolution Summary Owner Reporter
#1193 improve implementation of Si and JN pkienzle

Last modified 2 years ago Last modified on Sep 4, 2018 12:26:25 PM