public MembraneLocation MembraneLocationToUse(ITransporterExpressionContainer transporterContainer, TransportType newTransportType)
        {
            if (!transporterContainer.HasPolarizedMembrane)
            {
                return(transporterContainer.MembraneLocation);
            }

            //Brain always plasma
            if (transporterContainer.IsNamed(CoreConstants.Organ.Brain))
            {
                return(MembraneLocation.BloodBrainBarrier);
            }

            //intestine always apical
            if (transporterContainer.GroupName == CoreConstants.Groups.GI_MUCOSA)
            {
                return(MembraneLocation.Apical);
            }

            //pgp and efflux always apical
            if (newTransportType == TransportType.PgpLike || newTransportType == TransportType.Efflux)
            {
                return(MembraneLocation.Apical);
            }

            //not brain and intestine=>Influx is always basolateral
            if (newTransportType == TransportType.Influx)
            {
                return(MembraneLocation.Basolateral);
            }

            return(transporterContainer.MembraneLocation);
        }
Beispiel #2
0
 protected override void Context()
 {
    base.Context();
    _transporterContainer = A.Fake<ITransporterExpressionContainer>();
    A.CallTo(() => _transporterContainer.Name).Returns(_liver);
    _species = "human";
    A.CallTo(() => _repository.TransportersFor(_species, _liver)).Returns(_allTransporters);
    _membrane = MembraneLocation.Apical;
    _transportType = TransportType.Efflux;
    _transporterContainerTemplate = new TransporterContainerTemplate {MembraneLocation = _membrane, TransportType = _transportType};
    _allTransporters.Add(_transporterContainerTemplate);
 }
 public SetMembraneTypeCommand(ITransporterExpressionContainer transporterContainer, TransportType transportType, MembraneLocation newMembraneLocation, IExecutionContext context)
 {
     _transporterContainer   = transporterContainer;
     _transportType          = transportType;
     _transporterContainerId = _transporterContainer.Id;
     _newMembraneLocation    = newMembraneLocation;
     _individual             = context.BuildingBlockContaining(_transporterContainer).DowncastTo <Individual>();
     BuildingBlockId         = _individual.Id;
     _oldMembraneLocation    = _transporterContainer.MembraneLocation;
     ObjectType  = PKSimConstants.ObjectTypes.Transporter;
     CommandType = PKSimConstants.Command.CommandTypeEdit;
     context.UpdateBuildinBlockProperties(this, _individual);
 }
Beispiel #4
0
        protected override void Context()
        {
            sut = new IndividualTransporter().WithName("T");
            _transpoterExpressionLiver = new TransporterExpressionContainer().WithName("Liver");
            _transpoterExpressionLiver.AddProcessName("P1");
            _transpoterExpressionKidney = new TransporterExpressionContainer().WithName("Kidney");
            _transpoterExpressionKidney.AddProcessName("P2");
            _transpoterExpressionBrain = new TransporterExpressionContainer().WithName("Brain");
            _transpoterExpressionBrain.AddProcessName("P1");

            sut.Add(_transpoterExpressionLiver);
            sut.Add(_transpoterExpressionKidney);
            sut.Add(_transpoterExpressionBrain);
        }
 public SetTransportTypeCommand(ITransporterExpressionContainer transporterContainer, TransportType oldTransportType, TransportType newTransportType, MembraneLocation membraneLocationToUse, IExecutionContext context)
 {
     _transporterContainer   = transporterContainer;
     _membraneLocationToUse  = membraneLocationToUse;
     _transporterContainerId = _transporterContainer.Id;
     _individual             = context.BuildingBlockContaining(transporterContainer).DowncastTo <Individual>();
     BuildingBlockId         = _individual.Id;
     _newTransportType       = newTransportType;
     _oldTransportType       = oldTransportType;
     ObjectType  = PKSimConstants.ObjectTypes.Transporter;
     CommandType = PKSimConstants.Command.CommandTypeEdit;
     context.UpdateBuildinBlockProperties(this, _individual);
     Visible = false;
 }
        public void UpdateTransporterFromTemplate(ITransporterExpressionContainer transporterContainer, string species, MembraneLocation membraneLocation, TransportType transportType)
        {
            //we need to retrieve the process name for the given MembraneTupe/Process Type combo
            var templateToUse = _transporterContainerTemplateRepository.TransportersFor(species, transporterContainer.Name)
                                .Where(x => x.MembraneLocation == membraneLocation)
                                .FirstOrDefault(x => x.TransportType == transportType);

            //That should never happen, otherwise we would have a transporter container with an unknown process
            if (templateToUse == null)
            {
                throw new PKSimException(PKSimConstants.Error.CouldNotFindTransporterFor(transporterContainer.Name, membraneLocation.ToString(), transportType.ToString()));
            }

            transporterContainer.UpdatePropertiesFrom(templateToUse);
        }
