Esempio n. 1
0
        public override void Execute(IExecutionContext context)
        {
            ObjectType = context.TypeFor(_molecule);
            var containerName = string.IsNullOrEmpty(_simulationSubject.Name) ? CoreConstants.ContainerName.NameTemplate : _simulationSubject.Name;

            Description = PKSimConstants.Command.AddEntityToContainer(ObjectType, _molecule.Name, context.TypeFor(_simulationSubject), containerName);

            //First add the protein expression to the individual so that undo will be available
            Add(AddMoleculeToSimulationSubjectCommand(_molecule, _simulationSubject, context));

            //Then update the new expression values
            foreach (var expressionResult in _queryExpressionResults.ExpressionResults)
            {
                Add(new SetRelativeExpressionCommand(_molecule.GetRelativeExpressionParameterFor(expressionResult.ContainerName), expressionResult.RelativeExpression));
            }

            Add(new NormalizeRelativeExpressionCommand(_molecule, context));

            //update properties from first command
            this.UpdatePropertiesFrom(All().FirstOrDefault());

            base.Execute(context);

            //clear references
            _molecule = null;
            _queryExpressionResults = null;
            _simulationSubject      = null;
        }
 private void setGlobalParameterValue(IndividualMolecule molecule, string expressionName, string containerName)
 {
     if (!molecule.HasContainerNamed(containerName))
     {
         return;
     }
     trySetValue(moleculeGlobalPathFor(molecule.Name).AndAdd(CoreConstants.Parameter.NormParameterFor(expressionName)), molecule.GetRelativeExpressionNormParameterFor(containerName));
     trySetValue(moleculeGlobalPathFor(molecule.Name).AndAdd(expressionName), molecule.GetRelativeExpressionParameterFor(containerName));
 }
        private void setParameterValuesForStandardContainer(IndividualMolecule molecule, IContainer expressionContainer)
        {
            var containerName  = relativeExpressionContainerNameFrom(molecule, expressionContainer);
            var relExpNormPath = relExpNormPathFor(molecule, expressionContainer);
            var relExpPath     = relExpPathFor(molecule, expressionContainer);

            trySetValue(relExpNormPath, molecule.GetRelativeExpressionNormParameterFor(containerName));
            trySetValue(relExpPath, molecule.GetRelativeExpressionParameterFor(containerName));
            var relExpOut = relExpOutPathFor(molecule, expressionContainer);

            trySetFormula(relExpOut, CoreConstants.Rate.RelExpOutFromNorm);
        }
 public SetRelativeExpressionAndNormalizeCommand(IndividualMolecule molecule, string proteinContainerName, double value)
 {
     _molecule        = molecule;
     _relExpParameter = molecule.GetRelativeExpressionParameterFor(proteinContainerName);
     _newValue        = value;
 }