public static void main(String[] args) { if (args.length != 1) { println("Usage: java printAnnotation filename"); System.exit(1); } String filename = args[0]; SBMLDocument document; SBMLReader reader = new SBMLReader(); document = reader.readSBML(filename); long errors = document.getNumErrors(); println("\nfilename: " + filename + "\n"); if (errors > 0) { document.printErrors(); System.exit((int) errors); } /* Model */ Model m = document.getModel(); printAnnotation(m); for (int i = 0; i < m.getNumReactions(); i++) { Reaction re = m.getReaction(i); printAnnotation(re); /* SpeciesReference (Reactant) */ for (int j = 0; j < re.getNumReactants(); j++) { SpeciesReference rt = re.getReactant(j); if (rt.isSetAnnotation()) print(" "); printAnnotation(rt, (rt.isSetSpecies() ? rt.getSpecies() : "")); } /* SpeciesReference (Product) */ for (int j = 0; j < re.getNumProducts(); j++) { SpeciesReference rt = re.getProduct(j); if (rt.isSetAnnotation()) print(" "); printAnnotation(rt, (rt.isSetSpecies() ? rt.getSpecies() : "")); } /* ModifierSpeciesReference (Modifier) */ for (int j = 0; j < re.getNumModifiers(); j++) { ModifierSpeciesReference md = re.getModifier(j); if (md.isSetAnnotation()) print(" "); printAnnotation(md, (md.isSetSpecies() ? md.getSpecies() : "")); } /* KineticLaw */ if (re.isSetKineticLaw()) { KineticLaw kl = re.getKineticLaw(); if (kl.isSetAnnotation()) print(" "); printAnnotation(kl); /* Parameter */ for (int j = 0; j < kl.getNumParameters(); j++) { Parameter pa = kl.getParameter(j); if (pa.isSetAnnotation()) print(" "); printAnnotation(pa); } } } /* Species */ for (int i = 0; i < m.getNumSpecies(); i++) { Species sp = m.getSpecies(i); printAnnotation(sp); } /* Compartment */ for (int i = 0; i < m.getNumCompartments(); i++) { Compartment sp = m.getCompartment(i); printAnnotation(sp); } /* FunctionDefinition */ for (int i = 0; i < m.getNumFunctionDefinitions(); i++) { FunctionDefinition sp = m.getFunctionDefinition(i); printAnnotation(sp); } /* UnitDefinition */ for (int i = 0; i < m.getNumUnitDefinitions(); i++) { UnitDefinition sp = m.getUnitDefinition(i); printAnnotation(sp); } /* Parameter */ for (int i = 0; i < m.getNumParameters(); i++) { Parameter sp = m.getParameter(i); printAnnotation(sp); } /* Rule */ for (int i = 0; i < m.getNumRules(); i++) { Rule sp = m.getRule(i); printAnnotation(sp); } /* InitialAssignment */ for (int i = 0; i < m.getNumInitialAssignments(); i++) { InitialAssignment sp = m.getInitialAssignment(i); printAnnotation(sp); } /* Event */ for (int i = 0; i < m.getNumEvents(); i++) { Event sp = m.getEvent(i); printAnnotation(sp); /* Trigger */ if (sp.isSetTrigger()) { Trigger tg = sp.getTrigger(); if (tg.isSetAnnotation()) print(" "); printAnnotation(tg); } /* Delay */ if (sp.isSetDelay()) { Delay dl = sp.getDelay(); if (dl.isSetAnnotation()) print(" "); printAnnotation(dl); } /* EventAssignment */ for (int j = 0; j < sp.getNumEventAssignments(); j++) { EventAssignment ea = sp.getEventAssignment(j); if (ea.isSetAnnotation()) print(" "); printAnnotation(ea); } } /* SpeciesType */ for (int i = 0; i < m.getNumSpeciesTypes(); i++) { SpeciesType sp = m.getSpeciesType(i); printAnnotation(sp); } /* Constraint */ for (int i = 0; i < m.getNumConstraints(); i++) { Constraint sp = m.getConstraint(i); printAnnotation(sp); } System.exit((int) errors); }
public static void main(String args[]) { // create the document SBMLDocument document = new SBMLDocument(2, 1); // ensure the layout api is enabled document.enablePackage(LayoutExtension.getXmlnsL2(), "layout", true); // create the Model Model model = document.createModel("TestModel"); // create the Compartment Compartment compartment = model.createCompartment(); compartment.setId("Compartment_1"); // create the Species Species species1 = model.createSpecies(); species1.setId("Species_1"); species1.setCompartment(compartment.getId()); Species species2 = model.createSpecies(); species2.setId("Species_2"); species2.setCompartment(compartment.getId()); // create the Reactions Reaction reaction1 = model.createReaction(); reaction1.setId("Reaction_1"); SpeciesReference reference1 = reaction1.createReactant(); reference1.setSpecies(species1.getId()); reference1.setId("SpeciesReference_1"); reaction1.setReversible(false); SpeciesReference reference2 = reaction1.createProduct(); reference2.setSpecies(species2.getId()); reference2.setId("SpeciesReference_2"); Reaction reaction2 = model.createReaction(); reaction2.setId("Reaction_2"); reaction2.setReversible(false); SpeciesReference reference3 = reaction2.createReactant(); reference3.setSpecies(species2.getId()); reference3.setId("SpeciesReference_3"); SpeciesReference reference4 = reaction2.createProduct(); reference4.setSpecies(species1.getId()); reference4.setId("SpeciesReference_4"); // create the Layout LayoutModelPlugin mplugin = (LayoutModelPlugin) (model.getPlugin("layout")); Layout layout = mplugin.createLayout(); layout.setId("Layout_1"); layout.setDimensions(createDimensions(400, 220)); // create the CompartmentGlyph CompartmentGlyph compartmentGlyph = layout.createCompartmentGlyph(); compartmentGlyph.setId("CompartmentGlyph_1"); compartmentGlyph.setCompartmentId(compartment.getId()); compartmentGlyph.setBoundingBox(createBoundingBox("bb1", 5, 5, 390, 210)); // create the SpeciesGlyphs SpeciesGlyph speciesGlyph1 = layout.createSpeciesGlyph(); speciesGlyph1.setId("SpeciesGlyph_1"); speciesGlyph1.setSpeciesId(species1.getId()); speciesGlyph1.setBoundingBox(createBoundingBox("bb2", 80, 26, 240, 24)); TextGlyph textGlyph1 = layout.createTextGlyph(); textGlyph1.setId("TextGlyph_01"); textGlyph1.setBoundingBox(createBoundingBox("bbA", 92, 26, 228, 24)); textGlyph1.setOriginOfTextId(speciesGlyph1.getId()); textGlyph1.setGraphicalObjectId(speciesGlyph1.getId()); SpeciesGlyph speciesGlyph2 = layout.createSpeciesGlyph(); speciesGlyph2.setId("SpeciesGlyph_2"); speciesGlyph2.setSpeciesId(species2.getId()); speciesGlyph2.setBoundingBox(createBoundingBox("bb3", 80, 170, 240, 24)); TextGlyph textGlyph2 = layout.createTextGlyph(); textGlyph2.setId("TextGlyph_02"); textGlyph2.setBoundingBox(createBoundingBox("bbB", 92, 170, 228, 24)); 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(); ls.setStart(createPoint(165, 105)); ls.setEnd(createPoint(165, 115)); ReactionGlyph reactionGlyph2 = layout.createReactionGlyph(); reactionGlyph2.setId("ReactionGlyph_1"); reactionGlyph2.setReactionId(reaction2.getId()); Curve reactionCurve2 = reactionGlyph2.getCurve(); ls = reactionCurve2.createLineSegment(); ls.setStart(createPoint(235, 105)); ls.setEnd(createPoint(235, 115)); // add the SpeciesReferenceGlyphs SpeciesReferenceGlyph speciesReferenceGlyph1 = reactionGlyph1.createSpeciesReferenceGlyph(); speciesReferenceGlyph1.setId("SpeciesReferenceGlyph_1"); speciesReferenceGlyph1.setSpeciesGlyphId(speciesGlyph1.getId()); speciesReferenceGlyph1.setSpeciesReferenceId(reference1.getId()); speciesReferenceGlyph1.setRole(libsbmlConstants.SPECIES_ROLE_SUBSTRATE); Curve speciesReferenceCurve1 = speciesReferenceGlyph1.getCurve(); CubicBezier cb = speciesReferenceCurve1.createCubicBezier(); cb.setStart(createPoint(165.0, 105.0)); cb.setBasePoint1(createPoint(165.0, 90.0)); cb.setBasePoint2(createPoint(165.0, 90.0)); cb.setEnd(createPoint(195.0, 60.0)); SpeciesReferenceGlyph speciesReferenceGlyph2 = reactionGlyph1.createSpeciesReferenceGlyph(); speciesReferenceGlyph2.setId("SpeciesReferenceGlyph_2"); speciesReferenceGlyph2.setSpeciesGlyphId(speciesGlyph2.getId()); speciesReferenceGlyph2.setSpeciesReferenceId(reference2.getId()); speciesReferenceGlyph2.setRole(libsbmlConstants.SPECIES_ROLE_PRODUCT); Curve speciesReferenceCurve2 = speciesReferenceGlyph2.getCurve(); cb = speciesReferenceCurve2.createCubicBezier(); cb.setStart(createPoint(165.0, 115.0)); cb.setBasePoint1(createPoint(165.0, 130.0)); cb.setBasePoint2(createPoint(165.0, 130.0)); cb.setEnd(createPoint(195.0, 160.0)); SpeciesReferenceGlyph speciesReferenceGlyph3 = reactionGlyph2.createSpeciesReferenceGlyph(); speciesReferenceGlyph3.setId("SpeciesReferenceGlyph_3"); speciesReferenceGlyph3.setSpeciesGlyphId(speciesGlyph2.getId()); speciesReferenceGlyph3.setSpeciesReferenceId(reference3.getId()); speciesReferenceGlyph3.setRole(libsbmlConstants.SPECIES_ROLE_SUBSTRATE); Curve speciesReferenceCurve3 = speciesReferenceGlyph3.getCurve(); cb = speciesReferenceCurve3.createCubicBezier(); cb.setStart(createPoint(235.0, 115.0)); cb.setBasePoint1(createPoint(235.0, 130.0)); cb.setBasePoint2(createPoint(235.0, 130.0)); cb.setEnd(createPoint(205.0, 160.0)); SpeciesReferenceGlyph speciesReferenceGlyph4 = reactionGlyph2.createSpeciesReferenceGlyph(); speciesReferenceGlyph4.setId("SpeciesReferenceGlyph_4"); speciesReferenceGlyph4.setSpeciesGlyphId(speciesGlyph1.getId()); speciesReferenceGlyph4.setSpeciesReferenceId(reference4.getId()); speciesReferenceGlyph4.setRole(libsbmlConstants.SPECIES_ROLE_PRODUCT); Curve speciesReferenceCurve4 = speciesReferenceGlyph4.getCurve(); cb = speciesReferenceCurve4.createCubicBezier(); cb.setStart(createPoint(235.0, 105.0)); cb.setBasePoint1(createPoint(235.0, 90.0)); cb.setBasePoint2(createPoint(235.0, 90.0)); cb.setEnd(createPoint(205.0, 60.0)); libsbml.writeSBML(document, "TestModel1-java.xml"); System.gc(); }