Beispiel #7
0
      protected override void Context()
      {
         base.Context();
         _transporter = new IndividualTransporter {TransportType = TransportType.Efflux, Name = "toto"};
         _transporterWithTemplate = new TransporterExpressionContainer {MembraneLocation = MembraneLocation.Apical}.WithName(_liver);
         _transporterWithoutTemplate = new TransporterExpressionContainer {MembraneLocation = MembraneLocation.Basolateral}.WithName("Kidney");
         _transporter.Add(_transporterWithTemplate);
         _transporter.Add(_transporterWithoutTemplate);

         _transporterContainerTemplate = new TransporterContainerTemplate {MembraneLocation = MembraneLocation.Apical, TransportType = TransportType.Influx};
         _defaultTemplate = new TransporterContainerTemplate {MembraneLocation = MembraneLocation.Basolateral, TransportType = TransportType.Influx};
         _allTransporterTemplates.Add(_transporterContainerTemplate);

         A.CallTo(() => _repository.HasTransporterTemplateFor(_species, _transporter.Name)).Returns(true);
         A.CallTo(() => _repository.TransportTypeFor(_species, _transporter.Name)).Returns(TransportType.Influx);
         A.CallTo(() => _repository.TransportersFor(_species, _liver, _transporter.Name)).Returns(_allTransporterTemplates);
         A.CallTo(() => _repository.TransportersFor(_species, _kidney, _transporter.Name)).Returns(new List<TransporterContainerTemplate>());
         A.CallTo(() => _repository.TransportersFor(_species, _kidney)).Returns(new List<TransporterContainerTemplate> {_defaultTemplate});
      }
 public override void RestoreExecutionData(IExecutionContext context)
 {
     base.RestoreExecutionData(context);
     _individual           = context.Get <Individual>(BuildingBlockId);
     _transporterContainer = context.Get <ITransporterExpressionContainer>(_transporterContainerId);
 }
 protected override void ClearReferences()
 {
     _transporterContainer = null;
     _individual           = null;
 }
Beispiel #10
0
        private void addContainerExpression(TransporterExpressionDTO proteinExpressionDTO, IndividualTransporter transporter, ITransporterExpressionContainer transporterExpressionContainer)
        {
            var expressionDTO = new TransporterExpressionContainerDTO(transporterExpressionContainer)
            {
                MoleculeName = transporter.Name, ContainerName = transporterExpressionContainer.Name
            };

            _expressionContainerDTOUpdater.UpdateProperties(expressionDTO, transporterExpressionContainer);
            proteinExpressionDTO.AddProteinExpression(expressionDTO);
        }
 public ICommand SetMembraneLocationFor(ITransporterExpressionContainer transporterContainer, TransportType transportType, MembraneLocation membraneLocation)
 {
     return(new SetMembraneTypeCommand(transporterContainer, transportType, membraneLocation, _executionContext).Run(_executionContext));
 }
Beispiel #12
0
 public TransporterExpressionContainerDTO(ITransporterExpressionContainer transporterContainer)
 {
     _transporterContainer = transporterContainer;
     _transporterContainer.PropertyChanged += raisePropertyChange;
 }
Beispiel #13
0
 public override void ClearReferences()
 {
     base.ClearReferences();
     _transporterContainer.PropertyChanged -= raisePropertyChange;
     _transporterContainer = null;
 }
        private IEnumerable <IContainer> allContainersForTransporter(Organism organism, IndividualTransporter transporter, IEnumerable <IContainer> allContainers, ITransporterExpressionContainer expressionContainer)
        {
            if (expressionContainer.IsSurrogate())
            {
                return(allCompartmentsOfNames(allContainers, expressionContainer.Name));
            }

            return(compartmentFor(organism, expressionContainer, expressionContainer.CompartmentName));
        }