Beispiel #1
0
        public override void GlobalContext()
        {
            base.GlobalContext();
            _allExpressionParameters[CoreConstants.Compartment.PLASMA].Value               = 0;
            _allExpressionParameters[CoreConstants.Compartment.BLOOD_CELLS].Value          = 0;
            _allExpressionParameters[CoreConstants.Compartment.VASCULAR_ENDOTHELIUM].Value = 0;
            _allExpressionParameters[CoreConstants.Compartment.PERIPORTAL].Value           = 1;

            _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith(_individual, _compound, _protocol)
                          .DowncastTo <IndividualSimulation>();

            _simulation.CompoundPropertiesList.First()
            .Processes
            .MetabolizationSelection
            .AddPartialProcessSelection(new EnzymaticProcessSelection
            {
                CompoundName = _compound.Name, ProcessName = _metabolizationProcess.Name, MoleculeName = _enzyme.Name
            });

            DomainFactoryForSpecs.AddModelToSimulation(_simulation);

            var objectPatFactory = new ObjectPathFactoryForSpecs();
            var path             = objectPatFactory.CreateObjectPathFrom(Constants.ORGANISM,
                                                                         CoreConstants.Organ.LIVER,
                                                                         CoreConstants.Compartment.PERICENTRAL,
                                                                         CoreConstants.Compartment.INTRACELLULAR,
                                                                         CoreConstants.Molecule.ProcessProductName(_compound.Name, _enzyme.Name, CoreConstants.Molecule.Metabolite),
                                                                         CoreConstants.Observer.ObserverNameFrom(CoreConstants.Observer.FRACTION_OF_DOSE, _compound.Name));

            var quantitySelection = new QuantitySelection(path.ToString(), QuantityType.Metabolite);

            _simulation.OutputSelections.AddOutput(quantitySelection);
        }
Beispiel #2
0
        public override void GlobalContext()
        {
            base.GlobalContext();
            _enzyme.GetRelativeExpressionNormParameterFor(CoreConstants.Compartment.Plasma).Value              = 0;
            _enzyme.GetRelativeExpressionNormParameterFor(CoreConstants.Compartment.BloodCells).Value          = 0;
            _enzyme.GetRelativeExpressionNormParameterFor(CoreConstants.Compartment.VascularEndothelium).Value = 0;
            _enzyme.GetRelativeExpressionNormParameterFor(CoreConstants.Compartment.Periportal).Value          = 1;

            _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith(_individual, _compound, _protocol)
                          .DowncastTo <IndividualSimulation>();

            _simulation.CompoundPropertiesList.First()
            .Processes
            .MetabolizationSelection
            .AddPartialProcessSelection(new EnzymaticProcessSelection {
                CompoundName = _compound.Name, ProcessName = _metabolizationProcess.Name, MoleculeName = _enzyme.Name
            });

            DomainFactoryForSpecs.AddModelToSimulation(_simulation);

            var objectPatFactory = new ObjectPathFactoryForSpecs();
            var path             = objectPatFactory.CreateObjectPathFrom(Constants.ORGANISM,
                                                                         CoreConstants.Organ.Liver,
                                                                         CoreConstants.Compartment.Pericentral,
                                                                         CoreConstants.Compartment.Intracellular,
                                                                         CoreConstants.Molecule.ProcessProductName(_compound.Name, _enzyme.Name, CoreConstants.Molecule.Metabolite),
                                                                         CoreConstants.Observer.ObserverNameFrom(CoreConstants.Observer.FRACTION_OF_DOSE, _compound.Name));

            var quantitySelection = new QuantitySelection(path.ToString(), QuantityType.Metabolite);

            _simulation.OutputSelections.AddOutput(quantitySelection);
        }
