예제 #1
0
        public override void GlobalContext()
        {
            base.GlobalContext();
            _induction      = _cloneManager.Clone(_compoundProcessRepository.ProcessByName(CoreConstantsForSpecs.Process.INDUCTION).DowncastTo <InductionProcess>());
            _induction.Name = "Induction";
            _induction.Parameter(CoreConstantsForSpecs.Parameter.EC50).Value = 10;
            _compound.AddProcess(_induction);

            _irreversibleInhibiton      = _cloneManager.Clone(_compoundProcessRepository.ProcessByName(CoreConstantsForSpecs.Process.IRREVERSIBLE_INHIBITION).DowncastTo <InhibitionProcess>());
            _irreversibleInhibiton.Name = "IrreversibleProcess";
            _irreversibleInhibiton.Parameter(CoreConstantsForSpecs.Parameter.KINACT).Value = 10;
            _compound.AddProcess(_irreversibleInhibiton);

            _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith(_individual, new[] { _compound }, new[] { _protocol })
                          .DowncastTo <IndividualSimulation>();

            _simulation.CompoundPropertiesFor(_compound.Name)
            .Processes
            .MetabolizationSelection
            .AddPartialProcessSelection(new EnzymaticProcessSelection {
                CompoundName = _compound.Name, ProcessName = _metabolizationProcess.Name, MoleculeName = _enzyme.Name
            });


            _simulation.InteractionProperties.AddInteraction(new InteractionSelection {
                CompoundName = _compound.Name, MoleculeName = _enzyme.Name, ProcessName = _induction.Name
            });
            _simulation.InteractionProperties.AddInteraction(new InteractionSelection {
                CompoundName = _compound.Name, MoleculeName = _enzyme.Name, ProcessName = _irreversibleInhibiton.Name
            });
            DomainFactoryForSpecs.AddModelToSimulation(_simulation);
        }
예제 #2
0
        protected override Task Context()
        {
            sut = new ProcessMappingMapper();

            _compound = new Compound
            {
                Name = "COMP",
            };


            _enzymaticProcess          = new EnzymaticProcess().WithName("MetaProcess");
            _enzymaticProcessSelection = new EnzymaticProcessSelection
            {
                CompoundName   = _compound.Name,
                MetaboliteName = "META",
                MoleculeName   = "CYP",
                ProcessName    = _enzymaticProcess.Name
            };


            _specificBindingProcess = new SpecificBindingPartialProcess().WithName("BindingProcess");
            _specificBindingPartialProcessSelection = new ProcessSelection
            {
                CompoundName = _compound.Name,
                MoleculeName = "BINDER",
                ProcessName  = _specificBindingProcess.Name
            };

            _transportSystemicProcess = new SystemicProcess
            {
                Name = "SystemicTransport",
                SystemicProcessType = SystemicProcessTypes.GFR
            };

            _transportSystemicProcessSelection = new SystemicProcessSelection
            {
                CompoundName = _compound.Name,
                ProcessName  = _transportSystemicProcess.Name,
                ProcessType  = _transportSystemicProcess.SystemicProcessType
            };

            _interactionProcess   = new InductionProcess().WithName("InteractionProcess");
            _interactionSelection = new InteractionSelection
            {
                CompoundName = _compound.Name,
                ProcessName  = _interactionProcess.Name,
                MoleculeName = "INHIBITOR"
            };

            _compound.AddProcess(_enzymaticProcess);
            _compound.AddProcess(_transportSystemicProcess);
            _compound.AddProcess(_interactionProcess);
            _compound.AddProcess(_specificBindingProcess);

            return(_completed);
        }
        protected override void Context()
        {
            base.Context();
            _moleculeMappable        = new IndividualEnzyme().WithName("MoleculeMapped");
            _moleculeAlreadySelected = new IndividualEnzyme().WithName("MoleculeAlreadySelected");
            _moleculeNotMapped       = new IndividualEnzyme().WithName("MoleculeNotMapped");
            _inhibitionProcess1      = new InhibitionProcess().WithName("InhibitionProcess1");
            _inhibitionProcess2      = new InhibitionProcess().WithName("InhibitionProcess2");
            _inductionProcess1       = new InductionProcess().WithName("InductionProcess1");
            _inhibitionProcess3      = new InhibitionProcess().WithName("InhibitionProcess3");

            _individual.AddMolecule(_moleculeNotMapped);
            _individual.AddMolecule(_moleculeMappable);
            _individual.AddMolecule(_moleculeAlreadySelected);

            _compound.AddProcess(_inhibitionProcess1);

            _compound2 = new Compound().WithName("Comp2");
            _compound2.AddProcess(_inhibitionProcess2);
            _inhibitionProcess2.MoleculeName = _moleculeMappable.Name;

            _compound2.AddProcess(_inhibitionProcess3);
            _inhibitionProcess3.MoleculeName = _moleculeMappable.Name;

            _compound2.AddProcess(_inductionProcess1);
            _inductionProcess1.MoleculeName = _moleculeMappable.Name;

            var interactionProperties = new InteractionProperties();

            interactionProperties.AddInteraction(new InteractionSelection {
                MoleculeName = _moleculeAlreadySelected.Name, ProcessName = _inhibitionProcess1.Name, CompoundName = _compound.Name
            });

            A.CallTo(() => _simulation.InteractionProperties).Returns(interactionProperties);
            A.CallTo(() => _simulation.Compounds).Returns(new[] { _compound, _compound2 });
        }
