Skip to content

Settings file in 17.03.24

Thomas-Otavio Peulen edited this page Apr 20, 2020 · 1 revision

Overview

Settings in the ChiSurf version 17.03.24 are stored in JSON files. In a default installation, the JSON files are located in the folder C:\Program Files (x86)\chisurf\mfm\settings. The most relevant setting file is chisurf.json. An example chisurf.json file is displayed at the end of this document. Newer versions of ChiSurf use YAML files.

The parameters in the chisurf.json JSON file are key value pairs grouped as follows. The most relevant groups (highlighted) are described in more detail.

  • root: parameters controlling e.g. the verbosity and the number of threads used by some functions
  • updates: intended for future use and updates
  • fps: controls the settings for the accessible volume dye simulations.
  • correlator: sets paramaters of the correlator, e.g., the number of correlation blocks and the number of bins per correlation block
  • photons: parameters for the photon file format, sets the HDF5 compression level (ChiSurf implemented a HDF5 file format for TTTR files that predates the release of the Photon-HDF format).
  • mc_settings: These settings are used in the Protein-MC simulations.
  • fortune: Settings for fortune cookies displayed by when long computations are finished.
  • fitting: Controls for the fitting (these are described in more detail below)
  • fret: Global parameters used by FRET models and functions (described in more detail below)
  • tcspc: Parameters used by TCSPC models
  • fcs: Parameters used by FCS
  • database: Database parameters (currently not used)
  • parameter: Default settings for FittingParameter Widgets
  • gui: Settings of the GUI

The most important settings are described in the following sections.

Most relevant setting groups

FRET section

The parameters in this section control the default values that are used to compute FRET rate constants.

    "fret": {
        "forster_radius": 52.0,
        "tau0": 4.0,
        "kappa2": 0.667,
        "rda_resolution": 256,
        "rda_min": 1,
        "rda_max": 256,
        "lifetime_bins": 61,
        "bin_lifetime": true,
        "discriminate": true,
        "discriminate_amplitude": 1e-10
    }

The parameter forster_radius defines the default value of the Forster radius in the GUI. The parameter tau0 controls the default value for the fluorescence lifetime that was belongs to the Forster radius and the specified kappa2 given by the parameter kappa2. Distributions of FRET rate constants are computed by creating a grid of donor-acceptor distances in a range that is defined by the parameters rda_min and rda_max. In the range [rda_min, rda_max] contains overall rda_resolution distances. Distance distributions are computed on the grid defined by these values. When lifetime distributions are computed the lifetimes are binned in a number of bins defined by lifetime_bins if bin_lifetime is set to true. If discriminate is set to true lifetimes with amplitudes smaller than discriminate_amplitude are discriminated prior to the convolution.

If you are analyzing data of dyes that have a considerable different Forster radius consider changing the parameters that specify the resolution and the range of the distance bins. Moreover, assess if the options bin_lifetime and discriminate influence your analysis result and consider disabling these options (at the cost a a reduced performance).

Fitting section

The parameters in the fitting section control the how the model parameters are optimized to the data and how the posterior distribution is sampled.

    "fitting": {
        "parallel_fit": false,
        "global": {
            "fit_local_first": false
        },
        "leastsq": {
            "ftol": 1.49012e-08,
            "xtol": 1.49012e-08,
            "gtol": 0.0,
            "maxfev": 0,
            "epsfcn": 0.0,
            "factor": 100,
            "full_output": true
        },
        "mem": {
            "lower_bound": 1e-08,
            "upper_bound": 10000000,
            "maxiter": 150000,
            "maxfun": 1500000,
            "factr": 10,
            "reg_scale": 1
        },
        "sampling":{
            "method": "emcee",
            "steps": 1000,
            "thin": 1,
            "chi2max": 1e9,
            "n_runs": 10
        }
    }
  • If parallel_fit is set to true independent models in a global fit are evaluated in parallel (the default value should be false).
  • If the option global:fit_local_first is set to true, the local fits in a global fit are optimized before the global fit is performed.
  • The leastsq parameters control the least squares optimization algorithm
  • The mem parameters control the model free maximum entropy analysis of fluorescence decays (an option disabled in 17.03.24)
  • The sampling parameters control the how the model is sampled. The sampling is performed by the err button next to the fit button. By default the sampling is performed by emcee. The number of steps of the sampler is controlled by steps. The samples can be thinned by thin and a maximum chi2 for the sampler can be defined by chi2max. If you have a high dimensional model and need more sampling increase the number steps and thin.