Beispiel #3
0
        private void addPKParametersForOutput(ISimulation simulation, int numberOfIndividuals, SimulationResults runResults, Action <int> performIndividualScalingAction,
                                              QuantitySelection selectedQuantity, PopulationSimulationPKAnalyses popAnalyses, string moleculeName,
                                              PKCalculationOptions pkCalculationOptions, IReadOnlyList <PKCalculationOptionsFactory.ApplicationParameters> allApplicationParameters)
        {
            var availablePKParameters = _pkParameterRepository.All().Where(p => PKParameterCanBeUsed(p, pkCalculationOptions)).ToList();

            //create pk parameter for each quantities
            foreach (var pkParameter in availablePKParameters)
            {
                var quantityPKParameter = new QuantityPKParameter {
                    Name = pkParameter.Name, QuantityPath = selectedQuantity.Path, Dimension = pkParameter.Dimension
                };
                quantityPKParameter.SetNumberOfIndividuals(numberOfIndividuals);
                popAnalyses.AddPKAnalysis(quantityPKParameter);
            }

            //add the values for each individual
            foreach (var individualResult in runResults.AllIndividualResults)
            {
                performIndividualScalingAction(individualResult.IndividualId);
                _pkCalculationOptionsFactory.UpdateAppliedDose(simulation, moleculeName, pkCalculationOptions, allApplicationParameters);

                var values   = individualResult.ValuesFor(selectedQuantity.Path);
                var pkValues = _pkValuesCalculator.CalculatePK(individualResult.Time.Values, values.Values, pkCalculationOptions);

                foreach (var pkParameter in availablePKParameters)
                {
                    var quantityPKParameter = popAnalyses.PKParameterFor(selectedQuantity.Path, pkParameter.Name);
                    quantityPKParameter.SetValue(individualResult.IndividualId, pkValues.ValueOrDefaultFor(pkParameter.Name));
                }
            }
        }
 protected override void Context()
 {
     sut                = new ParameterIdentification();
     _observedData      = new WeightedObservedData(DomainHelperForSpecs.ObservedData());
     _simulation        = A.Fake <ISimulation>().WithName("Sim").WithId("Id");
     _quantitySelection = new QuantitySelection("Organism|Liver|Cell|Asprin|Concentration", QuantityType.Drug);
     _outputMapping     = new OutputMapping {
         WeightedObservedData = _observedData, OutputSelection = new SimulationQuantitySelection(_simulation, _quantitySelection)
     };
 }
Beispiel #5
0
        protected override void Context()
        {
            base.Context();
            _cloner  = A.Fake <ICloneManager>();
            _output1 = new QuantitySelection("A", QuantityType.Drug);
            _output2 = new QuantitySelection("B", QuantityType.Complex);

            sut.AddOutput(_output1);
            _newOutputSelection = new OutputSelections();
            _newOutputSelection.AddOutput(_output2);
        }
        protected override void Context()
        {
            base.Context();
            _simulation = A.Fake <Simulation>();
            A.CallTo(() => _simulation.OutputSelections).Returns(new OutputSelections());
            var q1Selection = new QuantitySelection(_q1.Name, _q1.QuantityType);
            var q2Selection = new QuantitySelection(_q2.Name, _q2.QuantityType);

            _simulation.OutputSelections.AddOutput(q1Selection);
            _simulation.OutputSelections.AddOutput(q2Selection);
            A.CallTo(() => _containerTask.CacheAllChildrenSatisfying(_simulation.Model.Root, A <Func <IQuantity, bool> > ._)).Returns(new PathCacheForSpecs <IQuantity> {
                _q1, _q2, _q3
            });
        }
Beispiel #7
0
        protected override void Context()
        {
            base.Context();
            _simulationOutput1 = new QuantitySelection("OUTPUT1", QuantityType.Drug);
            _simulationOutput2 = new QuantitySelection("OUTPUT2", QuantityType.Drug);
            _simulationOutput3 = new QuantitySelection("OUTPUT3", QuantityType.Drug);
            _selectedOutput3   = new QuantitySelection("OUTPUT3", QuantityType.Drug);
            _selectedOutput4   = new QuantitySelection("OUTPUT4", QuantityType.Drug);

            _outputSelection.AddOutput(_simulationOutput1);
            _outputSelection.AddOutput(_simulationOutput2);
            _outputSelection.AddOutput(_simulationOutput3);

            _mappedOutputs.Add(_simulationOutput1);
            _mappedOutputs.Add(_selectedOutput3);
            _mappedOutputs.Add(_selectedOutput4);
        }
