private void addSpecificBindingProcess(IMoleculeBuilder drug, IReactionMapping compoundReactionMapping, CompoundProperties compoundProperties) { var compound = compoundProperties.Compound; var process = compound.ProcessByName(compoundReactionMapping.ProcessName); var complex = _moleculeBuilderFactory.Create(QuantityType.Complex, _moleculeBuildingBlock.FormulaCache) .WithName(compoundReactionMapping.ProductName(CoreConstants.Molecule.Complex)); addMoleculeToBuildingBlock(complex, compoundProperties); var complexReactionFrom = _processBuilderMapper.ComplexReactionFrom(process, drug, complex, compoundReactionMapping.MoleculeName, _allMoleculeNames, _reactionBuildingBlock.FormulaCache); addReactionToBuildingBlock(complexReactionFrom, compound); }
private void addMetabolismProcess(IMoleculeBuilder compoundBuilder, IReactionMapping compoundReactionMapping, CompoundProperties compoundProperties) { var compound = compoundProperties.Compound; var process = compound.ProcessByName(compoundReactionMapping.ProcessName); if (process == null) { return; } var metabolite = getOrCreateMetaboliteFor(compoundReactionMapping, compoundProperties); var reaction = _processBuilderMapper.MetabolismReactionFrom(process, compoundBuilder, metabolite, compoundReactionMapping.MoleculeName, _allMoleculeNames, _reactionBuildingBlock.FormulaCache); _interactionKineticUpdater.UpdateReaction(reaction, compoundReactionMapping.MoleculeName, compound.Name, _simulation, _reactionBuildingBlock.FormulaCache); addReactionToBuildingBlock(reaction, compound); }
private IMoleculeBuilder getOrCreateMetaboliteFor(IReactionMapping compoundReactionMapping, CompoundProperties compoundProperties) { IMoleculeBuilder metabolite = null; var enzymaticProcess = compoundReactionMapping as EnzymaticProcessSelection; if (enzymaticProcess != null) { metabolite = _moleculeBuildingBlock[enzymaticProcess.MetaboliteName]; } if (metabolite != null) { return(metabolite); } metabolite = _moleculeBuilderFactory.Create(QuantityType.Metabolite, _moleculeBuildingBlock.FormulaCache) .WithName(compoundReactionMapping.ProductName(CoreConstants.Molecule.Metabolite)); addMoleculeToBuildingBlock(metabolite, compoundProperties); return(metabolite); }