コード例 #1
0
        public static PivotResult CreatePivotResult(PopulationPivotAnalysis pivotAnalysis, Aggregate aggregate,
                                                    PopulationAnalysisCovariateField genderFielder,
                                                    PopulationAnalysisCovariateField raceField,
                                                    PopulationAnalysisParameterField bmiField,
                                                    PopulationAnalysisPKParameterField cmaxField)
        {
            var pivotResultCreator = new PivotResultCreator(new Pivoter(), new PopulationAnalysisFlatTableCreator());

            var populationSimulation = A.Fake <IPopulationDataCollector>();

            A.CallTo(() => populationSimulation.NumberOfItems).Returns(3);

            //thin, thin,  big
            A.CallTo(() => populationSimulation.AllValuesFor(bmiField.ParameterPath)).Returns(new List <double> {
                10, 20, 30
            });
            A.CallTo(() => populationSimulation.AllCovariateValuesFor(genderFielder.Covariate)).Returns(new List <string> {
                "Male", "Female", "Male"
            });
            A.CallTo(() => populationSimulation.AllCovariateValuesFor(raceField.Covariate)).Returns(new List <string> {
                "US", "EU", "EU"
            });
            A.CallTo(() => populationSimulation.AllPKParameterValuesFor(cmaxField.QuantityPath, cmaxField.PKParameter)).Returns(new List <double> {
                900, 600, 1000
            });
            A.CallTo(() => populationSimulation.AllSimulationNames).Returns(new List <string> {
                "Sim", "Sim", "Sim"
            });

            return(pivotResultCreator.Create(pivotAnalysis, populationSimulation, new ObservedDataCollection(), aggregate));
        }
コード例 #2
0
        private QuantityPKParameter pkParameterFrom(PopulationAnalysisPKParameterField populationAnalysisPKParameterField)
        {
            if (populationAnalysisPKParameterField == null)
            {
                return(null);
            }

            return(PopulationDataCollector.PKParameterFor(populationAnalysisPKParameterField.QuantityPath, populationAnalysisPKParameterField.PKParameter));
        }
 protected override void Context()
 {
     base.Context();
     _pkParameter             = new QuantityPKParameter();
     _populationPivotAnalysis = new PopulationPivotAnalysis();
     _populationDataCollector = A.Fake <IPopulationDataCollector>();
     _field = A.Fake <PopulationAnalysisPKParameterField>();
     sut.StartAnalysis(_populationDataCollector, _populationPivotAnalysis);
 }
        protected override void Context()
        {
            base.Context();
            _displayUnit                  = A.Fake <Unit>();
            _mergedDimension              = A.Fake <IDimension>();
            _pkParameterDimension         = A.Fake <IDimension>();
            _pkParameter                  = new QuantityPKParameter().WithName("AUC").WithDimension(_pkParameterDimension);
            _pkParameterField             = new PopulationAnalysisPKParameterField().WithDimension(_pkParameterDimension);
            _pkParameterField.DisplayUnit = _displayUnit;

            A.CallTo(() => _dimensionRepository.MergedDimensionFor(A <NumericFieldContext> ._))
            .Invokes(x => _numericFieldContect = x.GetArgument <NumericFieldContext>(0))
            .Returns(_mergedDimension);
        }
