report download fixed
This commit is contained in:
433
Doc_BioassayReport copy.Rmd
Normal file
433
Doc_BioassayReport copy.Rmd
Normal file
@@ -0,0 +1,433 @@
|
|||||||
|
---
|
||||||
|
output:
|
||||||
|
pdf_document:
|
||||||
|
extra_dependencies: ["float"]
|
||||||
|
number_sections: true
|
||||||
|
toc: true
|
||||||
|
toc_depth: 3
|
||||||
|
header_includes:
|
||||||
|
-\usepackage{fancyheadr}
|
||||||
|
-\setlength{\headheight}{22pt}%
|
||||||
|
-\usepackage{lastpage}
|
||||||
|
-\pagestyle{fancy}
|
||||||
|
-\usepackage{pdflscape}
|
||||||
|
-\usepackage{longtable}
|
||||||
|
-\rhead{\includegraphics[width=.15\textwidth]{`r getwd()`/logo.png}}
|
||||||
|
params:
|
||||||
|
FileName: NA
|
||||||
|
newTitle: NA
|
||||||
|
author: NA
|
||||||
|
REP: NA
|
||||||
|
coeffs: NA
|
||||||
|
author: "Author: `r params$author`"
|
||||||
|
title: |
|
||||||
|
| {width=1in}
|
||||||
|
| 4PL bioassay evaluation
|
||||||
|
subtitle: |
|
||||||
|
`r params$FileName`
|
||||||
|
|
||||||
|
<left> Unique time: </left> <right> `r Sys.time()`</right>
|
||||||
|
date: "`r paste(params$Subway, params$Version)`"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
\fancyfoot[C]{\thepage\ of \pageref{LastPage}}
|
||||||
|
\newpage
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
|
```{r setup, include=FALSE}
|
||||||
|
|
||||||
|
knitr::opts_chunk$set(echo = TRUE)
|
||||||
|
|
||||||
|
library(knitr)
|
||||||
|
library(DT)
|
||||||
|
|
||||||
|
REP <- params$REP
|
||||||
|
author <- params$author
|
||||||
|
coeffs <- params$coeffs
|
||||||
|
|
||||||
|
all_l <- REP$all_l
|
||||||
|
ANOVAXLS <- REP$ANOVAXLS
|
||||||
|
DiagnTable <- REP$DiagnTable
|
||||||
|
UnRPLAausw <- REP$UnRPLAausw
|
||||||
|
UnRPLBend <- REP$UnRPLBend
|
||||||
|
PLAausw <- REP$PLAausw
|
||||||
|
PLBend <- REP$PLBend
|
||||||
|
LogPLAausw <- REP$LogPLAausw
|
||||||
|
LogUnrPLAausw <- REP$LogUnrPLAausw
|
||||||
|
|
||||||
|
XLdat2 <- REP$XLdat2
|
||||||
|
|
||||||
|
CIplot <- REP$CIplot
|
||||||
|
testsTab <- REP$testsTab
|
||||||
|
relpotTestPlot <- REP$relpotTestPlot
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Introduction
|
||||||
|
|
||||||
|
Bioassay potency estimation uses statistical methods to quantify the strength of a biological product or drug by comparing its response to that of a reference standard. Because biological responses are inherently variable, affected by assay conditions, cell systems or organisms, and measurement noise, the 4-parametric logistic regression is used to obtain reliable potency values. The variance for confidence interval calculation is coming from the regression procedure itself and is an excellent predictor for the variability of any future potency determinations.
|
||||||
|
USP<1034> recommends calculation of standard errors of ratios of the parameters using Fieller's theorem [Finney D.J. 1978] or using the "delta" method (for a discussion about the "delta" method see [Ver Hoef 2012]). However, the presented gradient approach using the differences on the log-scale is methematically more stable und thus preferable compared to any ratio approach ([Franz, V.H. 2007]).
|
||||||
|
|
||||||
|
# Results
|
||||||
|
|
||||||
|
All data used for the 4PL evaluation is shown in table 1:
|
||||||
|
|
||||||
|
```{r alll, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(all_l, format = "markdown", caption= "Uploaded data (test and reference) in long format", digits=3)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
The following 4 plots show all 4 models: restricted and unrestricted, and log transformed, respectively.
|
||||||
|
|
||||||
|
You can also embed plots, for example:
|
||||||
|
|
||||||
|
```{r XLplot, echo=FALSE, warning=FALSE, fig.height=4, fig.width=6, fig.cap="Plot of models", fig.align='left'}
|
||||||
|
|
||||||
|
plot_f <- function(dat, sigmoid,det_sig) {
|
||||||
|
CORdat <- cor(dat[,1],dat[,ncol(dat)])
|
||||||
|
|
||||||
|
all_l <- melt(data.frame(dat), id.vars="log_dose", variable.name="replname", value.name = "readout")
|
||||||
|
isRef <- rep(c(1,0),1,each=nrow(all_l)/2)
|
||||||
|
isSample <- rep(c(0,1),1,each=nrow(all_l)/2)
|
||||||
|
all_l2 <- cbind(all_l, isRef, isSample)
|
||||||
|
|
||||||
|
if(is.null(det_sig)) {
|
||||||
|
if (CORdat<0) {
|
||||||
|
startlist <- list(a=sigmoid[3], b=-sigmoid[5],cs=sigmoid[7],
|
||||||
|
d=sigmoid[1],r=sigmoid[8])
|
||||||
|
} else {
|
||||||
|
startlist <- list(a=sigmoid[3],b=sigmoid[5],cs=sigmoid[7],
|
||||||
|
d=sigmoid[1],r=sigmoid[8])
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
startlist <- list(a=det_sig[5], b=det_sig[1],cs=det_sig[7],
|
||||||
|
d=det_sig[3],r=det_sig[7] - det_sig[8])
|
||||||
|
}
|
||||||
|
#browser()
|
||||||
|
tryCatch({
|
||||||
|
mr <- gsl_nls(fn = readout ~ a+(d-a)/(1+exp(b*(log_dose-(cs-r*isSample)))),
|
||||||
|
data=all_l2,
|
||||||
|
start=startlist,
|
||||||
|
control=gsl_nls_control(xtol=1e-6,ftol=1e-6, gtol=1e-6))
|
||||||
|
},
|
||||||
|
error = function(err) {
|
||||||
|
err$message
|
||||||
|
})
|
||||||
|
s_mr <- summary(mr)
|
||||||
|
a <- s_mr$coefficients[1,1]
|
||||||
|
b <- s_mr$coefficients[2,1]
|
||||||
|
cs <- s_mr$coefficients[3,1]
|
||||||
|
d <- s_mr$coefficients[4,1]
|
||||||
|
r <- s_mr$coefficients[5,1]
|
||||||
|
|
||||||
|
log_dose <- unique(all_l$log_dose)
|
||||||
|
seq_x <- seq(min(log_dose),max(log_dose),0.1)
|
||||||
|
SAMPLE <- a+(d-a)/(1+exp(b*(seq_x-(cs-r))))
|
||||||
|
REF <- a+(d-a)/(1+exp(b*(seq_x-(cs))))
|
||||||
|
|
||||||
|
if (is.null(det_sig)) {
|
||||||
|
SAMPLEtrue <- sigmoid[4] + (sigmoid[2] -sigmoid[4])/(1+exp(sigmoid[6]*(seq_x-(sigmoid[7]-sigmoid[8]))))
|
||||||
|
REFtrue <- sigmoid[3] + (sigmoid[1] -sigmoid[3])/(1+exp(sigmoid[5]*(seq_x-(sigmoid[7]))))
|
||||||
|
} else {
|
||||||
|
SAMPLEtrue <- det_sig[4] + (det_sig[6] -det_sig[4])/(1+exp(-det_sig[2]*(seq_x-(det_sig[8]))))
|
||||||
|
REFtrue <- det_sig[3] + (det_sig[5] -det_sig[3])/(1+exp(-det_sig[1]*(seq_x-(det_sig[7]))))
|
||||||
|
}
|
||||||
|
|
||||||
|
pl_df <- cbind(seq_x, SAMPLE, REF, SAMPLEtrue, REFtrue)
|
||||||
|
all_l2$readout[all_l2$readout < 0] <- 0.01
|
||||||
|
all_l2$readouttrans <- log(all_l2$readout)
|
||||||
|
slopeEC50 <- b*(a-d)/4
|
||||||
|
|
||||||
|
Xbendl3 <- cs-(1.31696/b)
|
||||||
|
Xbendu3 <- cs+(1.31696/b)
|
||||||
|
XbendlT <- cs-r-(1.31696/b)
|
||||||
|
XbenduT <- cs-r+(1.31696/b)
|
||||||
|
bendpoints <- c(bendREF_lower = round(Xbendl3,3), bendREF_upper=round(Xbendu3,3),
|
||||||
|
bendSAMPLE_lower = round(XbendlT,3), bendSAMPLE_upper=round(XbenduT,3))
|
||||||
|
|
||||||
|
p <- ggplot(all_l2, aes(x=log_dose, y=readout, color=factor(isRef))) +
|
||||||
|
geom_point(shape=factor(isRef), alpha=0.8) +
|
||||||
|
labs(title = paste("restricted 4pl; bendp:", round(Xbendl3,3),round(Xbendu3,3),round(XbendlT,3),round(XbenduT,3)),
|
||||||
|
color="product") +
|
||||||
|
scale_color_manual(labels=c("test","reference"), values=c("red","blue")) +
|
||||||
|
scale_shape_manual(labels=c("test","reference")) +
|
||||||
|
theme_bw() +
|
||||||
|
theme(axis.text = element_text(size=14))
|
||||||
|
|
||||||
|
p2 <- p + geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=SAMPLE), color="red",
|
||||||
|
inherit.aes = F) +
|
||||||
|
geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=REF), color="blue",
|
||||||
|
inherit.aes = F) +
|
||||||
|
geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=SAMPLEtrue), color="red", linetype=2, alpha=0.4,
|
||||||
|
inherit.aes = F) +
|
||||||
|
geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=REFtrue), color="blue", linetype=2, alpha=0.4,
|
||||||
|
inherit.aes = F) +
|
||||||
|
geom_vline(xintercept=c(Xbendl3, Xbendu3), col="blue",linetype=2) +
|
||||||
|
geom_vline(xintercept=c(XbendlT, XbenduT), col="red",linetype=2) +
|
||||||
|
annotate("text", x=cs, y=a+(d-a)/2, label="0", size=5) +
|
||||||
|
theme(legend.position="none")
|
||||||
|
|
||||||
|
|
||||||
|
# transformed plots
|
||||||
|
p_rt <- ggplot(all_l2, aes(x=log_dose, y=readouttrans, color=factor(isRef))) +
|
||||||
|
geom_point(shape=factor(isRef), alpha=0.8) +
|
||||||
|
labs(title = paste("restricted transformed 4pl"), color="product") +
|
||||||
|
scale_color_manual(labels=c("test","reference"), values=c("red","blue")) +
|
||||||
|
theme_bw()
|
||||||
|
|
||||||
|
mrt <- gsl_nls(fn = readouttrans ~ a+(d-a)/(1+exp(b*(log_dose-(cs-r*isSample)))),
|
||||||
|
data=all_l2,
|
||||||
|
start=startlist,
|
||||||
|
control=gsl_nls_control(xtol=1e-6,ftol=1e-6, gtol=1e-6))
|
||||||
|
s_mrt <- summary(mrt)
|
||||||
|
a_trans <- s_mrt$coefficients[1,1]
|
||||||
|
b_trans <- s_mrt$coefficients[2,1]
|
||||||
|
cs_trans <- s_mrt$coefficients[3,1]
|
||||||
|
d_trans <- s_mrt$coefficients[4,1]
|
||||||
|
r_trans <- s_mrt$coefficients[5,1]
|
||||||
|
|
||||||
|
XbendlTrans <- cs_trans-(1.31696/b_trans)
|
||||||
|
XbenduTrans <- cs_trans+(1.31696/b_trans)
|
||||||
|
XbendlTransT <- cs_trans-r_trans-(1.31696/b_trans)
|
||||||
|
XbenduTransT <- cs_trans-r_trans+(1.31696/b_trans)
|
||||||
|
bendpointsTRANS <- c(bendREF_lower = round(XbendlTrans,3), bendREF_upper=round(XbenduTrans,3),
|
||||||
|
bendSAMPLE_lower = round(XbendlTransT,3), bendSAMPLE_upper=round(XbenduTransT,3))
|
||||||
|
|
||||||
|
SAMPLEtrans <- a_trans+(d_trans-a_trans)/(1+exp(b_trans*(seq_x-(cs_trans-r_trans))))
|
||||||
|
REFtrans <- a_trans+(d_trans-a_trans)/(1+exp(b_trans*(seq_x-(cs_trans))))
|
||||||
|
|
||||||
|
pl_df_trans <- cbind(seq_x, SAMPLEtrans, REFtrans)
|
||||||
|
p_rt2 <- p_rt + geom_line(data=as.data.frame(pl_df_trans), aes(x=seq_x, y=SAMPLEtrans), color="red",
|
||||||
|
inherit.aes = F) +
|
||||||
|
geom_line(data=as.data.frame(pl_df_trans), aes(x=seq_x, y=REFtrans), color="blue",
|
||||||
|
inherit.aes = F) +
|
||||||
|
geom_vline(xintercept=c(XbendlTrans, XbenduTrans), col="blue",linetype=2) +
|
||||||
|
geom_vline(xintercept=c(XbendlTransT, XbenduTransT), col="red",linetype=2) +
|
||||||
|
theme(legend.position = "none", axis.text=element_text(size=14))
|
||||||
|
|
||||||
|
if (is.null(det_sig)) {
|
||||||
|
unrestr <- drm(readout ~ exp(log_dose), isSample, data=all_l2, fct=LL.4(),
|
||||||
|
pmodels=data.frame(isSample, isSample,isSample,isSample))
|
||||||
|
Sum_u <- summary(unrestr)
|
||||||
|
ast <- Sum_u$coefficients[3,1]
|
||||||
|
ate <- Sum_u$coefficients[4,1]
|
||||||
|
bst <- Sum_u$coefficients[1,1]
|
||||||
|
bte <- Sum_u$coefficients[2,1]
|
||||||
|
cst <- log(Sum_u$coefficients[7,1])
|
||||||
|
cte <- log(Sum_u$coefficients[8,1])
|
||||||
|
dst <- Sum_u$coefficients[5,1]
|
||||||
|
dte <- Sum_u$coefficients[6,1]
|
||||||
|
} else {
|
||||||
|
ast <- det_sig[5]
|
||||||
|
ate <- det_sig[6]
|
||||||
|
bst <- det_sig[1]
|
||||||
|
bte <- det_sig[2]
|
||||||
|
cst <- det_sig[7]
|
||||||
|
cte <- det_sig[8]
|
||||||
|
dst <- det_sig[3]
|
||||||
|
dte <- det_sig[4]
|
||||||
|
}
|
||||||
|
REFu <- ast + (dst-ast)/(1+exp(bst*(seq_x-cst)))
|
||||||
|
SAMPLEu <- ate + (dte-ate)/(1+exp(bte*(seq_x-cte)))
|
||||||
|
pl_df2 <- cbind(seq_x, SAMPLEu, REFu)
|
||||||
|
#browser()
|
||||||
|
pu <- ggplot(all_l2, aes(x=log_dose, y=readout, color=factor(isRef))) +
|
||||||
|
geom_point() +
|
||||||
|
labs(title="unrestricted 4_pl-Model", color="product") +
|
||||||
|
scale_color_manual(labels = c("test","reference"), values=c("red","blue")) +
|
||||||
|
theme_bw()
|
||||||
|
pu2 <- pu + geom_line(data=as.data.frame(pl_df2), aes(x=seq_x, y=SAMPLEu),
|
||||||
|
color="red", inherit.aes = F) +
|
||||||
|
geom_line(data=as.data.frame(pl_df2), aes(x=seq_x, y=REFu),
|
||||||
|
color="blue", inherit.aes = F,
|
||||||
|
show.legend = F)
|
||||||
|
pu2_ <- pu2 +
|
||||||
|
theme(legend.position = "none", axis.text = element_text(size=14))
|
||||||
|
putrans <- ggplot(all_l2, aes(x=log_dose, y=readouttrans, color=factor(isRef))) +
|
||||||
|
geom_point() +
|
||||||
|
labs(title="unrestricted transformed 4_pl-Model", color="product") +
|
||||||
|
scale_color_manual(labels = c("test","reference"), values=c("red","blue")) +
|
||||||
|
theme_bw()
|
||||||
|
|
||||||
|
unrestr_trans <- drm(readouttrans ~ exp(log_dose), isSample, data=all_l2, fct=LL.4(),
|
||||||
|
pmodels=data.frame(isSample, isSample,isSample,isSample))
|
||||||
|
Sum_ut <- summary(unrestr_trans)
|
||||||
|
ast_t <- Sum_ut$coefficients[3,1]
|
||||||
|
ate_t <- Sum_ut$coefficients[4,1]
|
||||||
|
bst_t <- Sum_ut$coefficients[1,1]
|
||||||
|
bte_t <- Sum_ut$coefficients[2,1]
|
||||||
|
cst_t <- log(Sum_ut$coefficients[7,1])
|
||||||
|
cte_t <- log(Sum_ut$coefficients[8,1])
|
||||||
|
dst_t <- Sum_ut$coefficients[5,1]
|
||||||
|
dte_t <- Sum_ut$coefficients[6,1]
|
||||||
|
|
||||||
|
REFu_trans <- ast_t + (dst_t-ast_t)/(1+exp(bst_t*(seq_x-cst_t)))
|
||||||
|
SAMPLEu_trans <- ate_t + (dte_t-ate_t)/(1+exp(bte_t*(seq_x-cte_t)))
|
||||||
|
pl_df2u_t <- cbind(seq_x, SAMPLEu_trans, REFu_trans)
|
||||||
|
|
||||||
|
pu2_t <- putrans + geom_line(data=as.data.frame(pl_df2u_t), aes(x=seq_x, y=SAMPLEu_trans),
|
||||||
|
color="red", inherit.aes = F) +
|
||||||
|
geom_line(data=as.data.frame(pl_df2u_t), aes(x=seq_x, y=REFu_trans),
|
||||||
|
color="blue", inherit.aes = F,
|
||||||
|
show.legend = F)
|
||||||
|
pu3_t <- pu2_t
|
||||||
|
grid.arrange(p2,p_rt2,pu2_,pu3_t, nrow=2)
|
||||||
|
}
|
||||||
|
|
||||||
|
plot_f(XLdat2, sigmoid=NULL, det_sig=coeffs)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
The ANOVA of the unconstrained model is listed in table 2:
|
||||||
|
|
||||||
|
```{r anovaxls, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(ANOVAXLS, format = "markdown", caption= "ANOVA table unrestricted", digits=3)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```{r SST_ergebn, fig.align='center', fig.pos='htb!', echo=FALSE, cache=FALSE, warning=FALSE, message=FALSE, tidy=TRUE}
|
||||||
|
|
||||||
|
kable(testsTab[1:7,], row.names = F, format = "markdown", caption="SST results")
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
*...The estimate for F-test on regression and on non-linearity is the p-value
|
||||||
|
F-test on regression passes if F-value > F-crit and thus p < 0.05
|
||||||
|
F-test on non-linearity passes if F-value < F-crit and thus p > 0.05
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
```{r, label= 'CIplot', echo=FALSE, warning=FALSE, fig.width=100, fig.cap='Selected SSt confidence intervals with entered limits', fig.align='center'}
|
||||||
|
|
||||||
|
png("CIplot.png")
|
||||||
|
print(CIplot)
|
||||||
|
dev.off()
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
{width=60%}
|
||||||
|
|
||||||
|
|
||||||
|
## Fitting results of the 4 models with bend points
|
||||||
|
|
||||||
|
The results of the non-linear fitting procedure for the restricted model (5 parameters) is listed in table 4:
|
||||||
|
|
||||||
|
```{r PLAausw, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(PLAausw, format = "markdown", caption= "Restricted 4PL evaluation", digits=3, row.names = F)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
A depiction of the CI and corresponding limits of relative potency is shown here:
|
||||||
|
|
||||||
|
```{r, label='relpotPlot', echo=FALSE, warning=FALSE, fig.height=2, fig.width=3.5, fig.cap="Rel potency with CIs and limits", fig.align='left', results='asis'}
|
||||||
|
|
||||||
|
print(relpotTestPlot)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
The bend points for test and reference sample are in table 5:
|
||||||
|
|
||||||
|
```{r PLBend, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(PLBend, format = "markdown", caption= "Bendpoints (Sebaugh) of restricted 4PL", digits=3)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
The results of the non-linear fitting procedure for the unrestricted model (8 parameters) is listed in table 6:
|
||||||
|
|
||||||
|
```{r UnRPLAausw, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(UnRPLAausw, format = "markdown", caption= "UNrestricted 4PL evaluation", digits=3, row.names = F)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```{r UnRPLBend, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(UnRPLBend, format = "markdown", caption= "Bend points of 4PL unrestricted", digits=3, row.names = F)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```{r LogPLAausw, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(LogPLAausw, format = "markdown", caption= "Restricted 4PL evaluation with log-transformed response", digits=3)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```{r LogUnRPLAausw, echo=FALSE, warning=FALSE, results='asis'}
|
||||||
|
|
||||||
|
kable(LogUnrPLAausw, format = "markdown", caption= "Unrestricted 4PL evaluation with log-transformed response", digits=3)
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Appendix: Formulas
|
||||||
|
|
||||||
|
## 4PL regression
|
||||||
|
|
||||||
|
$$
|
||||||
|
Y = D + \frac{A-D} {1+(\frac{C} {x})^B } + \epsilon
|
||||||
|
$$
|
||||||
|
|
||||||
|
|
||||||
|
## log-logistic 4P regression
|
||||||
|
|
||||||
|
$$
|
||||||
|
Y = D + \frac{A-D} {1+e^{(B*(C - log(x))) }} + \epsilon
|
||||||
|
$$
|
||||||
|
|
||||||
|
where: x ... concentration of the analyte
|
||||||
|
|
||||||
|
A: upper asymptote
|
||||||
|
|
||||||
|
B: slope
|
||||||
|
|
||||||
|
D: lower asymptote
|
||||||
|
|
||||||
|
C ... EC50
|
||||||
|
|
||||||
|
# Literature
|
||||||
|
|
||||||
|
Finney, D.J.: (1978) Statistical Method in Biological Assay, London: Charles Griffin House, 3rd edition (pp. 80-82)
|
||||||
|
|
||||||
|
Franz, V.H.: Ratios: A short guide to confidence limits and proper use. arXiv:0710.2024v1, 10 Oct 2007
|
||||||
|
|
||||||
|
VerHoef, J.M.: Who invented the Delta Method? The American Statistician, 2012, 66:2, 124-127 DOI: 10.1080/00031305.2012.687494
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -31,10 +31,10 @@ date: "`r paste(params$Subway, params$Version)`"
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
\fancyfoot[C]{\thepage\ of \pageref{LastPage}}
|
<!-- \fancyfoot[C]{\thepage\ of \pageref{LastPage}} -->
|
||||||
\newpage
|
<!-- \newpage -->
|
||||||
|
|
||||||
\newpage
|
<!-- \newpage -->
|
||||||
|
|
||||||
```{r setup, include=FALSE}
|
```{r setup, include=FALSE}
|
||||||
|
|
||||||
@@ -93,10 +93,10 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
CORdat <- cor(dat[,1],dat[,ncol(dat)])
|
CORdat <- cor(dat[,1],dat[,ncol(dat)])
|
||||||
|
|
||||||
all_l <- melt(data.frame(dat), id.vars="log_dose", variable.name="replname", value.name = "readout")
|
all_l <- melt(data.frame(dat), 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)
|
||||||
isSample <- rep(c(0,1),1,each=nrow(all_l)/2)
|
isSample <- rep(c(0,1),1,each=nrow(all_l)/2)
|
||||||
all_l2 <- cbind(all_l, isRef, isSample)
|
all_l2 <- cbind(all_l, isRef, isSample)
|
||||||
|
|
||||||
if(is.null(det_sig)) {
|
if(is.null(det_sig)) {
|
||||||
if (CORdat<0) {
|
if (CORdat<0) {
|
||||||
startlist <- list(a=sigmoid[3], b=-sigmoid[5],cs=sigmoid[7],
|
startlist <- list(a=sigmoid[3], b=-sigmoid[5],cs=sigmoid[7],
|
||||||
@@ -109,7 +109,7 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
startlist <- list(a=det_sig[5], b=det_sig[1],cs=det_sig[7],
|
startlist <- list(a=det_sig[5], b=det_sig[1],cs=det_sig[7],
|
||||||
d=det_sig[3],r=det_sig[7] - det_sig[8])
|
d=det_sig[3],r=det_sig[7] - det_sig[8])
|
||||||
}
|
}
|
||||||
#browser()
|
#browser()
|
||||||
tryCatch({
|
tryCatch({
|
||||||
mr <- gsl_nls(fn = readout ~ a+(d-a)/(1+exp(b*(log_dose-(cs-r*isSample)))),
|
mr <- gsl_nls(fn = readout ~ a+(d-a)/(1+exp(b*(log_dose-(cs-r*isSample)))),
|
||||||
data=all_l2,
|
data=all_l2,
|
||||||
@@ -125,12 +125,12 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
cs <- s_mr$coefficients[3,1]
|
cs <- s_mr$coefficients[3,1]
|
||||||
d <- s_mr$coefficients[4,1]
|
d <- s_mr$coefficients[4,1]
|
||||||
r <- s_mr$coefficients[5,1]
|
r <- s_mr$coefficients[5,1]
|
||||||
|
|
||||||
log_dose <- unique(all_l$log_dose)
|
log_dose <- unique(all_l$log_dose)
|
||||||
seq_x <- seq(min(log_dose),max(log_dose),0.1)
|
seq_x <- seq(min(log_dose),max(log_dose),0.1)
|
||||||
SAMPLE <- a+(d-a)/(1+exp(b*(seq_x-(cs-r))))
|
SAMPLE <- a+(d-a)/(1+exp(b*(seq_x-(cs-r))))
|
||||||
REF <- a+(d-a)/(1+exp(b*(seq_x-(cs))))
|
REF <- a+(d-a)/(1+exp(b*(seq_x-(cs))))
|
||||||
|
|
||||||
if (is.null(det_sig)) {
|
if (is.null(det_sig)) {
|
||||||
SAMPLEtrue <- sigmoid[4] + (sigmoid[2] -sigmoid[4])/(1+exp(sigmoid[6]*(seq_x-(sigmoid[7]-sigmoid[8]))))
|
SAMPLEtrue <- sigmoid[4] + (sigmoid[2] -sigmoid[4])/(1+exp(sigmoid[6]*(seq_x-(sigmoid[7]-sigmoid[8]))))
|
||||||
REFtrue <- sigmoid[3] + (sigmoid[1] -sigmoid[3])/(1+exp(sigmoid[5]*(seq_x-(sigmoid[7]))))
|
REFtrue <- sigmoid[3] + (sigmoid[1] -sigmoid[3])/(1+exp(sigmoid[5]*(seq_x-(sigmoid[7]))))
|
||||||
@@ -138,19 +138,19 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
SAMPLEtrue <- det_sig[4] + (det_sig[6] -det_sig[4])/(1+exp(-det_sig[2]*(seq_x-(det_sig[8]))))
|
SAMPLEtrue <- det_sig[4] + (det_sig[6] -det_sig[4])/(1+exp(-det_sig[2]*(seq_x-(det_sig[8]))))
|
||||||
REFtrue <- det_sig[3] + (det_sig[5] -det_sig[3])/(1+exp(-det_sig[1]*(seq_x-(det_sig[7]))))
|
REFtrue <- det_sig[3] + (det_sig[5] -det_sig[3])/(1+exp(-det_sig[1]*(seq_x-(det_sig[7]))))
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_df <- cbind(seq_x, SAMPLE, REF, SAMPLEtrue, REFtrue)
|
pl_df <- cbind(seq_x, SAMPLE, REF, SAMPLEtrue, REFtrue)
|
||||||
all_l2$readout[all_l2$readout < 0] <- 0.01
|
all_l2$readout[all_l2$readout < 0] <- 0.01
|
||||||
all_l2$readouttrans <- log(all_l2$readout)
|
all_l2$readouttrans <- log(all_l2$readout)
|
||||||
slopeEC50 <- b*(a-d)/4
|
slopeEC50 <- b*(a-d)/4
|
||||||
|
|
||||||
Xbendl3 <- cs-(1.31696/b)
|
Xbendl3 <- cs-(1.31696/b)
|
||||||
Xbendu3 <- cs+(1.31696/b)
|
Xbendu3 <- cs+(1.31696/b)
|
||||||
XbendlT <- cs-r-(1.31696/b)
|
XbendlT <- cs-r-(1.31696/b)
|
||||||
XbenduT <- cs-r+(1.31696/b)
|
XbenduT <- cs-r+(1.31696/b)
|
||||||
bendpoints <- c(bendREF_lower = round(Xbendl3,3), bendREF_upper=round(Xbendu3,3),
|
bendpoints <- c(bendREF_lower = round(Xbendl3,3), bendREF_upper=round(Xbendu3,3),
|
||||||
bendSAMPLE_lower = round(XbendlT,3), bendSAMPLE_upper=round(XbenduT,3))
|
bendSAMPLE_lower = round(XbendlT,3), bendSAMPLE_upper=round(XbenduT,3))
|
||||||
|
|
||||||
p <- ggplot(all_l2, aes(x=log_dose, y=readout, color=factor(isRef))) +
|
p <- ggplot(all_l2, aes(x=log_dose, y=readout, color=factor(isRef))) +
|
||||||
geom_point(shape=factor(isRef), alpha=0.8) +
|
geom_point(shape=factor(isRef), alpha=0.8) +
|
||||||
labs(title = paste("restricted 4pl; bendp:", round(Xbendl3,3),round(Xbendu3,3),round(XbendlT,3),round(XbenduT,3)),
|
labs(title = paste("restricted 4pl; bendp:", round(Xbendl3,3),round(Xbendu3,3),round(XbendlT,3),round(XbenduT,3)),
|
||||||
@@ -159,7 +159,7 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
scale_shape_manual(labels=c("test","reference")) +
|
scale_shape_manual(labels=c("test","reference")) +
|
||||||
theme_bw() +
|
theme_bw() +
|
||||||
theme(axis.text = element_text(size=14))
|
theme(axis.text = element_text(size=14))
|
||||||
|
|
||||||
p2 <- p + geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=SAMPLE), color="red",
|
p2 <- p + geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=SAMPLE), color="red",
|
||||||
inherit.aes = F) +
|
inherit.aes = F) +
|
||||||
geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=REF), color="blue",
|
geom_line(data=as.data.frame(pl_df), aes(x=seq_x, y=REF), color="blue",
|
||||||
@@ -172,15 +172,15 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
geom_vline(xintercept=c(XbendlT, XbenduT), col="red",linetype=2) +
|
geom_vline(xintercept=c(XbendlT, XbenduT), col="red",linetype=2) +
|
||||||
annotate("text", x=cs, y=a+(d-a)/2, label="0", size=5) +
|
annotate("text", x=cs, y=a+(d-a)/2, label="0", size=5) +
|
||||||
theme(legend.position="none")
|
theme(legend.position="none")
|
||||||
|
|
||||||
|
|
||||||
# transformed plots
|
# transformed plots
|
||||||
p_rt <- ggplot(all_l2, aes(x=log_dose, y=readouttrans, color=factor(isRef))) +
|
p_rt <- ggplot(all_l2, aes(x=log_dose, y=readouttrans, color=factor(isRef))) +
|
||||||
geom_point(shape=factor(isRef), alpha=0.8) +
|
geom_point(shape=factor(isRef), alpha=0.8) +
|
||||||
labs(title = paste("restricted transformed 4pl"), color="product") +
|
labs(title = paste("restricted transformed 4pl"), color="product") +
|
||||||
scale_color_manual(labels=c("test","reference"), values=c("red","blue")) +
|
scale_color_manual(labels=c("test","reference"), values=c("red","blue")) +
|
||||||
theme_bw()
|
theme_bw()
|
||||||
|
|
||||||
mrt <- gsl_nls(fn = readouttrans ~ a+(d-a)/(1+exp(b*(log_dose-(cs-r*isSample)))),
|
mrt <- gsl_nls(fn = readouttrans ~ a+(d-a)/(1+exp(b*(log_dose-(cs-r*isSample)))),
|
||||||
data=all_l2,
|
data=all_l2,
|
||||||
start=startlist,
|
start=startlist,
|
||||||
@@ -191,17 +191,17 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
cs_trans <- s_mrt$coefficients[3,1]
|
cs_trans <- s_mrt$coefficients[3,1]
|
||||||
d_trans <- s_mrt$coefficients[4,1]
|
d_trans <- s_mrt$coefficients[4,1]
|
||||||
r_trans <- s_mrt$coefficients[5,1]
|
r_trans <- s_mrt$coefficients[5,1]
|
||||||
|
|
||||||
XbendlTrans <- cs_trans-(1.31696/b_trans)
|
XbendlTrans <- cs_trans-(1.31696/b_trans)
|
||||||
XbenduTrans <- cs_trans+(1.31696/b_trans)
|
XbenduTrans <- cs_trans+(1.31696/b_trans)
|
||||||
XbendlTransT <- cs_trans-r_trans-(1.31696/b_trans)
|
XbendlTransT <- cs_trans-r_trans-(1.31696/b_trans)
|
||||||
XbenduTransT <- cs_trans-r_trans+(1.31696/b_trans)
|
XbenduTransT <- cs_trans-r_trans+(1.31696/b_trans)
|
||||||
bendpointsTRANS <- c(bendREF_lower = round(XbendlTrans,3), bendREF_upper=round(XbenduTrans,3),
|
bendpointsTRANS <- c(bendREF_lower = round(XbendlTrans,3), bendREF_upper=round(XbenduTrans,3),
|
||||||
bendSAMPLE_lower = round(XbendlTransT,3), bendSAMPLE_upper=round(XbenduTransT,3))
|
bendSAMPLE_lower = round(XbendlTransT,3), bendSAMPLE_upper=round(XbenduTransT,3))
|
||||||
|
|
||||||
SAMPLEtrans <- a_trans+(d_trans-a_trans)/(1+exp(b_trans*(seq_x-(cs_trans-r_trans))))
|
SAMPLEtrans <- a_trans+(d_trans-a_trans)/(1+exp(b_trans*(seq_x-(cs_trans-r_trans))))
|
||||||
REFtrans <- a_trans+(d_trans-a_trans)/(1+exp(b_trans*(seq_x-(cs_trans))))
|
REFtrans <- a_trans+(d_trans-a_trans)/(1+exp(b_trans*(seq_x-(cs_trans))))
|
||||||
|
|
||||||
pl_df_trans <- cbind(seq_x, SAMPLEtrans, REFtrans)
|
pl_df_trans <- cbind(seq_x, SAMPLEtrans, REFtrans)
|
||||||
p_rt2 <- p_rt + geom_line(data=as.data.frame(pl_df_trans), aes(x=seq_x, y=SAMPLEtrans), color="red",
|
p_rt2 <- p_rt + geom_line(data=as.data.frame(pl_df_trans), aes(x=seq_x, y=SAMPLEtrans), color="red",
|
||||||
inherit.aes = F) +
|
inherit.aes = F) +
|
||||||
@@ -236,7 +236,7 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
REFu <- ast + (dst-ast)/(1+exp(bst*(seq_x-cst)))
|
REFu <- ast + (dst-ast)/(1+exp(bst*(seq_x-cst)))
|
||||||
SAMPLEu <- ate + (dte-ate)/(1+exp(bte*(seq_x-cte)))
|
SAMPLEu <- ate + (dte-ate)/(1+exp(bte*(seq_x-cte)))
|
||||||
pl_df2 <- cbind(seq_x, SAMPLEu, REFu)
|
pl_df2 <- cbind(seq_x, SAMPLEu, REFu)
|
||||||
#browser()
|
#browser()
|
||||||
pu <- ggplot(all_l2, aes(x=log_dose, y=readout, color=factor(isRef))) +
|
pu <- ggplot(all_l2, aes(x=log_dose, y=readout, color=factor(isRef))) +
|
||||||
geom_point() +
|
geom_point() +
|
||||||
labs(title="unrestricted 4_pl-Model", color="product") +
|
labs(title="unrestricted 4_pl-Model", color="product") +
|
||||||
@@ -246,7 +246,7 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
color="red", inherit.aes = F) +
|
color="red", inherit.aes = F) +
|
||||||
geom_line(data=as.data.frame(pl_df2), aes(x=seq_x, y=REFu),
|
geom_line(data=as.data.frame(pl_df2), aes(x=seq_x, y=REFu),
|
||||||
color="blue", inherit.aes = F,
|
color="blue", inherit.aes = F,
|
||||||
show.legend = F)
|
show.legend = F)
|
||||||
pu2_ <- pu2 +
|
pu2_ <- pu2 +
|
||||||
theme(legend.position = "none", axis.text = element_text(size=14))
|
theme(legend.position = "none", axis.text = element_text(size=14))
|
||||||
putrans <- ggplot(all_l2, aes(x=log_dose, y=readouttrans, color=factor(isRef))) +
|
putrans <- ggplot(all_l2, aes(x=log_dose, y=readouttrans, color=factor(isRef))) +
|
||||||
@@ -254,7 +254,7 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
labs(title="unrestricted transformed 4_pl-Model", color="product") +
|
labs(title="unrestricted transformed 4_pl-Model", color="product") +
|
||||||
scale_color_manual(labels = c("test","reference"), values=c("red","blue")) +
|
scale_color_manual(labels = c("test","reference"), values=c("red","blue")) +
|
||||||
theme_bw()
|
theme_bw()
|
||||||
|
|
||||||
unrestr_trans <- drm(readouttrans ~ exp(log_dose), isSample, data=all_l2, fct=LL.4(),
|
unrestr_trans <- drm(readouttrans ~ exp(log_dose), isSample, data=all_l2, fct=LL.4(),
|
||||||
pmodels=data.frame(isSample, isSample,isSample,isSample))
|
pmodels=data.frame(isSample, isSample,isSample,isSample))
|
||||||
Sum_ut <- summary(unrestr_trans)
|
Sum_ut <- summary(unrestr_trans)
|
||||||
@@ -266,16 +266,16 @@ plot_f <- function(dat, sigmoid,det_sig) {
|
|||||||
cte_t <- log(Sum_ut$coefficients[8,1])
|
cte_t <- log(Sum_ut$coefficients[8,1])
|
||||||
dst_t <- Sum_ut$coefficients[5,1]
|
dst_t <- Sum_ut$coefficients[5,1]
|
||||||
dte_t <- Sum_ut$coefficients[6,1]
|
dte_t <- Sum_ut$coefficients[6,1]
|
||||||
|
|
||||||
REFu_trans <- ast_t + (dst_t-ast_t)/(1+exp(bst_t*(seq_x-cst_t)))
|
REFu_trans <- ast_t + (dst_t-ast_t)/(1+exp(bst_t*(seq_x-cst_t)))
|
||||||
SAMPLEu_trans <- ate_t + (dte_t-ate_t)/(1+exp(bte_t*(seq_x-cte_t)))
|
SAMPLEu_trans <- ate_t + (dte_t-ate_t)/(1+exp(bte_t*(seq_x-cte_t)))
|
||||||
pl_df2u_t <- cbind(seq_x, SAMPLEu_trans, REFu_trans)
|
pl_df2u_t <- cbind(seq_x, SAMPLEu_trans, REFu_trans)
|
||||||
|
|
||||||
pu2_t <- putrans + geom_line(data=as.data.frame(pl_df2u_t), aes(x=seq_x, y=SAMPLEu_trans),
|
pu2_t <- putrans + geom_line(data=as.data.frame(pl_df2u_t), aes(x=seq_x, y=SAMPLEu_trans),
|
||||||
color="red", inherit.aes = F) +
|
color="red", inherit.aes = F) +
|
||||||
geom_line(data=as.data.frame(pl_df2u_t), aes(x=seq_x, y=REFu_trans),
|
geom_line(data=as.data.frame(pl_df2u_t), aes(x=seq_x, y=REFu_trans),
|
||||||
color="blue", inherit.aes = F,
|
color="blue", inherit.aes = F,
|
||||||
show.legend = F)
|
show.legend = F)
|
||||||
pu3_t <- pu2_t
|
pu3_t <- pu2_t
|
||||||
grid.arrange(p2,p_rt2,pu2_,pu3_t, nrow=2)
|
grid.arrange(p2,p_rt2,pu2_,pu3_t, nrow=2)
|
||||||
}
|
}
|
||||||
@@ -306,26 +306,26 @@ kable(testsTab[1:7,], row.names = F, format = "markdown", caption="SST results")
|
|||||||
*...The estimate for F-test on regression and on non-linearity is the p-value
|
*...The estimate for F-test on regression and on non-linearity is the p-value
|
||||||
F-test on regression passes if F-value > F-crit and thus p < 0.05
|
F-test on regression passes if F-value > F-crit and thus p < 0.05
|
||||||
F-test on non-linearity passes if F-value < F-crit and thus p > 0.05
|
F-test on non-linearity passes if F-value < F-crit and thus p > 0.05
|
||||||
Test results outcome:
|
Test results outcome:
|
||||||
|
|
||||||
0 ... test passed (for EQ tests: CI within limits);
|
0 ... test passed (for EQ tests: CI within limits);
|
||||||
|
|
||||||
1 ... test failed (for EQ tests CI not within limits);
|
1 ... test failed (for EQ tests CI not within limits);
|
||||||
|
|
||||||
-1 ... calculations unbound/denominator too close to 0
|
-1 ... calculations unbound/denominator too close to 0
|
||||||
|
|
||||||
|
|
||||||
```{r, label= 'CIplot', echo=FALSE, warning=FALSE, fig.width=100, fig.cap='Selected SSt confidence intervals with entered limits', fig.align='center'}
|
<!-- ```{r, label= 'CIplot', echo=FALSE, warning=FALSE, fig.width=100, fig.cap='Selected SSt confidence intervals with entered limits', fig.align='center'} -->
|
||||||
|
|
||||||
png("CIplot.png")
|
<!-- png("CIplot.png") -->
|
||||||
print(CIplot)
|
<!-- print(CIplot) -->
|
||||||
dev.off()
|
<!-- dev.off() -->
|
||||||
|
|
||||||
|
|
||||||
```
|
<!-- ``` -->
|
||||||
|
|
||||||
|
|
||||||
{width=60%}
|
<!-- {width=60%} -->
|
||||||
|
|
||||||
|
|
||||||
## Fitting results of the 4 models with bend points
|
## Fitting results of the 4 models with bend points
|
||||||
|
|||||||
14
server.R
14
server.R
@@ -1056,7 +1056,7 @@ function(input,output, session) {
|
|||||||
colnames(pot_est) <- c("estimate","lowerCI","upperCI")
|
colnames(pot_est) <- c("estimate","lowerCI","upperCI")
|
||||||
colnames(potU_est) <- c("estimate","lowerCI","upperCI")
|
colnames(potU_est) <- c("estimate","lowerCI","upperCI")
|
||||||
} else {
|
} else {
|
||||||
FitAnova <- anova(lm(readout ~ factor(log_dose)*isSample, circ_ABl))
|
FitAnova <- anova(lm(readout ~ factor(log_dose)*isSample, all_l))
|
||||||
meanPureErr <- FitAnova[4,3]
|
meanPureErr <- FitAnova[4,3]
|
||||||
DFsPure <- FitAnova[4,1]
|
DFsPure <- FitAnova[4,1]
|
||||||
VCOV <- vcov(mr)
|
VCOV <- vcov(mr)
|
||||||
@@ -1239,7 +1239,7 @@ function(input,output, session) {
|
|||||||
|
|
||||||
# "log relative potency", "log lower CI", "log upper CI", round(logpotest, 3), round(compParm(potu, "c", display = F), 3)
|
# "log relative potency", "log lower CI", "log upper CI", round(logpotest, 3), round(compParm(potu, "c", display = F), 3)
|
||||||
|
|
||||||
outputcoeffs_unr <- renderTable({
|
output$coeffs_unr <- renderTable({
|
||||||
UnRPLAausw
|
UnRPLAausw
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1325,7 +1325,7 @@ function(input,output, session) {
|
|||||||
REP$XLdat2 <- XLdat2
|
REP$XLdat2 <- XLdat2
|
||||||
|
|
||||||
# --- Diagnose-Plots (Residualanalyse) ---
|
# --- Diagnose-Plots (Residualanalyse) ---
|
||||||
output$diagplot <- renderPlot({
|
output$diagnplot <- renderPlot({
|
||||||
op <- par(mfrow = c(1, 2), mar = c(3.2, 3.2, 2, .5), mgp = c(2, .7, 0))
|
op <- par(mfrow = c(1, 2), mar = c(3.2, 3.2, 2, .5), mgp = c(2, .7, 0))
|
||||||
|
|
||||||
# 1. Residuals vs Fitted
|
# 1. Residuals vs Fitted
|
||||||
@@ -1543,8 +1543,8 @@ function(input,output, session) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
#### Testergebnisse ----
|
#### Testergebnisse ----
|
||||||
#observe({
|
observe({
|
||||||
observeEvent(input$StartCalc,{
|
#observeEvent(input$StartCalc,{
|
||||||
PureErrFlag <- input$PureErr
|
PureErrFlag <- input$PureErr
|
||||||
warning_text3 <- reactive({
|
warning_text3 <- reactive({
|
||||||
ifelse(PureErrFlag, 'Pure error selected','')
|
ifelse(PureErrFlag, 'Pure error selected','')
|
||||||
@@ -1577,7 +1577,7 @@ function(input,output, session) {
|
|||||||
target='row',
|
target='row',
|
||||||
backgroundColor = styleEqual(c(-1,0,1),
|
backgroundColor = styleEqual(c(-1,0,1),
|
||||||
c("pink",'lightgreen','lightgrey')))
|
c("pink",'lightgreen','lightgrey')))
|
||||||
browser()
|
#browser()
|
||||||
output$secondary <- DT::renderDataTable({ dat})
|
output$secondary <- DT::renderDataTable({ dat})
|
||||||
|
|
||||||
output$EQtests <- DT::renderDataTable( dat, options = list(lengthChange=FALSE) )
|
output$EQtests <- DT::renderDataTable( dat, options = list(lengthChange=FALSE) )
|
||||||
@@ -2249,7 +2249,7 @@ function(input,output, session) {
|
|||||||
#### download XL report----
|
#### download XL report----
|
||||||
|
|
||||||
output$downloadXLReport <- downloadHandler(
|
output$downloadXLReport <- downloadHandler(
|
||||||
filename= paste0("Report_4PLEvaluation", input$iFile,".pdf"),
|
filename= paste0("Report_4PLEvaluation", Dat$FileName,".pdf"),
|
||||||
|
|
||||||
content = function(file) {
|
content = function(file) {
|
||||||
tpdr <- tempdir()
|
tpdr <- tempdir()
|
||||||
|
|||||||
9
ui.R
9
ui.R
@@ -27,7 +27,7 @@ function(req) {
|
|||||||
h5("\n\n\n Author: Franz Innerbichler, InnerAnalytics")),
|
h5("\n\n\n Author: Franz Innerbichler, InnerAnalytics")),
|
||||||
div(id="parameter",
|
div(id="parameter",
|
||||||
column(1,style = "background: lightgrey",
|
column(1,style = "background: lightgrey",
|
||||||
actionButton("StartCalc", "Click, when calculations to be started"),
|
#actionButton("StartCalc", "Click, when calculations to be started"),
|
||||||
h4("curve settings"),
|
h4("curve settings"),
|
||||||
numericInput("lowAsymptREF", "lower asymptote REF",10,step=1,min=0),
|
numericInput("lowAsymptREF", "lower asymptote REF",10,step=1,min=0),
|
||||||
numericInput("lowAsymptTEST", "lower asymptote TEST",10,step=1,min=0),
|
numericInput("lowAsymptTEST", "lower asymptote TEST",10,step=1,min=0),
|
||||||
@@ -92,7 +92,7 @@ function(req) {
|
|||||||
tableOutput("FileSAmpl"),
|
tableOutput("FileSAmpl"),
|
||||||
downloadButton("downloadXLReport", label="Download PDF report", class="butt"),
|
downloadButton("downloadXLReport", label="Download PDF report", class="butt"),
|
||||||
tags$style(type="text/css","#downloadXLReport {background-color: orange; color: black;font-family: COurier New}"),
|
tags$style(type="text/css","#downloadXLReport {background-color: orange; color: black;font-family: COurier New}"),
|
||||||
plotOutput("relPotTestPlot", width="300px", height="150px"),
|
plotOutput("relpotTestPlot", width="300px", height="150px"),
|
||||||
h4("Akaike Information Criterion"),
|
h4("Akaike Information Criterion"),
|
||||||
tableOutput("AIC"),
|
tableOutput("AIC"),
|
||||||
h5("First row: restricted model; 2nd row: unrestricted model"),
|
h5("First row: restricted model; 2nd row: unrestricted model"),
|
||||||
@@ -137,14 +137,15 @@ function(req) {
|
|||||||
DT::dataTableOutput("pottab4pl"),
|
DT::dataTableOutput("pottab4pl"),
|
||||||
"Footnote: test performed on absolute CIs."),
|
"Footnote: test performed on absolute CIs."),
|
||||||
column(6,
|
column(6,
|
||||||
DT::dataTableOutput("secondary"),
|
DT::dataTableOutput("secondary"), # SSTs
|
||||||
h5("*...The estimate for F-test on regression and on non-linearity is the p-value"),
|
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 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("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);
|
h5("Test results outcome: 0 ... test passed (for EQ tests: CI within limits);
|
||||||
1 ... test failed (for EQ tests CI not within limits);
|
1 ... test failed (for EQ tests CI not within limits);
|
||||||
-1 ... calculations unbound/denominator too close to 0"),
|
-1 ... calculations unbound/denominator too close to 0"),
|
||||||
plotOutput("CIplot, height=50%"))
|
#plotOutput("CIplot, height=50%")
|
||||||
|
)
|
||||||
))
|
))
|
||||||
),
|
),
|
||||||
#### Linear PLA ----
|
#### Linear PLA ----
|
||||||
|
|||||||
BIN
www/.DS_Store
vendored
Normal file
BIN
www/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
www/logo.png
Normal file
BIN
www/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
Reference in New Issue
Block a user