[Yuima-commits] r424 - in pkg/yuimaGUI: . inst/yuimaGUI inst/yuimaGUI/www

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sun Mar 27 00:05:58 CET 2016


Author: phoenix844
Date: 2016-03-27 00:05:54 +0100 (Sun, 27 Mar 2016)
New Revision: 424

Modified:
   pkg/yuimaGUI/DESCRIPTION
   pkg/yuimaGUI/inst/yuimaGUI/global.R
   pkg/yuimaGUI/inst/yuimaGUI/server.R
   pkg/yuimaGUI/inst/yuimaGUI/ui.R
   pkg/yuimaGUI/inst/yuimaGUI/www/custom.css
Log:
Added module for change point estimation

Modified: pkg/yuimaGUI/DESCRIPTION
===================================================================
--- pkg/yuimaGUI/DESCRIPTION	2016-03-25 00:28:32 UTC (rev 423)
+++ pkg/yuimaGUI/DESCRIPTION	2016-03-26 23:05:54 UTC (rev 424)
@@ -1,7 +1,7 @@
 Package: yuimaGUI
 Type: Package
 Title: A Graphical User Interface for the Yuima Package
-Version: 0.5.0
+Version: 0.6.0
 Author: YUIMA Project Team
 Maintainer: Emanuele Guidotti <emanuele.guidotti at studenti.unimi.it>
 Description: Provides a graphical user interface for the yuima package.

Modified: pkg/yuimaGUI/inst/yuimaGUI/global.R
===================================================================
--- pkg/yuimaGUI/inst/yuimaGUI/global.R	2016-03-25 00:28:32 UTC (rev 423)
+++ pkg/yuimaGUI/inst/yuimaGUI/global.R	2016-03-26 23:05:54 UTC (rev 424)
@@ -4,17 +4,15 @@
 require(quantmod)
 require(shinydashboard)
 require(shinyBS)
-require(shinyRGL)
-require(rgl)
 require(yuima)
 require(shinyjs)
 
 
 if(!exists("yuimaGUItable"))
-  yuimaGUItable <<- reactiveValues(series=data.frame(), model=data.frame(), simulation=data.frame())
+  yuimaGUItable <<- reactiveValues(series=data.frame(),  model=data.frame(), simulation=data.frame())
 
 if(!exists("yuimaGUIdata"))
-  yuimaGUIdata <<- reactiveValues(series=list(), model=list(), simulation=list())
+  yuimaGUIdata <<- reactiveValues(series=list(), cp=list(), model=list(), simulation=list())
 
 if(!exists("estimateSettings"))
   estimateSettings <<- list()
@@ -559,24 +557,25 @@
   }
   withProgress(message = 'Clustering: ', value = 0, {
     k <- 1
-    for(i in 1:l)
+    for(i in 1:l){
+      delta_i <- as.numeric(abs(mean(diff(index(object)[!is.na(object[,i])]))))
+      data_i <- Delt(na.omit(object[,i]))
+      data_i <- data_i[data_i!="Inf"]
+      dens1 <-  density(data_i/sqrt(delta_i)+mean(data_i, na.rm = TRUE)*(1/delta_i-1/sqrt(delta_i)), na.rm = TRUE)
       for(j in i:l)
         if (i!=j){
           incProgress(2/(l*(l-1)), detail = paste(k,"(/", l*(l-1)/2 ,")"))
-          delta_i <- as.numeric(abs(mean(diff(index(object)[!is.na(object[,i])]))))
           delta_j <- as.numeric(abs(mean(diff(index(object)[!is.na(object[,j])]))))
-          data_i <- Delt(na.omit(object[,i]))
-          data_i <- data_i[data_i!="Inf"]
           data_j <- Delt(na.omit(object[,j]))
           data_j <- data_j[data_j!="Inf"]
-          dens1 <-  density(data_i/sqrt(delta_i)+mean(data_i, na.rm = TRUE)*(1-1/sqrt(delta_i)), na.rm = TRUE)
-          dens2 <-  density(data_j/sqrt(delta_j)+mean(data_j, na.rm = TRUE)*(1-1/sqrt(delta_j)), na.rm = TRUE)
+          dens2 <-  density(data_j/sqrt(delta_j)+mean(data_j, na.rm = TRUE)*(1/delta_j-1/sqrt(delta_j)), na.rm = TRUE)
           f_dist <- function(x) {abs(f(x,dens1)-f(x,dens2))}
           npoints <- 1000
           dist <- (max(tail(dens1$x,1), tail(dens2$x,1))-min(dens1$x[1],dens2$x[1]))/npoints*0.5*sum(f_dist(seq(from=min(dens1$x[1], dens2$x[1]), to=max(tail(dens1$x,1), tail(dens2$x,1)), length.out = npoints)))
           d[j,i] <- ifelse(dist > 1, 1, dist)
           k <- k + 1
         }
+    }
   })
   rownames(d) <- colnames(object)
   colnames(d) <- colnames(object)
