Example #1
0
        /// <summary>
        ///     Creates a MoBi ReactionPartner by a given SBML Species Reference
        /// </summary>
        private IReactionPartnerBuilder CreateReactionPartner(SpeciesReference speciesReference, Model model)
        {
            var molecule = _sbmlInformation.GetMoleculeBySBMLId(speciesReference.getSpecies());

            if (molecule == null)
            {
                return(null);
            }

            IReactionPartnerBuilder productBuilder = new ReactionPartnerBuilder
            {
                MoleculeName = molecule.Name,
            };

            if (speciesReference.isSetStoichiometryMath())
            {
                CreateStoichiometryErrorMsg(speciesReference.getSpecies());
            }
            productBuilder.StoichiometricCoefficient = speciesReference.isSetStoichiometry() ? speciesReference.getStoichiometry() : SBMLConstants.SBML_STOICHIOMETRY_DEFAULT;

            var species = GetSpeciesById(speciesReference.getSpecies(), model);

            if (species == null)
            {
                return(productBuilder);
            }
            if (species.getConstant() && species.getBoundaryCondition() == false)
            {
                productBuilder.StoichiometricCoefficient = 0;
            }

            return(productBuilder);
        }
        private void addReactionPartnerTo(PKSimReaction reaction, FlatReactionPartner flatReactionPartner)
        {
            if (flatReactionPartner.Direction.Equals(CoreConstants.ORM.PROCESS_MOLECULE_DIRECTION_MODIFIER))
            {
                //---- not Educt/Product, just a modifier
                reaction.AddModifier(flatReactionPartner.Molecule);
                return;
            }

            //---- from now on, must be educt/product
            var reactionPartner = new ReactionPartnerBuilder()
            {
                MoleculeName = flatReactionPartner.Molecule,
                StoichiometricCoefficient = flatReactionPartner.StoichCoeff
            };

            if (flatReactionPartner.Direction.Equals(CoreConstants.ORM.PROCESS_MOLECULE_DIRECTION_IN))
            {
                reaction.AddEduct(reactionPartner);
                return;
            }

            if (flatReactionPartner.Direction.Equals(CoreConstants.ORM.PROCESS_MOLECULE_DIRECTION_OUT))
            {
                reaction.AddProduct(reactionPartner);
                return;
            }

            //invalid direction (should never happen)
            throw new ArgumentOutOfRangeException(flatReactionPartner.Direction);
        }
        protected override void Context()
        {
            _simulation = new ModelCoreSimulation();
            var root = new Container();

            root.Add(new EventGroup());
            _simulation.Model              = new Model();
            _simulation.Model.Root         = root;
            _simulation.BuildConfiguration = new BuildConfiguration();
            var reactionBuildingBlock = new ReactionBuildingBlock();
            var reactionAtoB          = new ReactionBuilder();
            var reactionBtoA          = new ReactionBuilder();
            var partnerA = new ReactionPartnerBuilder("A", 0);
            var partnerB = new ReactionPartnerBuilder("B", 0);

            //Making both reactions dependent on each other
            reactionAtoB.AddProduct(partnerA);
            reactionBtoA.AddProduct(partnerB);
            reactionAtoB.AddEduct(partnerB);
            reactionBtoA.AddEduct(partnerA);
            reactionBuildingBlock.Add(reactionAtoB);
            reactionBuildingBlock.Add(reactionBtoA);

            _simulation.BuildConfiguration.Reactions = reactionBuildingBlock;
        }
Example #4
0
        public void TestSerialization()
        {
            var x1 = new ReactionPartnerBuilder("H2O", 3.1);
            var x2 = SerializeAndDeserialize(x1);

            AssertForSpecs.AreEqualReactionPartnerBuilder(x1, x2);
        }
Example #5
0
        /// <summary>
        ///     Creates a reaction product with the default stoichiometry.
        /// </summary>
        private static IReactionPartnerBuilder CreateProduct(string molculeName)
        {
            IReactionPartnerBuilder productBuilder = new ReactionPartnerBuilder
            {
                MoleculeName = molculeName
            };

            productBuilder.StoichiometricCoefficient = SBMLConstants.SBML_STOICHIOMETRY_DEFAULT;
            return(productBuilder);
        }
        protected override void Context()
        {
            base.Context();

            _reactionBuilder = new ReactionBuilder();
            var reactionPartnerBuilder = new ReactionPartnerBuilder("A", 1);

            _reactionBuilder.AddProduct(reactionPartnerBuilder);
            _dto = new ReactionPartnerBuilderDTO(reactionPartnerBuilder);

            A.CallTo(() => _reactionProductsPresenter.Subject).Returns(_reactionBuilder);
        }
Example #7
0
        protected override void Context()
        {
            base.Context();
            _reactionPartnerBuilder = new ReactionPartnerBuilder("moleculeName", 2.0);
            _reactionPartnerDTO     = new ReactionPartnerBuilderDTO(_reactionPartnerBuilder);
            _reactionBuilderDTO.Educts.Add(_reactionPartnerDTO);
            _reactionBuilderDTO.ReactionBuilder.AddEduct(_reactionPartnerBuilder);
            _reactionBuildingBlock.DiagramModel = A.Fake <IDiagramModel>();

            A.CallTo(() => _interactionTaskForReactionBuilder.SelectMoleculeNames(_reactionBuildingBlock, A <IEnumerable <string> > ._, A <string> ._, AppConstants.Captions.Educts)).Returns(new List <string> {
                "moleculeName"
            });

            sut.Edit(_reactionBuilderDTO, _reactionBuildingBlock);
        }
 protected override void Context()
 {
     _oldMoleculeName = "A";
     _newMoleculeName = "B";
     _reaction        = new ReactionBuilder().WithId("R");
     _reactionPartner = new ReactionPartnerBuilder(_oldMoleculeName, 3);
     _buildingBlock   = A.Fake <IMoBiReactionBuildingBlock>().WithId("BB");
     _context         = A.Fake <IMoBiContext>();
     A.CallTo(() => _context.Get <IReactionBuilder>(_reaction.Id)).Returns(_reaction);
     A.CallTo(() => _context.Get <IMoBiReactionBuildingBlock>(_buildingBlock.Id)).Returns(_buildingBlock);
     AddPartnerToReaction();
     _diagramManager = A.Fake <IMoBiReactionDiagramManager>();
     A.CallTo(() => _buildingBlock.DiagramManager).Returns(_diagramManager);
     sut = new EditReactionPartnerMoleculeNameCommand(_newMoleculeName, _reaction, _reactionPartner, _buildingBlock);
 }