Skip to content
Snippets Groups Projects
Select Git revision
  • ce28f8a505215adaab8d072b9508ab18ed1c542c
  • master default protected
  • dev
  • sybilNLO
  • gprBug
  • maximumtotalflux
  • easyConstraint
  • switchbug
  • thuong
  • momafix
  • rmReactBug
11 results

checkReactId.R

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    checkReactId.R 4.60 KiB
    #  checkReactId.R
    #  FBA and friends with R.
    #
    #  Copyright (C) 2010-2014 Gabriel Gelius-Dietrich, Dpt. for Bioinformatics,
    #  Institute for Informatics, Heinrich-Heine-University, Duesseldorf, Germany.
    #  All right reserved.
    #  Email: geliudie@uni-duesseldorf.de
    #  
    #  This file is part of sybil.
    #
    #  Sybil is free software: you can redistribute it and/or modify
    #  it under the terms of the GNU General Public License as published by
    #  the Free Software Foundation, either version 3 of the License, or
    #  (at your option) any later version.
    #
    #  Sybil is distributed in the hope that it will be useful,
    #  but WITHOUT ANY WARRANTY; without even the implied warranty of
    #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #  GNU General Public License for more details.
    #
    #  You should have received a copy of the GNU General Public License
    #  along with sybil.  If not, see <http://www.gnu.org/licenses/>.
    
    
    ################################################
    # Function: checkReactId
    #
    # 
    # 
    #
    
    checkReactId <- function(model, react) {
    
      if (is(react, "reactId")) {
          return(react)
      }
    
      if (!is(model, "modelorg")) {
        stop("needs an object of class modelorg!")
      }
    
      checkedIds <- NULL
    
     
    #------------------------------------------------------------------------------#
    #                           if "react" is numeric                              #
    #------------------------------------------------------------------------------#
    
    # If react is numeric (or integer), we only need to check, whether no element of
    # react is larger than the number of reactions and if all elements are positive.
    
      if (is.numeric(react) || is.integer(react)) {
    
          if ( (max(react) > react_num(model)) || (min(react) < 1) ) {
          #if ( (max(react) > react_num(model)) || (!all(react > 0)) ) {
              warning("reaction numbers must be in between 1 and ", react_num(model))
          }
          else {
              checkedIds <- new("reactId",
                                mod_id  = mod_id(model),
                                mod_key = mod_key(model),
                                pnt     = react,
                                id      = react_id(model)[react])
          }
          #return(checkedIds)
    
      }
    
    #------------------------------------------------------------------------------#
    #                          if "react" is character                             #