コード例 #1
0
 protected override void Context()
 {
     base.Context();
     _displayName         = "tutu";
     _expressionContainer = A.Fake <IMoleculeExpressionContainer>().WithName("tralal");
     A.CallTo(() => _representationInfoRepository.DisplayNameFor(_expressionContainer)).Returns(_displayName);
 }
コード例 #2
0
 protected override void Context()
 {
     base.Context();
     _enzyme = A.Fake <IndividualEnzyme>();
     A.CallTo(() => _enzyme.Rules).Returns(A.Fake <IBusinessRuleSet>());
     _enzyme.Name = "CYP";
     _container1  = new MoleculeExpressionContainer();
     _container2  = new MoleculeExpressionContainer();
     A.CallTo(() => _enzyme.GetChildren <IMoleculeExpressionContainer>()).Returns(new[] { _container1, _container2 });
 }
コード例 #3
0
        private IEnumerable <IContainer> compartmentFor(Organism organism, IMoleculeExpressionContainer expressionContainer, string defaultCompartment)
        {
            var usedCompartment = expressionContainer.IsLumen ? expressionContainer.ContainerName : defaultCompartment;
            var compartment     = expressionContainer.CompartmentPath(usedCompartment).Resolve <IContainer>(organism);

            if (compartment == null)
            {
                return(Enumerable.Empty <IContainer>());
            }
            return(new[] { compartment });
        }
コード例 #4
0
        protected override void Context()
        {
            _individual                    = new Individual();
            _individual.OriginData         = new OriginData();
            _individual.OriginData.Species = new Species().WithName("Human");
            _ontogeny = new DatabaseOntogeny {
                Name = "toto"
            };
            _molecule = new IndividualEnzyme {
                Name = "CYP3A4"
            };
            _executionContext                  = A.Fake <IExecutionContext>();
            _proteinExpressionPresenter        = A.Fake <IProteinExpressionsPresenter>();
            _simpleMoleculePresenter           = A.Fake <ISimpleMoleculePresenter>();
            _querySettingsMapper               = A.Fake <IMoleculeToQueryExpressionSettingsMapper>();
            _applicationController             = A.Fake <IApplicationController>();
            _individualMoleculeFactoryResolver = A.Fake <IIndividualMoleculeFactoryResolver>();
            _transportContainerUpdater         = A.Fake <ITransportContainerUpdater>();
            _containerTask = A.Fake <IContainerTask>();
            _moleculeParameterRepository    = A.Fake <IMoleculeParameterRepository>();
            _proteinExpressionDbPathManager = A.Fake <IProteinExpressionsDatabasePathManager>();
            A.CallTo(() => _applicationController.Start <IProteinExpressionsPresenter>()).Returns(_proteinExpressionPresenter);
            A.CallTo(() => _applicationController.Start <ISimpleMoleculePresenter>()).Returns(_simpleMoleculePresenter);
            _ontogenyRepository = A.Fake <IOntogenyRepository>();
            var proteinFactory = A.Fake <IIndividualMoleculeFactory>();

            _moleculeContainer1 = new MoleculeExpressionContainer().WithName("C1");
            _moleculeContainer1.Add(DomainHelperForSpecs.ConstantParameterWithValue(5).WithName(CoreConstants.Parameter.RelExp));
            _moleculeContainer1.Add(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(CoreConstants.Parameter.RelExpNorm));
            _moleculeContainer2 = new MoleculeExpressionContainer().WithName("C2");
            _moleculeContainer2.Add(DomainHelperForSpecs.ConstantParameterWithValue(5).WithName(CoreConstants.Parameter.RelExp));
            _moleculeContainer2.Add(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(CoreConstants.Parameter.RelExpNorm));
            A.CallTo(() => _individualMoleculeFactoryResolver.FactoryFor <IndividualProtein>()).Returns(proteinFactory);
            A.CallTo(() => proteinFactory.CreateFor(_individual)).Returns(_molecule);
            _molecule.Add(_moleculeContainer1);
            _molecule.Add(_moleculeContainer2);
            _molecule.Add(DomainHelperForSpecs.ConstantParameterWithValue(10).WithName(CoreConstants.Parameter.REFERENCE_CONCENTRATION));
            _molecule.Add(DomainHelperForSpecs.ConstantParameterWithValue(20).WithName(CoreConstants.Parameter.HALF_LIFE_LIVER));
            _molecule.Add(DomainHelperForSpecs.ConstantParameterWithValue(30).WithName(CoreConstants.Parameter.HALF_LIFE_INTESTINE));

            A.CallTo(() => _ontogenyRepository.AllFor(_individual.Species.Name)).Returns(new[] { _ontogeny, new DatabaseOntogeny {
                                                                                                     Name = "tralala"
                                                                                                 }, });
            A.CallTo(() => _executionContext.Resolve <IOntogenyRepository>()).Returns(_ontogenyRepository);

            _subjectExpressionTask = new IndividualExpressionTask(_executionContext);

            _ontogenyTask = A.Fake <IOntogenyTask <Individual> >();
            sut           = new MoleculeExpressionTask <Individual>(_applicationController, _executionContext,
                                                                    _individualMoleculeFactoryResolver, _querySettingsMapper,
                                                                    _containerTask, _proteinExpressionDbPathManager,
                                                                    _ontogenyRepository, _transportContainerUpdater, _moleculeParameterRepository, _subjectExpressionTask, _ontogenyTask);
        }
