Ejemplo n.º 1
0
        protected override void Context()
        {
            _globalPKAnalysisPresenter = A.Fake <IGlobalPKAnalysisPresenter>();
            _concentrationDim          = A.Fake <IDimension>();
            _timeDim         = A.Fake <IDimension>();
            _view            = A.Fake <IIndividualPKAnalysisView>();
            _pkaAnalysisTask = A.Fake <IPKAnalysisTask>();
            _simulation      = A.Fake <IndividualSimulation>();
            _simulations     = new List <Simulation>();
            _simulations.Add(_simulation);
            _exportTask = A.Fake <IPKAnalysisExportTask>();
            _individualPKAnalysisToDTOMapper = A.Fake <IIndividualPKAnalysisToPKAnalysisDTOMapper>();
            _pkParameterRepository           = A.Fake <IPKParameterRepository>();
            ;
            var dataRepository = new DataRepository();

            _baseGrid = new BaseGrid("Base", _timeDim);
            _col1     = new DataColumn {
                DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5), Dimension = _concentrationDim
            };
            _col2 = new DataColumn {
                Dimension = _concentrationDim, DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5)
            };
            _col3 = new DataColumn {
                Dimension = _concentrationDim, DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5)
            };
            dataRepository.Add(_col1);
            dataRepository.Add(_col2);
            _simulation.DataRepository = dataRepository;
            var curve1 = A.Fake <Curve>();

            A.CallTo(() => curve1.yData).Returns(_col1);
            A.CallTo(() => curve1.xData).Returns(_baseGrid);

            var curve2 = A.Fake <Curve>();

            A.CallTo(() => curve2.yData).Returns(_col2);
            A.CallTo(() => curve2.xData).Returns(_baseGrid);

            var curve3 = A.Fake <Curve>();

            A.CallTo(() => curve3.yData).Returns(_col3);
            A.CallTo(() => curve3.xData).Returns(_col1);

            _curves = new List <Curve> {
                curve1, curve2, curve3
            };
            _allPKAnalysis = new List <Tuple <DataColumn, PKAnalysis> >();
            _pkAnalysis1   = createPKAnalysis();
            _pkAnalysis2   = createPKAnalysis();
            _allPKAnalysis.Add(new Tuple <DataColumn, PKAnalysis>(_col1, _pkAnalysis1));
            _allPKAnalysis.Add(new Tuple <DataColumn, PKAnalysis>(_col2, _pkAnalysis2));
            _allGlobalPKParameters = new List <IParameter>();
            A.CallTo(_pkaAnalysisTask).WithReturnType <IEnumerable <Tuple <DataColumn, PKAnalysis> > >().Returns(_allPKAnalysis);
            A.CallTo(_pkaAnalysisTask).WithReturnType <IEnumerable <IParameter> >().Returns(_allGlobalPKParameters);

            _presenterSettingsTask = A.Fake <IPresentationSettingsTask>();
            sut = new IndividualPKAnalysisPresenter(_view, _pkaAnalysisTask, _exportTask, _globalPKAnalysisPresenter,
                                                    _individualPKAnalysisToDTOMapper, _pkParameterRepository, _presenterSettingsTask);
        }
Ejemplo n.º 2
0
        public static PKAnalysis GeneratePopulationAnalysis()
        {
            var analysis = new PKAnalysis();

            analysis.AddChildren(new IEntity[]
            {
                new PKSimParameter {
                    Name = Constants.PKParameters.AUC, Value = 0.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.AUC_inf, Value = 1.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.C_max, Value = 2.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.Tmax, Value = 3.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.Thalf, Value = 4.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.MRT, Value = 5.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.FractionAucEndToInf, Value = 6.0
                }
            });
            return(analysis);
        }
