public override void GlobalContext()
        {
            base.GlobalContext();
            _simulation            = DomainFactoryForSpecs.CreateDefaultSimulation();
            _moleculeBuildingBlock = new MoleculeBuildingBlock();
            var compoundProperties = _simulation.CompoundPropertiesList.First();

            _compoundName = compoundProperties.Compound.Name;
            _moleculeBuildingBlock.Add(new MoleculeBuilder {
                Name = _compoundName, QuantityType = QuantityType.Drug
            });
            _moleculeBuildingBlock.Add(new MoleculeBuilder {
                Name = "Enzyme", QuantityType = QuantityType.Enzyme
            });
            _moleculeBuildingBlock.Add(new MoleculeBuilder {
                Name = "Metabolite", QuantityType = QuantityType.Metabolite
            });
            _moleculeBuildingBlock.Add(new MoleculeBuilder {
                Name = "Protein", QuantityType = QuantityType.OtherProtein
            });
            var specificBindingSelection = new ProcessSelection {
                CompoundName = _compoundName, MoleculeName = "Protein", ProcessName = "Specific Binding"
            };
            var metabolizationSelection = new EnzymaticProcessSelection {
                CompoundName = _compoundName, MoleculeName = "Protein", ProcessName = "Metabolism"
            };

            _complexProductName    = specificBindingSelection.ProductName(CoreConstants.Molecule.Complex);
            _metaboliteProductName = specificBindingSelection.ProductName(CoreConstants.Molecule.Metabolite);
            _moleculeBuildingBlock.Add(new MoleculeBuilder {
                Name = _complexProductName, QuantityType = QuantityType.Complex
            });
            compoundProperties.Processes.SpecificBindingSelection.AddPartialProcessSelection(specificBindingSelection);
            compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(metabolizationSelection);
        }
Exemple #2
0
        public override Task <IProcessMapping> MapToModel(CompoundProcessSelection snapshot, Model.CompoundProcess process)
        {
            IProcessMapping processMapping;

            switch (process)
            {
            case SystemicProcess systemicProcess:
                processMapping = new SystemicProcessSelection
                {
                    ProcessType = systemicProcess.SystemicProcessType,
                };
                break;

            case EnzymaticProcess _:
                processMapping = new EnzymaticProcessSelection
                {
                    MetaboliteName = snapshot.MetaboliteName,
                };
                break;

            case InteractionProcess _:
                processMapping = new InteractionSelection();
                break;

            default:
                processMapping = new ProcessSelection();
                break;
            }

            processMapping.ProcessName  = snapshot.Name;
            processMapping.CompoundName = process.ParentCompound.Name;
            processMapping.MoleculeName = snapshot.MoleculeName;

            return(Task.FromResult(processMapping));
        }
        protected override async Task Context()
        {
            await base.Context();

            _noProcessSelection = new EnzymaticProcessSelection
            {
                MoleculeName = "CYP",
            };
        }
        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();
            _compound              = new Compound().WithName("Comp");
            _metabolite            = new Compound().WithName("Metabolite");
            _simulation            = new IndividualSimulation();
            _simulation.Properties = new SimulationProperties();
            _simulation.Properties.AddCompoundProperties(new CompoundProperties {
                Compound = _compound
            });
            _simulation.Properties.AddCompoundProperties(new CompoundProperties {
                Compound = _metabolite
            });

            var enzymaticProcessSelection = new EnzymaticProcessSelection {
                CompoundName = _compound.Name, MetaboliteName = _metabolite.Name
            };

            _simulation.CompoundPropertiesFor(_compound).Processes.MetabolizationSelection.AddPartialProcessSelection(enzymaticProcessSelection);
        }
        public override Task <IProcessMapping> MapToModel(CompoundProcessSelection snapshot, CompoundProcessSnapshotContext snapshotContext)
        {
            IProcessMapping processMapping;
            var             process = snapshotContext.Process;

            switch (process)
            {
            case SystemicProcess systemicProcess:
                processMapping = new SystemicProcessSelection
                {
                    ProcessType = systemicProcess.SystemicProcessType,
                };
                break;

            case EnzymaticProcess _:
                processMapping = new EnzymaticProcessSelection
                {
                    MetaboliteName = snapshot.MetaboliteName,
                };
                break;

            case InteractionProcess _:
                processMapping = new InteractionSelection();
                break;

            default:
                processMapping = new ProcessSelection();
                break;
            }

            processMapping.ProcessName = ModelValueFor(snapshot.Name);
            //Parent compound may be null for process that are representing a non existent selection
            processMapping.CompoundName = ModelValueFor(process.ParentCompound?.Name);
            processMapping.MoleculeName = ModelValueFor(snapshot.MoleculeName);

            return(Task.FromResult(processMapping));
        }
