public void test_SBMLDocument_setModel()
        {
            SBMLDocument d  = new  SBMLDocument(2, 4);
            Model        m1 = new  Model(2, 4);
            Model        m2 = new  Model(2, 4);
            Model        mout;

            assertTrue(d.getModel() == null);
            int i = d.setModel(m1);

            assertTrue(i == libsbml.LIBSBML_OPERATION_SUCCESS);
            mout = d.getModel();
            assertTrue(mout != null);
            assertTrue(mout != m1);
            i = d.setModel(d.getModel());
            assertTrue(i == libsbml.LIBSBML_OPERATION_SUCCESS);
            mout = d.getModel();
            assertTrue(mout != null);
            assertTrue(mout != m1);
            i = d.setModel(m2);
            assertTrue(i == libsbml.LIBSBML_OPERATION_SUCCESS);
            mout = d.getModel();
            assertTrue(mout != null);
            assertTrue(mout != m2);
            d = null;
        }
Пример #2
0
        public void test_SBMLDocument_clone()
        {
            SBMLDocument o1 = new SBMLDocument();

            o1.setLevelAndVersion(1, 1, false);
            Model m = new Model(1, 1);

            m.createCompartment();
            m.createSpecies();
            m.createReaction();
            m.setId("foo");
            o1.setModel(m);
            assertTrue(o1.getLevel() == 1);
            assertTrue(o1.getVersion() == 1);
            assertTrue(o1.getModel().getId() == "foo");
            assertTrue(o1.getModel().getLevel() == 1);
            assertTrue(o1.getModel().getVersion() == 1);
            assertTrue(o1.getModel().getSBMLDocument() == o1);
            SBMLDocument o2 = o1.clone();

            assertTrue(o2.getLevel() == 1);
            assertTrue(o2.getVersion() == 1);
            assertTrue(o2.getModel().getId() == "foo");
            assertTrue(o2.getModel().getLevel() == 1);
            assertTrue(o2.getModel().getVersion() == 1);
            assertTrue(o2.getModel().getSBMLDocument() == o2);
            o2 = null;
            o1 = null;
        }
        public void test_Model_parent_add()
        {
            SBMLDocument d = new SBMLDocument(2, 4);
            Model        m = new Model(2, 4);

            d.setModel(m);
            assertTrue(d == d.getModel().getParentSBMLObject());
            d = null;
        }
Пример #4
0
        public void test_Model_ancestor_add()
        {
            SBMLDocument d = new SBMLDocument(2, 4);
            Model        m = new Model(2, 4);

            d.setModel(m);
            assertTrue(d == d.getModel().getAncestorOfType(libsbml.SBML_DOCUMENT));
            d = null;
        }
        public void test_SBMLDocument_setModel3()
        {
            SBMLDocument d  = new  SBMLDocument(2, 2);
            Model        m1 = new  Model(2, 2);
            int          i  = d.setModel(m1);

            assertTrue(i == libsbml.LIBSBML_OPERATION_SUCCESS);
            assertTrue(d.getModel() != null);
            d = null;
        }
        public void test_SBMLDocument_setModel1()
        {
            SBMLDocument d  = new  SBMLDocument(2, 2);
            Model        m1 = new  Model(2, 1);
            int          i  = d.setModel(m1);

            assertTrue(i == libsbml.LIBSBML_VERSION_MISMATCH);
            assertTrue(d.getModel() == null);
            d = null;
        }
        public void test_SBMLDocument_setModel2()
        {
            SBMLDocument d  = new  SBMLDocument(2, 2);
            Model        m1 = new  Model(1, 2);

            m1.createCompartment();
            int i = d.setModel(m1);

            assertTrue(i == libsbml.LIBSBML_LEVEL_MISMATCH);
            assertTrue(d.getModel() == null);
            d = null;
        }
        public void test_SBMLDocument_setLevelAndVersion()
        {
            SBMLDocument d  = new  SBMLDocument(2, 2);
            Model        m1 = new  Model(2, 2);

            d.setModel(m1);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.setLevelAndVersion(1, 2, false) == true);
            assertTrue(d.setLevelAndVersion(1, 1, false) == false);
            d = null;
        }
        public void test_SBMLDocument_setLevelAndVersion_Error()
        {
            SBMLDocument d = new  SBMLDocument();

            d.setLevelAndVersion(2, 1, true);
            Model m1 = new  Model(2, 1);
            Unit  u  = new  Unit(2, 1);

            u.setKind(libsbml.UnitKind_forName("mole"));
            u.setOffset(3.2);
            UnitDefinition ud = new  UnitDefinition(2, 1);

            ud.setId("ud");
            ud.addUnit(u);
            m1.addUnitDefinition(ud);
            d.setModel(m1);
            assertTrue(d.setLevelAndVersion(2, 2, true) == false);
            assertTrue(d.setLevelAndVersion(2, 3, true) == false);
            assertTrue(d.setLevelAndVersion(1, 2, true) == false);
            assertTrue(d.setLevelAndVersion(1, 1, true) == false);
            d = null;
        }