Beispiel #8
0
        private void addPKParametersForOutput(
            IModelCoreSimulation simulation,
            SimulationResults simulationResults,
            Action <int> performIndividualScalingAction,
            QuantitySelection selectedQuantity,
            PopulationSimulationPKAnalyses popAnalyses,
            string moleculeName,
            PKCalculationOptions pkCalculationOptions,
            IReadOnlyList <ApplicationParameters> allApplicationParameters)
        {
            var allPKParameters            = _pkParameterRepository.All().Where(p => PKParameterCanBeUsed(p, pkCalculationOptions)).ToList();
            var allUserDefinedPKParameters = allPKParameters.OfType <UserDefinedPKParameter>().ToList();

            //create pk parameter for each  pk parameters (predefined and dynamic)
            foreach (var pkParameter in allPKParameters)
            {
                var quantityPKParameter = new QuantityPKParameter {
                    Name = pkParameter.Name, QuantityPath = selectedQuantity.Path, Dimension = pkParameter.Dimension
                };
                popAnalyses.AddPKAnalysis(quantityPKParameter);
            }

            //add the values for each individual
            foreach (var individualResult in simulationResults.AllIndividualResults)
            {
                performIndividualScalingAction(individualResult.IndividualId);
                _pkCalculationOptionsFactory.UpdateTotalDrugMassPerBodyWeight(simulation, moleculeName, pkCalculationOptions, allApplicationParameters);

                var values = individualResult.QuantityValuesFor(selectedQuantity.Path);
                //This can happen is the results do not match the simulation
                if (values == null)
                {
                    continue;
                }

                var pkValues = _pkValuesCalculator.CalculatePK(individualResult.Time.Values, values.Values, pkCalculationOptions, allUserDefinedPKParameters);

                foreach (var quantityPKParameter in popAnalyses.AllPKParametersFor(selectedQuantity.Path))
                {
                    quantityPKParameter.SetValue(individualResult.IndividualId, pkValues.ValueOrDefaultFor(quantityPKParameter.Name));
                }
            }
        }
Beispiel #9
0
        protected override Task Context()
        {
            _entitiesInContainerRetriever = A.Fake <IEntitiesInContainerRetriever>();
            _logger = A.Fake <ILogger>();
            sut     = new OutputSelectionsMapper(_entitiesInContainerRetriever, _logger);

            _quantitySelection1 = new QuantitySelection("PATH1", QuantityType.Drug);
            _quantitySelection2 = new QuantitySelection("PATH2", QuantityType.Observer);

            _outputSelections = new OutputSelections();
            _outputSelections.AddOutput(_quantitySelection1);
            _outputSelections.AddOutput(_quantitySelection2);

            _simulation    = new IndividualSimulation();
            _allQuantities = new PathCacheForSpecs <IQuantity>();

            A.CallTo(() => _entitiesInContainerRetriever.QuantitiesFrom(_simulation)).Returns(_allQuantities);

            return(Task.FromResult(true));
        }
Beispiel #10
0
        protected override void Context()
        {
            base.Context();
            _defaultSettings = new OutputSelections();
            _allQuantities   = new List <IQuantity>();
            var moleculeSelection1 = new QuantitySelection("PATH1", QuantityType.Drug);

            _defaultSettings.AddOutput(moleculeSelection1);

            _allQuantities.Add(q1);
            q1.QuantityType = QuantityType.Drug;
            A.CallTo(() => _keyPathMapper.MapFrom(q1)).Returns("KEY1");

            A.CallTo(() => _keyPathMapper.MapFrom(moleculeSelection1)).Returns("KEY2");

            _project.OutputSelections = _defaultSettings;
            A.CallTo(() => _populationSimulationSettingsPresenter.CreateSettings(_populationSimulation)).Returns(_originalSettings);

            A.CallTo(() => _populationSimulation.All <IQuantity>()).Returns(_allQuantities);
        }