TCSPC

  • ChiSurf can be used to do BIFL scatter fits. A background pattern can be loaded, the time a background pattern was measured can be set and the time a measurement was performed in a TCSPC analysis. The parameter shift_bg_with_irf controls how this background pattern in treated in a BIFL scatter analysis. If shift_bg_with_irf is set to true the background pattern is shifted together with the IRF. This behavior can only be controlled in the settings file.
  • If autoscale is set to true the model curves are scaled by area to the experimental data (this can be also switched off and on in the GUI).
  • When creating a new fit ChiSurf determine a fitting initial fitting range that is controlled by the parameters fit_count_threshold and fit_area. The right boundary of the fit range is increased until at least the value the fraction defined by fit_area of the total amount of photons in the experimental decay is reached or at least fit_count_threshold number of photons are found in a bin.

GUI

  • ChiSurf uses qss files (a variant of cascading style sheets for Qt) to define how it looks like. The used style sheet is defined by the file that the parameter style_sheet refers. Currently, there are two options "settings/style_sheet_day.css" (a light style) and "settings/style_sheet_night.css" (a dark style).
  • If you experience problems with the plots in a RDP connection consider to switch off the OpenGL acceleration by changing the default option of useOpenGL (default is true) to false.
  • If you want to see the console by default change the option "show_console" to true.
  • If you do not want to be asked if your are sure that you want to close a fit set "confirm_close_fit" to false.
  • If you do not want to be asked if your are sure that you want to close ChiSurf set "confirm_close_program" to false.

Example file