@@ -585,3 +584,47 @@
 
 
 
+CPanalysis <- function(x, method = c("lSQ", "KS"), pvalue = 0.01){
+  if (pvalue > 0.1){
+    pvalue <- 0.1
+    warning("pvalue re-defined: 0.1")
+  }
+  if(method=="lSQ"){
+    tau <- cpoint(x)$tau0
+    return(list(tau=tau, pvalue=NA))
+  }
+  if(method=="KS"){
+    x_incr <- na.omit(Delt(x))
+    x_incr_num <- as.numeric(x_incr)
+    tau <- c()
+    p.value<-c()	
+    nTot <-length(x_incr_num)
+    n0 <- 1
+    repeat{
+      ks<-c()
+      for (i in seq(from = n0, to=(nTot-1), by = as.integer(1+(nTot-n0)/1000))){
+        ks[i]<- suppressWarnings(ks.test(x_incr_num[n0:i],x_incr_num[(i+1):nTot])$p.value)
+      }
+      ifelse(
+        min(ks, na.rm=TRUE) > pvalue,
+        {
+          break
+        },
+        {
+          n0 <- which.min(ks)
+          tau <- c(index(x_incr)[n0], tau)
+          p.value <- c(ks[n0], p.value)
+        }
+      )
+    }
+    if (length(tau)==0){
+      tau <- NA
+      p.value <- NA
+    }
+    return (list(tau=tau,pvalue=p.value))
+  }  
+}
+
+
+
+

