private bool isRenalClearance(IProcessMapping compoundProcessMapping) { var systemicPocess = compoundProcessMapping as SystemicProcessSelection; if (systemicPocess == null) { return(false); } return((systemicPocess.ProcessType == SystemicProcessTypes.Renal) || (systemicPocess.ProcessType == SystemicProcessTypes.GFR)); }
public void AddProcessSelection(IProcessMapping processMapping) { switch (processMapping) { case SystemicProcessSelection systemicProcess: AddSystemicProcessSelection(systemicProcess); break; case ProcessSelection partialProcess: AddPartialProcessSelection(partialProcess); break; } }
private void addTransportProcess(IMoleculeBuilder drug, IProcessMapping compoundProcessMapping, CompoundProperties compoundProperties) { var compound = compoundProperties.Compound; var process = compound.ProcessByName(compoundProcessMapping.ProcessName); if (isRenalClearance(compoundProcessMapping)) { var renalPassiveProcess = _processBuilderMapper.PassiveTransportProcessFrom(process, drug.Name, _passiveTransports.FormulaCache); _passiveTransports.Add(renalPassiveProcess); _parameterIdUpdater.UpdateBuildingBlockId(renalPassiveProcess.Parameters, compound); return; } var transporter = _individual.MoleculeByName <IndividualTransporter>(compoundProcessMapping.MoleculeName); var transporterMoleculeContainer = _processBuilderMapper.ActiveTransportFrom(process, transporter, _moleculeBuildingBlock.FormulaCache); _interactionKineticUpdater.UpdateTransport(transporterMoleculeContainer, compoundProcessMapping.MoleculeName, compound.Name, _simulation, _moleculeBuildingBlock.FormulaCache); _parameterIdUpdater.UpdateBuildingBlockId(transporterMoleculeContainer.Parameters, compound); drug.AddTransporterMoleculeContainer(transporterMoleculeContainer); }
public async Task <IProcessMapping> Create(IParameter parameter) { return(await Task.Run <IProcessMapping>(() => { IProcessMapping processMapping = null; if (parameter.Contains("debug")) { var param = parameter.Get <IParameter>("debug"); if (param.Contains("processmapping")) { string processmapping = param.Get <string>("processmapping"); if (processmapping.Contains(";")) { var pms = processmapping.Split(';'); var assembly = Assembly.Load(new AssemblyName(pms[1])); var type = assembly.GetType(pms[0]); processMapping = Activator.CreateInstance(type) as IProcessMapping; } else if (Mapping.ContainsKey(processmapping)) { Mapping.TryGetValue(processmapping, out processMapping); } } } else { foreach (var item in Mapping.Values) { if (item.Match(parameter)) { processMapping = item; break; } } } new Debug.ConsoleAssert().Raw((processMapping == null).ToString()); return processMapping == null ? new DefaultProcessMapping() : processMapping; })); }
public void Unregister(IProcessMapping processMapping) { string name = nameof(processMapping); Mapping.TryRemove(name, out processMapping); }
public void Register(IProcessMapping proccessMapping) { string name = nameof(proccessMapping); Mapping.TryAdd(name, proccessMapping); }
private static SimulationPartialProcess newSimulationPartialProcess <TIndividualMolecule>(TIndividualMolecule individualMolecule, PartialProcess partialProcess, IProcessMapping partialProcessMapping = null) where TIndividualMolecule : IndividualMolecule { return(new SimulationPartialProcess { CompoundProcess = partialProcess, IndividualMolecule = individualMolecule, PartialProcessMapping = partialProcessMapping }); }
private static bool isSelected <TPartialProcess>(TPartialProcess compoundProcess, IProcessMapping mapping) where TPartialProcess : PartialProcess { return(compoundProcess != null && string.Equals(compoundProcess.ParentCompound.Name, mapping.CompoundName)); }