Skip to content

Releases: 1313e/PRISM

v1.3.2

01 Feb 04:09
9565508
Compare
Choose a tag to compare

This is the v1.3.2 release of the PRISM package and serves as a small maintenance patch.

Changes/Optimizations:

  • The l_corr and use_mock parameters can now be provided as a dict as well;
  • Removed support for Python 3.5;
  • Improved the way in which the data_idx is stored in HDF5.

v1.3.1.1

04 Nov 01:50
Compare
Choose a tag to compare

This is a minor compatibility release to deal with the changes made in h5py 3.0.

v1.3.1

16 Sep 05:01
6b74f8d
Compare
Choose a tag to compare

This is the v1.3.1 release of the PRISM package and serves as a small maintenance patch.

Bugfixes:

  • Fixed a few PEP8 problems in the code;
  • Fixed a few typos in the documentation of the ModelLink class.

Changes/Optimizations:

  • Replaced pytest-pep8 with pytest-flake8 for PEP8 testing (this solves the Azure tests failing).

v1.3.0

01 Jul 05:31
9280958
Compare
Choose a tag to compare

This is the v1.3.0 release of the PRISM package.

New additions:

  • Added the _get_data_idx_flat method to the Emulator class that returns a flattened list of data_idx tuples;
  • Added the full_impl_rng argument to the project method, which controls whether the lower limit for the minimum implausibility plot should be set to zero (True) or to the lowest value plotted (False, default);
  • The ModelLink class now also has convenient class properties for the model data and parameters;
  • Added the _get_sam_dict method to the ModelLink class to more easily convert a sample set into a sample dict;
  • Added parameter estimate arrows to the projection figures, which are drawn whenever an estimate is outside the plotted parameter range.

Bugfixes:

  • Calling a function in worker mode that in turn calls _make_call, but not in worker mode, no longer causes unpredictable behavior;
  • Redrawing a projection now actually uses the parameters that were used to calculate its data;
  • Fixed a problem in Crystal where the projection dictionaries were not always reset properly;
  • The colorbar in 3D projections is now scaled properly in different alignments.

Changes/Optimizations:

  • The impl_cut property can now always be set through the use of _set_impl_par;
  • The impl_par data is only saved to HDF5 after an analysis ends successfully;
  • Significant polynomial terms in the regression function are now determined more accurately;
  • Reduced memory consumption in certain operations when using large arrays;
  • Changed several class properties of the Pipeline, Emulator and ModelLink classes to return more user-readable versions;
  • Massively improved the interpolation methods used for the projections.

v1.2.3

25 Mar 04:45
2db5a91
Compare
Choose a tag to compare

This is the v1.2.3 release of the PRISM package and serves as an optimization patch.

New additions:

  • Added missing PolyLink class documentation;
  • With the introduction of the improved convergence algorithm as described below, projection figures can now be made to either show the entirety of parameter space or solely the part that figure is defined in. The former allows for easier comparison between figures, whereas the latter provides more information;
  • Added tooltips to the different projection dictionaries that can be modified in Crystal;
  • Backup files made with the _make_backup method of the ModelLink class can now be used as external model realization sets in construct. These can be used by providing the unique suffix identifier of the required backup file.

Bugfixes:

  • Fixed a bug where if solely the intercept term of a regression process was significant, the construction process would crash;
  • Fixed a bug where the regression process could fail in rare cases where a single least-squares fit would not converge.

Changes/Optimizations:

  • Copyright notice now includes the year '2020';
  • Reanalyzing an emulator iteration now uses the current implausibility cut-offs instead of the global default cut-offs;
  • The emulator now only samples over the hypercube in an iteration that contains all of its defined samples. This means that, for example, if a parameter 'A' is only defined over the range [0.5, 1.0] in iteration 2, then analyzing iteration 2 will only consider values of 'A' in this range (and a bit extra to account for inaccuracies);
  • The above massively increases both the accuracy and the convergence rate of the emulator, when parameters show strong preferences for specific parts of their range. Parameters that can take any value in their range are unaffected by this change;
  • Projections can no longer be made when its iteration has not been analyzed yet;
  • Emulator compatibility warnings are now only emitted once per type.

v1.2.2

11 Dec 03:36
7ae4bad
Compare
Choose a tag to compare

This is the v1.2.2 release of the PRISM package and serves as a minor patch/optimization.

New additions:

  • Added the f_impl emulator parameter to PRISM, which is used to artificially inflate the prior emulator variance of all known samples;
  • Emulators made with a version earlier than this one, will have the value of f_impl set to zero when loaded.

Bugfixes:

  • The poly_terms Emulator property now returns the proper polynomial terms.

Changes/Optimizations:

  • All different uses of the residual variance in the emulator are now pre-calculated, making emulator evaluations faster.

v1.2.1

03 Dec 09:46
531ecc7
Compare
Choose a tag to compare

This is the v1.2.1 release of the PRISM package and serves as a minor patch.

