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_createWith()
        {
            SBMLDocument d = new  SBMLDocument(1, 2);

            assertTrue(d.getTypeCode() == libsbml.SBML_DOCUMENT);
            assertTrue(d.getNotes() == null);
            assertTrue(d.getAnnotation() == null);
            assertTrue(d.getLevel() == 1);
            assertTrue(d.getVersion() == 2);
            assertTrue(d.getNumErrors() == 0);
            d = null;
        }
        public void test_SBMLConvert_convertToL3_event()
        {
            SBMLDocument d = new  SBMLDocument(2, 2);
            Model        m = d.createModel();
            Event        e = m.createEvent();
            Event        e1;

            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            e1 = m.getEvent(0);
            assertTrue(e1.hasRequiredAttributes() == true);
            d = null;
        }
示例#5
0
        public TwoStepTertiaryModel(string tertDocName, SBMLDocument tertDoc,
                                    List <PrimaryModelWData> primModels, List <string> secDocNames,
                                    List <SBMLDocument> secDocs)
        {
            this.tertDocName = tertDocName;
            this.tertDoc     = tertDoc;

            this.primModels = primModels;

            this.secDocNames = secDocNames;
            this.secDocs     = secDocs;
        }
    public static void Main(String[] args)
    {
        if (!SBMLExtensionRegistry.isPackageEnabled("comp"))
        {
            Console.WriteLine("This copy of libSBML does not contain the 'comp' extension");
            Console.WriteLine("Unable to proceed with the resolver example the model.");
            Environment.Exit(2);
        }

        // create custom resolver
        CustomResolver resolver = new CustomResolver();

        // add the resolver and store its index, so we can free it later.
        int index = SBMLResolverRegistry.getInstance().addResolver(resolver);

        // create a new document with comp enabled
        SBMLDocument doc = new SBMLDocument(new CompPkgNamespaces());

        // get a hold of a plugin object
        CompSBMLDocumentPlugin plugin = (CompSBMLDocumentPlugin)doc.getPlugin("comp");

        // create an external model definition
        ExternalModelDefinition external = plugin.createExternalModelDefinition();

        // set the source to the URI
        external.setSource("http://www.ebi.ac.uk/biomodels-main/download?mid=BMID000000063853");

        // resolve the model
        Model model = external.getReferencedModel();

        if (model == null)
        {
            Console.Error.WriteLine("couldn't resolve");
            Environment.Exit(2);
        }

        // model is ready to be used now, however, only as long and the document
        // holding the external model definition is still alive and referenced

        Console.WriteLine("Model id: " + model.getId());
        Console.WriteLine("# species: " + model.getNumSpecies());
        Console.WriteLine("# reactions: " + model.getNumReactions());

        // now that we are done get rid of the resolver
        SBMLResolverRegistry.getInstance().removeResolver(index);
        // also clear the resolver instance, just to be sure that it has
        // no more references to the C# resolver
        SBMLResolverRegistry.deleteResolerRegistryInstance();

        // finally we can get rid of the C# resolver
        resolver = null;
    }
示例#7
0
        static void testCreateSBML()
        {
            SBMLDocument d = new SBMLDocument(defLevel, defVersion);

            Model m = d.createModel();

            m.setId("testmodel");

            Compartment c1 = m.createCompartment();
            Compartment c2 = m.createCompartment();

            c1.setId("c1");
            c2.setId("c2");

            Species s1 = m.createSpecies();
            Species s2 = m.createSpecies();

            string id1 = "s1";
            string id2 = "s2";

            // strings with non-ASCII characters (multibyte characters)
            string n1 = "γ-lyase";
            string n2 = "β-synthase";

            s1.setId(id1);
            s1.setName(n1);
            s1.setCompartment("c1");

            s2.setId(id2);
            s2.setName(n2);
            s2.setCompartment("c2");

            string file = "test2.xml";

            try
            {
                if (libsbml.writeSBML(d, file) == 0)
                {
                    ERR("[CreateSBML] Error: cannot write " + file);
                }
                else
                {
                    OK();
                }
            }
            catch (Exception e)
            {
                ERR("[CreateSBML] (" + file + ") Error: Exception thrown : " + e.Message);
            }

            testReadSBMLFromFile(file);
        }