コード例 #5
0
        public override void GlobalContext()
        {
            base.GlobalContext();
            _populationPivotAnalysis       = new PopulationPivotAnalysis();
            _pkParameterField              = new PopulationAnalysisPKParameterField().WithName("PKParam");
            _pkParameterField.PKParameter  = "AUC";
            _pkParameterField.QuantityPath = "A|B|C";

            _parameterField = new PopulationAnalysisParameterField().WithName("Param");
            _parameterField.ParameterPath = "A|B|C|D";
            _populationPivotAnalysis.Add(_pkParameterField);
            _populationPivotAnalysis.Add(_parameterField);
            _populationPivotAnalysis.SetPosition(_parameterField, PivotArea.DataArea, 1);
            _populationPivotAnalysis.SetPosition(_pkParameterField, PivotArea.RowArea, 2);
        }
        protected override async Task Context()
        {
            await base.Context();

            _populationDataCollector    = A.Fake <IPopulationDataCollector>();
            _templatePopulationAnalysis = new PopulationPivotAnalysis();

            _pkParameterFound = new PopulationAnalysisPKParameterField {
                QuantityType = QuantityType.Drug, PKParameter = "AUC", QuantityPath = "P1"
            };
            _quantityNotFound = new PopulationAnalysisPKParameterField {
                QuantityType = QuantityType.Drug, PKParameter = "AUC", QuantityPath = "P2"
            };
            _pkParameterNotFound = new PopulationAnalysisPKParameterField {
                QuantityType = QuantityType.Metabolite, PKParameter = "AUC", QuantityPath = "P3"
            };

            _templatePopulationAnalysis.Add(_pkParameterFound);
            _templatePopulationAnalysis.Add(_quantityNotFound);
            _templatePopulationAnalysis.Add(_pkParameterNotFound);

            _cache = new PathCacheForSpecs <IQuantity>
            {
                { "P1", new MoleculeAmount {
                      QuantityType = QuantityType.Drug
                  } },
                { "Q2", new MoleculeAmount {
                      QuantityType = QuantityType.Drug
                  } },
                { "P3", new MoleculeAmount {
                      QuantityType = QuantityType.Metabolite
                  } }
            };

            A.CallTo(() => _populationDataCollector.HasPKParameterFor("P1", "AUC")).Returns(true);
            A.CallTo(() => _populationDataCollector.HasPKParameterFor("P2", "AUC")).Returns(false);
            A.CallTo(() => _populationDataCollector.HasPKParameterFor("P3", "AUC")).Returns(false);

            A.CallTo(_templateTask).WithReturnType <Task <PopulationAnalysis> >().Returns(_templatePopulationAnalysis);

            A.CallTo(() => _entitiesInContainerRetriever.OutputsFrom(_populationDataCollector)).Returns(_cache);
            A.CallTo(_dialogCreator).WithReturnType <ViewResult>().Returns(ViewResult.Yes);

            A.CallTo(() => _keyPathMapper.MapFrom(_pkParameterFound.QuantityPath, QuantityType.Drug, true)).Returns(new KeyPathMap("P1"));
            A.CallTo(() => _keyPathMapper.MapFrom(_quantityNotFound.QuantityPath, QuantityType.Drug, true)).Returns(new KeyPathMap("QUANTITY NOT FOUND"));
            A.CallTo(() => _keyPathMapper.MapFrom(_pkParameterNotFound.QuantityPath, QuantityType.Metabolite, true)).Returns(new KeyPathMap("P3"));
        }
コード例 #7
0
 protected override void Context()
 {
     sut       = new PopulationPivotAnalysis();
     _pkField1 = new PopulationAnalysisPKParameterField {
         PKParameter = "P1"
     }.WithName("Field1");
     _pkField2 = new PopulationAnalysisPKParameterField {
         PKParameter = "P2"
     }.WithName("Field2");
     _paraField1 = new PopulationAnalysisParameterField {
         ParameterPath = "Path3"
     }.WithName("Field3");
     _paraField2 = new PopulationAnalysisParameterField {
         ParameterPath = "Path4"
     }.WithName("Field4");
     _derivedField1 = A.Fake <PopulationAnalysisDerivedField>().WithName("Field5");
     sut.Add(_paraField1);
     sut.Add(_paraField2);
     sut.Add(_pkField1);
     sut.Add(_pkField2);
     sut.Add(_derivedField1);
 }
コード例 #8
0
 private void mapPKParameterFieldToModel(PopulationAnalysisField snapshot, PopulationAnalysisPKParameterField field)
 {
     mapQuantityFieldToModel(snapshot, field);
     field.PKParameter = snapshot.PKParameter;
 }
