Description Usage Arguments Value Author(s) See Also Examples
function to get state of expression of GPR rules from gene expression data
# rules in brief: #1-Complexes: average, 2-isoenzymes: sum #3-multifunctioning: divide by count
N.B.: GPR rules should be in form Sum-of-products (AND to OR)
1 |
model |
An object of class |
geneExpr |
a data frame: GeneID, expr_val for each gene. |
selected_rxns |
optional parameter to select only a set of reactions. |
return list with main slot:
ruleExpr: rxn_id,expr_val
Abdelmoneim Amer Desouki
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | ## Not run:
##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (model, geneExpr, selected_rxns = NULL)
{
if (length(selected_rxns) == 0) {
ugpr = as.vector(unique(gpr(model)))
}
else {
ugpr = as.vector(unique(gpr(model)[selected_rxns]))
}
ugpr = ugpr[ugpr != ""]
gprExpr = NULL
for (v_rule in ugpr) {
rl = gsub("\)", " ) ", v_rule)
rl = gsub("\(", " ( ", rl)
pr = lapply(strsplit(unlist(strsplit(rl, " or ")), " and "),
function(x) gsub("[() ]", "", x))
expr_val = 0
for (p in 1:length(pr)) {
gene_ind = match(pr[[p]], geneExpr$geneID)
if (length(gene_ind) < length(pr[[p]])) {
warning(sprintf("Rule %s containing gene names not in geneID list,
term no: %d term: %s ",
v_rule, p, pr[[p]][1]))
}
else {
expr_val = expr_val + mean(geneExpr[gene_ind,
"expr_val"])
}
}
cnt = sum(gpr(model) == v_rule)
gprExpr = rbind(gprExpr, cbind(rxn_id = react_id(model)[gpr(model) ==
v_rule], expr_val = expr_val/cnt, gpr = v_rule, cnt = rep(cnt,
cnt)))
}
return(gprExpr)
}
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.