Ejemplo n.º 3
0
        protected override void Context()
        {
            base.Context();

            //Simulate calculated results by setting the DataRepository
            _aucIVSimulation = new IndividualSimulation {
                DataRepository = _simulation.DataRepository
            };

            _pkAnalysis = new PKAnalysis();
            _pkAnalysis.Add(DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.AUC_inf));

            A.CallTo(() => _globalPKAnalysisRunner.RunForBioavailability(_protocol, _simulation, _compound)).Returns(_aucIVSimulation);
            A.CallTo(() => _pkAnalysisTask.CalculateFor(_aucIVSimulation, _venousBloodPlasma)).Returns(new IndividualPKAnalysis(_venousBloodPlasma, _pkAnalysis));

            A.CallTo(() => _protocolFactory.Create(ProtocolMode.Simple, ApplicationTypes.Intravenous)).Returns(_protocol);
            _protocol.AddParameter(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.Parameters.INFUSION_TIME));
            _protocol.AddParameter(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(CoreConstants.Parameters.INPUT_DOSE));
            _protocol.AddParameter(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.Parameters.START_TIME));

            //single dosing
            var schemaItem = A.Fake <SchemaItem>();
            var inputDose  = DomainHelperForSpecs.ConstantParameterWithValue(10);
            var startTime  = DomainHelperForSpecs.ConstantParameterWithValue(3);

            A.CallTo(() => schemaItem.Dose).Returns(inputDose);
            A.CallTo(() => schemaItem.StartTime).Returns(startTime);
            _simulationSchemaItems.Add(schemaItem);
        }
Ejemplo n.º 4
0
        public PKAnalysis MapFrom(DataColumn dataColumn, PKValues pkValues, PKParameterMode mode, string moleculeName)
        {
            var pk = new PKAnalysis().WithName(moleculeName);

            _pkParameterRepository.All().Where(parameter => parameter.Mode.Is(mode)).Each(parameter => pk.Add(createPKParameter(parameter, pkValues)));

            pk.MolWeight = dataColumn.DataInfo.MolWeight;
            return(pk);
        }
        private void addWarningsTo(PKAnalysis pkAnalysis, GlobalPKAnalysis globalPKAnalysis, string moleculeName)
        {
            if (globalPKAnalysis == null)
            {
                return;
            }

            addFractionAbsorbedWarningTo(pkAnalysis, globalPKAnalysis, moleculeName);
        }
Ejemplo n.º 6
0
 protected override void Context()
 {
     base.Context();
     _pKAnalysis           = PKAnalysisHelperForSpecs.GenerateIndividualPKAnalysis();
     _dataTable            = new DataTable();
     _individualPKAnalyses = new List <IndividualPKAnalysis> {
         new IndividualPKAnalysis(_dataColumn, _pKAnalysis)
     };
     A.CallTo(() => _individualPKAnalysisToDataTableMapper.MapFrom(_individualPKAnalyses, _curves, true)).Returns(_dataTable);
 }
