From 459b0edad5ccccffe710b9db0c4c22a08ba880cb Mon Sep 17 00:00:00 2001
From: jranke <jranke@edb9625f-4e0d-4859-8d74-9fd3b1da38cb>
Date: Wed, 13 Nov 2013 21:16:17 +0000
Subject: Squashed commit of the following:

commit d8dbf2ad866fb9d34cd1100000b9c116219ecef6
Author: Johannes Ranke <jranke@uni-bremen.de>
Date:   Wed Nov 13 22:09:41 2013 +0100

    Add possibility to control more mkinfit arguments from the GUI

commit 8f1bae2142b37a0ff6b8989b2d1569686937f68e
Author: Johannes Ranke <jranke@uni-bremen.de>
Date:   Wed Nov 13 20:30:11 2013 +0100

    Add initial weighting choice to GUI

commit c99b5c298713a7c14e8ab5604c68613d0b7af27a
Author: Johannes Ranke <jranke@uni-bremen.de>
Date:   Wed Nov 13 16:25:31 2013 +0100

    Update of TODO from git bash on Windows

commit 8bf2a6f8f6bd752433f06b26b5da334e958f5166
Author: Johannes Ranke <jranke@uni-bremen.de>
Date:   Wed Nov 13 16:00:01 2013 +0100

    Update of README using TortoiseGit

git-svn-id: svn+ssh://svn.r-forge.r-project.org/svnroot/kinfit/pkg/mkin@162 edb9625f-4e0d-4859-8d74-9fd3b1da38cb
---
 inst/GUI/mkinGUI.R | 52 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 48 insertions(+), 4 deletions(-)

(limited to 'inst/GUI')