示例#8
0
        private static void TestKineticLaw(int level, int version)
        {
            var doc      = new SBMLDocument(level, version);
            var model    = doc.createModel();
            var reaction = model.createReaction();

            reaction.initDefaults();
            reaction.createKineticLaw();

            PrintLineNumbers(level,
                             version,
                             doc, "KineticLaw");
        }
        public void test_FunctionDefinition_parent_NULL()
        {
            SBMLDocument       d  = new SBMLDocument();
            Model              m  = d.createModel();
            FunctionDefinition c  = m.createFunctionDefinition();
            FunctionDefinition c1 = c.clone();

            d = null;
            assertTrue(c1.getAncestorOfType(libsbml.SBML_MODEL) == null);
            assertTrue(c1.getParentSBMLObject() == null);
            assertEquals(c1.getSBMLDocument(), null);
            c1 = null;
        }
        public void test_Species_parent_NULL()
        {
            SBMLDocument d  = new SBMLDocument();
            Model        m  = d.createModel();
            Species      c  = m.createSpecies();
            Species      c1 = c.clone();

            d = null;
            assertTrue(c1.getAncestorOfType(libsbml.SBML_MODEL) == null);
            assertTrue(c1.getParentSBMLObject() == null);
            assertEquals(c1.getSBMLDocument(), null);
            c1 = null;
        }
示例#11
0
        public OneStepTertiaryModel(string tertDocName, SBMLDocument tertDoc,
                                    List <string> secDocNames, List <SBMLDocument> secDocs,
                                    List <string> dataDocNames, List <NuMLDocument> dataDocs)
        {
            this.tertDocName = tertDocName;
            this.tertDoc     = tertDoc;

            this.secDocNames = secDocNames;
            this.secDocs     = secDocs;

            this.dataDocNames = dataDocNames;
            this.dataDocs     = dataDocs;
        }
示例#12
0
        static SBMLDocument testReadSBMLFromString(string file)
        {
            if (!File.Exists(file))
            {
                ERR("[ReadSBMLFromString] Error: (" + file + ") : No such file or directory.");
                return(null);
            }

            StreamReader oReader = new StreamReader(file);
            string       sSBML   = oReader.ReadToEnd();

            SBMLDocument d = libsbml.readSBMLFromString(sSBML);

            if (d == null)
            {
                ERR("[ReadSBMLFromString] Error: (" + file + ") SBMLDocument is null.");
                return(null);
            }

            if (d.getModel() == null)
            {
                for (int i = 0; i < d.getNumErrors(); i++)
                {
                    ERR("[ReadSBMLFromString] Error: (" + file + ") : " + d.getError(i).getMessage());
                }
                return(null);
            }
            else if (d.getNumErrors() > 0)
            {
                bool iserror = false;
                for (int i = 0; i < d.getNumErrors(); i++)
                {
                    long severity = d.getError(i).getSeverity();
                    if ((severity == libsbml.LIBSBML_SEV_ERROR) ||
                        (severity == libsbml.LIBSBML_SEV_FATAL)
                        )
                    {
                        iserror = true;
                        ERR("[ReadSBMLFromString] Error: (" + file + ") : " + d.getError(i).getMessage());
                    }
                }
                if (iserror)
                {
                    return(null);
                }
            }

            OK();

            return(d);
        }
示例#13
0
        public static void Main(string[] args)
        {
            if (args.Length != 3)
            {
                string myname = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
                Console.WriteLine("Usage: {0} input-filename package-to-strip output-filename", myname);
                Environment.Exit(1);
            }

            string inputFile      = args[0];
            string packageToStrip = args[1];
            string outputFile     = args[2];

            if (!File.Exists(inputFile))
            {
                Console.WriteLine("[Error] {0} : No such file.", inputFile);
                Environment.Exit(1);
            }

            SBMLReader   reader  = new SBMLReader();
            SBMLWriter   writer  = new SBMLWriter();
            SBMLDocument sbmlDoc = reader.readSBML(inputFile);

            if (sbmlDoc.getErrorLog().getNumFailsWithSeverity(libsbml.LIBSBML_SEV_ERROR) > 0)
            {
                sbmlDoc.printErrors();
                Console.WriteLine("[Error] Cannot read {0}", inputFile);
                Environment.Exit(1);
            }

            /* create a new conversion properties structure */
            ConversionProperties props = new ConversionProperties();

            /* add an option that we want to strip a given package */
            props.addOption("stripPackage", true, "Strip SBML Level 3 package constructs from the model");

            /* add an option with the package we want to remove */
            props.addOption("package", packageToStrip, "Name of the SBML Level 3 package to be stripped");

            /* perform the conversion */
            if (sbmlDoc.convert(props) != libsbml.LIBSBML_OPERATION_SUCCESS)
            {
                Console.WriteLine("conversion failed ... ");
                Environment.Exit(3);
            }

            writer.writeSBML(sbmlDoc, outputFile);

            Console.WriteLine("[OK] Stripped package '{0}' from {1} and wrote to {2}", packageToStrip, inputFile, outputFile);
        }
