1#!/usr/bin/env perl 2# -*-Perl-*- 3## 4## \file addingEvidenceCodes_1.pl 5## \brief adds controlled vocabulary terms to a reaction in a model 6## \author Sarah Keating 7## 8## <!-------------------------------------------------------------------------- 9## This sample program is distributed under a different license than the rest 10## of libSBML. This program uses the open-source MIT license, as follows: 11## 12## Copyright (c) 2013-2018 by the California Institute of Technology 13## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK) 14## and the University of Heidelberg (Germany), with support from the National 15## Institutes of Health (USA) under grant R01GM070923. All rights reserved. 16## 17## Permission is hereby granted, free of charge, to any person obtaining a 18## copy of this software and associated documentation files (the "Software"), 19## to deal in the Software without restriction, including without limitation 20## the rights to use, copy, modify, merge, publish, distribute, sublicense, 21## and/or sell copies of the Software, and to permit persons to whom the 22## Software is furnished to do so, subject to the following conditions: 23## 24## The above copyright notice and this permission notice shall be included in 25## all copies or substantial portions of the Software. 26## 27## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 28## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 29## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 30## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 31## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 32## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 33## DEALINGS IN THE SOFTWARE. 34## 35## Neither the name of the California Institute of Technology (Caltech), nor 36## of the European Bioinformatics Institute (EMBL-EBI), nor of the University 37## of Heidelberg, nor the names of any contributors, may be used to endorse 38## or promote products derived from this software without specific prior 39## written permission. 40## ------------------------------------------------------------------------ --> 41## 42 43 44use LibSBML; 45no strict; 46 47if ($#ARGV != 1) { 48 print "usage: addingEvidenceCodes_1 <input-filename> <output-filename>\n"; 49 print " Adds controlled vocabulary term to a reaction\n"; 50 exit 2; 51} 52 53$d = LibSBML::readSBML($ARGV[0]); 54$errors = $d->getNumErrors(); 55 56if ($errors > 0) { 57 print("Read Error(s):\n"); 58 $d->printErrors(); 59 60 print("Correct the above and re-run.\n"); 61 exit $errors; 62} 63 64$n = $d->getModel()->getNumReactions(); 65 66if ($n <= 0) { 67 print("Model has no reactions.\n Cannot add CV terms\n"); 68 exit 0; 69} 70 71$r = $d->getModel()->getReaction(0); 72 73# check that the reaction has a metaid 74# no CVTerms will be added if there is no metaid to reference 75# 76if ( not $r->isSetMetaId()) { 77 $r->setMetaId("metaid_0000052"); 78} 79 80$cv1 = new LibSBML::CVTerm($LibSBML::BIOLOGICAL_QUALIFIER); 81$cv1->setBiologicalQualifierType($LibSBML::BQB_IS_DESCRIBED_BY); 82$cv1->addResource("urn:miriam:obo.eco:ECO%3A0000183"); 83 84$r->addCVTerm($cv1); 85 86$cv2 = new LibSBML::CVTerm($LibSBML::BIOLOGICAL_QUALIFIER); 87$cv2->setBiologicalQualifierType($LibSBML::BQB_IS); 88$cv2->addResource("urn:miriam:kegg.reaction:R00756"); 89$cv2->addResource("urn:miriam:reactome:REACT_736"); 90 91$r->addCVTerm($cv2); 92 93LibSBML::writeSBML($d, $ARGV[1]); 94exit $errors; 95 96