Ejemplo n.º 7
0
        protected override void Context()
        {
            base.Context();
            _simulation = new IndividualSimulation {
                DataRepository = new DataRepository()
            };
            _baseGrid = new BaseGrid("Time", DomainHelperForSpecs.TimeDimensionForSpecs())
            {
                Values = new[] { 10f, 20f, 30f }
            };
            _dataColumn1 = new DataColumn("C1", DomainHelperForSpecs.ConcentrationDimensionForSpecs(), _baseGrid)
            {
                DataInfo     = { Origin = ColumnOrigins.Calculation },
                QuantityInfo = { Path = new[] { "C1", "Concentration" } },
                Values       = new[] { 11f, 21f, 31f }
            };

            _dataColumn2 = new DataColumn("C2", DomainHelperForSpecs.ConcentrationDimensionForSpecs(), _baseGrid)
            {
                DataInfo     = { Origin = ColumnOrigins.Calculation },
                QuantityInfo = { Path = new[] { "C2", "Concentration" } },
                Values       = new[] { 12f, 22f, 32f }
            };

            _simulation.DataRepository.Add(_dataColumn1);
            _simulation.DataRepository.Add(_dataColumn2);

            //Setup global PK analysis
            _globalPKAnalysis = new GlobalPKAnalysis();
            var c1Container = new Container().WithName("C1");

            c1Container.Add(DomainHelperForSpecs.ConstantParameterWithValue(0.5).WithName(CoreConstants.PKAnalysis.FractionAbsorbed));
            var c2Container = new Container().WithName("C2");

            c2Container.Add(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(CoreConstants.PKAnalysis.FractionAbsorbed));
            _globalPKAnalysis.Add(c1Container);
            _globalPKAnalysis.Add(c2Container);

            _pkC1 = new PKAnalysis
            {
                DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.PKParameters.MRT),
                DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.Tmax)
            };

            _pkC2 = new PKAnalysis
            {
                DomainHelperForSpecs.ConstantParameterWithValue(3).WithName(Constants.PKParameters.MRT),
                DomainHelperForSpecs.ConstantParameterWithValue(4).WithName(Constants.PKParameters.Tmax)
            };

            A.CallTo(() => _pkMapper.MapFrom(_dataColumn1, A <PKValues> ._, A <PKParameterMode> ._, "C1")).Returns(_pkC1);
            A.CallTo(() => _pkMapper.MapFrom(_dataColumn2, A <PKValues> ._, A <PKParameterMode> ._, "C2")).Returns(_pkC2);

            _defaultNumberOfRules = DomainHelperForSpecs.ConstantParameterWithValue(3).Rules.Count;
        }
        protected override void Context()
        {
            base.Context();

            _ddiRatioSimulation = new IndividualSimulation();
            //Simulate calculated results by setting the DataRepository
            _ddiRatioSimulation.DataRepository = _simulation.DataRepository;

            _pkAnalysis = new PKAnalysis();
            _pkAnalysis.Add(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.PKParameters.C_max));
            _pkAnalysis.Add(DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.AUC_inf));

            A.CallTo(() => _globalPKAnalysisRunner.RunForDDIRatio(_simulation)).Returns(_ddiRatioSimulation);
            A.CallTo(() => _pkAnalysisTask.CalculateFor(_ddiRatioSimulation, _peripheralVenousBloodPlasma)).Returns(new IndividualPKAnalysis(_peripheralVenousBloodPlasma, _pkAnalysis));
        }
        private void addFractionAbsorbedWarningTo(PKAnalysis pkAnalysis, GlobalPKAnalysis globalPKAnalysis, string moleculeName)
        {
            var fractionAbsorbed = globalPKAnalysis.PKParameter(moleculeName, CoreConstants.PKAnalysis.FractionAbsorbed);

            if (fractionAbsorbed == null)
            {
                return;
            }

            if (ValueComparer.AreValuesEqual(fractionAbsorbed.Value, 1, CoreConstants.DOUBLE_RELATIVE_EPSILON))
            {
                return;
            }

            addWarningsTo(pkAnalysis, PKSimConstants.Warning.FractionAbsorbedSmallerThanOne, CoreConstants.PKAnalysis.AllParametersInfluencedByFractionAbsorbed);
        }
Ejemplo n.º 10
0
        protected override void Context()
        {
            base.Context();

            //Simulate calculated results by setting the DataRepository
            _ddiRatioSimulation = new IndividualSimulation {
                DataRepository = _simulation.DataRepository
            };

            _pkAnalysis = new PKAnalysis
            {
                DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.PKParameters.C_max_tDLast_tDEnd),
                DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.AUC_inf_tDLast)
            };

            A.CallTo(() => _globalPKAnalysisRunner.RunForDDIRatio(_simulation)).Returns(_ddiRatioSimulation);
            A.CallTo(() => _pkAnalysisTask.CalculateFor(_ddiRatioSimulation, _peripheralVenousBloodPlasma)).Returns(new IndividualPKAnalysis(_peripheralVenousBloodPlasma, _pkAnalysis));
            //multiple dosing
            _simulationSchemaItems.AddRange(new[] { new SchemaItem(), new SchemaItem() });
        }
Ejemplo n.º 11
0
        protected void AddPKParameterToDataTable(PKAnalysis pkAnalysis, DataTable dataTable, string curveName, IParameter parameter, bool addMetaData)
        {
            var pkValue = parameter.ValueInDisplayUnit;

            var row = dataTable.NewRow();

            row[PKSimConstants.PKAnalysis.Value]     = pkValue;
            row[PKSimConstants.PKAnalysis.CurveName] = curveName;

            if (addMetaData)
            {
                row[PKSimConstants.PKAnalysis.Compound]      = parameter.ParentContainer.Name;
                row[PKSimConstants.PKAnalysis.ParameterName] = parameter.Name;
                row[PKSimConstants.PKAnalysis.Description]   = descriptionFor(parameter);
                row[PKSimConstants.PKAnalysis.Warning]       = parameter.Validate().Message;
            }

            row[PKSimConstants.PKAnalysis.ParameterDisplayName] = _pkParameterRepository.DisplayNameFor(parameter.Name);
            row[PKSimConstants.PKAnalysis.Unit] = parameter.DisplayUnit.Name;
            dataTable.Rows.Add(row);
        }
