schrodinger.application.matsci.uq_utils module¶
Utilities for uncertainty quantification.
Copyright Schrodinger, LLC. All rights reserved.
- schrodinger.application.matsci.uq_utils.X_BIAS_F(x)¶
- schrodinger.application.matsci.uq_utils.check_property_sign(prop, points)¶
Return True if the property has the correct sign.
- Parameters
prop (float) – the property
points (list) – (x, y) pair tuples of data
- Return type
bool
- Returns
True if the property has the correct sign
- schrodinger.application.matsci.uq_utils.get_nonzero_data(xs, ys)¶
Return nonzero data.
- Parameters
xs (list) – the domain
ys (list) – the range
- Return type
list, list
- Returns
the domain and range
- schrodinger.application.matsci.uq_utils.get_bilinear_regions(original_data)¶
Gets the initial early and late regions such that the R squared values are maximized.
- Parameters
original_data (list) – contains pair tuples of data points
- Return type
tuple, tuple
- Returns
(min, max) tuples for early and late regions
- schrodinger.application.matsci.uq_utils.get_points_in_region(data, region)¶
Determine which data points fall into a region given its lower and upper bound.
- Parameters
data (list) – contains pair tuples of data points
region (tuple) – a tuple containing the lower and upper boundaries points of the region
- Returns
all points within the region
- Return type
list
- schrodinger.application.matsci.uq_utils.get_bilinear_regression(data)¶
Return the regression information.
- Parameters
data (list) – contains pair tuples of data points
- Return type
tuple
- Returns
(slope, intercept, R^2)
- schrodinger.application.matsci.uq_utils.get_bilinear_prop(early_regression, late_regression)¶
Returns the bilinear property if both regressions are available.
- Parameters
early_regression (tuple) – (slope, intercept, R^2) for early part
late_regression (tuple) – (slope, intercept, R^2) for late part
- Returns
the property
- Return type
float
- schrodinger.application.matsci.uq_utils.get_bilinear_fit_property(x, x_intersection, early_regression, late_regression, invert_y=True)¶
Return the fit property given the x-value.
- Parameters
x (float) – the x-value
x_intersection (float) – the x intersection point
early_regression (tuple) – (slope, intercept, R^2) for early part
late_regression (tuple) – (slope, intercept, R^2) for late part
invert_y (bool) – whether to invert the y-values
- Return type
float or None
- Returns
the fit property value or None if there isn’t one
- schrodinger.application.matsci.uq_utils.get_bilinear_prop_from_points(points, early_region=None, late_region=None)¶
Return a bilinear property using the given points.
- Parameters
points (list) – list of (x,y) tuples
early_region (tuple or None) – (min, max) tuple for early region, if None then automatically determined
late_region (tuple or None) – (min, max) tuple for late region, if None then automatically determined
- Return type
float or None
- Returns
the property or None if there isn’t one
- schrodinger.application.matsci.uq_utils.get_min_max_avg(data)¶
Return (min, max, avg) of the given data.
- Parameters
data (list) – the data
- Return type
float, float, float
- Returns
the min, max, avg
- schrodinger.application.matsci.uq_utils.get_hyperbola_regression(data, avg_x)¶
Return the regression information.
- Parameters
data (list) – contains pair tuples of data points
avg_x (float) – the average x-value
- Return type
tuple
- Returns
(t0, a, b, c, p0) parameters
- schrodinger.application.matsci.uq_utils.calc_property(x_scaled, t0, a, b, c, p0)¶
Calculate the hyperbolic property.
- Parameters
x_scaled (float) – the scaled x-value
t0 (float) – the scaled T_0 factor in polynomial
a (float) – a factor in polynomial
b (float) – b factor in polynomial
c (float) – c factor in polynomial
p0 (float) – p_0 factor in polynomial
- schrodinger.application.matsci.uq_utils.get_hyperbola_fit_property(x, regression)¶
Return the fit property given the x-value.
- Parameters
x (float) – the x-value
regression (tuple) – (t0, a_coeff, b_coeff, c_coeff, p0)
- Return type
float or None
- Returns
the fit property value or None if there isn’t one
- schrodinger.application.matsci.uq_utils.get_hyperbola_prop_from_points(points)¶
Return a hyperbola property using the given points.
- Parameters
points (list) – list of (x,y) tuples
- Return type
float or None
- Returns
the property or None if there isn’t one
- class schrodinger.application.matsci.uq_utils.BootstrapNoiseHistogramData¶
Bases:
object
Manage data of a histogram of a quantity derived from a parametric bootstrap analysis of uncorrelated Gaussian white noise.
- SAMPLE_SIZE = 1000¶
- __init__()¶
Create an instance.
- setOriginalData(points)¶
Set the original data used to derive the histogram.
- Parameters
points (list) – list of (x,y) tuples
- setFitFunction(fit_function)¶
Set the fit function, i.e. the function that was fit to the original data.
- Parameters
fit_function (function) – the fit function
- setXBiasFunction(x_bias_function=None)¶
Set a biasing function for the original x data.
- Parameters
x_bias_function (function or None) – a biasing function for the original x data or None if there isn’t one
- seedRandom(seed=None)¶
Seed the random number generator.
- Parameters
seed (int or None) – the seed
- setSampleSize(size=None)¶
Set the sample size.
- Parameters
size (int or None) – the sample size, if None then the default of SAMPLE_SIZE is used
- setTargetFunction(target_function)¶
Set the target function, i.e. the function used to obtain the target quantity from points.
- Parameters
target_function (function) – the target function
- getHistogramData()¶
Return the histogram data which is just a list of sampled target values.
- Raises
RuntimeError – if required variables are not defined
- Return type
list or None
- Returns
list of sampled target values or None if there isn’t one
- static getSampleHistogram(points, fit_function, target_function, x_bias_function=None, seed=None, size=None)¶
Return a sample of histogram data using the given points, fit function, and target function.
- Parameters
points (list) – list of (x,y) tuples
fit_function (function) – the fit function
target_function (function) – the target function
x_bias_function (function or None) – a biasing function for the original x data or None if there isn’t one
seed (int or None) – the seed
size (int or None) – the sample size, if None then the default of SAMPLE_SIZE is used
- Return type
list or None
- Returns
list of sampled target values or None if there isn’t one
- static getNormalParameters(data)¶
Return the mean, standard deviation, covariance matrix, and figure of merit parameters from a normal fit of the given data.
- Parameters
data (list) – contains (x, y) tuples
- Return type
float, float, numpy.array, float or None, None, None, and None
- Returns
the mean, standard deviation, covariance matrix, and figure of merit or None, None, None, and None if there aren’t any
- class schrodinger.application.matsci.uq_utils.BilinearHistogramData(invert_y=True)¶
Bases:
schrodinger.application.matsci.uq_utils.BootstrapNoiseHistogramData
Manage a histogram using bilinear data.
- __init__(invert_y=True)¶
Create an instance.
- Parameters
invert_y (bool) – whether to invert the y-values
- static getSampleHistogram(points, fit_function, target_function, x_bias_function=None, seed=None, size=None, invert_y=True)¶
Return a sample of histogram data using the given points, fit function, and target function.
- Parameters
points (list) – list of (x,y) tuples, if using invert_y then this data should be uninverted
fit_function (function) – the fit function, if using invert_y then expected to return uninverted data
target_function (function) – the target function, if using invert_y then expects the input data to already be inverted
x_bias_function (function or None) – a biasing function for the original x data or None if there isn’t one
seed (int or None) – the seed
size (int or None) – the sample size, if None then the default of SAMPLE_SIZE is used
invert_y (bool) – whether to invert the y-values
- Return type
list or None
- Returns
list of sampled target values or None if there isn’t one
- SAMPLE_SIZE = 1000¶
- getHistogramData()¶
Return the histogram data which is just a list of sampled target values.
- Raises
RuntimeError – if required variables are not defined
- Return type
list or None
- Returns
list of sampled target values or None if there isn’t one
- static getNormalParameters(data)¶
Return the mean, standard deviation, covariance matrix, and figure of merit parameters from a normal fit of the given data.
- Parameters
data (list) – contains (x, y) tuples
- Return type
float, float, numpy.array, float or None, None, None, and None
- Returns
the mean, standard deviation, covariance matrix, and figure of merit or None, None, None, and None if there aren’t any
- seedRandom(seed=None)¶
Seed the random number generator.
- Parameters
seed (int or None) – the seed
- setFitFunction(fit_function)¶
Set the fit function, i.e. the function that was fit to the original data.
- Parameters
fit_function (function) – the fit function
- setOriginalData(points)¶
Set the original data used to derive the histogram.
- Parameters
points (list) – list of (x,y) tuples
- setSampleSize(size=None)¶
Set the sample size.
- Parameters
size (int or None) – the sample size, if None then the default of SAMPLE_SIZE is used
- setTargetFunction(target_function)¶
Set the target function, i.e. the function used to obtain the target quantity from points.
- Parameters
target_function (function) – the target function
- setXBiasFunction(x_bias_function=None)¶
Set a biasing function for the original x data.
- Parameters
x_bias_function (function or None) – a biasing function for the original x data or None if there isn’t one
- class schrodinger.application.matsci.uq_utils.HyperbolaHistogramData¶
Bases:
schrodinger.application.matsci.uq_utils.BootstrapNoiseHistogramData
Manage a histogram using hyperbola data.
- static getSampleHistogram(points, fit_function, target_function, x_bias_function=None, seed=None, size=None)¶
Return a sample of histogram data using the given points, fit function, and target function.
- Parameters
points (list) – list of (x,y) tuples
fit_function (function) – the fit function
target_function (function) – the target function
x_bias_function (function or None) – a biasing function for the original x data or None if there isn’t one
seed (int or None) – the seed
size (int or None) – the sample size, if None then the default of SAMPLE_SIZE is used
- Return type
list or None
- Returns
list of sampled target values or None if there isn’t one
- SAMPLE_SIZE = 1000¶
- __init__()¶
Create an instance.
- getHistogramData()¶
Return the histogram data which is just a list of sampled target values.
- Raises
RuntimeError – if required variables are not defined
- Return type
list or None
- Returns
list of sampled target values or None if there isn’t one
- static getNormalParameters(data)¶
Return the mean, standard deviation, covariance matrix, and figure of merit parameters from a normal fit of the given data.
- Parameters
data (list) – contains (x, y) tuples
- Return type
float, float, numpy.array, float or None, None, None, and None
- Returns
the mean, standard deviation, covariance matrix, and figure of merit or None, None, None, and None if there aren’t any
- seedRandom(seed=None)¶
Seed the random number generator.
- Parameters
seed (int or None) – the seed
- setFitFunction(fit_function)¶
Set the fit function, i.e. the function that was fit to the original data.
- Parameters
fit_function (function) – the fit function
- setOriginalData(points)¶
Set the original data used to derive the histogram.
- Parameters
points (list) – list of (x,y) tuples
- setSampleSize(size=None)¶
Set the sample size.
- Parameters
size (int or None) – the sample size, if None then the default of SAMPLE_SIZE is used
- setTargetFunction(target_function)¶
Set the target function, i.e. the function used to obtain the target quantity from points.
- Parameters
target_function (function) – the target function
- setXBiasFunction(x_bias_function=None)¶
Set a biasing function for the original x data.
- Parameters
x_bias_function (function or None) – a biasing function for the original x data or None if there isn’t one