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); }
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); }
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); }
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); }
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); }
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); }