protected override void Context() { base.Context(); _sourceParameterSelection = A.Fake <SensitivityParameter>(); _parameterSelection = A.Fake <ParameterSelection>(); _sourceParameterSelection.ParameterSelection = _parameterSelection; }
protected override void Context() { _sensitivityAnalysisParametersView = A.Fake <ISensitivityAnalysisParametersView>(); _sensitivityParameterFactory = A.Fake <ISensitivityParameterFactory>(); _sensitivityParameterToSensitivityParameterDTOMapper = A.Fake <ISensitivityParameterToSensitivityParameterDTOMapper>(); _sensitivityAnalysisSetNMaxPresenter = A.Fake <ISensitivityAnalysisSetValuePresenter>(); _sensitivityAnalysisSetRangePresenter = A.Fake <ISensitivityAnalysisSetValuePresenter>(); _sensitivityAnalysisTask = A.Fake <ISensitivityAnalysisTask>(); sut = new SensitivityAnalysisParametersPresenter(_sensitivityAnalysisParametersView, _sensitivityParameterFactory, _sensitivityParameterToSensitivityParameterDTOMapper, _sensitivityAnalysisSetNMaxPresenter, _sensitivityAnalysisSetRangePresenter, _sensitivityAnalysisTask); _sensitivityAnalysis = new SensitivityAnalysis(); _parameterDTO = A.Fake <IParameterDTO>(); A.CallTo(() => _parameterDTO.Value).Returns(4.0); _selectedSensitivityParameter = A.Fake <SensitivityParameter>(); _unSelectedSensitivityParameter = A.Fake <SensitivityParameter>(); _sensitivityAnalysis.AddSensitivityParameter(_selectedSensitivityParameter); _sensitivityAnalysis.AddSensitivityParameter(_unSelectedSensitivityParameter); A.CallTo(() => _selectedSensitivityParameter.NumberOfStepsParameter).Returns(new Parameter()); A.CallTo(() => _selectedSensitivityParameter.VariationRangeParameter).Returns(new Parameter()); A.CallTo(() => _unSelectedSensitivityParameter.NumberOfStepsParameter).Returns(new Parameter()); A.CallTo(() => _unSelectedSensitivityParameter.VariationRangeParameter).Returns(new Parameter()); _sensitivityParameterDTO = new SensitivityParameterDTO(_selectedSensitivityParameter); A.CallTo(() => _sensitivityAnalysisParametersView.SelectedParameters()).Returns(new[] { _sensitivityParameterDTO }); A.CallTo(() => _sensitivityParameterToSensitivityParameterDTOMapper.MapFrom(_selectedSensitivityParameter)).Returns(_sensitivityParameterDTO); A.CallTo(() => _sensitivityParameterToSensitivityParameterDTOMapper.MapFrom(_unSelectedSensitivityParameter)).Returns(new SensitivityParameterDTO(_unSelectedSensitivityParameter)); }
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() { base.Context(); _numberOfVariations = 5; _pkParameter1 = new QuantityPKParameter { QuantityPath = "Output1", Name = "AUC" }; _pkParameter1.SetNumberOfIndividuals(_numberOfVariations); _pkParameter1.SetValue(0, 10); _pkParameter1.SetValue(1, 11); _pkParameter1.SetValue(2, 12); _pkParameter1.SetValue(4, _defaultPK1Value); _pkParameter2 = new QuantityPKParameter { QuantityPath = "Output2", Name = "Cmax" }; _pkParameter2.SetNumberOfIndividuals(_numberOfVariations); _pkParameter2.SetValue(0, 20); _pkParameter2.SetValue(1, 21); _pkParameter2.SetValue(2, 22); _pkParameter2.SetValue(3, 23); _pkParameter2.SetValue(4, _defaultPK2Value); _sensitivityParameter1 = A.Fake <SensitivityParameter>().WithName("SP1"); A.CallTo(() => _sensitivityParameter1.DefaultValue).Returns(10); _sensitivityParameter2 = A.Fake <SensitivityParameter>().WithName("SP2"); A.CallTo(() => _sensitivityParameter2.DefaultValue).Returns(20); _sensitivityParameter3 = A.Fake <SensitivityParameter>().WithName("SP3"); A.CallTo(() => _sensitivityParameter3.DefaultValue).Returns(0); A.CallTo(() => _sensitivityParameter3.VariationRangeValue).Returns(0.8); _pkAnalyses.AddPKAnalysis(_pkParameter1); _pkAnalyses.AddPKAnalysis(_pkParameter2); _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter1); _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter2); _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter3); var pv11 = new ParameterVariation { ParameterName = _sensitivityParameter1.Name, VariationId = 0, Variation = new[] { 15d, 200d, 300d } }; var pv12 = new ParameterVariation { ParameterName = _sensitivityParameter1.Name, VariationId = 1, Variation = new[] { 20d, 200d, 300d } }; var pv21 = new ParameterVariation { ParameterName = _sensitivityParameter2.Name, VariationId = 2, Variation = new[] { 100d, 21d, 300d } }; var pv22 = new ParameterVariation { ParameterName = _sensitivityParameter2.Name, VariationId = 3, Variation = new[] { 100d, 31d, 300d } }; _variationData.DefaultValues = new[] { 100d, 200d, 300d }; _variationData.AddVariation(pv11); _variationData.AddVariation(pv12); _variationData.AddVariation(pv21); _variationData.AddVariation(pv22); }
private string parameterFullPathFor(SensitivityParameter sensitivityParameter) { if (sensitivityParameter?.Parameter == null) { return(string.Empty); } return(_entityPathResolver.FullPathFor(sensitivityParameter.Parameter)); }
private string parameterDisplayPathFor(SensitivityParameter sensitivityParameter) { if (sensitivityParameter?.Parameter == null) { return(string.Empty); } return(_quantityDisplayPathMapper.DisplayPathAsStringFor(sensitivityParameter.Parameter, addSimulationName: true)); }
public void EditSensitivityAnalysis(SensitivityAnalysis sensitivityAnalysis) { _sensitivityAnalysis = sensitivityAnalysis; _sensitivityParameterForUpdates = _sensitivityParameterFactory.EmptySensitivityParameter(); _sensitivityAnalysisSetNMaxPresenter.Edit(_sensitivityParameterForUpdates.NumberOfStepsParameter); _sensitivityAnalysisSetRangePresenter.Edit(_sensitivityParameterForUpdates.VariationRangeParameter); updateView(); }
protected override void Context() { base.Context(); _newSimulation = A.Fake <ISimulation>(); var sensitivityParameter = new SensitivityParameter { ParameterSelection = new ParameterSelection(_oldSimulation, A.Fake <QuantitySelection>()) }; sut.AddSensitivityParameter(sensitivityParameter); }
public SensitivityParameterDTO MapFrom(SensitivityParameter sensitivityParameter) { var sensitivityParameterDTO = new SensitivityParameterDTO(sensitivityParameter); sensitivityParameterDTO.NumberOfStepsParameter = _parameterMapper.MapFrom(sensitivityParameter.NumberOfStepsParameter, sensitivityParameterDTO, x => x.NumberOfSteps, x => x.NumberOfStepsParameter); sensitivityParameterDTO.VariationRangeParameter = _parameterMapper.MapFrom(sensitivityParameter.VariationRangeParameter, sensitivityParameterDTO, x => x.VariationRange, x => x.VariationRangeParameter); sensitivityParameterDTO.DisplayPath = sensitivityParameter.Parameter != null?_quantityDisplayPathMapper.DisplayPathAsStringFor(sensitivityParameter.Parameter, addSimulationName : true) : sensitivityParameter.ParameterSelection.Path; return(sensitivityParameterDTO); }
protected override void Context() { _simulation = A.Fake <ISimulation>(); A.CallTo(() => _simulation.OutputSelections.HasSelection).Returns(true); _sensitivityAnalysis = new SensitivityAnalysis { Simulation = _simulation }; sut = new SensitivityAnalysisValidator(); _sensitivityParameter = DomainHelperForSpecs.SensitivityParameter(); _sensitivityParameter.ParameterSelection = A.Fake <ParameterSelection>(); }
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); }
public override void GlobalContext() { base.GlobalContext(); _sim1 = new IndividualSimulation { Id = "Sim1", Name = "Sim1", IsLoaded = true, Model = new Model { Root = new Container() } }; _sim1.Model.Root.Add(new Container { new Parameter().WithName("P") }.WithName("Liver")); var objectBaseRepository = IoC.Resolve <IWithIdRepository>(); var workspace = IoC.Resolve <IWorkspace>(); _project = IoC.Resolve <PKSimProject>(); workspace.Project = _project; objectBaseRepository.Register(_sim1); _project.AddBuildingBlock(_sim1); _sensitivityAnalysis = new SensitivityAnalysis { Name = "SA", Simulation = _sim1 }; _sensitivityParameter1 = DomainHelperForSpecs.SensitivityParameter(range: 0.5d, steps: 5); _parameterSelection1 = new ParameterSelection(_sim1, new QuantitySelection("Liver|P", QuantityType.Parameter)); _sensitivityParameter1.ParameterSelection = _parameterSelection1; _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter1); _deserializedSensitivityAnalysis = SerializeAndDeserialize(_sensitivityAnalysis); }
protected override void Context() { _oldSimulation = A.Fake <ISimulation>(); _sensitivityAnalysis = new SensitivityAnalysis { Simulation = _oldSimulation }; _newSimulation = A.Fake <ISimulation>(); _simulationQuantitySelectionFinder = A.Fake <ISimulationQuantitySelectionFinder>(); sut = new SensitivityAnalysisSimulationSwapCorrector(_simulationQuantitySelectionFinder); _validSensitivityParameter = new SensitivityParameter { ParameterSelection = new ParameterSelection(_oldSimulation, "valid") }; _sensitivityAnalysis.AddSensitivityParameter(_validSensitivityParameter); _invalidSensitivityParameter = new SensitivityParameter { ParameterSelection = new ParameterSelection(_oldSimulation, "invalid") }; _sensitivityAnalysis.AddSensitivityParameter(_invalidSensitivityParameter); A.CallTo(() => _simulationQuantitySelectionFinder.SimulationHasSelection(_invalidSensitivityParameter.ParameterSelection, _newSimulation)).Returns(false); A.CallTo(() => _simulationQuantitySelectionFinder.SimulationHasSelection(_validSensitivityParameter.ParameterSelection, _newSimulation)).Returns(true); }
protected override void ActionForMissingSensitivityParameterPaths(SensitivityAnalysis sensitivityAnalysis, ISimulation newSimulation, SensitivityParameter sensitivityParameter) { sensitivityAnalysis.RemoveSensitivityParameter(sensitivityParameter); }
protected abstract void ActionForMissingSensitivityParameterPaths(SensitivityAnalysis sensitivityAnalysis, ISimulation newSimulation, SensitivityParameter sensitivityParameter);
protected override void Because() { _result = sut.CreateFor(_parameterSelection, _sensitivityAnalysis); }
protected override void ActionForMissingSensitivityParameterPaths(SensitivityAnalysis sensitivityAnalysis, ISimulation newSimulation, SensitivityParameter sensitivityParameter) { _validationResult.AddMessage( NotificationType.Warning, sensitivityAnalysis, Error.SensitivityAnalysis.SimulationDoesNotHaveParameterPath(newSimulation.Name, sensitivityParameter.ParameterSelection.Path)); }
private static void setNumberOfSteps(IParameterDTO parameterDTO, SensitivityParameter sensitivityParameter) { setParameterValues(parameterDTO, sensitivityParameter.NumberOfStepsParameter); }
private void addParametersTo(SensitivityParameter sensitivityParameter) { sensitivityParameter.Add(createParameter(Constants.Parameters.VARIATION_RANGE, _dimensionFactory.Dimension(Constants.Dimension.FRACTION), defaultValue: 0.1, min: 0, minAllowed: false)); sensitivityParameter.Add(createParameter(Constants.Parameters.NUMBER_OF_STEPS, Constants.Dimension.NO_DIMENSION, defaultValue: 2, min: 1, max: 10)); }
public void UpdateSensitivityParameterName(SensitivityAnalysis sensitivityAnalysis, SensitivityParameter sensitivityParameter, string newName) { var oldName = sensitivityParameter.Name; sensitivityParameter.Name = newName; if (!sensitivityAnalysis.HasResults) { return; } sensitivityAnalysis.Results.UpdateSensitivityParameterName(oldName, newName); _executionContext.PublishEvent(new SensitivityAnalysisResultsUpdatedEvent(sensitivityAnalysis)); }
private static void setRange(IParameterDTO parameterDTO, SensitivityParameter sensitivityParameter) { setParameterValues(parameterDTO, sensitivityParameter.VariationRangeParameter); }
protected override void Context() { base.Context(); _pkParameter1 = new QuantityPKParameter { QuantityPath = "Output1", Name = "AUC" }; _pkParameter1.SetValue(0, 10); _pkParameter1.SetValue(1, 11); _pkParameter1.SetValue(2, 12); _pkParameter1.SetValue(4, _defaultPK1Value); _pkParameter2 = new QuantityPKParameter { QuantityPath = "Output2", Name = "Cmax" }; _pkParameter2.SetValue(0, 20); _pkParameter2.SetValue(1, 21); _pkParameter2.SetValue(2, 22); _pkParameter2.SetValue(3, 23); _pkParameter2.SetValue(4, _defaultPK2Value); _pkAnalyses.AddPKAnalysis(_pkParameter1); _pkAnalyses.AddPKAnalysis(_pkParameter2); _sensitivityParameter1 = A.Fake <SensitivityParameter>().WithName("SP1"); A.CallTo(() => _sensitivityParameter1.DefaultValue).Returns(10); A.CallTo(() => _sensitivityParameter1.ParameterSelection.Path).Returns("SP1-PATH"); _sensitivityParameter2 = A.Fake <SensitivityParameter>().WithName("SP2"); A.CallTo(() => _sensitivityParameter2.DefaultValue).Returns(20); A.CallTo(() => _sensitivityParameter2.ParameterSelection.Path).Returns("SP2-PATH"); _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter1); _sensitivityAnalysis.AddSensitivityParameter(_sensitivityParameter2); var pv11 = new ParameterVariation(parameterName: _sensitivityParameter1.Name, parameterIndex: 0, variationId: 0, variation: new[] { 15d, 200d, 300d }); var pv12 = new ParameterVariation(parameterName: _sensitivityParameter1.Name, parameterIndex: 0, variationId: 1, variation: new[] { 20d, 200d, 300d }); var pv21 = new ParameterVariation(parameterName: _sensitivityParameter2.Name, parameterIndex: 1, variationId: 2, variation: new[] { 100d, 21d, 300d }); var pv22 = new ParameterVariation(parameterName: _sensitivityParameter2.Name, parameterIndex: 1, variationId: 3, variation: new[] { 100d, 31d, 300d }); _variationData.DefaultValues = new[] { 100d, 200d, 300d }; _variationData.AddVariation(pv11); _variationData.AddVariation(pv12); _variationData.AddVariation(pv21); _variationData.AddVariation(pv22); _timeValues = new QuantityValues { QuantityPath = "Time", Values = new[] { 1, 2, 3, 4, 5f } }; _resV11 = new IndividualResults { IndividualId = 0, Time = _timeValues }; _resV11.Add(new QuantityValues { QuantityPath = "Output1", Values = new[] { 111.1f, 211.1f, 311.1f, 411.1f, 511.1f } }); _resV11.Add(new QuantityValues { QuantityPath = "Output2", Values = new[] { 111.2f, 211.2f, 311.2f, 411.2f, 511.2f } }); _resV11.UpdateQuantityTimeReference(); _resV12 = new IndividualResults { IndividualId = 1, Time = _timeValues }; _resV12.Add(new QuantityValues { QuantityPath = "Output1", Values = new[] { 112.1f, 212.1f, 312.1f, 412.1f, 512.1f } }); _resV12.Add(new QuantityValues { QuantityPath = "Output2", Values = new[] { 112.2f, 212.2f, 312.2f, 412.2f, 512.2f } }); _resV12.UpdateQuantityTimeReference(); _resV21 = new IndividualResults { IndividualId = 2, Time = _timeValues }; _resV21.Add(new QuantityValues { QuantityPath = "Output1", Values = new[] { 121.1f, 221.1f, 321.1f, 421.1f, 521.1f } }); _resV21.Add(new QuantityValues { QuantityPath = "Output2", Values = new[] { 121.2f, 221.2f, 321.2f, 421.2f, 521.2f } }); _resV21.UpdateQuantityTimeReference(); _resV22 = new IndividualResults { IndividualId = 3, Time = _timeValues }; _resV22.Add(new QuantityValues { QuantityPath = "Output1", Values = new[] { 122.1f, 222.1f, 322.1f, 422.1f, 522.1f } }); _resV22.Add(new QuantityValues { QuantityPath = "Output2", Values = new[] { 122.2f, 222.2f, 322.2f, 422.2f, 522.2f } }); _resV22.UpdateQuantityTimeReference(); _simulationResults.Add(_resV11); _simulationResults.Add(_resV12); _simulationResults.Add(_resV21); _simulationResults.Add(_resV22); }