Source code for etfl.utils.utils

from ..core.expression import _extract_trna_from_reaction, make_stoich_from_aa_sequence
from ..core.reactions import EnzymaticReaction, TranslationReaction, TranscriptionReaction
from ..core.genes import ExpressedGene, CodingGene

[docs]def replace_by_enzymatic_reaction(model, reaction_id, enzymes, scaled): rxn = model.reactions.get_by_id(reaction_id) enz_rxn = EnzymaticReaction.from_reaction(reaction=rxn, enzymes=enzymes, scaled=scaled) _replace_by_me_reaction(model, rxn, enz_rxn) return enz_rxn
[docs]def replace_by_translation_reaction(model, reaction_id, gene_id, enzymes, trna_stoich, scaled): rxn = model.reactions.get_by_id(reaction_id) enz_rxn = TranslationReaction.from_reaction(reaction=rxn, gene_id=gene_id, enzymes=enzymes, trna_stoich=trna_stoich, scaled=scaled) _replace_by_me_reaction(model, rxn, enz_rxn) return enz_rxn
[docs]def replace_by_transcription_reaction(model, reaction_id, gene_id, enzymes, scaled): rxn = model.reactions.get_by_id(reaction_id) enz_rxn = TranscriptionReaction.from_reaction(reaction=rxn, gene_id=gene_id, enzymes=enzymes, scaled=scaled) _replace_by_me_reaction(model, rxn, enz_rxn) return enz_rxn
[docs]def replace_by_reaction_subclass(model, kind, reaction_id, **kwargs): rxn = model.reactions.get_by_id(reaction_id) new_rxn = kind.from_reaction(reaction=rxn, **kwargs) _replace_by_me_reaction(model, rxn, new_rxn) return new_rxn
[docs]def _replace_by_me_reaction(model, rxn, enz_rxn): # model.remove_reactions(reactions=[rxn]) # model.add_reactions([enz_rxn]) model.reactions._replace_on_id(enz_rxn) enz_rxn._model = model if hasattr(rxn, 'thermo'): enz_rxn.thermo = rxn.thermo
[docs]def replace_by_me_gene(model, gene_id, sequence): gene = model.genes.get_by_id(gene_id) new = CodingGene.from_gene(gene=gene, sequence=sequence) # # That is not a typo, see class cobra.core.Species # if gene.reactions: # new._reaction = set(x for x in gene.reactions) # else: # # Find by enumerating: # new._reaction = set(r for r in model.reactions # if gene.id in [x.id for x in r.genes]) model.genes._replace_on_id(new) new._model = model new.notes = gene.notes return new
[docs]def replace_by_coding_gene(model, gene_id): # a unction to convert gene = model.genes.get_by_id(gene_id) new = ExpressedGene(id=gene_id , name=gene_id , sequence=gene.sequence) # # That is not a typo, see class cobra.core.Species # if gene.reactions: # new._reaction = set(x for x in gene.reactions) # else: # # Find by enumerating: # new._reaction = set(r for r in model.reactions # if gene.id in [x.id for x in r.genes]) model.genes._replace_on_id(new) new._model = model new.notes = gene.notes return new