示例#14
0
        private static void TestSpeciesReference(int level, int version)
        {
            var doc      = new SBMLDocument(level, version);
            var model    = doc.createModel();
            var reaction = model.createReaction();

            reaction.initDefaults();
            var sr = reaction.createReactant();


            PrintLineNumbers(level,
                             version,
                             doc, "SpeciesReference");
        }
示例#15
0
        public void test_SBMLDocument_copyConstructor()
        {
            SBMLDocument o1 = new SBMLDocument();

            o1.setLevelAndVersion(2, 1, false);
            assertTrue(o1.getLevel() == 2);
            assertTrue(o1.getVersion() == 1);
            SBMLDocument o2 = new SBMLDocument(o1);

            assertTrue(o2.getLevel() == 2);
            assertTrue(o2.getVersion() == 1);
            o2 = null;
            o1 = null;
        }
示例#16
0
        public void test_SBMLConvert_convertToL3_reactant()
        {
            SBMLDocument     d  = new  SBMLDocument(2, 2);
            Model            m  = d.createModel();
            Reaction         r  = m.createReaction();
            SpeciesReference sr = r.createReactant();
            SpeciesReference sr1;

            sr.setSpecies("s");
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            sr1 = m.getReaction(0).getReactant(0);
            assertTrue(sr1.hasRequiredAttributes() == true);
            d = null;
        }
示例#17
0
        public void test_SBMLConvert_convertToL3_parameter()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Parameter    p   = m.createParameter();
            Parameter    p1;

            p.setId(sid);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            p1 = m.getParameter(0);
            assertTrue(p1.hasRequiredAttributes() == true);
            d = null;
        }
示例#18
0
        public void test_SBMLConvert_convertToL3_compartment()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Compartment  c   = m.createCompartment();
            Compartment  c1;

            c.setId(sid);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            c1 = m.getCompartment(0);
            assertTrue(c1.hasRequiredAttributes() == true);
            d = null;
        }
示例#19
0
        public void test_SBMLConvert_convertToL3_reaction()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Reaction     r   = m.createReaction();

            r.setId(sid);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            Reaction r1 = m.getReaction(0);

            assertTrue(r1.hasRequiredAttributes() == true);
            d = null;
        }
示例#20
0
        public void test_SBMLConvert_convertToL2_SBMLDocument()
        {
            SBMLDocument d = new  SBMLDocument(1, 2);

            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 1);
            assertTrue(d.setLevelAndVersion(2, 2, false) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 2);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.getLevel() == 2);
            assertTrue(d.getVersion() == 3);
            d = null;
        }
 public void test_RDFAnnotation_testMissingMetaId()
 {
   SBMLDocument doc = new SBMLDocument ( 3,1 );
   Model model = doc.createModel();
   assertTrue( model != null );
   model.setId("test1");
   CVTerm term = new CVTerm ( libsbml.MODEL_QUALIFIER );
   term.addResource("testResource");
   term.setModelQualifierType(libsbml.BQM_IS);
   model.setMetaId("t1");
   model.addCVTerm(term);
   model.setMetaId("");
   string test = model.toSBML();
   assertTrue( test ==  "<model id=\"test1\"/>" );
 }
示例#22
0
        public void test_SBMLConvert_convertToL3_species()
        {
            SBMLDocument d   = new  SBMLDocument(2, 2);
            Model        m   = d.createModel();
            string       sid = "C";
            Species      s   = m.createSpecies();
            Species      s1;

            s.setId(sid);
            s.setCompartment("comp");
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
            s1 = m.getSpecies(0);
            assertTrue(s1.hasRequiredAttributes() == true);
            d = null;
        }
示例#23
0
        private static void TestLocalParameter(int level, int version)
        {
            var doc      = new SBMLDocument(level, version);
            var model    = doc.createModel();
            var reaction = model.createReaction();

            reaction.initDefaults();
            var law = reaction.createKineticLaw();

            law.createParameter();

            PrintLineNumbers(level,
                             version,
                             doc, "LocalParameter");
        }
示例#24
0
        public void test_SBMLDocument_assignmentOperator()
        {
            SBMLDocument o1 = new SBMLDocument();

            o1.setLevelAndVersion(2, 1, false);
            assertTrue(o1.getLevel() == 2);
            assertTrue(o1.getVersion() == 1);
            SBMLDocument o2 = new SBMLDocument();

            o2 = o1;
            assertTrue(o2.getLevel() == 2);
            assertTrue(o2.getVersion() == 1);
            o2 = null;
            o1 = null;
        }
