예제 #1
0
        public void test_L3_Compartment_initDefaults()
        {
            Compartment c = new  Compartment(3, 1);

            c.setId("A");
            assertEquals(true, c.isSetId());
            assertEquals(false, c.isSetName());
            assertEquals(false, c.isSetSize());
            assertEquals(false, c.isSetVolume());
            assertEquals(false, c.isSetUnits());
            assertEquals(false, c.isSetConstant());
            assertEquals(false, c.isSetSpatialDimensions());
            c.initDefaults();
            assertTrue(("A" == c.getId()));
            assertTrue(c.getName() == "");
            assertTrue(("litre" == c.getUnits()));
            assertTrue(c.getSpatialDimensions() == 3);
            assertTrue(c.getSize() == 1);
            assertTrue(c.getConstant() == true);
            assertEquals(true, c.isSetId());
            assertEquals(false, c.isSetName());
            assertEquals(false, c.isSetSize());
            assertEquals(false, c.isSetVolume());
            assertEquals(true, c.isSetUnits());
            assertEquals(true, c.isSetConstant());
            assertEquals(true, c.isSetSpatialDimensions());
            c = null;
        }
예제 #2
0
        public void test_L3_Compartment_createWithNS()
        {
            XMLNamespaces xmlns = new  XMLNamespaces();

            xmlns.add("http://www.sbml.org", "testsbml");
            SBMLNamespaces sbmlns = new  SBMLNamespaces(3, 1);

            sbmlns.addNamespaces(xmlns);
            Compartment c = new  Compartment(sbmlns);

            assertTrue(c.getTypeCode() == libsbml.SBML_COMPARTMENT);
            assertTrue(c.getMetaId() == "");
            assertTrue(c.getNotes() == null);
            assertTrue(c.getAnnotation() == null);
            assertTrue(c.getLevel() == 3);
            assertTrue(c.getVersion() == 1);
            assertTrue(c.getNamespaces() != null);
            assertTrue(c.getNamespaces().getLength() == 2);
            assertTrue(c.getId() == "");
            assertTrue(c.getName() == "");
            assertTrue(c.getUnits() == "");
            assertTrue(c.getOutside() == "");
            assertEquals(true, isnan(c.getSpatialDimensionsAsDouble()));
            assertEquals(true, isnan(c.getVolume()));
            assertTrue(c.getConstant() == true);
            assertEquals(false, c.isSetId());
            assertEquals(false, c.isSetSpatialDimensions());
            assertEquals(false, c.isSetName());
            assertEquals(false, c.isSetSize());
            assertEquals(false, c.isSetVolume());
            assertEquals(false, c.isSetUnits());
            assertEquals(false, c.isSetOutside());
            assertEquals(false, c.isSetConstant());
            c = null;
        }
예제 #3
0
        public void test_Compartment_setId3()
        {
            Compartment c = new  Compartment(2, 2);
            int         i = c.setId("cell");

            assertTrue(i == libsbml.LIBSBML_OPERATION_SUCCESS);
            assertEquals(true, c.isSetId());
            assertTrue(("cell" == c.getId()));
            c = null;
        }
예제 #4
0
 public void test_L3_Compartment_create()
 {
     assertTrue(C.getTypeCode() == libsbml.SBML_COMPARTMENT);
     assertTrue(C.getMetaId() == "");
     assertTrue(C.getNotes() == null);
     assertTrue(C.getAnnotation() == null);
     assertTrue(C.getId() == "");
     assertTrue(C.getName() == "");
     assertTrue(C.getUnits() == "");
     assertTrue(C.getOutside() == "");
     assertEquals(true, isnan(C.getSpatialDimensionsAsDouble()));
     assertEquals(true, isnan(C.getVolume()));
     assertTrue(C.getConstant() == true);
     assertEquals(false, C.isSetId());
     assertEquals(false, C.isSetSpatialDimensions());
     assertEquals(false, C.isSetName());
     assertEquals(false, C.isSetSize());
     assertEquals(false, C.isSetVolume());
     assertEquals(false, C.isSetUnits());
     assertEquals(false, C.isSetOutside());
     assertEquals(false, C.isSetConstant());
 }