Ejemplo n.º 12
0
        protected override void Context()
        {
            _exportTask     = A.Fake <IPKAnalysisExportTask>();
            _pkAnalysesTask = A.Fake <IPKAnalysesTask>();
            _view           = A.Fake <IPopulationPKAnalysisView>();
            _populationPKAnalysisToDTOMapper       = A.Fake <IPopulationPKAnalysisToPKAnalysisDTOMapper>();
            _populationPKAnalysisToDataTableMapper = A.Fake <IPopulationPKAnalysisToDataTableMapper>();
            _pkParameterRepository = A.Fake <IPKParameterRepository>();

            _presenterSettingsTask = A.Fake <IPresentationSettingsTask>();
            sut = new PopulationPKAnalysisPresenter(_view, _pkAnalysesTask, _exportTask, _populationPKAnalysisToDTOMapper, _pkParameterRepository, _presenterSettingsTask);

            _populationDataCollector = A.Fake <IPopulationDataCollector>();
            _timeProfileChartData    = new ChartData <TimeProfileXValue, TimeProfileYValue>(null, null);
            var pane = new PaneData <TimeProfileXValue, TimeProfileYValue>(null)
            {
                Caption = "TOTO"
            };

            _curve1 = new TimeProfileCurveData {
                Caption = "A", Pane = pane
            };
            _curve2 = new TimeProfileCurveData {
                Caption = "B", Pane = pane
            };

            _pk1 = new PKAnalysis();
            _pk2 = new PKAnalysis();

            _allPKanalysis = new List <PopulationPKAnalysis>
            {
                new PopulationPKAnalysis(_curve1, _pk1),
                new PopulationPKAnalysis(_curve2, _pk2),
            };


            A.CallTo(() => _pkAnalysesTask.CalculateFor(_populationDataCollector, _timeProfileChartData)).Returns(_allPKanalysis);
            A.CallTo(() => _view.BindTo(A <PKAnalysisDTO> ._)).Invokes(x => _dataTable = x.GetArgument <PKAnalysisDTO>(0).DataTable);
            A.CallTo(() => _populationPKAnalysisToDataTableMapper.MapFrom(A <IReadOnlyList <PopulationPKAnalysis> > ._, true)).Returns(_dataTable);
        }
Ejemplo n.º 13
0
        public static PKAnalysis GenerateIndividualPKAnalysis()
        {
            var newPKAnalysis = new PKAnalysis();

            newPKAnalysis.AddChildren(new IEntity[]
            {
                new PKSimParameter {
                    Name = Constants.PKParameters.AUC, Value = 0.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.AUC_norm, Value = 1.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.AUC_inf, Value = 2.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.AUC_inf_norm, Value = 3.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.C_max, Value = 4.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.C_max_norm, Value = 5.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.FractionAucEndToInf, Value = 6.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.Tmax, Value = 7.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.Thalf, Value = 8.0
                },
                new PKSimParameter {
                    Name = Constants.PKParameters.MRT, Value = 9.0
                }
            });
            return(newPKAnalysis);
        }
Ejemplo n.º 14
0
 protected void AddPKParametersToDataTable(PKAnalysis pkAnalysis, DataTable dataTable, string curveName, bool addMetaData)
 {
     pkAnalysis.AllPKParameters.Each(parameter => AddPKParameterToDataTable(pkAnalysis, dataTable, curveName, parameter, addMetaData));
 }
Ejemplo n.º 15
0
 public PopulationPKAnalysis(CurveData <TimeProfileXValue, TimeProfileYValue> curveData, PKAnalysis pkAnalysis)
 {
     CurveData  = curveData;
     PKAnalysis = pkAnalysis;
 }
 protected override void Because()
 {
     _result = sut.MapFrom(_col, _pkValues, _mode, _drugName);
 }
 private void addWarningsTo(PKAnalysis pkAnalysis, string warning, IEnumerable <string> parameterNames)
 {
     parameterNames.Select(pkAnalysis.Parameter)
     .Where(p => p != null)
     .Each(p => p.Rules.Add(warningRule(warning)));
 }
Ejemplo n.º 18
0
        private double?pkParameterValue(PKAnalysis pkAnalysis, string pkParameterName)
        {
            var parameter = pkAnalysis.Parameter(pkParameterName);

            return(parameter?.Value);
        }
Ejemplo n.º 19
0
 public IndividualPKAnalysis(DataColumn dataColumn, PKAnalysis pkAnalysis)
 {
     DataColumn = dataColumn;
     PKAnalysis = pkAnalysis;
 }