Modified: pkg/yuimaGUI/inst/yuimaGUI/server.R
===================================================================
--- pkg/yuimaGUI/inst/yuimaGUI/server.R	2016-03-25 00:28:32 UTC (rev 423)
+++ pkg/yuimaGUI/inst/yuimaGUI/server.R	2016-03-26 23:05:54 UTC (rev 424)
@@ -1539,7 +1539,9 @@
   
   observeEvent(input$cluster_button_startCluster, {
     closeAlert(session, "cluster_alert_dist")
-    if (length(rownames(seriesToCluster$table))!=0){
+    if (length(rownames(seriesToCluster$table))<=2)
+      createAlert(session, anchorId = "cluster_alert", alertId = "cluster_alert_dist", content = "Select at least 3 series", style = "error")
+    if (length(rownames(seriesToCluster$table))>2){
       names_list <- rownames(seriesToCluster$table)
       x <- yuimaGUIdata$series[[names_list[1]]]
       for(i in names_list[-1])
@@ -1550,11 +1552,12 @@
         "MOdist" = try(MOdist(na.omit(x))),
         "MYdist" = try(MYdist(x))
       )
+      shinyjs::toggle("cluster_charts", condition = (class(d)!="try-error"))
       if (class(d)=="try-error")
         createAlert(session, anchorId = "cluster_alert", alertId = "cluster_alert_dist", content = "Error in clustering", style = "error")
       else{
         hc <- hclust(d)
-        labelColors <- c("#CDB380", "#036564", "#EB6841", "#EDC951")
+        labelColors <- c("#CDB380", "#FF0000", "#036564", "#FF00FF", "#EB6841", "#7FFFD4", "#EDC951","#FF8000", "#FFE4E1", "#A2CD5A", "#71C671", "#AAAAAA", "#555555", "#FFA07A", "#8B6508", "#FFC125", "#FFFACD", "#808000",   "#458B00", "#54FF9F", "#43CD80", "#008B8B", "#53868B", "#B0E2FF", "#0000FF", "#F8F8FF", "#551A8B", "#AB82FF", "#BF3EFF", "#FF83FA", "#8B1C62", "#CD6839", "#8E8E38", "#1E1E1E")
         dendrClick <- reactiveValues(y = NULL)
         output$cluster_dendogram <- renderPlot({
           if(!is.null(input$cluster_dendrogram_click$y))
@@ -1579,8 +1582,17 @@
             }
             hc <- dendrapply(as.dendrogram(hc), colDefault)
           }
-          par(bg="#471a1a", xaxt = "n", mar= c(10, 4, 4, 2)+0.1)
-          plot(hc, ylab = "", xlab = "", main = "Dendrogram", edgePar=list(col="grey50"), col.main = "#FFF68F")
+          output$cluster_button_saveDendogram <- downloadHandler(
+            filename = "Dendrogram.png",
+            content = function(file) {
+              png(file, width = 960)
+              par(bg="black", xaxt = "n", mar= c(10, 4, 4, 2)+0.1)
+              plot(hc, ylab = "", xlab = "", main = "Dendrogram", edgePar=list(col="grey50"), col.main = "#FFF68F", col.axis="grey")
+              dev.off()
+            }
+          )
+          par(bg="black", xaxt = "n", mar= c(10, 4, 4, 2)+0.1)
+          plot(hc, ylab = "", xlab = "", main = "Dendrogram", edgePar=list(col="grey50"), col.main = "#FFF68F", col.axis="grey")
         })
         output$cluster_scaling2D <- renderPlot({
           points <- cmdscale(d)
@@ -1588,7 +1600,16 @@
             g1 <- cutree(hclust(d), h = dendrClick$y)
           else
             g1 <- 1
-          par(bg="#471a1a", xaxt = "n", yaxt = "n", bty="n")
+          output$cluster_button_saveScaling2D <- downloadHandler(
+            filename = "Multidimensional scaling.png",
+            content = function(file) {
+              png(file)
+              par(bg="black", xaxt = "n", yaxt = "n", bty="n")
+              plot(points, col=labelColors[g1], pch=16, cex=2, main = "Multidimensional scaling", col.main = "#FFF68F", xlab="", ylab="")
+              dev.off()
+            }
+          )
+          par(bg="black", xaxt = "n", yaxt = "n", bty="n")
           plot(points, col=labelColors[g1], pch=16, cex=2, main = "Multidimensional scaling", col.main = "#FFF68F", xlab="", ylab="")
         })
       }
@@ -1597,8 +1618,106 @@
   
   
   
+  ########################Clustering
+  ########################
+  ########################
   
+  ###Display available data
+  output$changepoint_table_select <- DT::renderDataTable(options=list(scrollY = 150, scrollCollapse = FALSE, deferRender = TRUE, dom = 'frtS'), extensions = 'Scroller', selection = "multiple", rownames = FALSE,{
+    if (length(yuimaGUItable$series)==0){
+      NoData <- data.frame("Symb"=NA,"From"=NA, "To"=NA)
+      return(NoData[-1,])
+    }
+    return (yuimaGUItable$series)
+  })
+  
+  ###Table of selected data to change point
+  seriesToChangePoint <- reactiveValues(table=data.frame())
+  
+  ###Select Button
+  observeEvent(input$changepoint_button_select, priority = 1, {
+    seriesToChangePoint$table <<- rbind(seriesToChangePoint$table, yuimaGUItable$series[(rownames(yuimaGUItable$series) %in% input$changepoint_table_select_rows_selected) & !(rownames(yuimaGUItable$series) %in% rownames(seriesToChangePoint$table)),])
+  })
+  
+  ###SelectAll Button
+  observeEvent(input$changepoint_button_selectAll, priority = 1, {
+    seriesToChangePoint$table <<- rbind(seriesToChangePoint$table, yuimaGUItable$series[(rownames(yuimaGUItable$series) %in% input$changepoint_table_select_rows_all) & !(rownames(yuimaGUItable$series) %in% rownames(seriesToChangePoint$table)),])
+  })
+  
+  ###Display Selected Data
+  output$changepoint_table_selected <- DT::renderDataTable(options=list(order = list(1, 'desc'), scrollY = 150, scrollCollapse = FALSE, deferRender = TRUE, dom = 'frtS'), extensions = 'Scroller', rownames = FALSE, selection = "multiple",{
+    if (length(seriesToChangePoint$table)==0){
+      NoData <- data.frame("Symb"=NA,"From"=NA, "To"=NA)
+      return(NoData[-1,])
+    }
+    return (seriesToChangePoint$table)
+  })
+  
+  ###Control selected data to be in yuimaGUIdata$series
+  observe({
+    if(length(seriesToChangePoint$table)!=0){
+      if (length(yuimaGUItable$series)==0)
+        seriesToChangePoint$table <<- data.frame()
+      else
+        seriesToChangePoint$table <<- seriesToChangePoint$table[which(as.character(seriesToChangePoint$table[,"Symb"]) %in% as.character(yuimaGUItable$series[,"Symb"])),]
+    }
+  })
+  
+  ###Delete Button
+  observeEvent(input$changepoint_button_delete, priority = 1,{
+    if (!is.null(input$changepoint_table_selected_rows_selected))
+      seriesToChangePoint$table <<- seriesToChangePoint$table[-which(rownames(seriesToChangePoint$table) %in% input$changepoint_table_selected_rows_selected),]
+  })
+  
+  ###DeleteAll Button
+  observeEvent(input$changepoint_button_deleteAll, priority = 1,{
+    seriesToChangePoint$table <<- seriesToChangePoint$table[-which(rownames(seriesToChangePoint$table) %in% input$changepoint_table_selected_rows_all),]
+  })
+  
+  observe({
+    shinyjs::toggle("changepoint_pvalue", condition = (input$changepoint_method=="KS"))
+    shinyjs::toggle("changepoint_charts", condition = (length(names(yuimaGUIdata$cp))!=0))
+  })
+  
+  output$changepoint_symb <- renderUI({
+    selectInput("changepoint_symb", "Symbol", choices = sort(names(yuimaGUIdata$cp)))  
+  })
+  
+  observeEvent(input$changepoint_button_startEstimation, {
+    if (length(rownames(seriesToChangePoint$table))!=0)
+      withProgress(message = 'Analyzing: ', value = 0, {
+        for (i in rownames(seriesToChangePoint$table)){
+          incProgress(1/length(rownames(seriesToChangePoint$table)), detail = i)
+          yuimaGUIdata$cp[[i]] <<- CPanalysis(x=getData(i), method = input$changepoint_method, pvalue = input$changepoint_pvalue/100)
+        }
+      })
+  })
+  
 
+  output$changepoint_plot_series <- renderPlot({
+    if(!is.null(input$changepoint_symb))
+      if ((input$changepoint_symb %in% rownames(yuimaGUItable$series))){
+        par(bg="black")
+        plot(getData(input$changepoint_symb), main=input$changepoint_symb, xlab="Index", ylab=NA, log=switch(input$changepoint_scale,"Linear"="","Logarithmic (Y)"="y", "Logarithmic (X)"="x", "Logarithmic (XY)"="xy"), col="green", col.axis="grey", col.lab="grey", col.main="grey", fg="black")
+        abline(v=yuimaGUIdata$cp[[input$changepoint_symb]]$tau, col = "yellow")
+        grid(col="grey")
+      }
+  })
+  
+  output$changepoint_plot_incr <- renderPlot({
+    if(!is.null(input$changepoint_symb))
+      if ((input$changepoint_symb %in% rownames(yuimaGUItable$series))){
+        x <- Delt(getData(input$changepoint_symb))
+        x <- x[x!="Inf"]
+        par(bg="black")
+        plot(x, main=paste(input$changepoint_symb, " - Percentage Increments"), xlab="Index", ylab=NA, log=switch(input$changepoint_scale,"Linear"="","Logarithmic (Y)"="", "Logarithmic (X)"="x", "Logarithmic (XY)"="x"), col="green", col.axis="grey", col.lab="grey", col.main="grey", fg="black")
+        abline(v=yuimaGUIdata$cp[[input$changepoint_symb]]$tau, col = "yellow")
+        grid(col="grey")
+      }
+  })
+  
+  
+
 }
 
 

