def generate_processes(self, config): agent_id = config.get('agent_id', '0') # TODO -- configure the agent_id # Transport # load the kinetic parameters transport = ConvenienceKinetics(config.get('transport', {})) # Metabolism # get target fluxes from transport, and update constrained_reaction_ids metabolism_config = config.get('metabolism', {}) target_fluxes = transport.kinetic_rate_laws.reaction_ids metabolism_config.update({'constrained_reaction_ids': target_fluxes}) metabolism = Metabolism(metabolism_config) # Gene expression expression = ODE_expression(config.get('expression', {})) # Division division_config = dict(config.get('division', {}), daughter_path=self.daughter_path, agent_id=agent_id, compartment=self) # initial_mass = metabolism.initial_mass # division_config.update({'constrained_reaction_ids': target_fluxes}) # TODO -- configure metadivision division = MetaDivision(division_config) return { 'transport': transport, 'metabolism': metabolism, 'expression': expression, 'division': division }
def generate_processes(self, config): daughter_path = config['daughter_path'] agent_id = config['agent_id'] # get the configs transcription_config = config['transcription'] translation_config = config['translation'] degradation_config = config['degradation'] complexation_config = config['complexation'] # update expression timestep transcription_config.update({'time_step': config['time_step']}) translation_config.update({'time_step': config['time_step']}) degradation_config.update({'time_step': config['time_step']}) complexation_config.update({'time_step': config['time_step']}) # make the expression processes transcription = Transcription(transcription_config) translation = Translation(translation_config) degradation = RnaDegradation(degradation_config) complexation = Complexation(complexation_config) mass_deriver = TreeMass(config.get('mass_deriver', { 'initial_mass': config['initial_mass']})) # Transport transport = ConvenienceKinetics(config['transport']) target_fluxes = transport.kinetic_rate_laws.reaction_ids # Metabolism # add target fluxes from transport metabolism_config = config.get('metabolism') metabolism_config.update({'constrained_reaction_ids': target_fluxes}) metabolism = Metabolism(metabolism_config) # Division condition division_condition = DivisionVolume({}) processes = { 'metabolism': metabolism, 'transport': transport, 'mass_deriver': mass_deriver, 'transcription': transcription, 'translation': translation, 'degradation': degradation, 'complexation': complexation, 'division': division_condition } # divide process set to true, add meta-division processes if config['divide']: meta_division_config = dict( {}, daughter_path=daughter_path, agent_id=agent_id, compartment=self) meta_division = MetaDivision(meta_division_config) processes['meta_division'] = meta_division return processes
def generate_processes(self, config): daughter_path = config['daughter_path'] agent_id = config['agent_id'] # Transport transport = ConvenienceKinetics(config['transport']) # Metabolism # get target fluxes from transport, and update constrained_reaction_ids metabolism_config = config['metabolism'] target_fluxes = transport.kinetic_rate_laws.reaction_ids metabolism_config.update({'constrained_reaction_ids': target_fluxes}) metabolism = Metabolism(metabolism_config) # Gene expression expression = ODE_expression(config['expression']) # Mass deriver mass_deriver = TreeMass({}) # Division division_condition = DivisionVolume({}) processes = { 'transport': transport, 'metabolism': metabolism, 'expression': expression, 'mass_deriver': mass_deriver, 'division': division_condition, } # divide process set to true, add meta-division processes if config['divide']: meta_division_config = dict({}, daughter_path=daughter_path, agent_id=agent_id, compartment=self) meta_division = MetaDivision(meta_division_config) processes['meta_division'] = meta_division return processes
def generate_processes(self, config): # Transport transport = ConvenienceKinetics(config.get('transport')) # Metabolism # add target fluxes from transport target_fluxes = transport.kinetic_rate_laws.reaction_ids config['metabolism']['constrained_reaction_ids'] = target_fluxes metabolism = Metabolism(config['metabolism']) # flagella expression transcription = Transcription(config['transcription']) translation = Translation(config['translation']) degradation = RnaDegradation(config['degradation']) complexation = Complexation(config['complexation']) # chemotaxis -- flagella activity, receptor activity, and PMF receptor = ReceptorCluster(config['receptor']) flagella = FlagellaActivity(config['flagella']) PMF = MembranePotential(config['PMF']) # Division # get initial volume from metabolism if 'division' not in config: config['division'] = {} config['division']['initial_state'] = metabolism.initial_state division = DivisionVolume(config['division']) return { 'metabolism': metabolism, 'transport': transport, 'transcription': transcription, 'translation': translation, 'degradation': degradation, 'complexation': complexation, 'receptor': receptor, 'flagella': flagella, 'PMF': PMF, 'division': division, }
def generate_processes(self, config): daughter_path = config['daughter_path'] agent_id = config['agent_id'] division_config = dict(config.get('division', {}), daughter_path=daughter_path, agent_id=agent_id, compartment=self) growth = GrowthProtein(config.get('growth', {})) transport = ConvenienceKinetics(config.get('transport', {})) division = MetaDivision(division_config) expression = MinimalExpression(config.get('expression', {})) mass = TreeMass(config.get('mass', {})) return { 'transport': transport, 'growth': growth, 'expression': expression, 'division': division, 'mass': mass }
def generate_processes(self, config): daughter_path = config['daughter_path'] agent_id = config['agent_id'] growth = GrowthProtein(config['growth']) transport = ConvenienceKinetics(config['transport']) expression = MinimalExpression(config['expression']) mass_deriver = TreeMass(config['mass']) # configure division division_config = dict(config.get('division', {}), daughter_path=daughter_path, agent_id=agent_id, compartment=self) division = MetaDivision(division_config) return { 'transport': transport, 'growth': growth, 'expression': expression, 'mass_deriver': mass_deriver, 'division': division, }
def generate_processes(self, config): # Transport transport_config = config.get('transport') transport = ConvenienceKinetics(transport_config) target_fluxes = transport.kinetic_rate_laws.reaction_ids # Metabolism # add target fluxes from transport metabolism_config = config.get('metabolism') metabolism_config.update({'constrained_reaction_ids': target_fluxes}) metabolism = Metabolism(metabolism_config) # Expression transcription_config = config.get('transcription', {}) translation_config = config.get('translation', {}) degradation_config = config.get('degradation', {}) transcription = Transcription(transcription_config) translation = Translation(translation_config) degradation = RnaDegradation(degradation_config) complexation = Complexation(config.get('complexation', {})) # Division # get initial volume from metabolism division_config = config.get('division', {}) division_config.update({'initial_state': metabolism.initial_state}) division = DivisionVolume(division_config) return { 'transport': transport, 'transcription': transcription, 'translation': translation, 'degradation': degradation, 'complexation': complexation, 'metabolism': metabolism, 'division': division }
def generate_processes(self, config): process = ConvenienceKinetics(config['process']) return {'process': process}