Skip to main content

mastercurves

PyPI Version pypi download docs latest

Python package for automatically superimposing data sets to create a master curve, using Gaussian process regression and maximum a posteriori estimation.

Publication of this work is forthcoming. For now, if you use this software, please cite it using the metadata in the citation file.

Documentation

Check out the documentation to learn more about the package and how to use its API. A tutorial and explanation of the demos are coming soon!

Installation

mastercurves is in the PyPI! You can easily install it using pip:

pip install mastercurves

and likewise update it:

pip install mastercurves --upgrade

Usage

Importing the package

Once the package has been installed, you can simply import it's modules:

from mastercurves import MasterCurve
from mastercurves.transforms import Multiply, PowerLawAge

Adding data to a MasterCurve

To begin creating a master curve, first define a MasterCurve object:

mc = MasterCurve()

and add data to the object:

mc.add_data(xs, ys, states)

Here, xs is a python list (of length n) of NumPy arrays. Each of these arrays contains the x-coordinates for a data set at a particular state. Similarly, ys is a list of length n of NumPy arrays, each containing the y-coordinates for a data set at corresponding states. states is a list of length n, with elements parameterizing the different states.

Adding coordinate transformations to the MasterCurve

Coordinate transforms can be added to the mastercurve as follows:

mc.add_htransform(Multiply())

The above line tells the software to shift the data sets on the horizontal axis by a multiplicative factor. Note: by default, Multiply() assumes that the logarithm of the corresponding coordinate was taken before adding the data to the MasterCurve object. To override this, pass the argument Multiply(scale = "linear"). An analagous method, add_vtransform(), exists for transformations to the y-coordinate, which similarly assumes logarithmically scaled data.

Superposing the data

When the data and transformations have been added to the MasterCurve, shifting the data is easy!

mc.superpose()

The results can be visualized in a single line as well:

mc.plot()

Examples

Multiple examples of the software's use can be found in the demos folder, which demonstrate much of the functionality of the software.

Contibuting

Inquiries and suggestions can be directed to krlennon[at]mit.edu. In particular, useful transformations can be directly added to the transforms directory, either in a local copy of the package or by raising an issue here!

License

GNU General Public License v3.0

References

The data used in the demos has been generously provided by authors of the following publications:

T. H. Larsen and E. M. Furst, Microrheology of the liquid-solid transition during gelation, Phys. Rev. Lett., vol. 100, p. 146001, Apr 2008.

S. M. Lalwani, P. Batys, M. Sammalkorpi, and J. L.Lutkenhaus, Relaxation Times of Solid-like Polyelectrolyte Complexes of Varying pH and Water Content, Macromolecules, vol. 54, pp. 7765-7776, Sep 2021.

The data in other examples was digitized from the following publications:

R. Gupta, B. Baldewa, and Y. M. Joshi, Time temperature superposition in soft glassy materials, Soft Matter, vol. 8, pp. 4171-4176, 2012.

R. I. Dekker, M. Dinkgreve, H. de Cagny, D. J. Koeze, B. P. Tighe, and D. Bonn, Scaling of flow curves: Comparison between experiments and simulations, Journal of Non-Newtonian Fluid Mechanics, vol. 261, pp. 33-37, 2018.

D. J. Plazek, Temperature dependence of the viscoelastic behavior of polystyrene, The Journal of Physical Chemistry, vol. 69, pp. 3480-3487, Oct 1965.

Metadata

Release files for mastercurves 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mastercurves 0.2.3
File Size Uploaded
mastercurves-0.2.3.tar.gz 17.4 kB Details

Release files / mastercurves-0.2.3.tar.gz

Download URL mastercurves-0.2.3.tar.gz
Size 17.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f7fd925d5aad45c6a86422c20461c7b2f9d59d4acedea1ad8a2f0494490976fc
BLAKE2b-256 checksum
How to use checksums
35a77f2d5c671b5ae693e5e650b0255d1f2b2ed511ec918401da6515555f8533
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/3.10.1 pkginfo/1.6.1 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

Release history Release notifications | RSS feed

This release

0.2.3 This release

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

2 release files

0.1.0

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page