示例#25
0
        public void Initialize(Model sbmlModel, SBMLDocument sbmlDoc)
        {
            Level   = (int)sbmlDoc.getLevel();
            Version = (int)sbmlDoc.getVersion();
            SaveSpeciesReferences(sbmlModel);

            if (sbmlModel.isSetConversionFactor())
            {
                ConversionFactor = sbmlModel.getConversionFactor();
            }
            if (sbmlModel.isSetSBOTerm())
            {
                SboTerm = sbmlModel.getSBOTerm();
            }
        }
示例#26
0
        public void test_SBMLConvert_convertFromL3_priority()
        {
            SBMLDocument d = new  SBMLDocument(3, 1);
            Model        m = d.createModel();
            Event        e = m.createEvent();
            Priority     p = e.createPriority();

            assertTrue(d.setLevelAndVersion(1, 1, false) == false);
            assertTrue(d.setLevelAndVersion(1, 2, false) == true);
            assertTrue(d.setLevelAndVersion(2, 1, false) == true);
            assertTrue(d.setLevelAndVersion(2, 2, false) == true);
            assertTrue(d.setLevelAndVersion(2, 3, false) == true);
            assertTrue(d.setLevelAndVersion(2, 4, false) == true);
            assertTrue(d.setLevelAndVersion(3, 1, false) == true);
        }
示例#27
0
        private static void TestStoichiometryMath(int level, int version)
        {
            var doc      = new SBMLDocument(level, version);
            var model    = doc.createModel();
            var reaction = model.createReaction();

            reaction.initDefaults();
            var sr = reaction.createReactant();

            sr.createStoichiometryMath();

            PrintLineNumbers(level,
                             version,
                             doc, "StoichiometryMath");
        }
示例#28
0
        public void test_SBMLConvert_invalidLevelVersion()
        {
            SBMLDocument d   = new  SBMLDocument(2, 1);
            Model        m   = d.createModel();
            string       sid = "C";
            Compartment  c   = m.createCompartment();

            c.setId(sid);
            c.setSize(1.2);
            c.setUnits("volume");
            assertTrue(d.setLevelAndVersion(1, 3, true) == false);
            assertTrue(d.setLevelAndVersion(2, 7, true) == false);
            assertTrue(d.setLevelAndVersion(3, 5, true) == false);
            assertTrue(d.setLevelAndVersion(4, 1, true) == false);
        }
示例#29
0
    /// <summary>
    /// The program is to be invoked with one argument, the input file.
    /// </summary>
    /// <param name="args">command line arguments</param>
    /// <returns>0 in case of no errors</returns>
    public static int Main(string[] args)
    {
        if (args.Length != 1)
        {
            Console.WriteLine("{0}Usage: getAllElementsWithNotes filename{0}{0}", Environment.NewLine);
            return(1);
        }

        string filename = args[0];

        // read the document
        long         start    = DateTime.Now.Ticks;
        SBMLDocument document = libsbml.readSBMLFromFile(filename);
        long         stop     = DateTime.Now.Ticks;


        Console.WriteLine();
        Console.WriteLine("            filename: {0}", filename);
        Console.WriteLine("      read time (ms): {0}", TimeSpan.FromTicks(stop - start).TotalMilliseconds);

        // stop in case of serious errors
        long errors = document.getNumErrors(libsbml.LIBSBML_SEV_ERROR);

        if (errors > 0)
        {
            Console.WriteLine("            error(s): {0}", errors);
            document.printErrors();
            return((int)errors);
        }


        // create the filter we want to use
        var filter = new NotesFilter();

        //  get a list of all elements with notes
        start = DateTime.Now.Ticks;
        Console.WriteLine("    searching ......:");
        SBaseList allElements = document.getListOfAllElements(filter);

        stop = DateTime.Now.Ticks;
        Console.WriteLine("    search time (ms): {0}", TimeSpan.FromTicks(stop - start).TotalMilliseconds);
        Console.WriteLine();
        Console.WriteLine(" elements with notes: {0}", allElements.getSize());
        Console.WriteLine();

        // if we got here all went well ...
        return(0);
    }
示例#30
0
        private static void TestPriority(int level, int version)
        {
            var doc     = new SBMLDocument(level, version);
            var model   = doc.createModel();
            var element = model.createEvent();

            if (element == null)
            {
                return;
            }
            element.createPriority();

            PrintLineNumbers(level,
                             version,
                             doc, "Priority");
        }