예제 #5
0
    private static void printCompartmentInfo(Compartment compartment)
    {
        var plugin = (MultiCompartmentPlugin)compartment.getPlugin("multi");
        var name   = compartment.isSetName() ? compartment.getName() : compartment.getId();

        Console.WriteLine("Compartment {0}: isType = {1}", name, plugin.getIsType());
        for (int i = 0; i < plugin.getNumCompartmentReferences(); ++i)
        {
            var current = plugin.getCompartmentReference(i);
            Console.WriteLine("  compartmentReference: {0}", current.getCompartment());
        }

        Console.WriteLine();
    }
예제 #6
0
        public void test_Model_getCompartment()
        {
            Compartment c1 = new  Compartment(2, 4);
            Compartment c2 = new  Compartment(2, 4);

            c1.setId("A");
            c2.setId("B");
            M.addCompartment(c1);
            M.addCompartment(c2);
            assertTrue(M.getNumCompartments() == 2);
            c1 = M.getCompartment(0);
            c2 = M.getCompartment(1);
            assertTrue(("A" == c1.getId()));
            assertTrue(("B" == c2.getId()));
        }
예제 #7
0
        public void test_Compartment_copyConstructor()
        {
            Compartment o1 = new Compartment(2, 4);

            o1.setId("c");
            o1.setOutside("c2");
            assertTrue(o1.getId() == "c");
            assertTrue(o1.getOutside() == "c2");
            Compartment o2 = new Compartment(o1);

            assertTrue(o2.getId() == "c");
            assertTrue(o2.getOutside() == "c2");
            assertTrue(o2.getParentSBMLObject() == o1.getParentSBMLObject());
            o2 = null;
            o1 = null;
        }
예제 #8
0
        public void test_Compartment_createWith()
        {
            Compartment c = new  Compartment(2, 4);

            c.setId("A");
            assertTrue(c.getTypeCode() == libsbml.SBML_COMPARTMENT);
            assertTrue(c.getMetaId() == "");
            assertTrue(c.getNotes() == null);
            assertTrue(c.getAnnotation() == null);
            assertTrue(c.getName() == "");
            assertTrue(c.getSpatialDimensions() == 3);
            assertTrue(("A" == c.getId()));
            assertTrue(c.getConstant() == true);
            assertEquals(true, c.isSetId());
            assertEquals(false, c.isSetName());
            c = null;
        }
예제 #9
0
        public void test_Compartment_assignmentOperator()
        {
            Compartment o1 = new Compartment(2, 4);

            o1.setId("c");
            o1.setOutside("c2");
            assertTrue(o1.getId() == "c");
            assertTrue(o1.getOutside() == "c2");
            Compartment o2 = new Compartment(2, 4);

            o2 = o1;
            assertTrue(o2.getId() == "c");
            assertTrue(o2.getOutside() == "c2");
            assertTrue(o2.getParentSBMLObject() == o1.getParentSBMLObject());
            o2 = null;
            o1 = null;
        }
예제 #10
0
        /// <summary>
        ///     Creates a MoBi Container for a SBML compartment.
        /// </summary>
        public IContainer CreateContainerFromCompartment(Compartment compartment)
        {
            var container = _objectBaseFactory.Create <IContainer>()
                            .WithName(compartment.getId())
                            .WithContainerType(ContainerType.Compartment)
                            .WithMode(ContainerMode.Physical)
                            .WithDescription(SBMLConstants.SBML_NOTES + compartment.getNotesString());

            CreateMoleculeProperties(container);
            container.Add(CreateVolumeParameter());

            if (!compartment.isSetSize())
            {
                return(container);
            }
            var sizeParameter = CreateSizeParameter(compartment);

            container.Add(sizeParameter);

            return(container);
        }
예제 #11
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 ...");
    }