コード例 #9
0
 public void Plot(IPopulationDataCollector populationDataCollector, QuantityPKParameter pkParameter, PopulationAnalysisPKParameterField pkParameterField)
 {
     plotContinousData(populationDataCollector, pkParameter, pkParameterField, x => x.Plot);
 }
        protected override Task Context()
        {
            _groupingDefinitionMapper = A.Fake <GroupingDefinitionMapper>();
            _dimension           = DomainHelperForSpecs.ConcentrationDimensionForSpecs();
            _mergedDimension     = DomainHelperForSpecs.TimeDimensionForSpecs();
            _unit                = _mergedDimension.Unit("h"); // this unit is defined in the merged dimension but not in the field dimension
            _dimensionRepository = A.Fake <IDimensionRepository>();

            sut = new PopulationAnalysisFieldMapper(_groupingDefinitionMapper, _dimensionRepository);

            _groupingItem1 = new GroupingItem();

            _parameterField = new PopulationAnalysisParameterField
            {
                Name          = "P",
                ParameterPath = "A|B",
                Scaling       = Scalings.Linear,
                Dimension     = _dimension,
                DisplayUnit   = _unit
            };

            _pkParameterField = new PopulationAnalysisPKParameterField
            {
                Name         = "PK",
                Dimension    = _dimension,
                DisplayUnit  = _unit,
                PKParameter  = "AUC",
                QuantityPath = "A|B|C",
                QuantityType = QuantityType.Observer | QuantityType.Drug
            };

            _outputField = new PopulationAnalysisOutputField
            {
                Name         = "Output",
                Dimension    = _dimension,
                DisplayUnit  = _unit,
                QuantityType = QuantityType.BaseGrid,
                QuantityPath = "A|B|C",
                Color        = Color.AntiqueWhite
            };

            _groupingDefinition = new FixedLimitsGroupingDefinition("AA");
            _groupingField      = new PopulationAnalysisGroupingField(_groupingDefinition)
            {
                Name = "Grouping",
            };


            _covariateField = new PopulationAnalysisCovariateField
            {
                Name      = "Gender",
                Covariate = "Gender",
            };
            _covariateField.AddGroupingItem(_groupingItem1);

            _snapshotGroupingDefinition = new Snapshots.GroupingDefinition();
            A.CallTo(() => _groupingDefinitionMapper.MapToSnapshot(_groupingDefinition)).Returns(_snapshotGroupingDefinition);

            A.CallTo(() => _dimensionRepository.DimensionByName(_dimension.Name)).Returns(_dimension);
            A.CallTo(() => _dimensionRepository.MergedDimensionFor(A <INumericValueField> ._)).Returns(_mergedDimension);
            return(_completed);
        }
 protected override async Task Because()
 {
     _newPKParameterField = await sut.MapToModel(_snapshot, new SnapshotContext()) as PopulationAnalysisPKParameterField;
 }
コード例 #12
0
 protected override void Because()
 {
     _result = sut.CreateFor(_pkParameter, QuantityType.Metabolite, "quantityPath");
 }
コード例 #13
0
 public PKParameterFieldSelectedEventArgs(QuantityPKParameter pkParameter, PopulationAnalysisPKParameterField pkParameterField) : base(pkParameter)
 {
     PKParameterField = pkParameterField;
 }
 private void drawDistributionFor(QuantityPKParameter pkParameter, PopulationAnalysisPKParameterField populationAnalysisPKParameterField)
 {
     _populationAnalysisFieldDistributionPresenter.Plot(_populationDataCollector, pkParameter, populationAnalysisPKParameterField);
 }
コード例 #15
0
        public override void GlobalContext()
        {
            base.GlobalContext();
            _populationAnalysis = new PopulationPivotAnalysis();

            _pkParameterField              = new PopulationAnalysisPKParameterField().WithName("PKParam");
            _pkParameterField.PKParameter  = "AUC";
            _pkParameterField.QuantityPath = "A|B|C";
            _pkParameterField.QuantityType = QuantityType.Drug;
            _pkParameterField.Dimension    = _dimensionRepository.MassConcentration;

            _parameterField = new PopulationAnalysisParameterField().WithName("Param");
            _parameterField.ParameterPath = "A|B|C|D";
            _parameterField.Dimension     = _dimensionRepository.Auc;

            _outputField = new PopulationAnalysisOutputField().WithName("Output");
            _outputField.QuantityPath = "A|B|C";
            _outputField.Dimension    = _dimensionRepository.Auc;
            _outputField.Color        = Color.Aquamarine;

            _genderField = new PopulationAnalysisCovariateField {
                Covariate = "Gender"
            }.WithName("Gender");
            var numberOfBinsGroupingDefinition = new NumberOfBinsGroupingDefinition(_parameterField.Name)
            {
                NumberOfBins = 2
            };

            numberOfBinsGroupingDefinition.NamingPattern = "AA";
            numberOfBinsGroupingDefinition.StartColor    = Color.AliceBlue;
            numberOfBinsGroupingDefinition.EndColor      = Color.RoyalBlue;
            numberOfBinsGroupingDefinition.Strategy      = LabelGenerationStrategies.Roman;
            numberOfBinsGroupingDefinition.AddItems(PopulationAnalysisHelperForSpecs.BMIGroups);
            _numberOfBinsDerivedField = new PopulationAnalysisGroupingField(numberOfBinsGroupingDefinition).WithName("NumberOfBins");

            var fixedLimitsGroupingDefinition = new FixedLimitsGroupingDefinition(_pkParameterField.Name);

            fixedLimitsGroupingDefinition.AddItems(PopulationAnalysisHelperForSpecs.AgeGroups);

            _fixedLimitsGroupingDefinitionField = new PopulationAnalysisGroupingField(fixedLimitsGroupingDefinition)
                                                  .WithName("FixedLimits");

            fixedLimitsGroupingDefinition.SetLimits(new[] { 1d, 2d }.OrderBy(x => x));

            _derivedFieldWithFixedExpression = new PopulationAnalysisExpressionField("A+B")
                                               .WithName("FixedExpression");


            var valueMappingGroupingDefinition = new ValueMappingGroupingDefinition(_genderField.Name);

            valueMappingGroupingDefinition.AddValueLabel("Male", PopulationAnalysisHelperForSpecs.GroupingItemMale);
            valueMappingGroupingDefinition.AddValueLabel("Female", PopulationAnalysisHelperForSpecs.GroupingItemFemale);
            var valueMappingGroupingDefinitionField = new PopulationAnalysisGroupingField(valueMappingGroupingDefinition).WithName("ValueMapping");

            _populationAnalysis.Add(_pkParameterField);
            _populationAnalysis.Add(_parameterField);
            _populationAnalysis.Add(_genderField);
            _populationAnalysis.Add(_numberOfBinsDerivedField);
            _populationAnalysis.Add(_fixedLimitsGroupingDefinitionField);
            _populationAnalysis.Add(_derivedFieldWithFixedExpression);
            _populationAnalysis.Add(valueMappingGroupingDefinitionField);
            _populationAnalysis.Add(_outputField);
        }