diff --git a/inst/GUI/mkinGUI.R b/inst/GUI/mkinGUI.R
index fb8f22a..07f892e 100644
--- a/inst/GUI/mkinGUI.R
+++ b/inst/GUI/mkinGUI.R
@@ -235,7 +235,15 @@ gbutton("Configure fit for selected model and dataset", cont = dsm,
           stmp <<- summary(ftmp)
           svalue(pf) <- paste0("Dataset ", ds.i, ", Model ", m[[m.i]]$name)
           show_plot("Initial", default = TRUE)
-          svalue(f.gg.opts.st) <<- "auto"
+          svalue(f.gg.opts.st) <<- ftmp$solution_type
+          svalue(f.gg.opts.weight) <<- ftmp$weight
+          svalue(f.gg.opts.atol) <<- ftmp$atol
+          svalue(f.gg.opts.rtol) <<- ftmp$rtol
+          svalue(f.gg.opts.reweight.method) <<- ifelse(
+                                         is.null(ftmp$reweight.method),
+                                         "none", ftmp$reweight.method)
+          svalue(f.gg.opts.reweight.tol) <<- ftmp$reweight.tol
+          svalue(f.gg.opts.reweight.max.iter) <<- ftmp$reweight.max.iter
           f.gg.parms[,] <- get_Parameters(stmp, FALSE)
           svalue(f.gg.summary) <- capture.output(stmp)
           svalue(center) <- 3
@@ -568,7 +576,6 @@ show_plot <- function(type, default = FALSE) {
     ftmp$ds <<- ds[[ds.i]]
   } 
 
-  #tmp <- get_tempfile(ext=".svg")
   svg(tf, width = 7, height = 5)
   plot(ftmp, main = ftmp$ds$title,
        xlab = ifelse(ftmp$ds$time_unit == "", "Time", 
@@ -608,18 +615,34 @@ run_fit <- function() {
   iniparms <- Parameters.ini$Initial
   names(iniparms) <- sub("_0", "", Parameters.ini$Name)
   inifixed <- names(iniparms[Parameters.ini$Fixed])
+  weight <- svalue(f.gg.opts.weight)
+  if (weight == "manual") {
+    err = "err"
+  } else {
+    err = NULL
+  }
+  reweight.method <- svalue(f.gg.opts.reweight.method)
+  if (reweight.method == "none") reweight.method = NULL
   ftmp <<- mkinfit(ftmp$mkinmod, override(ds[[ds.i]]$data),
                    state.ini = iniparms,
                    fixed_initials = inifixed,
                    parms.ini = deparms, 
                    fixed_parms = defixed,
                    solution_type = svalue(f.gg.opts.st),
-                   err = "err")
+                   atol = as.numeric(svalue(f.gg.opts.atol)),
+                   rtol = as.numeric(svalue(f.gg.opts.rtol)),
+                   weight = weight,
+                   err = err,
+                   reweight.method = reweight.method,
+                   reweight.tol = as.numeric(svalue(f.gg.opts.reweight.tol)),
+                   reweight.max.iter = as.numeric(svalue(f.gg.opts.reweight.max.iter))
+                   )
   ftmp$ds.index <<- ds.i
   ftmp$ds <<- ds[[ds.i]]
   stmp <<- summary(ftmp)
   show_plot("Optimised")
   svalue(f.gg.opts.st) <- ftmp$solution_type
+  svalue(f.gg.opts.weight) <- ftmp$weight.ini
   f.gg.parms[,] <- get_Parameters(stmp, TRUE)
   svalue(f.gg.summary) <- capture.output(stmp)
 }
@@ -643,12 +666,27 @@ tf <- get_tempfile(ext=".svg")
 svg(tf, width = 7, height = 5)
 plot(ftmp)
 dev.off()
-plot.gs <- gsvg(tf, container = f.gg.mid, width = 490, height = 350)
+plot.gs <- gsvg(tf, container = f.gg.mid, width = 420, height = 300)
 f.gg.opts <- gformlayout(cont = f.gg.mid)
 solution_types <- c("auto", "analytical", "eigen", "deSolve")
 f.gg.opts.st <- gcombobox(solution_types, selected = 1, 
                           label = "solution_type", width = 200, 
                           cont = f.gg.opts)
+f.gg.opts.atol <- gedit(ftmp$atol, label = "atol", width = 20, 
+                         cont = f.gg.opts)
+f.gg.opts.rtol <- gedit(ftmp$rtol, label = "rtol", width = 20, 
+                         cont = f.gg.opts)
+weights <- c("manual", "none", "std", "mean")
+f.gg.opts.weight <- gcombobox(weights, selected = 1, label = "weight", 
+                              width = 200, cont = f.gg.opts)
+f.gg.opts.reweight.method <- gcombobox(c("none", "obs"), selected = 1,
+                                       label = "reweight.method",
+                                       width = 200,
+                                       cont = f.gg.opts)
+f.gg.opts.reweight.tol <- gedit(1e-8, label = "reweight.tol",
+                                 width = 20, cont = f.gg.opts)
+f.gg.opts.reweight.max.iter <- gedit(10, label = "reweight.max.iter",
+                                 width = 20, cont = f.gg.opts)
 
 # Dataframe with initial and optimised parameters {{{3
 f.gg.parms <- gdf(Parameters, width = 420, height = 300, cont = pf, 
@@ -717,6 +755,12 @@ update_plotting_and_fitting <- function() {
                        ", Model ", ftmp$mkinmod$name)
   show_plot("Optimised")  
   svalue(f.gg.opts.st) <- ftmp$solution_type
+  svalue(f.gg.opts.weight) <- ftmp$weight.ini
+  svalue(f.gg.opts.reweight.method) <- ifelse(is.null(ftmp$reweight.method),
+                                                      "none", 
+                                                      ftmp$reweight.method)
+  svalue(f.gg.opts.reweight.tol) <- ftmp$reweight.tol
+  svalue(f.gg.opts.reweight.max.iter) <- ftmp$reweight.max.iter
   f.gg.parms[,] <- get_Parameters(stmp, TRUE)
   svalue(f.gg.summary) <- capture.output(stmp)
 }
-- 
cgit v1.2.1