Modified: pkg/yuimaGUI/inst/yuimaGUI/ui.R
===================================================================
--- pkg/yuimaGUI/inst/yuimaGUI/ui.R	2016-03-25 00:28:32 UTC (rev 423)
+++ pkg/yuimaGUI/inst/yuimaGUI/ui.R	2016-03-26 23:05:54 UTC (rev 424)
@@ -10,6 +10,7 @@
              menuSubItem("Your Data", tabName = "yourData")
              ),
     menuItem("Explorative Data Analysis", tabName = "eda", icon = icon("map"),
+             menuSubItem("Change Point Estimation", tabName = "changepoint"),
              menuSubItem("Clustering", tabName = "cluster")
              ),
     menuItem("Modelling & Model Selection", tabName = "models", icon = icon("sliders")),
@@ -481,37 +482,81 @@
       fluidRow(column(12,
         column(4,
           h4("Available data", style="color:#CDCECD"),
-          DT::dataTableOutput("cluster_table_select"),
-          br(),
-          fluidRow(
-            column(6,actionButton("cluster_button_select",label = "Select", align = "center")),
-            bsTooltip("cluster_button_select", title = "Select data to cluster", placement = "top"),
-            column(6,actionButton("cluster_button_selectAll",label = "Select All", align = "center")),
-            bsTooltip("cluster_button_selectAll", title = "Select all data that are displayed", placement = "top")
-          )
+          DT::dataTableOutput("cluster_table_select")
         ),
         column(4,
           h4("Selected data", style="color:#CDCECD"),
-          DT::dataTableOutput("cluster_table_selected"),
-          br(),
-          fluidRow(
-            column(6,actionButton("cluster_button_delete",label = "Delete", align = "center")),
-            bsTooltip("cluster_button_delete", title = "Delete selected data", placement = "top"),
-            column(6,actionButton("cluster_button_deleteAll",label = "Delete All", align = "center")),
-            bsTooltip("cluster_button_deleteAll", title = "Delete all data that are displayed", placement = "top")
-          )
+          DT::dataTableOutput("cluster_table_selected")
         ),
         column(4,br(),br(),br(),br(),
-          div(align="center",selectInput("cluster_distance", "Distance", choices = c("Markov Operator"="MOdist", "My distance"="MYdist"))),
-          br(),br(),br(),br(),br(),br(),
-          actionButton("cluster_button_startCluster", label = "Start Clustering", align = "center")
+          div(align="center",selectInput("cluster_distance", "Distance", choices = c("Markov Operator"="MOdist", "My distance"="MYdist")))
         )
       )),
       br(),
