Пример #1
0
  public static void main(String[] args) {
    if (args.length < 1) {
      System.out.println("Usage: evaluateCustomMath formula [model containing values]");
      System.exit(1);
    }

    String formula = args[0];
    String filename = args.length == 2 ? args[1] : null;

    ASTNode math = libsbml.parseFormula(formula);
    if (math == null) {
      System.out.println("Invalid formula, aborting.");
      System.exit(1);
    }

    SBMLDocument doc = null;
    if (filename != null) {
      doc = libsbml.readSBML(filename);
      if (doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0) {
        System.out.println("The models contains errors, please correct them before continuing.");
        doc.printErrors();
        System.exit(1);
      }
      // the following maps a list of ids to their corresponding model values
      // this makes it possible to evaluate expressions involving SIds.
      SBMLTransforms.mapComponentValues(doc.getModel());
    } else {
      // create dummy document
      doc = new SBMLDocument(3, 1);
    }

    double result = SBMLTransforms.evaluateASTNode(math, doc.getModel());
    System.out.println(String.format("%s = %s", formula, result));
  }
Пример #2
0
  public static void main(String[] args) {
    if (args.length != 2) {
      println("Usage: java echoSBML input-filename output-filename");
      System.exit(2);
    }

    SBMLReader reader = new SBMLReader();
    SBMLWriter writer = new SBMLWriter();

    SBMLDocument doc = reader.readSBML(args[0]);
    if (doc.getNumErrors() > 0) {
      doc.printErrors();
    } else {
      writer.writeSBML(doc, args[1]);
    }
  }
  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) {
    System.loadLibrary("sbmlj");

    if (args.length != 2) {
      System.out.println("  usage: addingEvidenceCodes_2 <input-filename> <output-filename>");
      System.out.println("  Adds controlled vocabulary term to a species");
      System.out.println();
      System.exit(2);
    }

    SBMLDocument d = libsbml.readSBML(args[0]);
    long errors = d.getNumErrors();

    if (errors > 0) {
      System.out.println("Read Error(s):");
      d.printErrors();

      System.out.println("Correct the above and re-run.");
    } else {
      long n = d.getModel().getNumSpecies();

      if (n <= 0) {
        System.out.println("Model has no species.\n Cannot add CV terms\n");
      } else {
        Species s = d.getModel().getSpecies(0);

        /*
         * check that the species has a metaid no CVTerms will be added
         * if there is no metaid to reference
         */
        if (!s.isSetMetaId()) s.setMetaId("metaid_0000052");

        CVTerm cv1 = new CVTerm(libsbml.BIOLOGICAL_QUALIFIER);
        cv1.setBiologicalQualifierType(libsbml.BQB_OCCURS_IN);
        cv1.addResource("urn:miriam:obo.go:GO%3A0005764");

        s.addCVTerm(cv1);

        // now create the additional annotation

        // <rdf:Statement>
        // <rdf:subject rdf:resource="#metaid_0000052"/>
        // <rdf:predicate
        // rdf:resource="http://biomodels.net/biology-qualifiers/occursIn"/>
        // <rdf:object rdf:resource="urn:miriam:obo.go:GO%3A0005764"/>
        // <bqbiol:isDescribedBy>
        // <rdf:Bag>
        // <rdf:li rdf:resource="urn:miriam:obo.eco:ECO%3A0000004"/>
        // <rdf:li rdf:resource="urn:miriam:pubmed:7017716"/>
        // </rdf:Bag>
        // </bqbiol:isDescribedBy>
        // </rdf:Statement>

        /* attributes */
        XMLAttributes blank_att = new XMLAttributes();

        XMLAttributes resource_att = new XMLAttributes();

        /* create the outer statement node */
        XMLTriple statement_triple =
            new XMLTriple("Statement", "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");

        XMLToken statement_token = new XMLToken(statement_triple, blank_att);

        XMLNode statement = new XMLNode(statement_token);

        /* create the subject node */
        XMLTriple subject_triple =
            new XMLTriple("subject", "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");

        resource_att.clear();
        resource_att.add("rdf:resource", "#" + s.getMetaId());

        XMLToken subject_token = new XMLToken(subject_triple, resource_att);

        XMLNode subject = new XMLNode(subject_token);

        /* create the predicate node */
        XMLTriple predicate_triple =
            new XMLTriple("predicate", "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");

        resource_att.clear();
        resource_att.add("rdf:resource", "http://biomodels.net/biology-qualifiers/occursIn");

        XMLToken predicate_token = new XMLToken(predicate_triple, resource_att);

        XMLNode predicate = new XMLNode(predicate_token);

        /* create the object node */
        XMLTriple object_triple =
            new XMLTriple("object", "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");

        resource_att.clear();
        resource_att.add("rdf:resource", "urn:miriam:obo.go:GO%3A0005764");

        XMLToken object_token = new XMLToken(object_triple, resource_att);

        XMLNode object_ = new XMLNode(object_token);

        /* create the bqbiol node */
        XMLTriple bqbiol_triple =
            new XMLTriple("isDescribedBy", "http://biomodels.net/biology-qualifiers/", "bqbiol");

        XMLToken bqbiol_token = new XMLToken(bqbiol_triple, blank_att);

        XMLNode bqbiol = new XMLNode(bqbiol_token);

        /* create the bag node */
        XMLTriple bag_triple =
            new XMLTriple("Bag", "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");

        XMLToken bag_token = new XMLToken(bag_triple, blank_att);

        XMLNode bag = new XMLNode(bag_token);

        /* create each li node and add to the bag */
        XMLTriple li_triple =
            new XMLTriple("li", "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");

        resource_att.clear();
        resource_att.add("rdf:resource", "urn:miriam:obo.eco:ECO%3A0000004");

        XMLToken li_token = new XMLToken(li_triple, resource_att);
        li_token.setEnd();

        XMLNode li = new XMLNode(li_token);

        bag.addChild(li);

        resource_att.clear();
        resource_att.add("rdf:resource", "urn:miriam:pubmed:7017716");
        li_token = new XMLToken(li_triple, resource_att);
        li_token.setEnd();
        li = new XMLNode(li_token);

        bag.addChild(li);

        /* add the bag to bqbiol */
        bqbiol.addChild(bag);

        /* add subject, predicate, object and bqbiol to statement */
        statement.addChild(subject);
        statement.addChild(predicate);
        statement.addChild(object_);
        statement.addChild(bqbiol);

        /*
         * create a top-level RDF element this will ensure correct
         * merging
         */

        XMLNamespaces xmlns = new XMLNamespaces();
        xmlns.add("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");
        xmlns.add("http://purl.org/dc/elements/1.1/", "dc");
        xmlns.add("http://purl.org/dc/terms/", "dcterms");
        xmlns.add("http://www.w3.org/2001/vcard-rdf/3.0#", "vCard");
        xmlns.add("http://biomodels.net/biology-qualifiers/", "bqbiol");
        xmlns.add("http://biomodels.net/model-qualifiers/", "bqmodel");

        XMLTriple RDF_triple =
            new XMLTriple("RDF", "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf");

        XMLToken RDF_token = new XMLToken(RDF_triple, blank_att, xmlns);

        XMLNode annotation = new XMLNode(RDF_token);

        /* add the staement node to the RDF node */
        annotation.addChild(statement);

        s.appendAnnotation(annotation);

        libsbml.writeSBML(d, args[1]);
      }
    }

    System.exit((int) errors);
  }