示例#1
0
        private PKParameterSensitivity calculateParameterSensitivity(SensitivityParameter sensitivityParameter, int sensitivityParameterIndex, VariationData variationData, QuantityPKParameter pkParameter)
        {
            var defaultParameterValue = sensitivityParameter.DefaultValue;
            var defaultPKValue        = pkParameter.Values[variationData.DefaultVariationId];
            var allVariations         = variationData.VariationsFor(sensitivityParameter.Name);

            if (float.IsNaN(defaultPKValue) || defaultPKValue == 0 || defaultParameterValue == 0 || !allVariations.Any())
            {
                return(null);
            }

            var sensitivity = new PKParameterSensitivity
            {
                ParameterName   = sensitivityParameter.Name,
                PKParameterName = pkParameter.Name,
                QuantityPath    = pkParameter.QuantityPath,
                Value           = double.NaN
            };

            var delta = (from variation in allVariations
                         let deltaP = difference(variation.Variation[sensitivityParameterIndex], defaultParameterValue)
                                      let deltaPK = difference(pkParameter.Values[variation.VariationId], defaultPKValue)
                                                    select deltaPK / deltaP).Sum();

            sensitivity.Value = delta * defaultParameterValue / defaultPKValue / allVariations.Count;

            if (Math.Abs(sensitivity.Value) < Constants.SENSITIVITY_THRESHOLD)
            {
                sensitivity.Value = 0.0;
            }

            return(sensitivity);
        }
示例#2
0
        protected override void Context()
        {
            sut = new SensitivityAnalysisRunResult();
            _pkParameterSensitivity1 = new PKParameterSensitivity
            {
                ParameterName   = "P1",
                PKParameterName = "AUC",
                QuantityPath    = "Organism|Liver|Drug|Concentration",
                Value           = 0.8,
                ParameterPath   = "P1-Path"
            };

            _pkParameterSensitivity2 = new PKParameterSensitivity
            {
                ParameterName   = "P2",
                PKParameterName = "AUC2",
                QuantityPath    = "Organism|Liver|Drug|Concentration",
                Value           = 0.8,
                ParameterPath   = "P2-Path"
            };

            _pkParameterSensitivity3 = new PKParameterSensitivity
            {
                ParameterName   = "P2",
                PKParameterName = "AUC",
                QuantityPath    = "Organism|Kidney|Drug|Concentration",
                Value           = 0.8,
                ParameterPath   = "P3-Path"
            };

            sut.AddPKParameterSensitivity(_pkParameterSensitivity1);
            sut.AddPKParameterSensitivity(_pkParameterSensitivity2);
            sut.AddPKParameterSensitivity(_pkParameterSensitivity3);
        }
示例#3
0
        private IReadOnlyList <PKParameterSensitivity> pkParameterSensitivitiesFrom(string fileFullPath, char delimiter)
        {
            using (var reader = new CsvReaderDisposer(fileFullPath, delimiter))
            {
                var pkParameterSensitivityList = new List <PKParameterSensitivity>();
                var csv     = reader.Csv;
                var headers = csv.GetFieldHeaders();
                if (!headers.ContainsAll(new[] { PARAMETER, PK_PARAMETER, QUANTITY_PATH, VALUE }))
                {
                    return(pkParameterSensitivityList);
                }

                while (csv.ReadNextRecord())
                {
                    var pkParameterSensitivity = new PKParameterSensitivity
                    {
                        PKParameterName = csv[PK_PARAMETER],
                        ParameterName   = csv[PARAMETER],
                        QuantityPath    = csv[QUANTITY_PATH],
                        Value           = csv.DoubleAt(VALUE)
                    };
                    pkParameterSensitivityList.Add(pkParameterSensitivity);
                }

                return(pkParameterSensitivityList);
            }
        }
        private void addParameterSensitivity(PKParameterSensitivity parameterSensitivity, DataTable dataTable, SensitivityAnalysis sensitivityAnalysis)
        {
            var row = dataTable.NewRow();
            var sensitivityParameter = sensitivityAnalysis.SensitivityParameterByName(parameterSensitivity.ParameterName);

            row[Captions.SensitivityAnalysis.Output]                 = parameterSensitivity.QuantityPath;
            row[Captions.SensitivityAnalysis.PKParameterName]        = _pkParameterRepository.DisplayNameFor(parameterSensitivity.PKParameterName);
            row[Captions.SensitivityAnalysis.PKParameterDescription] = _pkParameterRepository.DescriptionFor(parameterSensitivity.PKParameterName);
            row[Captions.SensitivityAnalysis.ParameterName]          = parameterSensitivity.ParameterName;
            row[Captions.SensitivityAnalysis.ParameterDisplayPath]   = parameterDisplayPathFor(sensitivityParameter);
            row[Captions.SensitivityAnalysis.ParameterPath]          = parameterFullPathFor(sensitivityParameter);
            row[Captions.SensitivityAnalysis.Value] = parameterSensitivity.Value;
            dataTable.Rows.Add(row);
        }
 protected override void Context()
 {
     base.Context();
     _parameterSensitivity1 = new PKParameterSensitivity {
         PKParameterName = "AUC"
     };
     _parameterSensitivity2 = new PKParameterSensitivity {
         PKParameterName = "C_max"
     };
     _sa = new SensitivityAnalysis {
         Results = new SensitivityAnalysisRunResult()
     };
     _sa.Results.AddPKParameterSensitivity(_parameterSensitivity1);
     _sa.Results.AddPKParameterSensitivity(_parameterSensitivity2);
 }