コード例 #5
0
 protected override void Context()
 {
     _expressionContainer = new MoleculeExpressionContainer().WithName("tralal");
     _expressionContainer.Add(A.Fake <IParameter>().WithName(CoreConstants.Parameter.RelExp));
     _expressionContainer.Add(A.Fake <IParameter>().WithName(CoreConstants.Parameter.RelExpNorm));
     _anotherContainer = new MoleculeExpressionContainer().WithName("AnotherContainer");
     sut = new IndividualEnzyme();
     _referenceConcentration = A.Fake <IParameter>().WithName(CoreConstants.Parameter.REFERENCE_CONCENTRATION);
     sut.Add(_referenceConcentration);
     sut.Add(_expressionContainer);
     sut.Add(_anotherContainer);
 }
コード例 #6
0
 protected override void Context()
 {
     base.Context();
     _protein = A.Fake <IndividualProtein>();
     _protein.QueryConfiguration = "toto";
     _exp1     = A.Fake <IMoleculeExpressionContainer>().WithName("exp1");
     _exp2     = A.Fake <IMoleculeExpressionContainer>().WithName("exp2");
     _expInfo1 = A.Fake <ExpressionContainerInfo>();
     _expInfo2 = A.Fake <ExpressionContainerInfo>();
     A.CallTo(() => _protein.AllExpressionsContainers()).Returns(new[] { _exp1, _exp2 });
     _proteinContent = 10;
     A.CallTo(() => _protein.ReferenceConcentration).Returns(DomainHelperForSpecs.ConstantParameterWithValue(_proteinContent));
     A.CallTo(() => _expressionContainerMapper.MapFrom(_exp1)).Returns(_expInfo1);
     A.CallTo(() => _expressionContainerMapper.MapFrom(_exp2)).Returns(_expInfo2);
 }
コード例 #7
0
        public void UpdateProperties(ExpressionContainerDTO expressionDTO, IMoleculeExpressionContainer expressionContainer)
        {
            var group         = _groupRepository.GroupByName(expressionContainer.GroupName);
            var groupInfo     = _representationInfoRepository.InfoFor(RepresentationObjectType.GROUP, expressionContainer.GroupName);
            var containerInfo = _representationInfoRepository.InfoFor(RepresentationObjectType.CONTAINER, expressionContainer.ContainerName);

            expressionDTO.GroupingPathDTO             = groupInfo.ToPathElement();
            expressionDTO.ContainerPathDTO            = containerInfo.ToPathElement();
            expressionDTO.Sequence                    = group.Sequence;
            expressionDTO.RelativeExpressionParameter =
                _parameterMapper.MapFrom(expressionContainer.RelativeExpressionParameter, expressionDTO,
                                         x => x.RelativeExpression, x => x.RelativeExpressionParameter);

            expressionDTO.RelativeExpressionNormParameter =
                _parameterMapper.MapFrom(expressionContainer.RelativeExpressionNormParameter, expressionDTO,
                                         x => x.RelativeExpressionNorm, x => x.RelativeExpressionNormParameter);
        }
コード例 #8
0
 public ExpressionContainerInfo MapFrom(IMoleculeExpressionContainer moleculeExpressionContainer)
 {
     return(new ExpressionContainerInfo(moleculeExpressionContainer.Name,
                                        _representationInfoRepository.DisplayNameFor(moleculeExpressionContainer),
                                        moleculeExpressionContainer.RelativeExpression));
 }
