Ejemplo n.º 1
0
def testingParametersSCMOS():
    """
    Create a sCMOS parameters object.
    """
    params = parameters.ParametersSCMOS()

    params.setAttr("max_frame", "int", -1)
    params.setAttr("start_frame", "int", -1)

    params.setAttr("background_sigma", "float", 8.0)
    params.setAttr("camera_calibration", "filename", "calib.npy")
    params.setAttr("find_max_radius", "int", 5)
    params.setAttr("foreground_sigma", "float", 1.5)
    params.setAttr("iterations", "int", settings.iterations)
    params.setAttr("model", "string", "2dfixed")
    params.setAttr("pixel_size", "float", settings.pixel_size)
    params.setAttr("sigma", "float", 150.0 / settings.pixel_size)
    params.setAttr("threshold", "float", 6.0)

    # Don't do tracking.
    params.setAttr("descriptor", "string", "1")
    params.setAttr("radius", "float", "0.0")

    # Don't do drift-correction.
    params.setAttr("d_scale", "int", 2)
    params.setAttr("drift_correction", "int", 0)
    params.setAttr("frame_step", "int", 500)
    params.setAttr("z_correction", "int", 0)

    return params
Ejemplo n.º 2
0
def test_scmos_scmos_cal():
    """
    Test that scmos calibration data is initialized correctly.
    """
    settings = storm_analysis.getData("test/data/test_sc_2d_fixed.xml")
    parameters = params.ParametersSCMOS().initFromFile(settings)

    # Create analysis object and reach deep into it..
    find_fit = findPeaks.initFindAndFit(parameters)
    fitter = find_fit.peak_fitter
    mfitter = fitter.mfitter

    # Get sCMOS calibration value.
    scmos_cal_value = mfitter.scmos_cal[0, 0]

    # Initialize with an image.
    image = numpy.ones(mfitter.scmos_cal.shape)
    fitter.newImage(image)

    # Verify that the image has the sCMOS term added.
    resp = mfitter.getResidual()
    assert (numpy.max(resp - (1.0 + scmos_cal_value)) < 1.0e-6)

    # Cleanup.
    fitter.cleanUp()
Ejemplo n.º 3
0
def analyze(movie_name, mlist_name, settings_name):

    # Load parameters.
    parameters = params.ParametersSCMOS().initFromFile(settings_name)

    # Check for possibly v1.0 parameters.
    if not parameters.hasAttr("background_sigma"):
        raise Exception(
            "Parameter 'background_sigma' is missing. Version 1.0 parameters?")

    # Create finding and fitting object.
    finder = find_peaks.initFindAndFit(parameters)

    # Create object for reading sCMOS camera frames.
    frame_reader = analysisIO.FrameReaderSCMOS(movie_file=movie_name,
                                               parameters=parameters)

    # Create movie reader (uses frame reader).
    movie_reader = analysisIO.MovieReader(frame_reader=frame_reader,
                                          parameters=parameters)

    # Create localization file writer.
    data_writer = analysisIO.DataWriterHDF5(data_file=mlist_name,
                                            parameters=parameters,
                                            sa_type='sCMOS')

    # Run the analysis.
    std_analysis.standardAnalysis(finder, movie_reader, data_writer,
                                  parameters)
Ejemplo n.º 4
0
def testingParameters():
    """
    Create a sCMOS parameters object.
    """
    params = parameters.ParametersSCMOS()

    params.setAttr("max_frame", "int", -1)
    params.setAttr("start_frame", "int", -1)

    params.setAttr("background_sigma", "float", 8.0)
    params.setAttr("camera_calibration", "filename", "calib.npy")
    params.setAttr("find_max_radius", "int", 5)
    params.setAttr("foreground_sigma", "float", 1.5)
    params.setAttr("iterations", "int", settings.iterations)
    params.setAttr("model", "string", settings.model)
    params.setAttr("pixel_size", "float", settings.pixel_size)
    params.setAttr("sigma", "float", 150.0 / settings.pixel_size)
    params.setAttr("threshold", "float", 6.0)

    # Don't do tracking.
    params.setAttr("descriptor", "string", "1")
    params.setAttr("radius", "float", "0.0")

    # Don't do drift-correction.
    params.setAttr("d_scale", "int", 2)
    params.setAttr("drift_correction", "int", 0)
    params.setAttr("frame_step", "int", 500)
    params.setAttr("z_correction", "int", 0)

    # Z fitting.
    #
    # These are nonsense values. We test either '2D' of '3D' mode
    # and check how will we do at fitting the localization widths.
    #
    params.setAttr("do_zfit", "int", 0)

    params.setAttr("cutoff", "float", 0.0)
    params.setAttr("max_z", "float", 0.5)
    params.setAttr("min_z", "float", -0.5)
    params.setAttr("z_value", "float", 0.0)
    params.setAttr("z_step", "float", 1.0)

    params.setAttr("wx_wo", "float", 1.0)
    params.setAttr("wx_c", "float", 1.0)
    params.setAttr("wx_d", "float", 1.0)
    params.setAttr("wxA", "float", 0.0)
    params.setAttr("wxB", "float", 0.0)
    params.setAttr("wxC", "float", 0.0)
    params.setAttr("wxD", "float", 0.0)

    params.setAttr("wy_wo", "float", 1.0)
    params.setAttr("wy_c", "float", 1.0)
    params.setAttr("wy_d", "float", 1.0)
    params.setAttr("wyA", "float", 0.0)
    params.setAttr("wyB", "float", 0.0)
    params.setAttr("wyC", "float", 0.0)
    params.setAttr("wyD", "float", 0.0)

    return params
