Esempio n. 1
0
        private bool isRenalClearance(IProcessMapping compoundProcessMapping)
        {
            var systemicPocess = compoundProcessMapping as SystemicProcessSelection;

            if (systemicPocess == null)
            {
                return(false);
            }
            return((systemicPocess.ProcessType == SystemicProcessTypes.Renal) ||
                   (systemicPocess.ProcessType == SystemicProcessTypes.GFR));
        }
Esempio n. 2
0
        public void AddProcessSelection(IProcessMapping processMapping)
        {
            switch (processMapping)
            {
            case SystemicProcessSelection systemicProcess:
                AddSystemicProcessSelection(systemicProcess);
                break;

            case ProcessSelection partialProcess:
                AddPartialProcessSelection(partialProcess);
                break;
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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;
     }));
 }
Esempio n. 5
0
        public void Unregister(IProcessMapping processMapping)
        {
            string name = nameof(processMapping);

            Mapping.TryRemove(name, out processMapping);
        }
Esempio n. 6
0
        public void Register(IProcessMapping proccessMapping)
        {
            string name = nameof(proccessMapping);

            Mapping.TryAdd(name, proccessMapping);
        }
Esempio n. 7
0
 private static SimulationPartialProcess newSimulationPartialProcess <TIndividualMolecule>(TIndividualMolecule individualMolecule, PartialProcess partialProcess, IProcessMapping partialProcessMapping = null)
     where TIndividualMolecule : IndividualMolecule
 {
     return(new SimulationPartialProcess {
         CompoundProcess = partialProcess, IndividualMolecule = individualMolecule, PartialProcessMapping = partialProcessMapping
     });
 }
Esempio n. 8
0
 private static bool isSelected <TPartialProcess>(TPartialProcess compoundProcess, IProcessMapping mapping) where TPartialProcess : PartialProcess
 {
     return(compoundProcess != null && string.Equals(compoundProcess.ParentCompound.Name, mapping.CompoundName));
 }