示例#6
0
 protected override void Context()
 {
     base.Context();
     _sensitivityAnalysis   = new SensitivityAnalysis();
     _sensitivityParameter  = new SensitivityParameter().WithName("OLD_NAME");
     _parameterSensitivity1 = new PKParameterSensitivity {
         ParameterName = _sensitivityParameter.Name
     };
     _parameterSensitivity2 = new PKParameterSensitivity {
         ParameterName = "Another name"
     };
     _sensitivityAnalysis.Results = new SensitivityAnalysisRunResult();
     _sensitivityAnalysis.Results.AddPKParameterSensitivity(_parameterSensitivity1);
     _sensitivityAnalysis.Results.AddPKParameterSensitivity(_parameterSensitivity2);
 }
        protected override void Context()
        {
            base.Context();
            _sensitivityAnalysisRunResult = new SensitivityAnalysisRunResult();
            _simulation = A.Fake <IModelCoreSimulation>().WithName("Sim");
            var pkParameter = new PKParameterSensitivity
            {
                QuantityPath    = "Liver",
                PKParameterName = "AUC",
                ParameterName   = "P1",
                Value           = 0.5,
                ParameterPath   = "ParameterPath"
            };


            _sensitivityAnalysisRunResult.AddPKParameterSensitivity(pkParameter);
        }
示例#8
0
 protected override void Context()
 {
     base.Context();
     _pkParameterName = "AUC";
     _outputPath      = "Output";
     _pk1             = new PKParameterSensitivity {
         PKParameterName = _pkParameterName, QuantityPath = _outputPath, Value = 0.4
     };
     _pk2 = new PKParameterSensitivity {
         PKParameterName = _pkParameterName, QuantityPath = _outputPath, Value = 0.1
     };
     _pk3 = new PKParameterSensitivity {
         PKParameterName = _pkParameterName, QuantityPath = _outputPath, Value = -0.6
     };
     sut.AddPKParameterSensitivity(_pk1);
     sut.AddPKParameterSensitivity(_pk2);
     sut.AddPKParameterSensitivity(_pk3);
 }
示例#9
0
        protected override void Context()
        {
            sut = new SensitivityAnalysisRunResult();
            _pkParameterSensitivity1 = new PKParameterSensitivity
            {
                ParameterName   = "P1",
                PKParameterName = "AUC",
                QuantityPath    = "Organism|Liver|Volume",
                Value           = 0.8
            };

            _pkParameterSensitivity2 = new PKParameterSensitivity
            {
                ParameterName   = "P2",
                PKParameterName = "AUC2",
                QuantityPath    = "Organism|Liver|Volume",
                Value           = 0.8
            };

            sut.AddPKParameterSensitivity(_pkParameterSensitivity1);
            sut.AddPKParameterSensitivity(_pkParameterSensitivity2);
        }
        protected override void Context()
        {
            _applicationSettings = A.Fake <IApplicationSettings>();
            _sensitivityAnalysis = new SensitivityAnalysis();
            _sensitivityAnalysisPKParameterAnalysis = new SensitivityAnalysisPKParameterAnalysis();
            _sensitivityAnalysis.Results            = new SensitivityAnalysisRunResult();
            _pkParameterSensitivity = new PKParameterSensitivity
            {
                PKParameterName = "pkParameterName",
                ParameterName   = "parameterName",
                QuantityPath    = "quantityPath",
                Value           = 1.0
            };

            _pkParameterSensitivity2 = new PKParameterSensitivity
            {
                PKParameterName = "pkParameterName",
                ParameterName   = "parameterName",
                QuantityPath    = "quantityPath",
                Value           = 0.0
            };

            _pkParameterSensitivity3 = new PKParameterSensitivity
            {
                PKParameterName = "pkParameterName",
                ParameterName   = "parameterName",
                QuantityPath    = "quantityPath",
                Value           = double.NaN
            };

            _sensitivityAnalysis.Results.AddPKParameterSensitivity(_pkParameterSensitivity);
            _sensitivityAnalysis.Results.AddPKParameterSensitivity(_pkParameterSensitivity2);
            _view = A.Fake <ISensitivityAnalysisPKParameterAnalysisView>();
            _presentationSettingsTask = A.Fake <IPresentationSettingsTask>();

            var pkParameterRepository = A.Fake <IPKParameterRepository>();

            sut = new SensitivityAnalysisPKParameterAnalysisPresenter(_view, _presentationSettingsTask, pkParameterRepository, _applicationSettings);
        }