Select Git revision
build.gradle
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 {