From c373c1395a7656e8c06fab3688aae9562469cf60 Mon Sep 17 00:00:00 2001
From: jranke <jranke@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Date: Sun, 15 Apr 2012 22:49:57 +0000
Subject: - Fixed the SFORB coefficient matrix, at least for the case where
 parent is SFORB - This version works but is slower and less stable than mkin
 0.8-11 - mkinplot is not adapted to this version

git-svn-id: svn+ssh://svn.r-forge.r-project.org/svnroot/kinfit/pkg/mkin@25 edb9625f-4e0d-4859-8d74-9fd3b1da38cb
---
 R/mkinmod.R | 11 +++++++++--
 TODO        |  2 +-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/R/mkinmod.R b/R/mkinmod.R
index 37f96ce..8095932 100644
--- a/R/mkinmod.R
+++ b/R/mkinmod.R
@@ -145,11 +145,18 @@ mkinmod <- function(...)
     m <- matrix(nrow=n, ncol=n, dimnames=list(boxes, boxes))
     for (from in boxes) {
       for (to in boxes) {
-        if (from == to) {
+        if (from == to) { # diagonal elements
           k.candidate = paste("k", from, sep="_")
           m[from,to] = ifelse(k.candidate %in% model$parms,
               paste("-", k.candidate), "0")
-        } else {
+          if(grepl("_free", from)) { # add transfer to bound compartment for SFORB
+            m[from,to] = paste(m[from,to], "-", paste("k", from, "bound", sep="_"))
+          }
+          if(grepl("_bound", from)) { # add backtransfer to free compartment for SFORB
+            m[from,to] = paste("- k", from, "free", sep="_")
+          }
+          m[from,to] = m[from,to]
+        } else {          # off-diagonal elements
           f.candidate = paste("f", from, "to", to, sep="_")
           k.candidate = paste("k", from, to, sep="_")
           k.candidate = sub("free.*bound", "free_bound", k.candidate)
diff --git a/TODO b/TODO
index fb653cc..da6c5f5 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-- Fix SFORB coefficient matrix by treating SFORB models with metabolites with ilr as well
+- Adapt mkinplot function
 - Calculate confidence intervals for parameters assuming normal distribution
 - Calculate confidence intervals for DT50 and DT90 values when only one parameter is involved
 - Fix DT50 and DT90 calculation for SFORB_SFO
-- 
cgit v1.2.1