protected override void Context() { base.Context(); var existingProcess = new TFirstProcess { MoleculeName = "CYP", DataSource = "Lab", Id = "1" }; _newProcess = new TFirstProcess { MoleculeName = "CYP", DataSource = "Lab2", Id = "2" }; _compoundProcessNode1 = new CompoundProcessNode(existingProcess); _compoundProcessNode2 = new CompoundProcessNode(_newProcess); _moleculeNode1 = new PartialProcessMoleculeNode("CYP", new TFirstProcess()); _moleculeNode1.AddChild(_compoundProcessNode1); var moleculeNode2 = new PartialProcessMoleculeNode("CYP", new TSeconProcess()); moleculeNode2.AddChild(_compoundProcessNode2); A.CallTo(() => _partialProcessNodeMapper.MapFrom(existingProcess)).Returns(_moleculeNode1); A.CallTo(() => _partialProcessNodeMapper.MapFrom(_newProcess)).Returns(moleculeNode2); A.CallTo(() => _view.TreeView.NodeById(_moleculeNode1.Id)).Returns(_moleculeNode1); sut.Handle(new AddCompoundProcessEvent { Entity = existingProcess }); }
public override void GlobalContext() { base.GlobalContext(); _transporter = _transporterFactory.CreateFor(_individual, "TRANS", TransportType.Efflux).DowncastTo <IndividualTransporter>(); var transportContainer = _individual.AllMoleculeContainersFor <TransporterExpressionContainer>(_transporter) .First(x => x.LogicalContainer.IsNamed(CoreConstants.Organ.BRAIN)); transportContainer.TransportDirection = TransportDirectionId.InfluxBrainPlasmaToInterstitial; _individual.AddMolecule(_transporter); _transportProcess = _cloneManager.Clone(_compoundProcessRepository.ProcessByName(CoreConstantsForSpecs.Process.ACTIVE_TRANSPORT_SPECIFIC_MM) .DowncastTo <PartialProcess>()); _transportProcess.Name = "My Transport Process"; _compound.AddProcess(_transportProcess); _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith(_individual, _compound, _protocol) .DowncastTo <IndividualSimulation>(); _simulation.CompoundPropertiesList.First() .Processes .TransportAndExcretionSelection .AddPartialProcessSelection(new EnzymaticProcessSelection { CompoundName = _compound.Name, ProcessName = _transportProcess.Name, MoleculeName = _transporter.Name }); DomainFactoryForSpecs.AddModelToSimulation(_simulation); }
public RootNodeType MapFrom(PartialProcess partialProcess) { var type = partialProcess.GetType(); if (type.IsAnImplementationOf <EnzymaticProcess>()) { return(PKSimRootNodeTypes.CompoundMetabolizingEnzymes); } if (type.IsAnImplementationOf <SpecificBindingPartialProcess>()) { return(PKSimRootNodeTypes.CompoundProteinBindingPartners); } if (type.IsAnImplementationOf <InhibitionProcess>()) { return(PKSimRootNodeTypes.InhibitionProcess); } if (type.IsAnImplementationOf <InductionProcess>()) { return(PKSimRootNodeTypes.InductionProcess); } if (type.IsAnImplementationOf <TransportPartialProcess>()) { return(PKSimRootNodeTypes.CompoundTransportProteins); } throw new ArgumentException(partialProcess.ToString()); }
public override void GlobalContext() { base.GlobalContext(); _buildConfigurationTask = IoC.Resolve <IBuildConfigurationTask>(); _entityPathResolver = IoC.Resolve <IEntityPathResolver>(); var enzymeFactory = IoC.Resolve <IIndividualEnzymeFactory>(); var compoundProcessRepository = IoC.Resolve <ICompoundProcessRepository>(); var cloneManager = IoC.Resolve <ICloneManager>(); _compound = DomainFactoryForSpecs.CreateStandardCompound(); _individual = DomainFactoryForSpecs.CreateStandardIndividual(); _protocol = DomainFactoryForSpecs.CreateStandardIVBolusProtocol(); _enzyme = enzymeFactory.AddMoleculeTo(_individual, "CYP").DowncastTo <IndividualEnzyme>(); _metabolizationProcess = cloneManager.Clone(compoundProcessRepository .ProcessByName(CoreConstantsForSpecs.Process.METABOLIZATION_SPECIFIC_FIRST_ORDER).DowncastTo <PartialProcess>()); _metabolizationProcess.Name = "My Partial Process"; _metabolizationProcess.Parameter(ConverterConstants.Parameters.CLspec).Value = 15; _compound.AddProcess(_metabolizationProcess); _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith(_individual, _compound, _protocol) .DowncastTo <IndividualSimulation>(); _simulation.CompoundPropertiesList.First() .Processes .MetabolizationSelection .AddPartialProcessSelection(new EnzymaticProcessSelection { ProcessName = _metabolizationProcess.Name, MoleculeName = _enzyme.Name }); DomainFactoryForSpecs.AddModelToSimulation(_simulation); }
public override void GlobalContext() { base.GlobalContext(); _compoundProcessRepository = IoC.Resolve <ICompoundProcessRepository>(); _cloneManager = IoC.Resolve <ICloneManager>(); _enzymeFactory = IoC.Resolve <IIndividualEnzymeFactory>(); _transporterFactory = IoC.Resolve <IIndividualTransporterFactory>(); _modelPropertiesTask = IoC.Resolve <IModelPropertiesTask>(); _modelConfigurationRepository = IoC.Resolve <IModelConfigurationRepository>(); _compound = DomainFactoryForSpecs.CreateStandardCompound(); _individual = DomainFactoryForSpecs.CreateStandardIndividual(); _protocol = DomainFactoryForSpecs.CreateStandardIVBolusProtocol(); _enzyme = _enzymeFactory.CreateFor(_individual).DowncastTo <IndividualEnzyme>().WithName("CYP"); _enzyme.GetRelativeExpressionNormParameterFor(CoreConstants.Compartment.Plasma).Value = _relExpNormPls; _enzyme.GetRelativeExpressionNormParameterFor(CoreConstants.Compartment.BloodCells).Value = _relExpNormBloodCells; _enzyme.GetRelativeExpressionNormParameterFor(CoreConstants.Compartment.VascularEndothelium).Value = _relExpVascEndo; _individual.AddMolecule(_enzyme); _hct = _individual.Organism.Parameter(CoreConstants.Parameters.HCT).Value; _metabolizationProcess = _cloneManager.Clone(_compoundProcessRepository.ProcessByName(CoreConstantsForSpecs.Process.METABOLIZATION_SPECIFIC_FIRST_ORDER).DowncastTo <PartialProcess>()); _metabolizationProcess.Name = "My Partial Process"; _metabolizationProcess.Parameter(ConverterConstants.Parameter.CLspec).Value = 15; _compound.AddProcess(_metabolizationProcess); _simulationRunOptions = new SimulationRunOptions { RaiseEvents = false }; }
public override void GlobalContext() { base.GlobalContext(); _transporterContainerTemplateRepository = IoC.Resolve <ITransporterContainerTemplateRepository>(); var allTransporters = _transporterContainerTemplateRepository.TransportersFor(_individual.Species.Name, CoreConstants.Organ.Brain); var influxBBB = allTransporters.Where(x => x.MembraneLocation == MembraneLocation.BloodBrainBarrier) .FirstOrDefault(x => x.TransportType == TransportType.Influx); _transporter = _transporterFactory.CreateFor(_individual).DowncastTo <IndividualTransporter>().WithName("TRANS"); var transportContainer = _transporter.ExpressionContainer(CoreConstants.Organ.Brain).DowncastTo <TransporterExpressionContainer>(); transportContainer.UpdatePropertiesFrom(influxBBB); _individual.AddMolecule(_transporter); _transportProcess = _cloneManager.Clone(_compoundProcessRepository.ProcessByName(CoreConstantsForSpecs.Process.ACTIVE_TRANSPORT_SPECIFIC_MM) .DowncastTo <PartialProcess>()); _transportProcess.Name = "My Transport Process"; _compound.AddProcess(_transportProcess); _simulation = DomainFactoryForSpecs.CreateModelLessSimulationWith(_individual, _compound, _protocol) .DowncastTo <IndividualSimulation>(); _simulation.CompoundPropertiesList.First() .Processes .TransportAndExcretionSelection .AddPartialProcessSelection(new EnzymaticProcessSelection { CompoundName = _compound.Name, ProcessName = _transportProcess.Name, MoleculeName = _transporter.Name }); DomainFactoryForSpecs.AddModelToSimulation(_simulation); }
public ITreeNode MapFrom(PartialProcess partialProcess) { //protein id should be created using the process type as well since the same protein might be used for e.g transporter and metabolism var moleculeNode = _treeNodeFactory.CreateFor(partialProcess, partialProcess.MoleculeName); moleculeNode.AddChild(_treeNodeFactory.CreateFor(partialProcess).WithIcon(ApplicationIcons.IconByName(partialProcess.Icon))); return(moleculeNode); }
private void report(PartialProcess partialProcess, MarkdownTracker tracker) { tracker.AddValue(PKSimConstants.UI.Molecule, partialProcess.MoleculeName); switch (partialProcess) { case EnzymaticProcess enzymaticProcess when !string.IsNullOrEmpty(enzymaticProcess.MetaboliteName): tracker.AddValue(PKSimConstants.UI.Metabolite, enzymaticProcess.MetaboliteName); break; } }
public PartialProcessDTO MapFrom(PartialProcess partialProcess, Compound compound) { return(new PartialProcessDTO(partialProcess) { MoleculeName = partialProcess.MoleculeName, DataSource = partialProcess.DataSource, Compound = compound, Species = partialProcess.Species }); }
private void updatePartialProcessProperties(PartialProcess partialProcess, SnapshotCompoundProcess snapshot) { if (partialProcess == null) { return; } partialProcess.MoleculeName = snapshot.Molecule; if (partialProcess is EnzymaticProcess enzymaticProcess) { enzymaticProcess.MetaboliteName = snapshot.Metabolite; } }
private void addPartialProcessToView(PartialProcess partialProcess, RootNodeType parentNodeType) { var partialProcessesNode = _view.NodeByType(parentNodeType); var moleculeNode = _partialProcessNodeMapper.MapFrom(partialProcess); var existingMoleculeNode = _view.NodeById(moleculeNode.Id); //a node for the molecule was already added, promote the children if (existingMoleculeNode != null) { moleculeNode.Children.Each(existingMoleculeNode.AddChild); } else { partialProcessesNode.AddChild(moleculeNode); } //this refreshed whole process node _view.AddNode(partialProcessesNode); }
protected override void Context() { _compound = BatchToolFactoryForSpecs.Compound(); _compound.Name = "sim"; _compound.IsSmallMolecule = true; _partialProcess = new PartialProcess(); _partialProcess.MoleculeName = "CYP"; _partialProcess.InternalName = "Metabolization_firstOrder"; _partialProcess.DataSource = "Lab"; _partialProcess.ParameterValues.Add("P1", 5); _partialProcess.ParameterValues.Add("CLSpec", 3); _systemicProcess = new SystemicProcess(); _systemicProcess.InternalName = "PlasmaClearance"; _systemicProcess.DataSource = "Lab"; _systemicProcess.ParameterValues.Add("P4", 5); _systemicProcess.ParameterValues.Add("CL", 3); _compound.PartialProcesses.Add(_partialProcess); _compound.SystemicProcesses.Add(_systemicProcess); _settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; }
public void CompoundProcessSelectionChanged(SimulationInteractionProcessSelectionDTO dto, PartialProcess interactionProcess) { if (processAlreadySelected(interactionProcess)) { refreshView(); throw new CannotSelectThePartialProcessMoreThanOnceException(interactionProcess); } dto.SimulationPartialProcess.CompoundProcess = interactionProcess; updateWaring(); }
public void CompoundProcessChanged(TPartialProcessDTO simulationPartialProcessDTO, PartialProcess partialProcess) { if (partialProcessAlreadySelected(partialProcess)) { throw new CannotSelectThePartialProcessMoreThanOnceException(partialProcess); } simulationPartialProcessDTO.SimulationPartialProcess.CompoundProcess = partialProcess; }
public CannotSelectThePartialProcessMoreThanOnceException(PartialProcess partialProcess) : base(PKSimConstants.Error.CannotSelectTheSamePartialProcessMoreThanOnce(partialProcess.ToString())) { }
public ITreeNode CreateFor(PartialProcess partialProcess, string proteinName) => new PartialProcessMoleculeNode(proteinName, partialProcess);
public ITreeNode CreateFor(PartialProcess partialProcess) => new CompoundProcessNode(partialProcess);
public PartialProcessMoleculeNode(string proteinName, PartialProcess process) : base(proteinName, CoreConstants.CompositeNameFor(process.GetProcessClass(), proteinName)) { PartialProcessType = process.GetType(); }
private bool partialProcessAlreadySelected(PartialProcess partialProcess) { return(isSelected(partialProcess) && _allPartialProcessesDTO.Any(x => Equals(x.CompoundProcess, partialProcess))); }
private bool isSelected(PartialProcess partialProcess) { return(!Equals(partialProcess, _notSelectedPartialProcess)); }
private void addPartialProcessToView(PartialProcess partialProcess) { addPartialProcessToView(partialProcess, _partialProcessToRootNodeTypeMapper.MapFrom(partialProcess)); }
private bool isSelected(PartialProcess interactionProcess) { return(!Equals(interactionProcess, _noInteractionProcessSelection)); }
public ITreeNode CreateFor(PartialProcess partialProcess) { return(new CompoundProcessNode(partialProcess)); }
public PartialProcessRetriever() { NotSelectedPartialProcess = null; }
private static SimulationPartialProcess newSimulationPartialProcess <TIndividualMolecule>(TIndividualMolecule individualMolecule, PartialProcess partialProcess, IPartialProcessMapping partialProcessMapping = null) where TIndividualMolecule : IndividualMolecule { return(new SimulationPartialProcess { CompoundProcess = partialProcess, IndividualMolecule = individualMolecule, PartialProcessMapping = partialProcessMapping }); }
public void UpdateProperties(PartialProcess partialProcess, PartialProcessDTO partialProcessDTO) { partialProcess.Name = partialProcessDTO.Name; partialProcess.DataSource = partialProcessDTO.DataSource; partialProcess.MoleculeName = partialProcessDTO.MoleculeName; }
private bool processAlreadySelected(PartialProcess interactionProcess) { return(isSelected(interactionProcess) && _allInteractionProcessesDTO.Any(x => Equals(x.CompoundProcess, interactionProcess))); }