New additions:

  • PRISM now uses the new CMasher package for Crystal.

Bugfixes:

  • If an exception is raised in worker mode in MPI, the behavior of the pipeline is no longer random. Instead, the pipeline always terminates (as it should).

Changes/Optimizations:

  • PRISM now uses QtPy imports instead of PyQt5 imports;
  • The lowest line-of-sight depth values for smoothing projections are now calculated using the actual number of segments that the used colormap has;
  • Crystal now changes the mouse cursor to a 'busy icon' if it is not using a threaded progress dialog (as the operation cannot be interrupted);
  • If an exception is raised during the regression process, the corresponding emulator system index is added to the error message. This makes checking what emulator system failed a lot easier (in the future, a way of doing this for all exceptions should be implemented);
  • Starting Crystal will no longer prepare all projections multiple times;
  • Removed a few instances where the master HDF5-file was opened for writing unnecessarily;
  • When determining mock data, the used data values are now also saved in the ModelLink subclass temporarily, in case it needs them.

v1.2.0.1

08 Nov 03:30
0b0ac81
Compare
Choose a tag to compare

This is a minor bugfix release for v1.2.0 of the PRISM package.

Bugfixes:

  • Fixed a bug where the API reference action in Crystal was not pointing to the proper webpage.

v1.2.0

04 Nov 05:59
ea642b1
Compare
Choose a tag to compare

This is the v1.2.0 release of the PRISM package.

New additions:

  • The PolyLink class was added to PRISM's standard ModelLink subclasses;
  • Introduced the new 'req_n_walkers' input argument for the get_walkers() function, which can be used to generate a specific number of required walkers using a custom Metropolis-Hastings algorithm;
  • Added the get_bibtex() function, which prints the BibTeX entry for citing the PRISM paper;
  • Added Crystal, PRISM's Projection GUI;
    Crystal can be used to more easily create; draw; compare; and analyze projection figures;
  • It is now possible to use nested worker modes;
  • It is now also possible to make calls to solely workers using the new _make_call_workers() method;
  • Finally, one can now make calls using rank-specific attributes.

Bugfixes:

  • Fixed a bug where if one tries to reconstruct the first iteration of the emulator using less data points than before, the emulator would not be reset properly;
  • Fixed a bug where analyzing a finished iteration through construct() would not work properly in MPI;
  • Fixed a bug where sometimes the check_vals() function would not raise a proper error.

Changes/Optimizations:

  • Added several tests to various different functions/methods to make sure that the layouts of provided arguments are correct;
  • PRISM's colormaps have been ported to e13Tools;
  • The 3D line-of-sight depth plots now use the 'freeze' colormap (new colormap in e13Tools);
  • All projection hypercube tuples now also carry the iteration for which they were made;
  • The default names of projection hypercubes have been changed slightly;
  • Rewritten the worker mode of PRISM into the WorkerMode class;
  • Removed all deprecated features from v1.1.

v1.1.3

26 Jul 04:02
76429a3
Compare
Choose a tag to compare

This is the v1.1.3 release of the PRISM package.

New additions:

  • PRISM now has a Gitter chat room;
  • Added a section on when (not) to use PRISM;
  • The MCMC functions can now also take dicts as inputs;
  • The Emulator class now has a new property called 'poly_terms', which is a user-convenience property that shows the 'poly_powers' and 'poly_coef' properties in a more readable way. It has no underlying counterpart;
  • Added four Jupyter notebooks with tutorials on how to use PRISM. More will be coming soon.

Bugfixes:

  • The requested emul_i is now properly used for calling project() in the __call__()/run()-method;
  • The get_walkers()-function now returns a copy of pipe.impl_sam to avoid modifications to the internally stored values.

Changes/Optimizations:

  • Made several modifications to the documentation to better clarify what model parameters and model data means;
  • PRISM now uses the threadpoolctl package to control the number of OpenMP threads NumPy is allowed to use, depending on the current state of the pipeline;
  • The calculations of all grid pixels in the projection figures is much more efficient now;
  • The number of grid bins in the projection figures now depends more on the chosen DPI and figsize. This ensures that the time required to interpolate for the figures is minimized;
  • The calculation of the inverse covariance matrix now uses the Moore-Penrose generalized inverse, which heavily reduces the floating point errors in some calculations;
  • The Emulator 'method' is now always saved in lowercase, therefore removing the need to transform it into lowercase every time it is checked;
  • The evaluate()-method now prints a requested 1D sample as a dict instead of a NumPy array;
  • The _check_sam_set()-method of the ModelLink class is now more efficient and prints more helpful error messages;
  • Renamed the get_lnpost_fn()-function to get_hybrid_lnpost_fn(), and made it more efficient in terms of memory consumption (the old function name will be removed completely in v1.2.0);
  • The unit_space input argument for the MCMC functions is now by default set to False;
  • Overhauled a large part of the online documentation on hybrid sampling to be more clear about how exactly it works.