Пример #10
0
        public static void Main(string[] args)
        {
            Model model = new Model(3, 1);

            Compartment compartment = new Compartment(3, 1);

            compartment.setId("cheese");
            compartment.setName("french-cheese");
            model.addCompartment(compartment);

            Species species = new Species(3, 1);

            species.setId("salmonella");
            species.setName("german-salmonella");
            model.addSpecies(species);

            SBMLDocument doc = new SBMLDocument(3, 1);

            doc.setModel(model);

            Console.Write(new SBMLWriter().writeSBMLToString(doc));
        }
Пример #11
0
        public void test_create_l1v1_units()
        {
            SBMLDocument     d;
            Model            m;
            Compartment      c;
            KineticLaw       kl;
            Parameter        p;
            Reaction         r;
            Species          s;
            SpeciesReference sr;
            Unit             u;
            UnitDefinition   ud;

            d = new  SBMLDocument();
            m = new  Model(2, 4);
            d.setModel(m);
            ud = m.createUnitDefinition();
            ud.setName("substance");
            u = m.createUnit();
            u.setKind(libsbml.UNIT_KIND_MOLE);
            u.setScale(-3);
            ud = m.createUnitDefinition();
            ud.setName("mls");
            u = m.createUnit();
            u.setKind(libsbml.UNIT_KIND_MOLE);
            u.setScale(-3);
            u = m.createUnit();
            u.setKind(libsbml.UNIT_KIND_LITER);
            u.setExponent(-1);
            u = m.createUnit();
            u.setKind(libsbml.UNIT_KIND_SECOND);
            u.setExponent(-1);
            c = m.createCompartment();
            c.setName("cell");
            s = m.createSpecies();
            s.setName("x0");
            s.setCompartment("cell");
            s.setInitialAmount(1);
            s = m.createSpecies();
            s.setName("x1");
            s.setCompartment("cell");
            s.setInitialAmount(1);
            s = m.createSpecies();
            s.setName("s1");
            s.setCompartment("cell");
            s.setInitialAmount(1);
            s = m.createSpecies();
            s.setName("s2");
            s.setCompartment("cell");
            s.setInitialAmount(1);
            p = m.createParameter();
            p.setName("vm");
            p.setUnits("mls");
            p.setValue(2);
            p = m.createParameter();
            p.setName("km");
            p.setValue(2);
            r = m.createReaction();
            r.setName("v1");
            sr = m.createReactant();
            sr.setSpecies("x0");
            sr = m.createProduct();
            sr.setSpecies("s1");
            kl = m.createKineticLaw();
            kl.setFormula("(vm * s1)/(km + s1)");
            r = m.createReaction();
            r.setName("v2");
            sr = m.createReactant();
            sr.setSpecies("s1");
            sr = m.createProduct();
            sr.setSpecies("s2");
            kl = m.createKineticLaw();
            kl.setFormula("(vm * s2)/(km + s2)");
            r = m.createReaction();
            r.setName("v3");
            sr = m.createReactant();
            sr.setSpecies("s2");
            sr = m.createProduct();
            sr.setSpecies("x1");
            kl = m.createKineticLaw();
            kl.setFormula("(vm * s1)/(km + s1)");
            d = null;
        }
