Source code for src.read.strand_reactor_parameters

from ..utils.manage_strand_reactor_files import _return_parameters_to_read_from_parameters_file
from json import loads, JSONDecodeError

def _read_strand_trajectory_ensemble_parameters(
        filepath : str,
        parameters_to_read_from_parameters_file : list
    ) -> dict:
    file1 = open(filepath, 'r')
    lines = file1.readlines()
    tagged_lines = (line for line in lines if any(line.startswith(tag) for tag in parameters_to_read_from_parameters_file))

    kwargs_parameters = {}
    for line in tagged_lines:
        line = line.split("//")[0]
        line = line.split("=")
        try:
            kwargs_parameters[line[0].strip()] = loads(line[1].strip())
        except JSONDecodeError:
            try:
                kwargs_parameters[line[0].strip()] = bool(line[1].strip())
            except TypeError:
                kwargs_parameters[line[0].strip()] = line[1].strip()
    c_ref = kwargs_parameters['c_ref']
    stalling = ['stalling_on', 'use_kinetic_bias_factor']
    if stalling in list(kwargs_parameters.keys()):
        if not np.prod([bool(kwargs_parameters[stall]) for stall in stalling]):
                kwargs_parameters['stalling_factor_first'] = 1.
                kwargs_parameters['stalling_factor_second'] = 1.
    #kwargs_parameters['V'] = self._motifs[0][0,1,0,0]/kwargs_parameters['c_ref']
    return kwargs_parameters

[docs] def strand_reactor_parameters( filepath : str, parameters_to_read_from_parameters_file : list = None, ) -> dict: """ reads strand reactor parameters from strand reactor data Parameters: ----------- filepath : str file path Returns: -------- strand_reactor_parameters : dict Dictionary with strand reactor parameters """ if parameters_to_read_from_parameters_file is None: parameters_to_read_from_parameters_file = _return_parameters_to_read_from_parameters_file() return _read_strand_trajectory_ensemble_parameters(filepath, parameters_to_read_from_parameters_file)