StateSystem

public class StateSystem implements Serializable

Class which describes a Markovian fluorophore state model. This class provides transition rates and mean lifetimes for Markovian models based on current laser illumination intensity.

Author:stefko

Fields

current_laser_power

protected double current_laser_power

Laser power value for which the currently stored lifetime values are calculated.

Constructors

StateSystem

public StateSystem(int N_states, double[][][] M_scaling)

Initialize the state system.

Parameters:
  • N_states – number of states
  • M_scaling – double[][][] matrix of dimensions N x N x A. A can be different for each position in the matrix. This matrix can be interpreted as follows: double[] P = M_scaling[i][j]; k_ij(I) = P[0] + P[1]*I + P[2]*I^2 + … P[n]*I^n; k_ij(I) is transition rate between i-th and j-th state under laser illumination intensity I. The first row of this matrix is considered the active state, the last row is considered the bleached state.

Methods

getMeanTransitionLifetime

public final double getMeanTransitionLifetime(int from, int to)
Parameters:
  • from – index of initial state
  • to – index of final state
Returns:

mean transition lifetime from one state to another

getNStates

public int getNStates()
Returns:number of states of this model

getTransitionRate

public final double getTransitionRate(int from, int to)
Parameters:
  • from – index of initial state
  • to – index of final state
Returns:

transition rate from one state to another

isBleachedState

public boolean isBleachedState(int state)

Returns true if the state is the bleached state (the last state of the model)

Parameters:
  • state – id of current state
Returns:

state == (N_states - 1)

isOnState

public boolean isOnState(int state)

Returns true if the state is the active state (the 0-th state)

Parameters:
  • state – id of current state
Returns:

(state==0)

recalculate_lifetimes

public final void recalculate_lifetimes(double laser_power)

Recalculates each element of the transition matrix, based on the scaling matrix provided at initialization. double[] P = M_scaling[i][j]; k_ij(I) = P[0] + P[1]*I + P[2]*I^2 + … P[n]*I^n; k_ij(I) is transition rate between i-th and j-th state under laser illumination intensity I.

Parameters:
  • laser_power – illumination intensity I to recalculate for