static void Main(string[] args) { SBMLNamespaces sbmlns = new SBMLNamespaces(3, 1, "multi", 1); // create the document SBMLDocument document = new SBMLDocument(sbmlns); // set the required attribute to true SBMLDocumentPlugin docPlug = (SBMLDocumentPlugin)(document.getPlugin("multi")); docPlug.setRequired(true); // create the Model Model model = document.createModel(); // create the compartments Compartment c = model.createCompartment(); c.setId("membrane"); c.setConstant(true); // set the multi attribute isType via the compartmentPlugin MultiCompartmentPlugin compPlug = (MultiCompartmentPlugin)(c.getPlugin("multi")); compPlug.setIsType(true); c = model.createCompartment(); c.setId("inter_membrane"); c.setConstant(true); // set the multi attribute isType via the compartmentPlugin compPlug = (MultiCompartmentPlugin)(c.getPlugin("multi")); compPlug.setIsType(true); // create the compartmentReferences CompartmentReference compRef = compPlug.createCompartmentReference(); compRef.setId("m1"); compRef.setCompartment("membrane"); compRef = compPlug.createCompartmentReference(); compRef.setId("m2"); compRef.setCompartment("membrane"); // create the speciesTypes MultiModelPlugin modelPlug = (MultiModelPlugin)(model.getPlugin("multi")); MultiSpeciesType st = modelPlug.createMultiSpeciesType(); st.setId("stX"); st.setCompartment("ct"); st = modelPlug.createMultiSpeciesType(); st.setId("stXXcis"); st.setCompartment("ct"); // create speciesTypeInstances SpeciesTypeInstance sti = st.createSpeciesTypeInstance(); sti.setId("stiX1"); sti.setSpeciesType("stX"); sti = st.createSpeciesTypeInstance(); sti.setId("stiX2"); sti.setSpeciesType("stX"); // create speciesTypeBond InSpeciesTypeBond istb = st.createInSpeciesTypeBond(); istb.setBindingSite1("stiX1"); istb.setBindingSite2("stiX2"); // another speciesType st = modelPlug.createMultiSpeciesType(); st.setId("stXXtrans"); st.setCompartment("cct"); // create speciesTypeInstances sti = st.createSpeciesTypeInstance(); sti.setId("stiX1"); sti.setSpeciesType("stX"); sti.setCompartmentReference("cr1"); sti = st.createSpeciesTypeInstance(); sti.setId("stiX2"); sti.setSpeciesType("stX"); sti.setCompartmentReference("cr2"); // create speciesTypeBond istb = st.createInSpeciesTypeBond(); istb.setBindingSite1("stiX1"); istb.setBindingSite2("stiX2"); libsbml.writeSBML(document, "multi_example1.xml"); }
static void Main(string[] args) { SBMLNamespaces sbmlns = new SBMLNamespaces(3, 1, "multi", 1); // create the document SBMLDocument document = new SBMLDocument(sbmlns); // set the required attribute to true SBMLDocumentPlugin docPlug = (SBMLDocumentPlugin)(document.getPlugin("multi")); docPlug.setRequired(true); // create the Model Model model = document.createModel(); // create the compartments Compartment c = model.createCompartment(); c.setId("membrane"); c.setConstant(true); // set the multi attribute isType via the compartmentPlugin MultiCompartmentPlugin compPlug = (MultiCompartmentPlugin)(c.getPlugin("multi")); compPlug.setIsType(true); // create the speciesTypes MultiModelPlugin modelPlug = (MultiModelPlugin)(model.getPlugin("multi")); MultiSpeciesType st = modelPlug.createMultiSpeciesType(); st.setId("stX"); st.setCompartment("membrane"); // create species Species s = model.createSpecies(); s.setId("s1"); s.setCompartment("membrane"); s.setBoundaryCondition(false); s.setHasOnlySubstanceUnits(false); s.setConstant(false); // set the multi attribute speciesType via the compartmentPlugin MultiSpeciesPlugin spPlug = (MultiSpeciesPlugin)(s.getPlugin("multi")); spPlug.setSpeciesType("stX"); // create species feature SpeciesFeature sf = spPlug.createSpeciesFeature(); sf.setSpeciesFeatureType("a"); sf.setOccur(1); sf.setComponent("b"); SpeciesFeatureValue sfv = sf.createSpeciesFeatureValue(); sfv.setValue("c"); // create a subListOfSpeciesFeatures SubListOfSpeciesFeatures subloSF = spPlug.createSubListOfSpeciesFeatures(); subloSF.setRelation(libsbml.Relation_fromString("and")); // add speciesFeatures to the subList SpeciesFeature sf1 = new SpeciesFeature(3, 1, 1); sf1.setSpeciesFeatureType("a1"); sf1.setOccur(1); sf1.setComponent("b1"); SpeciesFeatureValue sfv1 = sf1.createSpeciesFeatureValue(); sfv1.setValue("c1"); subloSF.appendAndOwn(sf1); sf1 = new SpeciesFeature(3, 1, 1); sf1.setSpeciesFeatureType("a2"); sf1.setOccur(1); sf1.setComponent("b2"); sfv1 = sf1.createSpeciesFeatureValue(); sfv1.setValue("c2"); subloSF.appendAndOwn(sf1); // create a second subListOfSpeciesfeatures subloSF = spPlug.createSubListOfSpeciesFeatures(); subloSF.setRelation(libsbml.Relation_fromString("or")); sf1 = new SpeciesFeature(3, 1, 1); sf1.setSpeciesFeatureType("a3"); sf1.setOccur(1); sf1.setComponent("b3"); sfv1 = sf1.createSpeciesFeatureValue(); sfv1.setValue("c3"); subloSF.appendAndOwn(sf1); sf1 = new SpeciesFeature(3, 1, 1); sf1.setSpeciesFeatureType("a4"); sf1.setOccur(1); sf1.setComponent("b4"); sfv1 = sf1.createSpeciesFeatureValue(); sfv1.setValue("c4"); subloSF.appendAndOwn(sf1); libsbml.writeSBML(document, "multi_example3.xml"); }