-      fluidRow(
-        column(8, plotOutput("cluster_dendogram", click = "cluster_dendrogram_click")),        
-        column(4, plotOutput("cluster_scaling2D"))
-      )
+      fluidRow(column(12,
+        column(2,actionButton("cluster_button_select",label = "Select", align = "center")),
+        bsTooltip("cluster_button_select", title = "Select data to cluster", placement = "top"),
+        column(2,actionButton("cluster_button_selectAll",label = "Select All", align = "center")),
+        bsTooltip("cluster_button_selectAll", title = "Select all data that are displayed", placement = "top"),
+        column(2,actionButton("cluster_button_delete",label = "Delete", align = "center")),
+        bsTooltip("cluster_button_delete", title = "Delete selected data", placement = "top"),
+        column(2,actionButton("cluster_button_deleteAll",label = "Delete All", align = "center")),
+        bsTooltip("cluster_button_deleteAll", title = "Delete all data that are displayed", placement = "top"),           
+        column(4,actionButton("cluster_button_startCluster", label = "Start Clustering", align = "center"))
+      )),
+      shinyjs::hidden(div(id="cluster_charts",
+        br(),br(),
+        hr(class = "hrHeader"),
+        br(),
+        fluidRow(column(12,
+          column(8, plotOutput("cluster_dendogram", click = "cluster_dendrogram_click")),        
+          column(4, plotOutput("cluster_scaling2D"))
+        )),
+        br(),
+        fluidRow(column(12,
+          column(2),
+          column(4, div(align="center", downloadButton("cluster_button_saveDendogram", label = "Save dendrogram"))),        
+          column(3),
+          column(2, div(align="center", downloadButton("cluster_button_saveScaling2D", label = "Save chart")))
+        ))
+      ))
+    ),
+    tabItem(tabName = "changepoint",
+      fluidRow(column(12,bsAlert("changepoint_alert"))),
+      fluidRow(column(12,
+        column(4,
+          h4("Available data", style="color:#CDCECD"),
+          DT::dataTableOutput("changepoint_table_select")
+        ),
+        column(4,
+          h4("Selected data", style="color:#CDCECD"),
+          DT::dataTableOutput("changepoint_table_selected")
+        ),
+        column(4,br(),br(),br(),br(),
+          div(align="center", selectInput("changepoint_method", "Method", choices = c("Least Squares"="lSQ", "Kolmogorov-Smirnov"="KS"))),
+          shinyjs::hidden(div(align="center", sliderInput("changepoint_pvalue", label = "p-value (%)", value=1, min=0, max=10, step = 0.1)))
+        )
+      )),
+      br(),
+      fluidRow(column(12,
+        column(2,actionButton("changepoint_button_select",label = "Select", align = "center")),
+        bsTooltip("changepoint_button_select", title = "Select data", placement = "top"),
+        column(2,actionButton("changepoint_button_selectAll",label = "Select All", align = "center")),
+        bsTooltip("changepoint_button_selectAll", title = "Select all data that are displayed", placement = "top"),
+        column(2,actionButton("changepoint_button_delete",label = "Delete", align = "center")),
+        bsTooltip("changepoint_button_delete", title = "Delete selected data", placement = "top"),
+        column(2,actionButton("changepoint_button_deleteAll",label = "Delete All", align = "center")),
+        bsTooltip("changepoint_button_deleteAll", title = "Delete all data that are displayed", placement = "top"),
+        column(4,actionButton("changepoint_button_startEstimation", label = "Start Analysis", align = "center"))
+      )),
+      br(),br(),
+      fluidRow(column(12,div(id="changepoint_charts",
+        hr(class = "hrHeader"),
+        uiOutput("changepoint_symb", align="center"),
+        selectInput("changepoint_scale", label = "Scale", choices=c("Linear","Logarithmic (Y)","Logarithmic (X)", "Logarithmic (XY)"), width = "150px"),
+        column(6,plotOutput("changepoint_plot_series")),
+        column(6,plotOutput("changepoint_plot_incr"))
+      )))
     )
     ########################new tab items below
   )

