Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e4b054d2d6 | |||
| bc678b2525 |
@@ -1,4 +0,0 @@
|
|||||||
assistant="default"
|
|
||||||
chat_provider="default"
|
|
||||||
copilot_enabled="-1"
|
|
||||||
copilot_indexing_enabled="-1"
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
auto_roxygenize_for_build_and_reload="1"
|
|
||||||
auto_roxygenize_for_build_package="1"
|
|
||||||
auto_roxygenize_for_check="1"
|
|
||||||
live_preview_website="0"
|
|
||||||
makefile_args=""
|
|
||||||
preview_website="1"
|
|
||||||
website_output_format="all"
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"sortOrder": [
|
|
||||||
{
|
|
||||||
"columnIndex": 2,
|
|
||||||
"ascending": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"path": "~/plateflow/NewApp"
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"activeTab": 3
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"left": {
|
|
||||||
"splitterpos": 349,
|
|
||||||
"topwindowstate": "NORMAL",
|
|
||||||
"panelheight": 872,
|
|
||||||
"windowheight": 910
|
|
||||||
},
|
|
||||||
"right": {
|
|
||||||
"splitterpos": 493,
|
|
||||||
"topwindowstate": "NORMAL",
|
|
||||||
"panelheight": 872,
|
|
||||||
"windowheight": 910
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"TabSet1": 0,
|
|
||||||
"TabSet2": 3,
|
|
||||||
"TabZoom": {},
|
|
||||||
"Sidebar": 0
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"file_monitor_use_gitignore": true
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"active_set":"","sets":[]}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "149,33",
|
|
||||||
"scrollLine": "0"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"tempName": "Untitled1",
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "53,0",
|
|
||||||
"scrollLine": "32"
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "2155,38",
|
|
||||||
"scrollLine": "2145",
|
|
||||||
"docOutlineVisible": "1",
|
|
||||||
"docOutlineSize": "118"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "43,17",
|
|
||||||
"scrollLine": "18"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"tempName": "Untitled1",
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "53,0",
|
|
||||||
"scrollLine": "32"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"docOutlineVisible": "1",
|
|
||||||
"cursorPosition": "470,1",
|
|
||||||
"scrollLine": "456"
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "917,0",
|
|
||||||
"scrollLine": "911"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
~%2Fplateflow%2FNewApp%2Fapp.R="2E42830B"
|
|
||||||
~%2Fplateflow%2Fwizard%2Fserver.R="D28532A3"
|
|
||||||
~%2Fplateflow%2Fwizard%2Fui.R="0498AE4A"
|
|
||||||
~%2Fplateflow%2FwizardNew%2FDataGenerator.R="75D6CC68"
|
|
||||||
~%2Fplateflow%2FwizardNew%2FUntitled.R="1F7C96C9"
|
|
||||||
~%2Fplateflow%2FwizardNew%2Fserver.R="E0EFE663"
|
|
||||||
~%2Fplateflow%2FwizardNew%2Fui.R="690ECC06"
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "00336B5B",
|
|
||||||
"path": "~/plateflow/wizard/ui.R",
|
|
||||||
"project_path": null,
|
|
||||||
"type": "r_source",
|
|
||||||
"hash": "0",
|
|
||||||
"contents": "",
|
|
||||||
"dirty": false,
|
|
||||||
"created": 1777315188063.0,
|
|
||||||
"source_on_save": false,
|
|
||||||
"relative_order": 3,
|
|
||||||
"properties": {
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "149,33",
|
|
||||||
"scrollLine": "0"
|
|
||||||
},
|
|
||||||
"folds": "",
|
|
||||||
"lastKnownWriteTime": 1776610618,
|
|
||||||
"encoding": "UTF-8",
|
|
||||||
"collab_server": "",
|
|
||||||
"source_window": "",
|
|
||||||
"last_content_update": 1776610618,
|
|
||||||
"read_only": false,
|
|
||||||
"read_only_alternatives": []
|
|
||||||
}
|
|
||||||
@@ -1,277 +0,0 @@
|
|||||||
library(shiny)
|
|
||||||
library(shinyjs)
|
|
||||||
library(shinyAce)
|
|
||||||
library(bslib)
|
|
||||||
|
|
||||||
version <- "1.0.0"
|
|
||||||
|
|
||||||
function(req) {
|
|
||||||
fluidPage(
|
|
||||||
useShinyjs(),
|
|
||||||
titlePanel("Dilution Wizard"),
|
|
||||||
tags$head(tags$style((".shiny-notification {position: fixed; top: 20%;left: 50%; margin-top: -100px;
|
|
||||||
margin-left: -250px; color: blue;font-size: 20px; font-style: italic;}")),
|
|
||||||
tabsetPanel(id="toptab",
|
|
||||||
tabPanel("Data entry",
|
|
||||||
wellPanel(
|
|
||||||
fluidRow(
|
|
||||||
tags$head(tags$style(HTML("label {font-size:80%;margin-bottom: 3px;margin-top: 3px;}"))),
|
|
||||||
column(2,
|
|
||||||
tags$image(src="logo.png", class="adv_logo"),
|
|
||||||
h4("upload EXCEL"),
|
|
||||||
fileInput(inputId = "iFile", label = "", accept="ms-excel"),
|
|
||||||
uiOutput(outputId = "sheetName"),
|
|
||||||
div(checkboxInput("PureErr", "Should pure error be used for calculation of CIs?", FALSE),
|
|
||||||
style = "font-size: 24px !important;color: red"),
|
|
||||||
verbatimTextOutput("stats"),
|
|
||||||
h5("\n\n\n Author: Franz Innerbichler, InnerAnalytics")),
|
|
||||||
div(id="parameter",
|
|
||||||
column(1,style = "background: lightgrey",
|
|
||||||
#actionButton("StartCalc", "Click, when calculations to be started"),
|
|
||||||
h4("curve settings"),
|
|
||||||
numericInput("lowAsymptREF", "lower asymptote REF",10,step=1,min=0),
|
|
||||||
numericInput("lowAsymptTEST", "lower asymptote TEST",10,step=1,min=0),
|
|
||||||
numericInput("uppAsymptREF", "upper asymptote REF",110,step=1,min=0),
|
|
||||||
numericInput("uppAsymptTEST", "upper asymptote TEST",110,step=1,min=0)
|
|
||||||
),
|
|
||||||
column(1,style = "background: lightgrey",
|
|
||||||
numericInput("slopeREF", "slope REF",1,step=0.1,min=-10),
|
|
||||||
numericInput("slopeTEST", "slope TEST",1,step=0.1,min=-10),
|
|
||||||
numericInput("EC50", "EC50 REF",-3.5),
|
|
||||||
numericInput("potDiff", "potency difference",0)
|
|
||||||
),
|
|
||||||
column(1,style = "background: lightgreen",
|
|
||||||
h4("dilutions"),
|
|
||||||
numericInput("CONC1", "highest concentration",0.3, min=-3.5),
|
|
||||||
numericInput("CONC2", "2nd concentration",0.15),
|
|
||||||
numericInput("CONC3", "3rd concentration",0.075),
|
|
||||||
numericInput("CONC4", "4th concentration",0.0375),
|
|
||||||
numericInput("CONC5", "5th concentration",0.01875),
|
|
||||||
|
|
||||||
numericInput("CONC6", "6th concentration",0.00938)
|
|
||||||
),
|
|
||||||
column(1,style = "background: lightgreen",
|
|
||||||
|
|
||||||
numericInput("CONC7", "7th concentration",0.00469),
|
|
||||||
numericInput("CONC8", "8thd concentration",0.00235),
|
|
||||||
numericInput("CONC9", "9thd concentration",NA),
|
|
||||||
numericInput("CONC10", "10th concentration",NA),
|
|
||||||
numericInput("CONC11", "11th concentration",NA),
|
|
||||||
|
|
||||||
numericInput("CONC12", "lowest concentration",NA)
|
|
||||||
),
|
|
||||||
column(1,style = "background: lightblue",
|
|
||||||
h4("geometric dilution scheme"),
|
|
||||||
numericInput("ConcStart", "starting concentration",NA),
|
|
||||||
numericInput("dilutionFac", "dilution factor",NA),
|
|
||||||
numericInput("NoDil", "no. of dilutions",NA),
|
|
||||||
numericInput("NoDilSer", "no. of dil. series",NA),
|
|
||||||
verbatimTextOutput("dilutions")
|
|
||||||
),
|
|
||||||
column(4,
|
|
||||||
h4("log-dilution scheme"),
|
|
||||||
verbatimTextOutput("logdil"),
|
|
||||||
h4("User help"),
|
|
||||||
h5("If new dilutions are entered, please adjust EC50 to avoid calculation errors"))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)),
|
|
||||||
|
|
||||||
#### XLSX diagnostics ----
|
|
||||||
tabPanel ("XLSX diagnostics",
|
|
||||||
tags$style(HTML("pre { color: black; background-color: #FFE1FF;
|
|
||||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 12px;} ")),
|
|
||||||
wellPanel(
|
|
||||||
fluidRow(
|
|
||||||
column(2,
|
|
||||||
h5("Diagnostics only shown if EXCEL is uploaded"),
|
|
||||||
htmlOutput("PureErrW2"),
|
|
||||||
tags$head(tags$style("#PureErrW2{color: red;
|
|
||||||
font-size: 16px;
|
|
||||||
font_style: italic;}")),
|
|
||||||
tableOutput("FileSAmpl"),
|
|
||||||
downloadButton("downloadXLReport", label="Download PDF report", class="butt"),
|
|
||||||
tags$style(type="text/css","#downloadXLReport {background-color: orange; color: black;font-family: COurier New}"),
|
|
||||||
plotOutput("relpotTestPlot", width="300px", height="150px"),
|
|
||||||
h4("Akaike Information Criterion"),
|
|
||||||
tableOutput("AIC"),
|
|
||||||
h5("First row: restricted model; 2nd row: unrestricted model"),
|
|
||||||
h5("Smaller values of AIC indicate better fit to the data"),
|
|
||||||
tableOutput("VarDiagn")
|
|
||||||
),
|
|
||||||
column(4,
|
|
||||||
plotOutput("XLplot"),
|
|
||||||
column(6,
|
|
||||||
br(),
|
|
||||||
"Regression results restricted",
|
|
||||||
tableOutput("coeffs_r"),
|
|
||||||
"Bend points restricted",
|
|
||||||
tableOutput("coeffs_r2")),
|
|
||||||
column(6,
|
|
||||||
br(),
|
|
||||||
"Regression results unrestricted",
|
|
||||||
tableOutput("coeffs_unr"))),
|
|
||||||
column(4,
|
|
||||||
plotOutput("diagnplot"),
|
|
||||||
column(6,
|
|
||||||
tableOutput("logcoeffs_r"),
|
|
||||||
tableOutput("coeffs_unr2")),
|
|
||||||
column(6,
|
|
||||||
tableOutput("logcoeffs_unr"))),
|
|
||||||
column(2,
|
|
||||||
tableOutput("ANOVAXLS"),
|
|
||||||
DT::renderDataTable("EQtests"))
|
|
||||||
)
|
|
||||||
)),
|
|
||||||
#### 4pl fits ----
|
|
||||||
tabPanel("4pl-fit",
|
|
||||||
wellPanel(
|
|
||||||
fluidRow(
|
|
||||||
column(6,
|
|
||||||
tags$style(span(htmlOutput("PureErrW3"), style="color: red")),
|
|
||||||
htmlOutput("PureErrW3"),
|
|
||||||
tags$head(tags$style("#PureErrW2{color: red;
|
|
||||||
font-size: 16px;
|
|
||||||
font_style: italic;}")),
|
|
||||||
plotOutput("plot"),
|
|
||||||
DT::dataTableOutput("pottab4pl"),
|
|
||||||
"Footnote: test performed on absolute CIs."),
|
|
||||||
column(6,
|
|
||||||
DT::dataTableOutput("secondary"), # SSTs
|
|
||||||
h5("*...The estimate for F-test on regression and on non-linearity is the p-value"),
|
|
||||||
h5("F-test on regression passes if F-value > F-crit and thus p < 0.05"),
|
|
||||||
h5("F-test on non-linearity passes if F-value < F-crit and thus p > 0.05"),
|
|
||||||
h5("Test results outcome: 0 ... test passed (for EQ tests: CI within limits);
|
|
||||||
1 ... test failed (for EQ tests CI not within limits);
|
|
||||||
-1 ... calculations unbound/denominator too close to 0"),
|
|
||||||
#plotOutput("CIplot, height=50%")
|
|
||||||
)
|
|
||||||
))
|
|
||||||
),
|
|
||||||
#### Linear PLA ----
|
|
||||||
tabPanel("Linear PLA",
|
|
||||||
wellPanel(
|
|
||||||
fluidRow(
|
|
||||||
column(6,
|
|
||||||
htmlOutput("PureErrW3"),
|
|
||||||
tags$head(tags$style("#PureErrW2{color: red;
|
|
||||||
font-size: 16px;
|
|
||||||
font_style: italic;}")),
|
|
||||||
plotOutput("plotLin"),
|
|
||||||
"Delta method is used for potency CIs",
|
|
||||||
DT::dataTableOutput("pottab"),
|
|
||||||
h4("Unrestricted linear model (SSSI):"),
|
|
||||||
tableOutput("SummaryModABu"),
|
|
||||||
h4("Restricted linear model (CSSI):"),
|
|
||||||
tableOutput("SummaryModAB")),
|
|
||||||
column(3,
|
|
||||||
h3("Tests for linear PLA):"),
|
|
||||||
DT::dataTableOutput("TESTSlin"),
|
|
||||||
h5("The estimate is the p-value of the test"),
|
|
||||||
h5("F-tests on regression, significance of slopes, and preparation need to have a p-value <0.05 to pass"),
|
|
||||||
h5("All other tests pass if p-value > 0.05"),
|
|
||||||
"SST CI for difference of slopes:",
|
|
||||||
tableOutput("SlopeDiffCI")),
|
|
||||||
column(3,
|
|
||||||
h3("ANOVA for parallel line assay"),
|
|
||||||
DT::dataTableOutput("ANOVAlin"))
|
|
||||||
)
|
|
||||||
)),
|
|
||||||
#### Dilution simulator ----
|
|
||||||
tabPanel("Dilution simulator",
|
|
||||||
wellPanel(
|
|
||||||
fluidRow(
|
|
||||||
column(4,
|
|
||||||
h3("Confidence intervals"),
|
|
||||||
tableOutput("CIs"),
|
|
||||||
"The confidence intrval table is interaactive for changes in: variability slider (%SD), potency of test-slider,
|
|
||||||
and 'Adjust the dilutions'-slider",
|
|
||||||
tableOutput("optimalDils"),
|
|
||||||
selectInput(inputId="scenario", label= "Select an 'optimal' scenario:", choices = c("scenario 2","scenario 3","scenario 6","steep slope"))),
|
|
||||||
column(5,
|
|
||||||
plotOutput("plotfordilutions"),
|
|
||||||
h4("in grey: most extreme bend point lines of theoretical samples with 50% and 200% potency"),
|
|
||||||
sliderInput("dilslider", "Adjust the dilutions(+-change in %)", min = -100,max=100, value=0, step=1, round=0),
|
|
||||||
checkboxInput("fixupper","Fix highest concentration (if unticked, the center is fixed)",FALSE),
|
|
||||||
h5("Dilution factors"),
|
|
||||||
tableOutput("adjlogdil"),
|
|
||||||
"Short guidance: wider dilution ranges increase the CIs of rel. potency, and decrease the CIs of upper and lower asymptote ratios, as well as Hill's slope ratios", br(),
|
|
||||||
"Narrower dilution ranges decrease the CIs of rel. potency, and increase the CIs of upper and lower asymptote ratios, ands Hill's slope ratios",),
|
|
||||||
column(3,
|
|
||||||
h3("Bend points"),
|
|
||||||
tableOutput("bps"),
|
|
||||||
tableOutput("extremebps"),
|
|
||||||
h4("Explanation of the plots")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)),
|
|
||||||
#### EQ limits simulation ----
|
|
||||||
tabPanel("EQ-limit simulatioin",
|
|
||||||
wellPanel(
|
|
||||||
fluidRow(
|
|
||||||
column(1, style="background: lightblue",
|
|
||||||
numericInput("simN","number of datasets to simulate", 100, step=10, min=10, max=1000),
|
|
||||||
numericInput("lowQuant", "lower quantile", 1, min = 0.01,max=20),
|
|
||||||
numericInput("uppQuant", "upper quantile", 99, min = 801,max=99.99),
|
|
||||||
actionButton('goSim', "Start simulation",class="btn-success")
|
|
||||||
),
|
|
||||||
column(4,
|
|
||||||
h4("estimation of EACs for slope ratio, dynamic range-ratio, upper asymptote ratio, and potency"),
|
|
||||||
plotOutput("plotHistuAs", width = "1400px", height = "400px"))
|
|
||||||
)
|
|
||||||
)),
|
|
||||||
#### Documentation ----
|
|
||||||
tabPanel("Documentation",
|
|
||||||
h4("Information on dilution setting"),
|
|
||||||
"(for details see:", a(href="ADONIS.pdf","Whitepaper", download=NA, target="_blank"),")",tags$br(),
|
|
||||||
"Bend points are calculated according to following formula:",
|
|
||||||
withMathJax(" $$bp_{1/2} = \\pm\\frac{1.31696}{Hill's slope}$$"))),
|
|
||||||
|
|
||||||
#### setting lower panel ----
|
|
||||||
wellPanel(
|
|
||||||
fluidRow(
|
|
||||||
column(2,
|
|
||||||
h3("Settings"),
|
|
||||||
helpText("Vary the slider to see the effect of special cause"),
|
|
||||||
sliderInput("sdfac","Variability as % of lower to upper asymptote", max=10, value=3, min=0.1, step=0.1),
|
|
||||||
checkboxInput("heterosked","heteroskedastic noise", FALSE),
|
|
||||||
sliderInput("potencydiff","potency of test (%)", max=200, min=50, value=100, step=1),
|
|
||||||
sliderInput("outlL","outlier in lower asymptote", min=0, max=1.5, value=0, step=0.1),
|
|
||||||
sliderInput("outlM","outlier in mid part", min=0, max=1.5,value=0, step=0.1),
|
|
||||||
sliderInput("outlU","outlier in upper asymptote", min=0, max=1.5,value=0, step=0.1)
|
|
||||||
),
|
|
||||||
column(1,
|
|
||||||
tags$table(id="dose-table",
|
|
||||||
numericInput("lEACdiffla","lower EAC for diff. of LA", -0.175, step=0.001),
|
|
||||||
numericInput("uEACdiffla","upper EAC for diff. of LA", 0.189, step=0.001),
|
|
||||||
numericInput("lEACratiola","lower EAC ratio of LAs", 0.005, step=0.001),
|
|
||||||
numericInput("uEACratiola","upper EAC for ratio of LAs", 100, step=1),
|
|
||||||
|
|
||||||
numericInput("lEACratioSlope","lower EAC for ratio of slopes", 0.55, step=0.01),
|
|
||||||
numericInput("uEACratioSlope","upper EAC for ratio of slopes", 1.84, step=0.1),
|
|
||||||
numericInput("lEACratioua","lower EAC for ratio of UAs", 0.75, step=0.1),
|
|
||||||
numericInput("uEACratioua","upper EAC for ratio of UAs", 1.33, step=0.1),
|
|
||||||
numericInput("lowerPot","lower EAC for potency", 75, step=1),
|
|
||||||
numericInput("upperPot","upper EAC for potency", 133, step=1),
|
|
||||||
numericInput("lEACratioAdiff","lower EAC of ratio of asymptote differences", 0.75, step=0.01),
|
|
||||||
numericInput("uEACratioAdiff","upper EAC of ratio of asymptote differences", 1.33, step=0.01)
|
|
||||||
)),
|
|
||||||
column(4,
|
|
||||||
"4 PL ANOVA unrestricted",
|
|
||||||
DT::dataTableOutput("ANOVA"),
|
|
||||||
h5("Please note that for the CIs of rel. potency the RSS of the restricted model is used"),
|
|
||||||
h5("RSS ... 'Residual error' in the SumSquares column"),
|
|
||||||
h5("MSE ... 'Residual error' in the MSs column"),
|
|
||||||
h5("SSE ... 'Pure error' in the SumSquares column"),
|
|
||||||
h5("RMSE ... Square root of the 'Residual Error' in the MS column"),
|
|
||||||
verbatimTextOutput("RMSE")
|
|
||||||
),
|
|
||||||
column(5,
|
|
||||||
DT::dataTableOutput("Conctab"))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "2D702BEF",
|
|
||||||
"path": "~/plateflow/wizard/server.R",
|
|
||||||
"project_path": null,
|
|
||||||
"type": "r_source",
|
|
||||||
"hash": "0",
|
|
||||||
"contents": "",
|
|
||||||
"dirty": false,
|
|
||||||
"created": 1777235022084.0,
|
|
||||||
"source_on_save": false,
|
|
||||||
"relative_order": 2,
|
|
||||||
"properties": {
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"docOutlineVisible": "1",
|
|
||||||
"cursorPosition": "470,1",
|
|
||||||
"scrollLine": "456"
|
|
||||||
},
|
|
||||||
"folds": "",
|
|
||||||
"lastKnownWriteTime": 1777235902,
|
|
||||||
"encoding": "UTF-8",
|
|
||||||
"collab_server": "",
|
|
||||||
"source_window": "",
|
|
||||||
"last_content_update": 1777235902359,
|
|
||||||
"read_only": false,
|
|
||||||
"read_only_alternatives": []
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "47543094",
|
|
||||||
"path": "~/plateflow/NewApp/app.R",
|
|
||||||
"project_path": "app.R",
|
|
||||||
"type": "r_source",
|
|
||||||
"hash": "2785151077",
|
|
||||||
"contents": "",
|
|
||||||
"dirty": false,
|
|
||||||
"created": 1777232335294.0,
|
|
||||||
"source_on_save": false,
|
|
||||||
"relative_order": 3,
|
|
||||||
"properties": {
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "2155,38",
|
|
||||||
"scrollLine": "2145",
|
|
||||||
"docOutlineVisible": "1",
|
|
||||||
"docOutlineSize": "118"
|
|
||||||
},
|
|
||||||
"folds": "",
|
|
||||||
"lastKnownWriteTime": 1777839495,
|
|
||||||
"encoding": "UTF-8",
|
|
||||||
"collab_server": "",
|
|
||||||
"source_window": "",
|
|
||||||
"last_content_update": 1777839495532,
|
|
||||||
"read_only": false,
|
|
||||||
"read_only_alternatives": []
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,51 +0,0 @@
|
|||||||
#
|
|
||||||
# This is a Shiny web application. You can run the application by clicking
|
|
||||||
# the 'Run App' button above.
|
|
||||||
#
|
|
||||||
# Find out more about building applications with Shiny here:
|
|
||||||
#
|
|
||||||
# https://shiny.posit.co/
|
|
||||||
#
|
|
||||||
|
|
||||||
library(shiny)
|
|
||||||
|
|
||||||
# Define UI for application that draws a histogram
|
|
||||||
ui <- fluidPage(
|
|
||||||
|
|
||||||
# Application title
|
|
||||||
titlePanel("Old Faithful Geyser Data"),
|
|
||||||
|
|
||||||
# Sidebar with a slider input for number of bins
|
|
||||||
sidebarLayout(
|
|
||||||
sidebarPanel(
|
|
||||||
sliderInput("bins",
|
|
||||||
"Number of bins:",
|
|
||||||
min = 1,
|
|
||||||
max = 50,
|
|
||||||
value = 30)
|
|
||||||
),
|
|
||||||
|
|
||||||
# Show a plot of the generated distribution
|
|
||||||
mainPanel(
|
|
||||||
plotOutput("distPlot")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
# Define server logic required to draw a histogram
|
|
||||||
server <- function(input, output) {
|
|
||||||
|
|
||||||
output$distPlot <- renderPlot({
|
|
||||||
# generate bins based on input$bins from ui.R
|
|
||||||
x <- faithful[, 2]
|
|
||||||
bins <- seq(min(x), max(x), length.out = input$bins + 1)
|
|
||||||
|
|
||||||
# draw the histogram with the specified number of bins
|
|
||||||
hist(x, breaks = bins, col = 'darkgray', border = 'white',
|
|
||||||
xlab = 'Waiting time to next eruption (in mins)',
|
|
||||||
main = 'Histogram of waiting times')
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
# Run the application
|
|
||||||
shinyApp(ui = ui, server = server)
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "AFA288F2",
|
|
||||||
"path": "~/plateflow/wizardNew/DataGenerator.R",
|
|
||||||
"project_path": null,
|
|
||||||
"type": "r_source",
|
|
||||||
"hash": "0",
|
|
||||||
"contents": "",
|
|
||||||
"dirty": false,
|
|
||||||
"created": 1777554257099.0,
|
|
||||||
"source_on_save": false,
|
|
||||||
"relative_order": 4,
|
|
||||||
"properties": {
|
|
||||||
"tempName": "Untitled1",
|
|
||||||
"source_window_id": "",
|
|
||||||
"Source": "Source",
|
|
||||||
"cursorPosition": "53,0",
|
|
||||||
"scrollLine": "32"
|
|
||||||
},
|
|
||||||
"folds": "",
|
|
||||||
"lastKnownWriteTime": 1777557164,
|
|
||||||
"encoding": "UTF-8",
|
|
||||||
"collab_server": "",
|
|
||||||
"source_window": "",
|
|
||||||
"last_content_update": 1777557164367,
|
|
||||||
"read_only": false,
|
|
||||||
"read_only_alternatives": []
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
Calc_DilRes <- function(as=3, bs=1, cs=-4, ds=10, at=3, bt=1, dt=10,r=0.0001,ct=cs-r,
|
|
||||||
sd_fac=0.1, gt=1, gs=1, log_conc,
|
|
||||||
heteroNoise=FALSE, noDilSeries, noDils) {
|
|
||||||
yAxfac <- (ds-as)
|
|
||||||
log_dose <- log_conc
|
|
||||||
isRef <- rep(c(1,0),1,each=length(log_conc)*noDilSeries)
|
|
||||||
isSample <- rep(c(0,1),1,each=length(log_conc)*noDilSeries)
|
|
||||||
browser()
|
|
||||||
av <- as*isRef + at*isSample + (ds*isRef + dt*isSample - as*isRef - at*isSample)/
|
|
||||||
(1+isRef*exp(bs*(cs - log_dose)) + isSample*exp(bt*(ct-log_dose)))
|
|
||||||
if (heteroNoise) {
|
|
||||||
# heterosc noise
|
|
||||||
ro_jit <- matrix(unlist(map(av, function(x) x+rnorm(1,0,x*sd_fac/100))), nrow=noDils, ncol=noDilSeries*2)
|
|
||||||
} else {
|
|
||||||
# homosc noise
|
|
||||||
ro_jit <- matrix(unlist(map(av, function(x) x+rnorm(1,0,sd_fac*yAxfac/100))), nrow=noDils, ncol=noDilSeries*2)
|
|
||||||
}
|
|
||||||
ro_jit <- abs(ro_jit)
|
|
||||||
|
|
||||||
ro_jit2 <- cbind(ro_jit, log_dose)
|
|
||||||
if (noDilSeries==3) {
|
|
||||||
colnames(ro_jit2) <- c("R_dil1","R_dil2","R_dil3","T_dil1","T_dil2","T_dil3", "log_dose")
|
|
||||||
} else {
|
|
||||||
colnames(ro_jit2) <- c("R_dil1","R_dil2","T_dil1","T_dil2", "log_dose")
|
|
||||||
}
|
|
||||||
return(ro_jit2)
|
|
||||||
}
|
|
||||||
|
|
||||||
library(openxlsx)
|
|
||||||
Conc <- 9*1/(3^(1:11))
|
|
||||||
Conc_ <- c(9, Conc)
|
|
||||||
|
|
||||||
ro_new <- list()
|
|
||||||
ro_new[[1]] <- Calc_DilRes(as=1000, bs=-2, cs=-4, ds=10000, at=1000, bt=-2, dt=10000, log_conc = log(Conc_),
|
|
||||||
sd_fac=3.3,
|
|
||||||
# auslenkU=outlierU,
|
|
||||||
# auslenkM=outlierM,
|
|
||||||
# auslenkL=outlierL,
|
|
||||||
heteroNoise = F, noDilSeries = 2, noDils = 12)
|
|
||||||
ro_new[[2]] <- Calc_DilRes(as=1000, bs=-2, cs=-4, ds=10000, at=1000, bt=-2, dt=10000, log_conc = log(Conc_),
|
|
||||||
sd_fac=3.3,r=0.1,
|
|
||||||
# auslenkU=outlierU,
|
|
||||||
# auslenkM=outlierM,
|
|
||||||
# auslenkL=outlierL,
|
|
||||||
heteroNoise = F, noDilSeries = 2, noDils = 12)
|
|
||||||
ro_new[[3]] <- Calc_DilRes(as=1000, bs=-2, cs=-4, ds=10000, at=1000, bt=-2, dt=10000, log_conc = log(Conc_),
|
|
||||||
sd_fac=3.2, r=-0.3,
|
|
||||||
# auslenkU=outlierU,
|
|
||||||
# auslenkM=outlierM,
|
|
||||||
# auslenkL=outlierL,
|
|
||||||
heteroNoise = F, noDilSeries = 2, noDils = 12)
|
|
||||||
|
|
||||||
write.xlsx(ro_new, "~/plateflow/wizard/Tests3Plates.xlsx")
|
|
||||||
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
|
|
||||||
library(shiny)
|
|
||||||
library(shinydashboard)
|
|
||||||
library(fontawesome)
|
|
||||||
|
|
||||||
ui <- dashboardPage(
|
|
||||||
dashboardHeader("wizard"),
|
|
||||||
dashboardSidebar(
|
|
||||||
sidebarMenu(
|
|
||||||
img(src="logo.png", width=230),
|
|
||||||
menuItem("Home", tabName="home", icon=icon("home")),
|
|
||||||
menuItem("Data template", tabName = "template", icon=icon("table"),
|
|
||||||
menuSubItem( tags$li(a("EXCEL File", target="self",href="TestFIle.xlsx")))
|
|
||||||
),
|
|
||||||
menuItem("User Manual /Validation", tabName = "manual", icon=icon("book"),
|
|
||||||
menuSubItem(icon = NULL, tags$li(a("Document", target="self",href="UserManual.pdf")))
|
|
||||||
),
|
|
||||||
menuItem("EXCEL upload", tabName="Dataupload", icon=icon("magnet", lib="glyphicon")),
|
|
||||||
menuItem("4PL + report", tabName="4PL", icon=icon("chart-line", lib="font-awesome")),
|
|
||||||
menuItem("Linear regression + report", tabName="pla", icon=icon("pencil", lib="glyphicon")),
|
|
||||||
menuItem("Wizard", tabName="wizard", icon=icon("chart-column", lib="font-awesome")),
|
|
||||||
menuItem("Documentation", tabName="documentation", icon=icon("chart-area", lib="font-awesome"))
|
|
||||||
),
|
|
||||||
tags$footer(HTML(paste("Owned by",tags$strong(tags$u("InnerAnalytics")), paste(rep(" ",9), collapse=""),
|
|
||||||
"Developer:", paste(rep(" ",9), collapse=""),
|
|
||||||
"Host on:", paste(rep(" ",9), collapse=""),
|
|
||||||
"Version:")),
|
|
||||||
align="left", style=
|
|
||||||
"position:fixed; bottom_=;;width=100%; background: #7FAEFF; font-family: Times New Roman; font-size:100%;
|
|
||||||
padding: 5px; color:#990000; box-sizing: border-box; z-index: 1000;")
|
|
||||||
),
|
|
||||||
dashboardBody(
|
|
||||||
fluidPage(
|
|
||||||
tabItems(
|
|
||||||
tabItem(tabName = "home", htmlOutput("homePage")),
|
|
||||||
tabItem(tabName = "Datapload", uiOutput("Dataupload")),
|
|
||||||
tabItem(tabName = "fourPL", uiOutput("fourPL")),
|
|
||||||
tabItem(tabName = "pla", uiOutput("pla")),
|
|
||||||
tabItem(tabName = "wizard", uiOutput("wizard"))
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
) , skin="blue"
|
|
||||||
)
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
/Users/franzinnerbichler/plateflow/NewApp/app.R="232C6386"
|
|
||||||
/Users/franzinnerbichler/plateflow/wizardNew/DataGenerator.R="038FF5B5"
|
|
||||||
/Users/franzinnerbichler/plateflow/wizardNew/Untitled.R="405C9157"
|
|
||||||
/Users/franzinnerbichler/plateflow/wizardNew/server.R="710F8608"
|
|
||||||
/Users/franzinnerbichler/plateflow/wizardNew/ui.R="CB737866"
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
.Rproj.user
|
||||||
|
.Rproj
|
||||||
|
.Rhistory
|
||||||
|
.RData
|
||||||
|
.Ruserdata
|
||||||
@@ -2164,7 +2164,8 @@ server <- function(input, output, session) {
|
|||||||
|
|
||||||
# tab <- sim2()
|
# tab <- sim2()
|
||||||
if (is.character(tab)) stop(tab)
|
if (is.character(tab)) stop(tab)
|
||||||
browser()
|
#browser()
|
||||||
|
log_conc <- tab$log_dose
|
||||||
noDilSer = (ncol(tab)-1)/2
|
noDilSer = (ncol(tab)-1)/2
|
||||||
noDil <- nrow(tab)
|
noDil <- nrow(tab)
|
||||||
Conctab <- perConcTab(tab, noDilSer)
|
Conctab <- perConcTab(tab, noDilSer)
|
||||||
@@ -2173,11 +2174,11 @@ server <- function(input, output, session) {
|
|||||||
slopeSt <- slopeTe <- matrix(NA, nrow=noDil-2,ncol=2)
|
slopeSt <- slopeTe <- matrix(NA, nrow=noDil-2,ncol=2)
|
||||||
for (i in 1:(noDil-2)) {
|
for (i in 1:(noDil-2)) {
|
||||||
avs <- Conctab[noDilSer+1,]
|
avs <- Conctab[noDilSer+1,]
|
||||||
threes <- data.frame(lnC=log(Conc[i:(i+2)]), resp=avs[i:(i+2)])
|
threes <- data.frame(lnC=log_conc[i:(i+2)], resp=avs[i:(i+2)])
|
||||||
lm3St <- lm(resp ~ lnC, data=threes)
|
lm3St <- lm(resp ~ lnC, data=threes)
|
||||||
slopeSt[i,] <- lm3St$coefficients
|
slopeSt[i,] <- lm3St$coefficients
|
||||||
avt <- Conctab[noDilSer*2+4,]
|
avt <- Conctab[noDilSer*2+4,]
|
||||||
threet <- data.frame(lnC=log(Conc[i:(i+2)]), resp=avt[i:(i+2)])
|
threet <- data.frame(lnC=log_conc[i:(i+2)], resp=avt[i:(i+2)])
|
||||||
lm3Te <- lm(resp ~ lnC, data=threet)
|
lm3Te <- lm(resp ~ lnC, data=threet)
|
||||||
slopeTe[i,] <- lm3Te$coefficients
|
slopeTe[i,] <- lm3Te$coefficients
|
||||||
}
|
}
|
||||||
@@ -2185,9 +2186,9 @@ server <- function(input, output, session) {
|
|||||||
indS <- which(abs(slopeSt[,2]) == max(abs(slopeSt[,2])))
|
indS <- which(abs(slopeSt[,2]) == max(abs(slopeSt[,2])))
|
||||||
indT <- which(abs(slopeTe[,2]) == max(abs(slopeTe[,2])))
|
indT <- which(abs(slopeTe[,2]) == max(abs(slopeTe[,2])))
|
||||||
|
|
||||||
pl_ <- slopeSt[indS,1]+slopeSt[indS,2]*log(Conc)
|
pl_ <- slopeSt[indS,1]+slopeSt[indS,2]*log_conc
|
||||||
pl_T <- slopeTe[indT,1]+slopeTe[indT,2]*log(Conc)
|
pl_T <- slopeTe[indT,1]+slopeTe[indT,2]*log_conc
|
||||||
pl_df <- data.frame(lnC=log(Conc), plotS=pl_, plotT=pl_T)
|
pl_df <- data.frame(lnC=log_conc, plotS=pl_, plotT=pl_T)
|
||||||
|
|
||||||
all_l <- melt(data.frame(tab), id.vars="log_dose",variable.name="replname",value.name="readout")
|
all_l <- melt(data.frame(tab), id.vars="log_dose",variable.name="replname",value.name="readout")
|
||||||
isRef <- rep(c(1,0), 1,each=nrow(all_l)/2)
|
isRef <- rep(c(1,0), 1,each=nrow(all_l)/2)
|
||||||
@@ -2240,9 +2241,9 @@ server <- function(input, output, session) {
|
|||||||
# fit intercept for test and ref and common slope
|
# fit intercept for test and ref and common slope
|
||||||
|
|
||||||
|
|
||||||
pl_restS <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[2,1]*log(Conc)
|
pl_restS <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[2,1]*log_conc
|
||||||
pl_restT <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[3,1] + sum_mLin$coefficients[2,1]*log(Conc)
|
pl_restT <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[3,1] + sum_mLin$coefficients[2,1]*log_conc
|
||||||
pl_rest <- data.frame(lnC=log(Conc), plotS=pl_restS, plotT=pl_restT)
|
pl_rest <- data.frame(lnC=log_conc, plotS=pl_restS, plotT=pl_restT)
|
||||||
|
|
||||||
pr2 <- p + geom_line(data=pl_rest,aes(x=lnC,y=plotS),color="#4545BA",
|
pr2 <- p + geom_line(data=pl_rest,aes(x=lnC,y=plotS),color="#4545BA",
|
||||||
inherit.aes = F) +
|
inherit.aes = F) +
|
||||||
@@ -2285,9 +2286,9 @@ server <- function(input, output, session) {
|
|||||||
indS <- which(abs(slopeSt[,2]) == max(abs(slopeSt[,2])))
|
indS <- which(abs(slopeSt[,2]) == max(abs(slopeSt[,2])))
|
||||||
indT <- which(abs(slopeTe[,2]) == max(abs(slopeTe[,2])))
|
indT <- which(abs(slopeTe[,2]) == max(abs(slopeTe[,2])))
|
||||||
|
|
||||||
pl_ <- slopeSt[indS,1]+slopeSt[indS,2]*log(Conc)
|
pl_ <- slopeSt[indS,1]+slopeSt[indS,2]*log_conc
|
||||||
pl_T <- slopeTe[indT,1]+slopeTe[indT,2]*log(Conc)
|
pl_T <- slopeTe[indT,1]+slopeTe[indT,2]*log_conc
|
||||||
pl_df <- data.frame(lnC=log(Conc), plotS=pl_, plotT=pl_T)
|
pl_df <- data.frame(lnC=log_conc, plotS=pl_, plotT=pl_T)
|
||||||
|
|
||||||
all_l <- melt(data.frame(tab), id.vars="log_dose",variable.name="replname",value.name="readout")
|
all_l <- melt(data.frame(tab), id.vars="log_dose",variable.name="replname",value.name="readout")
|
||||||
isRef <- rep(c(1,0), 1,each=nrow(all_l)/2)
|
isRef <- rep(c(1,0), 1,each=nrow(all_l)/2)
|
||||||
@@ -2338,9 +2339,9 @@ server <- function(input, output, session) {
|
|||||||
# alternativ: modAB <- lm(readout ~ log_dose+isSample, circle)
|
# alternativ: modAB <- lm(readout ~ log_dose+isSample, circle)
|
||||||
sum_mLin <- summary(mLin)
|
sum_mLin <- summary(mLin)
|
||||||
|
|
||||||
pl_restS <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[2,1]*log(Conc)
|
pl_restS <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[2,1]*log_conc
|
||||||
pl_restT <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[3,1] + sum_mLin$coefficients[2,1]*log(Conc)
|
pl_restT <- sum_mLin$coefficients[1,1] + sum_mLin$coefficients[3,1] + sum_mLin$coefficients[2,1]*log_conc
|
||||||
pl_rest <- data.frame(lnC=log(Conc), plotS=pl_restS, plotT=pl_restT)
|
pl_rest <- data.frame(lnC=log_conc, plotS=pl_restS, plotT=pl_restT)
|
||||||
|
|
||||||
pr2 <- p + geom_line(data=pl_rest,aes(x=lnC,y=plotS),color="blue",
|
pr2 <- p + geom_line(data=pl_rest,aes(x=lnC,y=plotS),color="blue",
|
||||||
inherit.aes = F) +
|
inherit.aes = F) +
|
||||||
|
|||||||
Reference in New Issue
Block a user