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

geneDel.R

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    geneDel.R 4.66 KiB
    #  geneDel.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: geneDel
    #
    #
    # The function geneDel() is inspired by the function
    # deleteModelGenes() contained in the COBRA Toolbox.
    
    
    geneDel <- function(model, genes, checkId = FALSE) {
    #geneDel <- function(model, genes, lpmodel, solver = SYBIL_SETTINGS("SOLVER")) {
    
      #if (missing(lpmodel)) {
      #    solver = "none"
      #}
    
      if (!is(model, "modelorg")) {
          stop("needs an object of class modelorg!")
      }
      
      if (isTRUE(checkId)) {
          if (is(genes, "character")) {
              # Check if all genes are there
              geneExist <- which(is.na(match(genes, allGenes(model))))
            
              # if thats not the case ...
              if (length(geneExist) != 0) {
                  stop(sprintf(ngettext(length(geneExist),
                                        "gene %s does not exist",
                                        "genes %s do not exist"
                                        ), paste(sQuote(genes[geneExist]), collapse = ", ")
                               )
                       )
              }
            
              geneInd <- match(genes, allGenes(model))
          }
          else {
              if (max(genes) > length(allGenes(model))) {
                  stop("indices in argument genes do not exist")
              }
              else {
                  geneInd <- genes
              }
          }
      }
      else {