PYME.localization.Test.fitTestJigSCMOS module

PYME.localization.Test.fitTestJigSCMOS.IQR(x)
PYME.localization.Test.fitTestJigSCMOS.emg(v, rg)
class PYME.localization.Test.fitTestJigSCMOS.fitTestJig(metadata, fitModule=None)

Bases: object

A class for testing fits.

Reads both simulation and analysis settings out of a metadata file, looking for the special metadata keys:
“Test.DefaultParams” - a vector containing the mean values of each model parameter to use when generating the
test data.
“Test.ParamJitter” - a vector containing the magnitude of variation to add to each parameter. Each test image is
generated with a different the model parameters randomly jittered in the range [DefaultParams - ParamJitter : DefaultParams + ParamJitter]. To generate data with a fixed set of parameter values, set ParamJitter to zeros

“Test.ROISize” - the half-size fo the ROI to simulate “Test.SimModule” - the name of the module used to simulate the data (if different from the analysis module) “Test.Background” - an additional background to add before noise generation and then subtract, to be used with fits

which do not have a background parameter and rely on the running background subtraction to provide an essentially background free image (some of the 3D fits).
“Test.PSFFile” - the name of a PSF file to use for simulation if not simulating with the same PSF which is used
for analysis [3D fits].

“Test.VarianceMapID” - variance map to use for simulation (if different from analysis) “Test.DarkMapID” - dark map to use for simulation (if different from analysis) “Test.FlatfieldMapID” - dark map to use for simulation (if different from analysis)

Attributes

result_params
results
sim_params

Methods

calcMEs()
error(varName) Calculate the error (fitted - expected) for the parameter given by varName
evalParams([params, param_jit]) Evaluate the given parameters (including parameter jitter if given)
fromMDFile(mdfile) Create a new fit test jig from a metadata file
plotRes(varName[, showStartParams, ...]) Plot a scatter plot of the fitted vs the simulated values.
plotResSimp(varName[, subplot]) Plot a scatter plot of the fitted vs the simulated values (simple version).
runTests([params, param_jit, nTests]) Simulate and fit multiple single molecules.

Initialize the fit test jig from metadata file

Parameters:

metadata - PYME.IO.MetadataHandler.MetaDataHandler object

The metadata containing simulation and analysis settings. See custom ‘Test.XX’ keys in class description

fitModule - sting [optional, deprecated]

The name of the fit module to use. This overrides the settings in the metadata, but is only retained for backwards compatibility. You should set the fit module in the metadata.

Attributes

result_params
results
sim_params

Methods

calcMEs()
error(varName) Calculate the error (fitted - expected) for the parameter given by varName
evalParams([params, param_jit]) Evaluate the given parameters (including parameter jitter if given)
fromMDFile(mdfile) Create a new fit test jig from a metadata file
plotRes(varName[, showStartParams, ...]) Plot a scatter plot of the fitted vs the simulated values.
plotResSimp(varName[, subplot]) Plot a scatter plot of the fitted vs the simulated values (simple version).
runTests([params, param_jit, nTests]) Simulate and fit multiple single molecules.
calcMEs()
error(varName)

Calculate the error (fitted - expected) for the parameter given by varName

Parameters:

varName - string

the name of the parameter to calculate the error for

Returns:

array of differences between fitted and model values

evalParams(params=None, param_jit=None)

Evaluate the given parameters (including parameter jitter if given)

Parameters:

params - array

The mean value of the parameters. Overrides settings in metadata if provided

param_jit - array

The amount of parameter jitter. Overrides settings in metadata if provided

Returns:

data, x0, y0, z0, p

data is the array containing the evaluated model

x0, y0 and z0 are the associated x y and z coordinates returned from evaluating the model

p is the parameter set used to evaluate the model

The primary use of this routine is to test parameter choices in the setup of a simulation,

i.e. merely a convenience routine.

Note that this method has some code duplication with runTests which is a bit unwieldy,

ideally this should be turned into a helper method used by runTests.

classmethod fromMDFile(mdfile)

Create a new fit test jig from a metadata file

Parameters:

mdfile - string

the filename of the metadata file to use. The file should be in PYMEs ‘SimpleMDHandler’ (*.md) format.

Returns:

fitTestJig instance

plotRes(varName, showStartParams=True, errThreshold=None, nPlotEvents=500, y1range=None)

Plot a scatter plot of the fitted vs the simulated values.

Note that this version also attempts to plot the starting parameters used in the fit, so will not work with fits which do not record their starting parameters (e.g. latGaussFitFR)

Parameters:

varName - string

the name of the parameter to plot

errThreshold - float

optional, error threshold to filter fitResults only for events with fitError < errThreshold default: None (no filtering)

plotResSimp(varName, subplot=False)

Plot a scatter plot of the fitted vs the simulated values (simple version).

This just plots the fitted vs model values without errorbars or starting positions, so should work for all fits.

Parameters:

varName - string

the name of the parameter to plot

result_params
results
runTests(params=None, param_jit=None, nTests=100)

Simulate and fit multiple single molecules. The results are stored in the class itself and can be accessed by other methods.

Parameters:

params - array

The mean value of the parameters. Overrides settings in metadata if provided

param_jit - array

The amount of parameter jitter. Overrides settings in metadata if provided

nTests - int

The number of molecules to simulate

Returns:

self.sim_params contains the parameters used for simulation

self.results contains the full fit results

self.result_params contains the fitted params

self.d2 is a list of the simulated data frames

NB: the x and y params in both results and result_params will be offset by half the region of interest size. i.e.

simulation co-ordinates are taken from the ROI centre and fitting coordinates are taken from the top left corner.

sim_params