Beispiel #1
0
        private ExpressionContainerDTO expressionContainerFor(IParameter relativeExpression, IParameter relativeExpressioNorm)
        {
            var expressionContainerDTO = new ExpressionContainerDTO();
            var moleculeName           = relativeExpression.ParentContainer.Name;
            var simulation             = _executionContext.Get <Simulation>(relativeExpression.Origin.SimulationId);
            var molecule      = simulation.Individual?.MoleculeByName <IndividualMolecule>(moleculeName);
            var isTransporter = moleculeIsTransporter(molecule);

            expressionContainerDTO.RelativeExpressionParameter     = _containerParameterMapper.MapFrom(relativeExpression, expressionContainerDTO, x => x.RelativeExpression, x => x.RelativeExpressionParameter);
            expressionContainerDTO.RelativeExpressionNormParameter = _containerParameterMapper.MapFrom(relativeExpressioNorm, expressionContainerDTO, x => x.RelativeExpressionNorm, x => x.RelativeExpressionNormParameter);

            IGroup group;

            if (parameterIsGlobalExpression(relativeExpression))
            {
                if (isTransporter)
                {
                    return(null);
                }

                group = _groupRepository.GroupByName(CoreConstants.Groups.VASCULAR_SYSTEM);
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(RepresentationObjectType.CONTAINER, containerNameForGlobalExpression(relativeExpression.Name)).ToPathElement();
                expressionContainerDTO.Sequence         = relativeExpression.Sequence;
            }
            else if (expressionShouldBeTreatedAsGlobal(relativeExpression, isTransporter))
            {
                return(null);
            }
            else if (relativeExpression.HasAncestorNamed(CoreConstants.Organ.Lumen))
            {
                group = _groupRepository.GroupByName(CoreConstants.Groups.GI_LUMEN);
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(relativeExpression.ParentContainer.ParentContainer).ToPathElement();
            }
            else if (relativeExpression.HasAncestorNamed(CoreConstants.Compartment.Mucosa))
            {
                group = _groupRepository.GroupByName(CoreConstants.Groups.GI_MUCOSA);
                //Mucosa rel exp are for instance in Mucosa/Duodnum/interstitial
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(relativeExpression.ParentContainer.ParentContainer.ParentContainer).ToPathElement();
            }

            else
            {
                var expressionContainer = expressionContainerFor(relativeExpression);
                group = _groupRepository.GroupByName(isGiTractOrgan(expressionContainer) ? CoreConstants.Groups.GI_NON_MUCOSA_TISSUE : CoreConstants.Groups.ORGANS_AND_TISSUES);
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(expressionContainer).ToPathElement();
            }

            expressionContainerDTO.GroupingPathDTO = _representationInfoRepository.InfoFor(RepresentationObjectType.GROUP, group.Name).ToPathElement();

            //May have been set previously
            if (expressionContainerDTO.Sequence == 0)
            {
                expressionContainerDTO.Sequence = group.Sequence;
            }

            expressionContainerDTO.MoleculeName  = moleculeName;
            expressionContainerDTO.ParameterPath = _fullPathDisplayResolver.FullPathFor(relativeExpression);
            return(expressionContainerDTO);
        }
Beispiel #2
0
        private void addContainerExpression(ProteinExpressionDTO proteinExpressionDTO, IndividualProtein protein, MoleculeExpressionContainer moleculeExpressionContainer)
        {
            var expressionDTO = new ExpressionContainerDTO {
                MoleculeName = protein.Name, ContainerName = moleculeExpressionContainer.Name
            };

            _expressionContainerDTOUpdater.UpdateProperties(expressionDTO, moleculeExpressionContainer);
            proteinExpressionDTO.AddProteinExpression(expressionDTO);
        }
Beispiel #3
0
 protected override void Context()
 {
     base.Context();
     _command = A.Fake <ICommand>();
     _expressionContainerDTO = new ExpressionContainerDTO {
         RelativeExpressionParameter = new ParameterDTO(_relativeExpressionParameter)
     };
     A.CallTo(() => _moleculeExpressionTask.SetRelativeExpressionInSimulationFor(_relativeExpressionParameter, _value)).Returns(_command);
 }
        public void UpdateProperties(ExpressionContainerDTO expressionDTO, MoleculeExpressionContainer 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);
        }
 public void SetRelativeExpression(ExpressionContainerDTO expressionContainerDTO, double value)
 {
     AddCommand(_moleculeExpressionTask.SetRelativeExpressionFor(_protein, expressionContainerDTO.ContainerName, value));
 }
Beispiel #6
0
 public void SetFavorite(ExpressionContainerDTO protein, bool isFavorite)
 {
     SetFavorite(protein.RelativeExpressionParameter, isFavorite);
 }
Beispiel #7
0
 public void SetRelativeExpression(ExpressionContainerDTO protein, double valueInGuiUnit)
 {
     AddCommand(_moleculeExpressionTask.SetRelativeExpressionInSimulationFor(protein.RelativeExpressionParameter.Parameter, valueInGuiUnit));
 }
Beispiel #8
0
 public void SetFavorite(ExpressionContainerDTO expressionContainerDTO, bool isFavorite)
 {
     SetFavorite(expressionContainerDTO.RelativeExpressionParameter, isFavorite);
 }