mastercurves

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

https://github.com/krlennon/mastercurves

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary

Keywords

automation data-analysis gaussian-processes interpreatable-ai machine-learning maximum-a-posteriori python statistical-analysis uncertainty-quantification
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
Statistics
  • Stars: 12
  • Watchers: 1
  • Forks: 4
  • Open Issues: 3
  • Releases: 0
Topics
automation data-analysis gaussian-processes interpreatable-ai machine-learning maximum-a-posteriori python statistical-analysis uncertainty-quantification
Created almost 5 years ago · Last pushed about 3 years ago
Metadata Files
Readme License Citation

README.md

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:

python 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:

python mc = MasterCurve()

and add data to the object:

python 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:

python 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!

python mc.superpose()

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

python 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.

Owner

  • Name: Kyle Lennon
  • Login: krlennon
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  Automatic Identification of Similarity Relations
  from Data
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Kyle
    family-names: Lennon
    email: krlennon@mit.edu
    affiliation: Massachusetts Institute of Technology
    orcid: 'https://orcid.org/0000-0002-1251-5461'
  - given-names: James
    family-names: Swan
    email: jswan@mit.edu
    affiliation: Massachusetts Institute of Technology
identifiers:
  - type: doi
    value: ''

GitHub Events

Total
  • Watch event: 4
  • Issue comment event: 1
  • Fork event: 2
Last Year
  • Watch event: 4
  • Issue comment event: 1
  • Fork event: 2

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 62
  • Total Committers: 2
  • Avg Commits per committer: 31.0
  • Development Distribution Score (DDS): 0.016
Top Committers
Name Email Commits
Kyle Lennon k****n@m****u 61
Kyle Lennon 5****n@u****m 1
Committer Domains (Top 20 + Academic)
mit.edu: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 4
  • Total pull requests: 0
  • Average time to close issues: 5 days
  • Average time to close pull requests: N/A
  • Total issue authors: 4
  • Total pull request authors: 0
  • Average comments per issue: 2.25
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • javad-rahmannezhad (1)
  • NicolasG93 (1)
  • mhlbapat (1)
  • ManonMarchand (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 122 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 13
  • Total maintainers: 1
pypi.org: mastercurves

Python package for building master curves from data

  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 122 Last month
Rankings
Dependent packages count: 9.8%
Average: 18.8%
Forks count: 19.2%
Stargazers count: 19.4%
Dependent repos count: 21.8%
Downloads: 23.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • numpy *