def sCMOSXML():
    """
    Create an sCMOS analysis file.
    """
    params = parameters.ParametersSCMOS()

    params.setAttr("max_frame", "int", 1)
    params.setAttr("start_frame", "int", 0)

    params.setAttr("background_sigma", "float", 8.0)
    params.setAttr("camera_calibration", "filename", "calib.npy")
    params.setAttr("find_max_radius", "int", 5)
    params.setAttr("foreground_sigma", "float", 1.5)
    params.setAttr("iterations", "int", 1)
    params.setAttr("model", "string", "2dfixed")
    params.setAttr("pixel_size", "float", pixel_size)
    params.setAttr("roi_size", "int", 9)
    params.setAttr("sigma", "float", 1.5)
    params.setAttr("threshold", "float", 20.0)

    # Don't do tracking.
    params.setAttr("descriptor", "string", "1")
    params.setAttr("radius", "float", "0.0")

    # Don't do drift-correction.
    params.setAttr("d_scale", "int", 2)
    params.setAttr("drift_correction", "int", 0)
    params.setAttr("frame_step", "int", 500)
    params.setAttr("z_correction", "int", 0)

    # Z fitting.
    params.setAttr("do_zfit", "int", 0)

    params.setAttr("cutoff", "float", 0.0)
    params.setAttr("max_z", "float", 0.5)
    params.setAttr("min_z", "float", -0.5)
    params.setAttr("z_value", "float", 0.0)
    params.setAttr("z_step", "float", 1.0)

    params.setAttr("wx_wo", "float", 1.0)
    params.setAttr("wx_c", "float", 1.0)
    params.setAttr("wx_d", "float", 1.0)
    params.setAttr("wxA", "float", 0.0)
    params.setAttr("wxB", "float", 0.0)
    params.setAttr("wxC", "float", 0.0)
    params.setAttr("wxD", "float", 0.0)

    params.setAttr("wy_wo", "float", 1.0)
    params.setAttr("wy_c", "float", 1.0)
    params.setAttr("wy_d", "float", 1.0)
    params.setAttr("wyA", "float", 0.0)
    params.setAttr("wyB", "float", 0.0)
    params.setAttr("wyC", "float", 0.0)
    params.setAttr("wyD", "float", 0.0)

    params.toXMLFile("scmos.xml")
Ejemplo n.º 6
0
def test_remove_paths():
    """
    Test that saving does / does not remove path information.
    """
    output = storm_analysis.getPathOutputTest("test_rp.xml")

    # Create parameters.
    p1 = params.ParametersSCMOS()
    p1.changeAttr("camera_calibration", "weird_path/foo.npy")

    # Save without path information
    p1.toXMLFile(output, pretty=True)

    p2 = params.ParametersSCMOS().initFromFile(output)
    assert (not "weird_path" in p2.getAttr("camera_calibration"))

    # Save with path information
    p1.toXMLFile(output, pretty=True, remove_paths=False)

    p2 = params.ParametersSCMOS().initFromFile(output)
    assert ("weird_path" in p2.getAttr("camera_calibration"))
Ejemplo n.º 7
0
def analyze(movie_name, mlist_name, settings_name):
    parameters = params.ParametersSCMOS().initFromFile(settings_name)
    finder = find_peaks.initFindAndFit(parameters)
    std_analysis.standardAnalysis(finder, movie_name, mlist_name, parameters)