예제 #4
0
        protected override Task Context()
        {
            _solverSettingsMapper               = A.Fake <SolverSettingsMapper>();
            _outputSchemaMapper                 = A.Fake <OutputSchemaMapper>();
            _outputSelectionMapper              = A.Fake <OutputSelectionsMapper>();
            _parameterMapper                    = A.Fake <ParameterMapper>();
            _compoundPropertiesMapper           = A.Fake <CompoundPropertiesMapper>();
            _advancedParameterMapper            = A.Fake <AdvancedParameterMapper>();
            _eventMappingMapper                 = A.Fake <EventMappingMapper>();
            _observerSetMappingMapper           = A.Fake <ObserverSetMappingMapper>();
            _curveChartMapper                   = A.Fake <SimulationTimeProfileChartMapper>();
            _processMappingMapper               = A.Fake <ProcessMappingMapper>();
            _simulationFactory                  = A.Fake <ISimulationFactory>();
            _executionContext                   = A.Fake <IExecutionContext>();
            _simulationModelCreator             = A.Fake <ISimulationModelCreator>();
            _simulationBuildingBlockUpdater     = A.Fake <ISimulationBuildingBlockUpdater>();
            _modelPropertiesTask                = A.Fake <IModelPropertiesTask>();
            _simulationRunner                   = A.Fake <ISimulationRunner>();
            _populationAnalysisChartMapper      = A.Fake <PopulationAnalysisChartMapper>();
            _simulationParameterOriginIdUpdater = A.Fake <ISimulationParameterOriginIdUpdater>();
            _logger             = A.Fake <ILogger>();
            _containerTask      = A.Fake <IContainerTask>();
            _entityPathResolver = A.Fake <IEntityPathResolver>();

            sut = new SimulationMapper(_solverSettingsMapper, _outputSchemaMapper,
                                       _outputSelectionMapper, _compoundPropertiesMapper, _parameterMapper,
                                       _advancedParameterMapper, _eventMappingMapper, _observerSetMappingMapper, _curveChartMapper,
                                       _populationAnalysisChartMapper, _processMappingMapper,
                                       _simulationFactory, _executionContext, _simulationModelCreator,
                                       _simulationBuildingBlockUpdater, _modelPropertiesTask,
                                       _simulationRunner, _simulationParameterOriginIdUpdater,
                                       _logger, _containerTask, _entityPathResolver
                                       );

            _project    = new PKSimProject();
            _individual = new Individual {
                Name = "IND", Id = "IND"
            };
            _compound = new Compound {
                Name = "COMP", Id = "COMP"
            };
            _observerSet = new ObserverSet {
                Name = "OBS_SET", Id = "OBS_SET"
            };
            _protocol = new SimpleProtocol {
                Name = "PROT", Id = "PROT"
            };
            _inductionProcess = new InductionProcess().WithName("Interaction process");
            _compound.AddProcess(_inductionProcess);


            _event = new PKSimEvent {
                Name = "Event"
            };
            _population = new RandomPopulation()
            {
                Name = "POP"
            };
            _observedData = new DataRepository("OBS_ID").WithName("OBS");
            _project.AddBuildingBlock(_individual);
            _project.AddBuildingBlock(_compound);
            _project.AddBuildingBlock(_event);
            _project.AddBuildingBlock(_population);
            _project.AddBuildingBlock(_observerSet);
            _project.AddObservedData(_observedData);

            _simulationProperties = new SimulationProperties
            {
                ModelProperties = new ModelProperties
                {
                    ModelConfiguration = new ModelConfiguration {
                        ModelName = "4Comp"
                    }
                }
            };
            _interactionSelection = new InteractionSelection {
                ProcessName = _inductionProcess.Name
            };
            _noInteractionSelection = new InteractionSelection {
                MoleculeName = "CYP2D6"
            };

            _simulationProperties.InteractionProperties.AddInteraction(_interactionSelection);
            _simulationProperties.InteractionProperties.AddInteraction(_noInteractionSelection);

            _settings      = new SimulationSettings();
            _rootContainer = new Container().WithName("Sim");
            _model         = new OSPSuite.Core.Domain.Model {
                Root = _rootContainer
            };

            _individualSimulation = new IndividualSimulation
            {
                Name               = "S1",
                Properties         = _simulationProperties,
                SimulationSettings = _settings,
                Description        = "Simulation Description",
                Model              = _model
            };

            _simulationTimeProfile         = new SimulationTimeProfileChart();
            _snapshotSimulationTimeProfile = new CurveChart();
            _individualSimulation.AddAnalysis(_simulationTimeProfile);

            A.CallTo(() => _curveChartMapper.MapToSnapshot(_simulationTimeProfile)).Returns(_snapshotSimulationTimeProfile);


            _populationSimulation = new PopulationSimulation
            {
                Properties         = _simulationProperties,
                SimulationSettings = _settings,
                Model = _model
            };

            _advancedParameterCollection       = new AdvancedParameterCollection();
            _populationSimulationAnalysisChart = new BoxWhiskerAnalysisChart();
            _populationSimulation.SetAdvancedParameters(_advancedParameterCollection);
            _populationSimulation.AddAnalysis(_populationSimulationAnalysisChart);
            _populationSimulation.AddUsedBuildingBlock(new UsedBuildingBlock("IndTemplateId", PKSimBuildingBlockType.Individual)
            {
                BuildingBlock = _individual
            });

            _snapshotPopulationAnalysisChart = new Snapshots.PopulationAnalysisChart();

            A.CallTo(() => _populationAnalysisChartMapper.MapToSnapshot(_populationSimulationAnalysisChart)).Returns(_snapshotPopulationAnalysisChart);

            _snapshotInteraction = new CompoundProcessSelection();
            A.CallTo(() => _processMappingMapper.MapToSnapshot(_interactionSelection)).Returns(_snapshotInteraction);
            _snapshotInteraction.CompoundName = _compound.Name;
            _snapshotInteraction.Name         = _inductionProcess.Name;

            _noSelectionSnapshotInteraction = new CompoundProcessSelection();
            A.CallTo(() => _processMappingMapper.MapToSnapshot(_noInteractionSelection)).Returns(_noSelectionSnapshotInteraction);
            _noSelectionSnapshotInteraction.MoleculeName = _noInteractionSelection.MoleculeName;

            _compoundProperties         = new CompoundProperties();
            _snapshotCompoundProperties = new Snapshots.CompoundProperties {
                Name = _compound.Name
            };
            _individualSimulation.Properties.AddCompoundProperties(_compoundProperties);

            _eventMapping = new EventMapping();
            _individualSimulation.EventProperties.AddEventMapping(_eventMapping);

            _observerSetMapping = new ObserverSetMapping();
            _individualSimulation.ObserverSetProperties.AddObserverSetMapping(_observerSetMapping);

            A.CallTo(() => _compoundPropertiesMapper.MapToSnapshot(_compoundProperties, _project)).Returns(_snapshotCompoundProperties);


            _eventSelection = new EventSelection
            {
                Name = _event.Name,
            };

            _observerSetSelection = new ObserverSetSelection
            {
                Name = _observerSet.Name,
            };

            _individualSimulation.AddUsedBuildingBlock(new UsedBuildingBlock("IndTemplateId", PKSimBuildingBlockType.Individual)
            {
                BuildingBlock = _individual,

                Altered = true
            });

            _individualSimulation.AddUsedBuildingBlock(new UsedBuildingBlock("CompTemplateId", PKSimBuildingBlockType.Compound)
            {
                BuildingBlock = _compound
            });

            _individualSimulation.AddUsedBuildingBlock(new UsedBuildingBlock("ProtTemplateId", PKSimBuildingBlockType.Protocol)
            {
                BuildingBlock = _protocol
            });

            _individualSimulation.AddUsedBuildingBlock(new UsedBuildingBlock("ObserveSetTemplateId", PKSimBuildingBlockType.ObserverSet)
            {
                BuildingBlock = _observerSet
            });

            _populationSimulation.AddUsedBuildingBlock(new UsedBuildingBlock("PopTemplateId", PKSimBuildingBlockType.Population)
            {
                BuildingBlock = _population
            });


            _individualSimulation.AddUsedObservedData(_observedData);

            A.CallTo(() => _eventMappingMapper.MapToSnapshot(_eventMapping, _project)).Returns(_eventSelection);
            A.CallTo(() => _observerSetMappingMapper.MapToSnapshot(_observerSetMapping, _project)).Returns(_observerSetSelection);

            _outputSelectionSnapshot = new OutputSelections();
            A.CallTo(() => _outputSelectionMapper.MapToSnapshot(_individualSimulation.OutputSelections)).Returns(_outputSelectionSnapshot);

            A.CallTo(() => _processMappingMapper.MapToModel(_snapshotInteraction, _inductionProcess)).Returns(_interactionSelection);

            return(_completed);
        }