コード例 #16
0
        protected override void Context()
        {
            base.Context();
            _populationSimulation = new PopulationSimulation {
                SimulationSettings = new SimulationSettings {
                    OutputSelections = new OutputSelections()
                }
            };

            var liverCellsDrugConc = "Liver|Cells|Drug|Conc";

            _populationSimulation.OutputSelections.AddOutput(new QuantitySelection(liverCellsDrugConc, QuantityType.Drug));
            _populationSimulation.OutputSelections.AddOutput(new QuantitySelection("Liver|Plasma|Drug|Conc", QuantityType.Drug));

            _populationStatisticalAnalysis = new PopulationStatisticalAnalysis();
            _timeProfileAnalysis           = new TimeProfileAnalysisChart {
                PopulationAnalysis = _populationStatisticalAnalysis
            };

            _outputField1 = new PopulationAnalysisOutputField {
                QuantityPath = "Kidney|Cell|Drug|Conc", Name = "outputField1"
            };
            _derivedField1 = new PopulationAnalysisGroupingField(new NumberOfBinsGroupingDefinition(_outputField1.Name))
            {
                Name = "derivedField1"
            };

            _outputField2 = new PopulationAnalysisOutputField {
                QuantityPath = liverCellsDrugConc, Name = "outputField2"
            };
            _derivedField2 = new PopulationAnalysisGroupingField(new NumberOfBinsGroupingDefinition(_outputField2.Name))
            {
                Name = "derivedField2"
            };

            _pkField1 = new PopulationAnalysisPKParameterField {
                QuantityPath = "Kidney|Cell|Drug|Conc", Name = "pkField1"
            };
            _pkDerivedField1 = new PopulationAnalysisGroupingField(new NumberOfBinsGroupingDefinition(_pkField1.Name))
            {
                Name = "pkDerivedField1"
            };

            _pkField2 = new PopulationAnalysisPKParameterField {
                QuantityPath = liverCellsDrugConc, Name = "pkField2"
            };
            _pkDerivedField2 = new PopulationAnalysisGroupingField(new NumberOfBinsGroupingDefinition(_pkField2.Name))
            {
                Name = "pkDerivedField2"
            };

            _populationStatisticalAnalysis.Add(_outputField1);
            _populationStatisticalAnalysis.Add(_outputField2);
            _populationStatisticalAnalysis.Add(_derivedField1);
            _populationStatisticalAnalysis.Add(_derivedField2);
            _populationStatisticalAnalysis.Add(_pkField1);
            _populationStatisticalAnalysis.Add(_pkField2);
            _populationStatisticalAnalysis.Add(_pkDerivedField1);
            _populationStatisticalAnalysis.Add(_pkDerivedField2);
            _populationSimulation.AddAnalysis(_timeProfileAnalysis);
        }