コード例 #9
0
        private void updateReferenceToIndividualParametersForSurrogateContainer(Individual individual, IndividualMolecule molecule, IMoleculeExpressionContainer expressionContainer, IContainer globalMoleculeContainer)
        {
            string relExpName;

            if (expressionContainer.IsBloodCell())
            {
                relExpName = CoreConstants.Parameter.REL_EXP_BLOOD_CELL;
            }
            else if (expressionContainer.IsPlasma())
            {
                relExpName = CoreConstants.Parameter.REL_EXP_PLASMA;
            }
            else if (expressionContainer.IsVascularEndothelium())
            {
                relExpName = CoreConstants.Parameter.REL_EXP_VASC_ENDO;
            }
            else
            {
                return;
            }

            var relExpNormName = CoreConstants.Parameter.NormParameterFor(relExpName);

            updateFromIndividualParameter(globalMoleculeContainer.Parameter(relExpName), expressionContainer.RelativeExpressionParameter, individual, molecule);
            updateFromIndividualParameter(globalMoleculeContainer.Parameter(relExpNormName), expressionContainer.RelativeExpressionNormParameter, individual, molecule);
        }
コード例 #10
0
        private void updateReferenceToIndividualParametersForStandardContainer(Individual individual, IndividualMolecule molecule, IMoleculeExpressionContainer expressionContainer, IList <IContainer> allOrganismContainers, PathCache <IMoleculeAmount> moleculeAmountPath)
        {
            var allContainers = _expressionContainersRetriever.AllContainersFor(individual.Organism, allOrganismContainers, molecule, expressionContainer);

            foreach (var container in allContainers)
            {
                var amount = amountFor(container, molecule, moleculeAmountPath);
                if (amount == null)
                {
                    continue;
                }

                updateFromIndividualParameter(amount.Parameter(CoreConstants.Parameter.REL_EXP), expressionContainer.RelativeExpressionParameter, individual, molecule);
                updateFromIndividualParameter(amount.Parameter(CoreConstants.Parameter.REL_EXP_NORM), expressionContainer.RelativeExpressionNormParameter, individual, molecule);
            }
        }
コード例 #11
0
        private void addContainerExpression(ProteinExpressionDTO proteinExpressionDTO, IndividualProtein protein, IMoleculeExpressionContainer moleculeExpressionContainer)
        {
            var expressionDTO = new ExpressionContainerDTO {
                MoleculeName = protein.Name, ContainerName = moleculeExpressionContainer.Name
            };

            _expressionContainerDTOUpdater.UpdateProperties(expressionDTO, moleculeExpressionContainer);
            proteinExpressionDTO.AddProteinExpression(expressionDTO);
        }
コード例 #12
0
        private IEnumerable <IContainer> allContainersFor(Organism organism, IndividualMolecule molecule, IEnumerable <IContainer> allContainers, IMoleculeExpressionContainer expressionContainer)
        {
            if (molecule.MoleculeType == QuantityType.Transporter)
            {
                return(allContainersForTransporter(organism, molecule.DowncastTo <IndividualTransporter>(), allContainers, expressionContainer.DowncastTo <ITransporterExpressionContainer>()));
            }

            var protein = molecule.DowncastTo <IndividualProtein>();

            //plasma always generated
            if (expressionContainer.IsPlasma())
            {
                return(allPlasmaCompartmentsOf(allContainers));
            }

            switch (protein.TissueLocation)
            {
            case TissueLocation.ExtracellularMembrane:
                if (expressionContainer.IsBloodCell())
                {
                    return(allPlasmaCompartmentsOf(allContainers));
                }
                if (expressionContainer.IsVascularEndothelium())
                {
                    if (protein.MembraneLocation == MembraneLocation.Apical)
                    {
                        return(allPlasmaCompartmentsOf(allContainers));
                    }

                    return(allInterstitialCompartmentsOf(allContainers));
                }
                return(compartmentFor(organism, expressionContainer, CoreConstants.Compartment.Interstitial));

            case TissueLocation.Intracellular:
                if (expressionContainer.IsBloodCell())
                {
                    return(allBloodCellsCompartmentsOf(allContainers));
                }

                if (expressionContainer.IsVascularEndothelium())
                {
                    if (protein.IntracellularVascularEndoLocation == IntracellularVascularEndoLocation.Endosomal)
                    {
                        return(allEndosomeCompartmentsOf(allContainers));
                    }

                    return(allInterstitialCompartmentsOf(allContainers));
                }
                return(compartmentFor(organism, expressionContainer, CoreConstants.Compartment.Intracellular));

            case TissueLocation.Interstitial:
                if (expressionContainer.IsBloodCell())
                {
                    return(allBloodCellsCompartmentsOf(allContainers));
                }

                if (expressionContainer.IsVascularEndothelium())
                {
                    return(allInterstitialCompartmentsOf(allContainers));
                }

                return(compartmentFor(organism, expressionContainer, CoreConstants.Compartment.Interstitial));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #13
0
 public IEnumerable <IContainer> AllContainersFor(Organism organism, IEnumerable <IContainer> allOrganismContainers, IndividualMolecule molecule, IMoleculeExpressionContainer expressionContainer)
 {
     return(allContainersFor(organism, molecule, allOrganismContainers, expressionContainer));
 }