Exemple #7
0
        protected override Task Context()
        {
            _calculationMethodCacheMapper = A.Fake <CalculationMethodCacheMapper>();
            _processMappingMapper         = A.Fake <ProcessMappingMapper>();
            _logger  = A.Fake <ILogger>();
            _project = new PKSimProject();
            _calculationMethodSnapshot = new CalculationMethodCache();
            sut = new CompoundPropertiesMapper(_calculationMethodCacheMapper, _processMappingMapper, _logger);

            _compoundGroupSelectionOneAlternative = new CompoundGroupSelection
            {
                AlternativeName = "ALT1",
                GroupName       = "ALTERNATIVE_GROUP_1"
            };

            _compoundGroupSelectionTwoAlternatives = new CompoundGroupSelection
            {
                AlternativeName = "ALT2",
                GroupName       = "ALTERNATIVE_GROUP_2"
            };

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

            _protocol = new SimpleProtocol
            {
                Name = "PROTOCOL"
            };

            _parameterAlternativeGroupWithOneAlternative = new ParameterAlternativeGroup {
                Name = _compoundGroupSelectionOneAlternative.GroupName
            };
            _parameterAlternativeGroupWithTwoAlternatives = new ParameterAlternativeGroup {
                Name = _compoundGroupSelectionTwoAlternatives.GroupName
            };

            _parameterAlternativeGroupWithTwoAlternatives.AddAlternative(new ParameterAlternative {
                Name = "ALT1"
            });
            _parameterAlternativeGroupWithTwoAlternatives.AddAlternative(new ParameterAlternative {
                Name = "ALT2"
            });

            _compound.AddParameterAlternativeGroup(_parameterAlternativeGroupWithOneAlternative);
            _compound.AddParameterAlternativeGroup(_parameterAlternativeGroupWithTwoAlternatives);

            _compoundProperties = new Model.CompoundProperties();

            _compoundProperties.AddCompoundGroupSelection(_compoundGroupSelectionOneAlternative);
            _compoundProperties.AddCompoundGroupSelection(_compoundGroupSelectionTwoAlternatives);
            _compoundProperties.Compound = _compound;
            _enzymaticProcess            = new EnzymaticProcess {
                Name = "EnzymaticProcess"
            };
            _anotherEnzymaticProcess = new EnzymaticProcess {
                Name = "AnotherEnzymaticProcess", MoleculeName = "CYP3A4"
            };
            _specificBindingProcess = new SpecificBindingPartialProcess {
                Name = "SpecificBinding"
            };
            _gfrTransportProcess = new SystemicProcess {
                Name = "Transport", SystemicProcessType = SystemicProcessTypes.GFR
            };
            _hepaticEnzymaticProcess = new SystemicProcess {
                Name = "Plasma Clearance", SystemicProcessType = SystemicProcessTypes.Hepatic
            };
            _compound.AddProcess(_enzymaticProcess);
            _compound.AddProcess(_specificBindingProcess);
            _compound.AddProcess(_gfrTransportProcess);
            _compound.AddProcess(_hepaticEnzymaticProcess);

            _enzymaticPartialProcessSelection = new EnzymaticProcessSelection {
                ProcessName = _enzymaticProcess.Name
            };
            _noEnzymaticSystemicProcessSelection = new SystemicProcessSelection {
                ProcessType = SystemicProcessTypes.Hepatic
            };
            _specificBindingPartialProcessSelection = new ProcessSelection {
                ProcessName = _specificBindingProcess.Name
            };
            _transportSystemicProcessSelection = new SystemicProcessSelection {
                ProcessName = _gfrTransportProcess.Name, ProcessType = _gfrTransportProcess.SystemicProcessType,
            };
            _noEnzymaticPartialProcessSelection = new EnzymaticProcessSelection {
                MoleculeName = _anotherEnzymaticProcess.MoleculeName
            };
            _compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(_enzymaticPartialProcessSelection);
            _compoundProperties.Processes.MetabolizationSelection.AddPartialProcessSelection(_noEnzymaticPartialProcessSelection);
            _compoundProperties.Processes.MetabolizationSelection.AddSystemicProcessSelection(_noEnzymaticSystemicProcessSelection);
            _compoundProperties.Processes.SpecificBindingSelection.AddPartialProcessSelection(_specificBindingPartialProcessSelection);
            _compoundProperties.Processes.TransportAndExcretionSelection.AddSystemicProcessSelection(_transportSystemicProcessSelection);

            _snapshotProcess1 = new CompoundProcessSelection {
                Name = _enzymaticPartialProcessSelection.ProcessName
            };
            _snapshotProcess2 = new CompoundProcessSelection {
                Name = _specificBindingPartialProcessSelection.ProcessName
            };
            _snapshotProcess3 = new CompoundProcessSelection {
                Name = _transportSystemicProcessSelection.ProcessName
            };
            _snapshotProcess4 = new CompoundProcessSelection {
                SystemicProcessType = _noEnzymaticSystemicProcessSelection.ProcessType.SystemicProcessTypeId.ToString()
            };
            _snapshotProcess5 = new CompoundProcessSelection {
                MoleculeName = _noEnzymaticPartialProcessSelection.MoleculeName
            };

            _formulation = new Formulation
            {
                Id = "123456"
            };
            _compoundProperties.ProtocolProperties.Protocol = _protocol;
            _compoundProperties.ProtocolProperties.AddFormulationMapping(new FormulationMapping
            {
                FormulationKey        = "F1",
                TemplateFormulationId = _formulation.Id
            });

            _project.AddBuildingBlock(_formulation);
            A.CallTo(() => _calculationMethodCacheMapper.MapToSnapshot(_compoundProperties.CalculationMethodCache)).Returns(_calculationMethodSnapshot);
            A.CallTo(() => _processMappingMapper.MapToSnapshot(_enzymaticPartialProcessSelection)).Returns(_snapshotProcess1);
            A.CallTo(() => _processMappingMapper.MapToSnapshot(_specificBindingPartialProcessSelection)).Returns(_snapshotProcess2);
            A.CallTo(() => _processMappingMapper.MapToSnapshot(_transportSystemicProcessSelection)).Returns(_snapshotProcess3);
            A.CallTo(() => _processMappingMapper.MapToSnapshot(_noEnzymaticSystemicProcessSelection)).Returns(_snapshotProcess4);
            A.CallTo(() => _processMappingMapper.MapToSnapshot(_noEnzymaticPartialProcessSelection)).Returns(_snapshotProcess5);

            A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess1, _enzymaticProcess)).Returns(_enzymaticPartialProcessSelection);
            A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess2, _specificBindingProcess)).Returns(_specificBindingPartialProcessSelection);
            A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess3, _gfrTransportProcess)).Returns(_transportSystemicProcessSelection);
            A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess4, A <NotSelectedSystemicProcess> ._)).Returns(_noEnzymaticSystemicProcessSelection);
            A.CallTo(() => _processMappingMapper.MapToModel(_snapshotProcess5, A <EnzymaticProcess> ._)).Returns(_noEnzymaticPartialProcessSelection);

            return(_completed);
        }
 protected override async Task Because()
 {
     _processSelection = await sut.MapToModel(_snapshot, _enzymaticProcess) as EnzymaticProcessSelection;
 }
 protected override void Because()
 {
     _result = sut.Clone(A.Fake <ICloneManager>()) as EnzymaticProcessSelection;
 }
 protected override async Task Because()
 {
     _processSelection = await sut.MapToModel(_snapshot, new CompoundProcessSnapshotContext(_enzymaticProcess, new SnapshotContext())) as EnzymaticProcessSelection;
 }