Releases: cadet/CADET-Match
removed cadet gradient support
Removed analytical cadet gradient support. The code was not working correctly and interfered with other code.
Updated to a newer version of sklearn and fixed a problem related to using index in transform.
Stable release
This release has many small bug fixes and improvements to the code and to make it faster so that less time is spent in python code and more time in cadet.
Faster scatter plots
As the number of simulations rises so does the number of points in the scatter plots. On systems with millions of simulations this involves millions of points in the scatter plot which is really slow with matplotlib. The system now merges close points together and scales up the size so that fewer points are drawn. This results in a massive speed increase for large numbers of points. In one case it sped up the system from an hour to a few seconds.
DextranShape infinite loop
Fixed an error that occurs in DextranShape under very rare circumstances that can cause an infinite loop.
New transform system
The transform system has been rewritten to use an abstract base class. There are also two new transforms norm_mult and norm_add which allow you to add or multiply another variable. For example you can estimate nu for one component and then for a higher molecular weight species say nu is 1.5 to 2.5 times the main species.
Blocked a buggy version of openpyxl.
Generation updates
Autocorrelation graphs are generate now (which helps with debugging) and they are put in the space/mcmc dir.
progress_elapsed_time has been added as a new config option which defaults to 300 seconds (5 minutes)
Every progress_elapsed_time interval the system will write out the progress within the generation (percent complete, number of sims complete vs number of sims total). This is really helpful for slow generations with large populations to see how the system is progressing.
MCMC data changes
More data is stored from MCMC now and the process is simpler making it easier to store other information in the future. One of the biggest changes is during the bounds modification step the previous bounds, new bounds and 5% and 95% values are written into mcmc.h5
The system also automatically uses these bounds if a prior is used in a simulation. Since the MCMC interface is pretty stable now it makes sense to make more parts of it automatic.
Another thing that has changed which gives a decent speedup is the sampler is no longer reset at the end of burn in so the random number generator and population are kept intact since this represents the burned in state.
Other minor things include a new version.py file that populates a lot of version, author, email, license etc information in the code. This also means that CADETMatch.version works now.
Fractionation Graphs
Updated fractionation graphs. The graphs are larger and the time offsets are shown so that the graphs are easier to read.
Tutorial working again and powell optimization
One of the earlier changes with how directories are created broke the tutorials. They should work again.
Added optional Powell optimization (2nd order local gradient free optimizer) when gradient optimization is used to the system. Just set
"localRefine": "powell",
in the json file.
Score changes
Important update to the score system
DextranShape, Shape, ShapeBack, ShapeFront
have been updated so that they can run in decay or normal mode and use the derivative or not use the derivative, Their default is to do what they did before but an additional option can be added to configure each of them. This means that so many more scores don't need to be created so Shape can do everything ShapeDecay could do and also cover other cases
To configure the code in the features section for each score set
"derivative": 1 or 0
"decay": 1 or 0
Many of the existing scores are just minor variations on other scores and this causes 4 version to exist for each type of score. Part of the reason for creating this is that sometimes experimental data has glitches in it and while the main curve is smooth enough the derivative (even with smoothing) is quite bad and it makes sense to just turn off usage of the derivative but not create a new score just to do that.