Modified: pkg/yuimaGUI/inst/yuimaGUI/www/custom.css
===================================================================
--- pkg/yuimaGUI/inst/yuimaGUI/www/custom.css	2016-03-25 00:28:32 UTC (rev 423)
+++ pkg/yuimaGUI/inst/yuimaGUI/www/custom.css	2016-03-26 23:05:54 UTC (rev 424)
@@ -1,11 +1,11 @@
 .skin-blue .main-header .logo {
-                              background-color: #0F0F0E;
+                              background-color: black;
                               }
 .skin-blue .main-header .navbar {
-                              background-color: #0F0F0E;
+                              background-color: black;
                               }   
 .skin-blue .main-sidebar {
-                              background-color: #0F0F0E;
+                              background-color: black;
                               font-family: "Times New Roman", Times, serif;
                               }
 .content-wrapper, .right-side {
@@ -33,7 +33,7 @@
 	background: linear-gradient(#606D60, #202220, #606D60);
 }
 
-#advancedSettingsButtonApplyDelta, #advancedSettingsButtonApplyAllDelta, #advancedSettingsButtonApplyModel, #advancedSettingsButtonApplyAllModel, #advancedSettingsButtonApplyGeneral, #advancedSettingsButtonApplyAllModelGeneral, #advancedSettingsButtonApplyAllGeneral, #buttonApplyRange, #buttonApplyAllRange, #simulate_button_apply_nsim, #simulate_button_applyAll_nsim, #simulate_button_apply_xinit, #simulate_button_applyAll_xinit, #simulate_button_apply_range, #simulate_button_applyAll_range, #simulate_button_apply_advancedSettings, #simulate_button_applyAll_advancedSettings, #simulate_showSimulation_button_saveTrajectory, #simulate_showSimulation_button_saveHist{
+#advancedSettingsButtonApplyDelta, #advancedSettingsButtonApplyAllDelta, #advancedSettingsButtonApplyModel, #advancedSettingsButtonApplyAllModel, #advancedSettingsButtonApplyGeneral, #advancedSettingsButtonApplyAllModelGeneral, #advancedSettingsButtonApplyAllGeneral, #buttonApplyRange, #buttonApplyAllRange, #simulate_button_apply_nsim, #simulate_button_applyAll_nsim, #simulate_button_apply_xinit, #simulate_button_applyAll_xinit, #simulate_button_apply_range, #simulate_button_applyAll_range, #simulate_button_apply_advancedSettings, #simulate_button_applyAll_advancedSettings, #simulate_showSimulation_button_saveTrajectory, #simulate_showSimulation_button_saveHist, #cluster_button_saveDendogram, #cluster_button_saveScaling2D{
   width: 100%;
   color: #ffffff;
 	text-shadow: 1px 1px 1px #000;
@@ -53,7 +53,7 @@
 	background: linear-gradient(#606D60, #202220, #606D60);
 }
 
-#finDataDelete, #finDataDeleteAll, #finDataSave, #yourFileDelete, #yourFileDeleteAll, #yourFileSave, #buttonSelect_models_Univariate, #buttonSelectAll_models_Univariate, #buttonDelete_models_Univariate, #buttonDeleteAll_models_Univariate, #databaseModelsDelete, #databaseModelsDeleteAll, #simulation_button_deleteModels, #simulation_button_deleteAllModels, #simulate_button_selectModels, #simulate_button_selectAllModels, #simulate_monitor_button_delete, #simulate_monitor_button_deleteAll, #simulate_monitor_button_showSimulation, #simulate_model_usr_button_select, #simulate_model_usr_button_selectAll, #simulate_model_usr_button_delete, #simulate_model_usr_button_deleteAll, #cluster_button_select, #cluster_button_selectAll, #cluster_button_delete, #cluster_button_deleteAll{
+#finDataDelete, #finDataDeleteAll, #finDataSave, #yourFileDelete, #yourFileDeleteAll, #yourFileSave, #buttonSelect_models_Univariate, #buttonSelectAll_models_Univariate, #buttonDelete_models_Univariate, #buttonDeleteAll_models_Univariate, #databaseModelsDelete, #databaseModelsDeleteAll, #simulation_button_deleteModels, #simulation_button_deleteAllModels, #simulate_button_selectModels, #simulate_button_selectAllModels, #simulate_monitor_button_delete, #simulate_monitor_button_deleteAll, #simulate_monitor_button_showSimulation, #simulate_model_usr_button_select, #simulate_model_usr_button_selectAll, #simulate_model_usr_button_delete, #simulate_model_usr_button_deleteAll, #cluster_button_select, #cluster_button_selectAll, #cluster_button_delete, #cluster_button_deleteAll, #changepoint_button_select, #changepoint_button_selectAll, #changepoint_button_delete, #changepoint_button_deleteAll{
   font-size: 110%;
   width: 100%;  
   color: black;
@@ -71,7 +71,7 @@
 	background: linear-gradient(#202220, #159609, #202220);
 }
 
-#advancedSettingsButton, #simulate_button_advancedSettings, #usr_model_button_delete {
+#advancedSettingsButton, #simulate_button_advancedSettings {
   width: 40%;
   height: 39px;
   color: #ffffff;
@@ -79,14 +79,21 @@
 	background: linear-gradient(#202220, #963131, #202220);
 }
 
-#simulate_model_usr_button_save,#usr_model_button_save {
+#simulate_model_usr_button_save, #usr_model_button_save {
+  width: 40%;
+  height: 39px;
+  color: #ffffff;
+	background: radial-gradient(#061218, #184860, #061218);
+}
+
+#usr_model_button_delete {
   width: 30%;
   height: 39px;
   color: #ffffff;
-	background: radial-gradient(#a5bdc9, #184860, #061218);
+	background: radial-gradient(#202220, #963131, #202220);
 }
 
-#EstimateModels, #simulate_simulateModels, #cluster_button_startCluster {
+#EstimateModels, #simulate_simulateModels, #cluster_button_startCluster, #changepoint_button_startEstimation {
   width: 100%;  
 	color: #ffffff;
 	text-shadow: 1px 1px 1px #000;



More information about the Yuima-commits mailing list