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); }
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); }
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)); }
public void SetFavorite(ExpressionContainerDTO protein, bool isFavorite) { SetFavorite(protein.RelativeExpressionParameter, isFavorite); }
public void SetRelativeExpression(ExpressionContainerDTO protein, double valueInGuiUnit) { AddCommand(_moleculeExpressionTask.SetRelativeExpressionInSimulationFor(protein.RelativeExpressionParameter.Parameter, valueInGuiUnit)); }
public void SetFavorite(ExpressionContainerDTO expressionContainerDTO, bool isFavorite) { SetFavorite(expressionContainerDTO.RelativeExpressionParameter, isFavorite); }