private void hideInterstialParametersForIntracellularLocalizationInTissue(Individual individual, IndividualMolecule molecule, IList <IContainer> allOrganismContainers, PathCache <IMoleculeAmount> moleculeAmountPath) { var protein = molecule as IndividualProtein; if (protein?.TissueLocation != TissueLocation.Intracellular || protein.IntracellularVascularEndoLocation != IntracellularVascularEndoLocation.Interstitial) { return; } var vascularEndothelium = protein.ExpressionContainer(CoreConstants.Compartment.VascularEndothelium); if (vascularEndothelium == null) { return; } var allInterstitialContainer = _expressionContainersRetriever.AllContainersFor(individual.Organism, allOrganismContainers, protein, vascularEndothelium); foreach (var interstitial in allInterstitialContainer) { var amount = amountFor(interstitial, molecule, moleculeAmountPath); if (amount == null) { continue; } hideParameter(amount.Parameter(CoreConstants.Parameters.REL_EXP)); hideParameter(amount.Parameter(CoreConstants.Parameters.REL_EXP_NORM)); } }
private void updateProteinParametersValues(IndividualProtein protein) { setGlobalParameterValue(protein, CoreConstants.Parameter.REL_EXP_BLOOD_CELL, CoreConstants.Compartment.BloodCells); setGlobalParameterValue(protein, CoreConstants.Parameter.REL_EXP_PLASMA, CoreConstants.Compartment.Plasma); setGlobalParameterValue(protein, CoreConstants.Parameter.REL_EXP_VASC_ENDO, CoreConstants.Compartment.VascularEndothelium); foreach (var expressionContainer in _expressionContainersRetriever.AllContainersFor(_spatialStructure, protein)) { if (expressionContainer.IsBloodCell()) { setParameterValuesForBloodCells(protein, expressionContainer); } else if (expressionContainer.IsPlasma()) { setParameterValuesForPlasma(protein, expressionContainer); } else if (expressionContainer.IsInterstitial()) { setParameterValuesForInterstitial(protein, expressionContainer); } else if (expressionContainer.IsEndosome()) { setParameterValuesForEndosome(protein, expressionContainer); } else { setParameterValuesForStandardContainer(protein, expressionContainer); } } }
private void updateAllParametersFor(Simulation simulation, Individual individual, IList <IContainer> allOrganismContainers, IndividualMolecule molecule, PathCache <IMoleculeAmount> moleculeAmountPath) { var globalMoleculeContainer = simulation.Model.Root .GetSingleChildByName <IContainer>(molecule.Name); globalMoleculeContainer.Parameter(CoreConstants.Parameter.ONTOGENY_FACTOR_GI).Visible = false; globalMoleculeContainer.Parameter(CoreConstants.Parameter.ONTOGENY_FACTOR).Visible = false; hideGlobalParametersForUndefinedMolecule(globalMoleculeContainer); foreach (var expressionContainer in molecule.AllExpressionsContainers()) { var relExpNorm = expressionContainer.RelativeExpressionNormParameter; var relExp = expressionContainer.RelativeExpressionParameter; if (expressionContainer.IsSurrogate()) { string relExpName; if (expressionContainer.IsBloodCell()) { relExpName = CoreConstants.Parameter.RelExpBloodCell; } else if (expressionContainer.IsPlasma()) { relExpName = CoreConstants.Parameter.RelExpPlasma; } else if (expressionContainer.IsVascularEndothelium()) { relExpName = CoreConstants.Parameter.RelExpVascEndo; } else { continue; } string relExpNormName = CoreConstants.Parameter.NormParameterFor(relExpName); updateFromIndividualParameter(globalMoleculeContainer.Parameter(relExpName), relExp, individual, molecule); updateFromIndividualParameter(globalMoleculeContainer.Parameter(relExpNormName), relExpNorm, individual, molecule); } else { //not a global parameter simply update the norm parameters var allContainers = _expressionContainersRetriever.AllContainersFor(individual.Organism, allOrganismContainers, molecule, expressionContainer); foreach (var container in allContainers) { var amount = moleculeAmountPath[_entityPathResolver.ObjectPathFor(container).AndAdd(molecule.Name).ToString()]; if (amount == null) { continue; } updateFromIndividualParameter(amount.Parameter(CoreConstants.Parameter.RelExpNorm), relExpNorm, individual, molecule); updateFromIndividualParameter(amount.Parameter(CoreConstants.Parameter.RelExp), relExp, individual, molecule); } } } }
private IEnumerable <IObjectPath> moleculesInvolvedInExpression(ISpatialStructure spatialStructure, IndividualMolecule molecule, IReadOnlyList <CompoundProperties> compoundPropertiesList) { foreach (var expressionContainer in _expressionContainersRetriever.AllContainersFor(spatialStructure, molecule)) { var containerPath = _objectPathFactory.CreateAbsoluteObjectPath(expressionContainer); foreach (var compoundProperties in compoundPropertiesList) { foreach (var moleculeName in compoundProperties.Processes.AllInducedMoleculeNames(molecule)) { yield return(containerPath.Clone <IObjectPath>().AndAdd(moleculeName)); } } } }