Beispiel #11
0
        protected override void Context()
        {
            base.Context();
            _defaultSettings = new OutputSelections();
            _allQuantities   = new List <IQuantity>();
            var moleculeSelection1 = new QuantitySelection("PATH1", QuantityType.Drug);

            _defaultSettings.AddOutput(moleculeSelection1);
            var moleculeSelection2 = new QuantitySelection("PATH2", QuantityType.Drug);

            _defaultSettings.AddOutput(moleculeSelection2);
            var moleculeSelection3 = new QuantitySelection("PATH3", QuantityType.Drug);

            _defaultSettings.AddOutput(moleculeSelection3);

            _allQuantities.AddRange(new[] { q1, q2, q3, q4 });
            q1.QuantityType = QuantityType.Drug;
            q2.QuantityType = QuantityType.Drug;
            q3.QuantityType = QuantityType.Drug;
            q4.QuantityType = QuantityType.Drug;
            A.CallTo(() => _keyPathMapper.MapFrom(q1)).Returns("KEY1");
            A.CallTo(() => _keyPathMapper.MapFrom(q2)).Returns("KEY2");
            A.CallTo(() => _keyPathMapper.MapFrom(q3)).Returns("KEY3");
            A.CallTo(() => _keyPathMapper.MapFrom(q4)).Returns("KEY2");

            A.CallTo(() => _keyPathMapper.MapFrom(moleculeSelection1)).Returns("KEY1");
            A.CallTo(() => _keyPathMapper.MapFrom(moleculeSelection2)).Returns("KEY2");
            A.CallTo(() => _keyPathMapper.MapFrom(moleculeSelection3)).Returns("DOES NOT EXIST");

            A.CallTo(() => _entityPathResolver.PathFor(q1)).Returns("Q1");
            A.CallTo(() => _entityPathResolver.PathFor(q2)).Returns("Q2");
            A.CallTo(() => _entityPathResolver.PathFor(q3)).Returns("Q3");
            A.CallTo(() => _entityPathResolver.PathFor(q4)).Returns("Q4");

            _project.OutputSelections      = _defaultSettings;
            _userSettings.OutputSelections = null;
            A.CallTo(() => _populationSimulationSettingsPresenter.CreateSettings(_populationSimulation)).Returns(_originalSettings);

            A.CallTo(() => _populationSimulation.All <IQuantity>()).Returns(_allQuantities);
        }
Beispiel #12
0
        protected override void Context()
        {
            base.Context();
            _defaultSettings = new OutputSelections();
            _allQuantities   = new List <IQuantity>();
            var moleculeSelection1 = new QuantitySelection("PATH1", QuantityType.Drug);

            _defaultSettings.AddOutput(moleculeSelection1);

            _allQuantities.AddRange(new[] { _q1, _q2 });
            _q1.QuantityType = QuantityType.Drug;
            _q2.QuantityType = QuantityType.Transporter;
            A.CallTo(() => _keyPathMapper.MapFrom(_q1)).Returns("KEY1");
            A.CallTo(() => _keyPathMapper.MapFrom(_q2)).Returns("KEY1");
            A.CallTo(() => _keyPathMapper.MapFrom(moleculeSelection1)).Returns("KEY1");

            A.CallTo(() => _entityPathResolver.PathFor(_q1)).Returns("Q1");
            _userSettings.OutputSelections = _defaultSettings;
            A.CallTo(() => _populationSimulationSettingsPresenter.CreateSettings(_populationSimulation)).Returns(_originalSettings);

            A.CallTo(() => _populationSimulation.All <IQuantity>()).Returns(_allQuantities);
        }
Beispiel #13
0
 protected override void Context()
 {
     _quantitySelection = new QuantitySelection("A|B", QuantityType.Drug);
     _simulation        = A.Fake <ISimulation>().WithName("S");
     sut = new SimulationQuantitySelection(_simulation, _quantitySelection);
 }
Beispiel #14
0
 private static string moleculeNameFrom(QuantitySelection selectedQuantity)
 {
     return(selectedQuantity.Path.ToPathArray().MoleculeName());
 }
 protected override void Because()
 {
     _result = sut.SelectionFrom(_quantity);
 }
 public string MapFrom(QuantitySelection quantitySelection)
 {
     return(MapFrom(quantitySelection.Path, quantitySelection.QuantityType, removeFirstEntry: true).Path);
 }