set.seed(1)
log.conc=log(1e4)-log(3)*9:0
n.replicate=2
fi=simulate1curve (p.eotaxin[1,], rep(log.conc,each=n.replicate), sd.e=0.3)
dat.std=data.frame(fi, expected_conc=exp(rep(log.conc,each=n.replicate)), analyte="test",
assay_id="assay1", sample_id=NA, well_role="Standard", dilution=rep(3**(9:0), each=n.replicate))
# add unknown
dat.unk=rbind(
data.frame(fi=exp(6.75), expected_conc=NA, analyte="test", assay_id="assay1",
sample_id=1, well_role="Unknown", dilution=1)
, data.frame(fi=exp(6.70), expected_conc=NA, analyte="test", assay_id="assay1",
sample_id=2, well_role="Unknown", dilution=1)
, data.frame(fi=exp(3), expected_conc=NA, analyte="test", assay_id="assay1",
sample_id=3, well_role="Unknown", dilution=1)
, data.frame(fi=exp(4.4), expected_conc=NA, analyte="test", assay_id="assay1",
sample_id=4, well_role="Unknown", dilution=10)
)
dat=rbind(dat.std, dat.unk)
# second plate
fi=simulate1curve (p.eotaxin[2,], rep(log.conc,each=n.replicate), sd.e=0.3)
dat.std=data.frame(fi, expected_conc=exp(rep(log.conc,each=n.replicate)), analyte="test",
assay_id="assay2", sample_id=NA, well_role="Standard", dilution=rep(3**(9:0), each=n.replicate))
# add unknown
dat.unk=rbind(
data.frame(fi=exp(6.75), expected_conc=NA, analyte="test", assay_id="assay2",
sample_id=1, well_role="Unknown", dilution=1)
, data.frame(fi=exp(6.70), expected_conc=NA, analyte="test", assay_id="assay2",
sample_id=2, well_role="Unknown", dilution=1)
, data.frame(fi=exp(3), expected_conc=NA, analyte="test", assay_id="assay2",
sample_id=3, well_role="Unknown", dilution=1)
, data.frame(fi=exp(4.4), expected_conc=NA, analyte="test", assay_id="assay2",
sample_id=4, well_role="Unknown", dilution=10)
)
dat=rbind(dat, dat.std, dat.unk)
fits = bcrm(log(fi)~expected_conc, dat, error.model="gh_norm", informative.prior=TRUE, n.iter=1e4)
par(mfrow=c(1,2))
plot(fits)
# this block of code takes a few minutes to run
# Example from Fong et al. (2012)
fits.t4 = bcrm (log(fi)~expected_conc, dat.QIL3, error.model="gh_t4", informative.prior=TRUE)
par(mfrow=c(2,3))
plot(fits.t4)
fits.norm = bcrm (log(fi)~expected_conc, dat.QIL3, error.model="gh_norm", informative.prior=TRUE)
par(mfrow=c(2,3))
plot(fits.norm)
# Example from Fong et al (2013)
fit.bcrm=bcrm(log(fi)~expected_conc, subset(hier.model.ex.2,assay_id "Run 4")), error.model="gh_t4", informative.prior=T)
for (p in c("Run 1","Run 2","Run 3","Run 4")) {
fit.drm = drm(log(fi)~expected_conc, data=subset(hier.model.ex.2, assay_id==p),
fct=LL.5(), robust="median")
plot(fit.drm, type="all", col="black", main=p, lty=2)
plot(get.single.fit(fit.bcrm, p), add=T, log="x", col=1)
mylegend(x=9,legend=c("drm, median","bcrm, t4"),lty=c(2,1))
}Run the code above in your browser using DataLab