{
    "name": "ChiSurf", 
    "version": "17.03.24",
    "show_commands": true,
    "n_threads": 4,
    "verbose": false,
    "quiet_exceptions": false,
    "log_file": "error_log.log",
    "experimental_models": false,
    "updates": {
        "check_version_url": "http://fret.at/downloads/CURRENT.txt",
        "changes": "http://fret.at/downloads/CHANGES.txt",
        "check_for_updates": true
    },
    "fps": {
        "vdw_max": 2.0,
        "simulation_grid_resolution": 1.0,
        "linknodes": 3,
        "allowed_sphere_radius": 2.0,
        "distance_samples": 100000,
        "dynamic": {
            "exponential": false
        }
    },
    "correlator": {
        "max_count_rate": 120,
        "time_window": 500,
        "count_rate_filter": false,
        "nCasc": 25,
        "B": 9,
        "split": 6,
        "weighting": 0,
        "fine": 0
    },
    "photons": {
        "complib": "blosc",
        "complevel": 9,
        "title": "spc"
    },
    "mc_settings": {
        "number_of_moving_aa": 1,
        "pPsi": 0.3,
        "pPhi": 0.7,
        "pOmega": 0.0,
        "pChi": 0.01,
        "pdbOut": 500,
        "ktAv": 1.0,
        "kt": 1.5,
        "scale": 0.0025,
        "av_number_protein_mc": 100,
        "update_rmsd": false,
        "do_av_steepest_descent": false,
        "cluster_structures": false,
        "av_filename": "out.xyz",
        "append_new_structures": false,
        "move_map": null,
        "mc_mode": "simple",
        "n_out": 500,
        "n_iter": 10000,
        "potentials": [
            {
                "weight": 2.0,
                "name": "H-Potential"
            },
            {
                "weight": 1.0,
                "name": "Iso-UNRES"
            }
        ]
    },
    "fortune": {
        "fortunepath": "./mfm/ui/fortune/",
        "min_length": 0,
        "max_length": 300,
        "attempts": 1000,
        "enabled": true
    },
    "fitting": {
        "parallel_fit": false,
        "global": {
            "fit_local_first": false
        },
        "leastsq": {
            "ftol": 1.49012e-08,
            "xtol": 1.49012e-08,
            "gtol": 0.0,
            "maxfev": 0,
            "epsfcn": 0.0,
            "factor": 100,
            "full_output": true
        },
        "mem": {
            "lower_bound": 1e-08,
            "upper_bound": 10000000,
            "maxiter": 150000,
            "maxfun": 1500000,
            "factr": 10,
            "reg_scale": 1
        },
        "sampling":{
            "method": "emcee",
            "steps": 1000,
            "thin": 1,
            "chi2max": 1e9,
            "n_runs": 10
        }
    },
    "fret": {
        "forster_radius": 52.0,
        "tau0": 4.0,
        "kappa2": 0.667,
        "rda_resolution": 256,
        "rda_min": 1,
        "rda_max": 256,
        "lifetime_bins": 61,
        "bin_lifetime": true,
        "discriminate": true,
        "discriminate_amplitude": 1e-10
    },
    "tcspc": {
        "shift_bg_with_irf": true,
        "default_convolution_mode": "per",
        "convolution_on_by_default": true,
        "autoscale": true,
        "n0": 2000000,
        "ts": 0.0,
        "threshold": 0.001,
        "rep_rate": 10.0,
        "dt": 1.00,
        "g_factor": 1.00,
        "polarization": "vm",
        "polarization_options": [
            "vm",
            "vv",
            "vh"
        ],
        "fit_area": 0.99,
        "fit_count_threshold": 5,
        "is_jordi": false,
        "rebin": 1
    },
    "fcs": {
        "weight_type": "suren"
    },
    "database": {
        "engine": "sqlite://",
        "read_file_size_limit": 104857600,
        "compression_data_limit": 102400,
        "embed_data_limit": 3145728
    },
    "parameter": {
        "hide_bounds": false,
        "hide_link": false,
        "fixable": false,
        "hide_fix_checkbox": false,
        "hide_error": false,
        "fixed": false,
        "decimals": 3,
        "bounds_on": false,
        "hide_label": false
    },
    "gui": {
        "style_sheet": "settings/style_sheet_day.css",
        "show_console": false,
        "confirm_close_fit": true,
        "confirm_close_program": true,
        "RubberBandResize": false,
        "RubberBandMove": false,
        "whitespace_path": true,
        "fit_windows_size_x": 400,
        "fit_windows_size_y": 350,
        "console": {
            "init": "%matplotlib inline\nimport pylab as p\n",
            "width": 80
        },
        "fit_models": {
            "n_columns": 2
        },
        "plot": {
            "enable_grid": true,
            "show_data_grid": true,
            "show_residual_grid": true,
            "show_acorr_grid": true,
            "line_width": 2.0,
            "hideTitle": true,
            "dynamic_update_fit": false,
            "enable_region_selector": true,
            "show_legend": false,
            "label_axis": false,
            "downsample": 1,
            "downsampleMethod": "peak",
            "colors": {
                "region_selector": "#26a298",
                "region_selector_alpha": 100,
                "data": "#ffa629",
                "data_inactive": "#ffa629",
                "irf": "#0040ff",
                "irf_inactive": "#0040ff",
                "model": "#d400cd",
                "model_inactive": "#d400cd",
                "residuals": "#df0101",
                "residuals_inactive": "#df0101",
                "auto_corr": "#ff00ff",
                "auto_corr_inactive": "#ff00ff",
                "inactive_transparency": 0.2,
                "active_transparency": 1.0
            },
            "pyqtgraph": {
                "background": "#022700",
                "foreground": "#f2f2f2",
                "pxMode": true,
                "antialias": true,
                "useOpenGL": true,
                "useWeave": true
            }
        }
    }
}```