Пример #12
0
    public static void Main(string[] args)
    {
        //
        // Creates an SBMLNamespaces object with the given SBML level, version
        // package name, package version.
        //
        // (NOTE) By defualt, the name of package (i.e. "layout") will be used
        // if the arugment for the prefix is missing or empty. Thus the argument
        // for the prefix can be added as follows:
        //
        //    SBMLNamespaces sbmlns(3,1,"layout",1,"LAYOUT");
        //

        SBMLNamespaces sbmlns = new SBMLNamespaces(3, 1, "layout", 1);

        //
        // (NOTES) The above code creating an SBMLNamespaces object can be replaced
        //         with one of the following other styles.
        //
        // (1) Creates an SBMLNamespace object with a SBML core namespace and then
        //     adds a layout package namespace to the object.
        //
        //         SBMLNamespaces sbmlns(3,1);
        //         sbmlns.addPkgNamespace("layout",1);
        //
        //           OR
        //
        //         SBMLNamespaces sbmlns(3,1);
        //         sbmlns.addNamespace(LayoutExtension::XmlnsL3V1V1,"layout");
        //
        // (2) Creates a LayoutPkgNamespaces object (SBMLNamespace derived class for
        //     layout package. The class is basically used for createing an SBase derived
        //     objects belonging to the layout package) with the given SBML level, version,
        //     and package version
        //
        //        LayoutPkgNamespaces sbmlns(3,1,1);
        //

        // create the document

        SBMLDocument document = new SBMLDocument(sbmlns);

        // set the "required" attribute of layout package  to "true"
        document.setPkgRequired("layout", true);

        // create the Model

        Model model = document.createModel();

        model.setId("TestModel");
        document.setModel(model);


        // create the Compartment

        Compartment compartment = model.createCompartment();

        compartment.setId("Compartment_1");
        compartment.setConstant(true);

        // create the Species

        Species species1 = model.createSpecies();

        species1.setId("Species_1");
        species1.setCompartment(compartment.getId());
        species1.setHasOnlySubstanceUnits(false);
        species1.setBoundaryCondition(false);
        species1.setConstant(false);

        Species species2 = model.createSpecies();

        species2.setId("Species_2");
        species2.setCompartment(compartment.getId());
        species2.setHasOnlySubstanceUnits(false);
        species2.setBoundaryCondition(false);
        species2.setConstant(false);

        // create the Reactions

        Reaction reaction1 = model.createReaction();

        reaction1.setId("Reaction_1");
        reaction1.setReversible(false);
        reaction1.setFast(false);

        SpeciesReference reference1 = reaction1.createReactant();

        reference1.setSpecies(species1.getId());
        reference1.setId("SpeciesReference_1");
        reference1.setConstant(false);


        SpeciesReference reference2 = reaction1.createProduct();

        reference2.setSpecies(species2.getId());
        reference2.setId("SpeciesReference_2");
        reference2.setConstant(false);

        Reaction reaction2 = model.createReaction();

        reaction2.setId("Reaction_2");
        reaction2.setReversible(false);
        reaction2.setFast(false);

        SpeciesReference reference3 = reaction2.createReactant();

        reference3.setSpecies(species2.getId());
        reference3.setId("SpeciesReference_3");
        reference3.setConstant(false);

        SpeciesReference reference4 = reaction2.createProduct();

        reference4.setSpecies(species1.getId());
        reference4.setId("SpeciesReference_4");
        reference4.setConstant(false);


        // create the Layout

        //
        // set the LayoutPkgNamespaces for Level 3 Version1 Layout Version 1
        //
        LayoutPkgNamespaces layoutns = new LayoutPkgNamespaces(3, 1, 1);

        //
        // Get a LayoutModelPlugin object plugged in the model object.
        //
        // The type of the returned value of SBase::getPlugin() function is SBasePlugin, and
        // thus the value needs to be casted for the corresponding derived class.
        //

        LayoutModelPlugin mplugin = (LayoutModelPlugin)(model.getPlugin("layout"));

        if (mplugin == null)
        {
            Console.Error.WriteLine("[Fatal Error] Layout Extension Level " + layoutns.getLevel() + " Version " + layoutns.getVersion() + " package version " + layoutns.getPackageVersion() + " is not registered.");
            Environment.Exit(1);
        }

        //
        // Creates a Layout object via LayoutModelPlugin object.
        //
        Layout layout = mplugin.createLayout();

        layout.setId("Layout_1");
        Dimensions dim = new Dimensions(layoutns, 400.0, 220.0);

        layout.setDimensions(dim);


        // create the CompartmentGlyph

        CompartmentGlyph compartmentGlyph = layout.createCompartmentGlyph();

        compartmentGlyph.setId("CompartmentGlyph_1");
        compartmentGlyph.setCompartmentId(compartment.getId());
        BoundingBox bb = new BoundingBox(layoutns, "bb1", 5, 5, 390, 210);

        compartmentGlyph.setBoundingBox(bb);


        // create the SpeciesGlyphs

        SpeciesGlyph speciesGlyph1 = layout.createSpeciesGlyph();

        speciesGlyph1.setId("SpeciesGlyph_1");
        speciesGlyph1.setSpeciesId(species1.getId());
        bb = new BoundingBox(layoutns, "bb2", 80, 26, 240, 24);
        speciesGlyph1.setBoundingBox(bb);

        TextGlyph textGlyph1 = layout.createTextGlyph();

        textGlyph1.setId("TextGlyph_01");
        bb = new BoundingBox(layoutns, "bbA", 92, 26, 228, 24);
        textGlyph1.setBoundingBox(bb);
        textGlyph1.setOriginOfTextId(speciesGlyph1.getId());
        textGlyph1.setGraphicalObjectId(speciesGlyph1.getId());

        SpeciesGlyph speciesGlyph2 = layout.createSpeciesGlyph();

        speciesGlyph2.setId("SpeciesGlyph_2");
        speciesGlyph2.setSpeciesId(species2.getId());
        bb = new BoundingBox(layoutns, "bb3", 80, 170, 240, 24);
        speciesGlyph2.setBoundingBox(bb);

        TextGlyph textGlyph2 = layout.createTextGlyph();

        textGlyph2.setId("TextGlyph_02");
        bb = new BoundingBox(layoutns, "bbB", 92, 170, 228, 24);
        textGlyph2.setBoundingBox(bb);
        textGlyph2.setOriginOfTextId(speciesGlyph2.getId());
        textGlyph2.setGraphicalObjectId(speciesGlyph2.getId());

        // create the ReactionGlyphs

        ReactionGlyph reactionGlyph1 = layout.createReactionGlyph();

        reactionGlyph1.setId("ReactionGlyph_1");
        reactionGlyph1.setReactionId(reaction1.getId());

        Curve       reactionCurve1 = reactionGlyph1.getCurve();
        LineSegment ls             = reactionCurve1.createLineSegment();
        Point       p = new Point(layoutns, 165, 105);

        ls.setStart(p);
        p = new Point(layoutns, 165, 115);
        ls.setEnd(p);

        ReactionGlyph reactionGlyph2 = layout.createReactionGlyph();

        reactionGlyph2.setId("ReactionGlyph_1");
        reactionGlyph2.setReactionId(reaction2.getId());

        Curve reactionCurve2 = reactionGlyph2.getCurve();

        ls = reactionCurve2.createLineSegment();
        p  = new Point(layoutns, 235, 105);
        ls.setStart(p);
        p = new Point(layoutns, 235, 115);
        ls.setEnd(p);

        // add the SpeciesReferenceGlyphs

        SpeciesReferenceGlyph speciesReferenceGlyph1 = reactionGlyph1.createSpeciesReferenceGlyph();

        speciesReferenceGlyph1.setId("SpeciesReferenceGlyph_1");
        speciesReferenceGlyph1.setSpeciesGlyphId(speciesGlyph1.getId());
        speciesReferenceGlyph1.setSpeciesReferenceId(reference1.getId());
        speciesReferenceGlyph1.setRole(libsbml.SPECIES_ROLE_SUBSTRATE);

        Curve       speciesReferenceCurve1 = speciesReferenceGlyph1.getCurve();
        CubicBezier cb = speciesReferenceCurve1.createCubicBezier();

        p = new Point(layoutns, 165, 105);
        cb.setStart(p);
        p = new Point(layoutns, 165, 90);
        cb.setBasePoint1(p);
        p = new Point(layoutns, 165, 90);
        cb.setBasePoint2(p);
        p = new Point(layoutns, 195, 60);
        cb.setEnd(p);

        SpeciesReferenceGlyph speciesReferenceGlyph2 = reactionGlyph1.createSpeciesReferenceGlyph();

        speciesReferenceGlyph2.setId("SpeciesReferenceGlyph_2");
        speciesReferenceGlyph2.setSpeciesGlyphId(speciesGlyph2.getId());
        speciesReferenceGlyph2.setSpeciesReferenceId(reference2.getId());
        speciesReferenceGlyph2.setRole(libsbml.SPECIES_ROLE_PRODUCT);

        Curve speciesReferenceCurve2 = speciesReferenceGlyph2.getCurve();

        cb = speciesReferenceCurve2.createCubicBezier();
        p  = new Point(layoutns, 165, 115);
        cb.setStart(p);
        p = new Point(layoutns, 165, 130);
        cb.setBasePoint1(p);
        p = new Point(layoutns, 165, 130);
        cb.setBasePoint2(p);
        p = new Point(layoutns, 195, 160);
        cb.setEnd(p);


        SpeciesReferenceGlyph speciesReferenceGlyph3 = reactionGlyph2.createSpeciesReferenceGlyph();

        speciesReferenceGlyph3.setId("SpeciesReferenceGlyph_3");
        speciesReferenceGlyph3.setSpeciesGlyphId(speciesGlyph2.getId());
        speciesReferenceGlyph3.setSpeciesReferenceId(reference3.getId());
        speciesReferenceGlyph3.setRole(libsbml.SPECIES_ROLE_SUBSTRATE);

        Curve speciesReferenceCurve3 = speciesReferenceGlyph3.getCurve();

        cb = speciesReferenceCurve3.createCubicBezier();
        p  = new Point(layoutns, 235, 115);
        cb.setStart(p);
        p = new Point(layoutns, 235, 130);
        cb.setBasePoint1(p);
        p = new Point(layoutns, 235, 130);
        cb.setBasePoint2(p);
        p = new Point(layoutns, 205, 160);
        cb.setEnd(p);

        SpeciesReferenceGlyph speciesReferenceGlyph4 = reactionGlyph2.createSpeciesReferenceGlyph();

        speciesReferenceGlyph4.setId("SpeciesReferenceGlyph_4");
        speciesReferenceGlyph4.setSpeciesGlyphId(speciesGlyph1.getId());
        speciesReferenceGlyph4.setSpeciesReferenceId(reference4.getId());
        speciesReferenceGlyph4.setRole(libsbml.SPECIES_ROLE_PRODUCT);

        Curve speciesReferenceCurve4 = speciesReferenceGlyph4.getCurve();

        cb = speciesReferenceCurve4.createCubicBezier();
        p  = new Point(layoutns, 235, 105);
        cb.setStart(p);
        p = new Point(layoutns, 235, 90);
        cb.setBasePoint1(p);
        p = new Point(layoutns, 235, 90);
        cb.setBasePoint2(p);
        p = new Point(layoutns, 205, 60);
        cb.setEnd(p);

        libsbml.writeSBML(document, "layout_example1_L3-cs.xml");
        Console.WriteLine("all done ...");
    }