From ac626cca54de0981ee15430d035eedae41b7ed27 Mon Sep 17 00:00:00 2001 From: ranke Date: Thu, 30 Mar 2006 12:04:17 +0000 Subject: Split of the drfit.R file to have a separate file for each function. git-svn-id: http://kriemhild.uft.uni-bremen.de/svn/drfit@60 d1b72e20-2ee0-0310-a1c4-ad5adbbefcdc --- R/checkplate.R | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 R/checkplate.R (limited to 'R/checkplate.R') diff --git a/R/checkplate.R b/R/checkplate.R new file mode 100644 index 0000000..46afc53 --- /dev/null +++ b/R/checkplate.R @@ -0,0 +1,81 @@ +checkplate <- function(plate,db="cytotox") +{ + library(RODBC) + channel <- odbcConnect(db,uid="cytotox",pwd="cytotox",case="tolower") + + if (db == "cytotox") { + responsetype <- "viability" + testtype <- "celltype" + } else { + responsetype <- "activity" + testtype <- "enzyme" + } + + platequery <- paste("SELECT experimentator,substance,",testtype,",conc,unit,",responsetype,",performed,ok", + "FROM ",db," WHERE plate=", plate) + + controlquery <- paste("SELECT type,response FROM controls WHERE plate=",plate) + + platedata <- sqlQuery(channel,platequery) + controldata <- sqlQuery(channel,controlquery) + + odbcClose(channel) + + if (length(platedata$experimentator) < 1) { + cat("There is no response data for plate ",plate," in database ",db,"\n") + } else { + platedata$experimentator <- factor(platedata$experimentator) + platedata$type <- factor(platedata[[testtype]]) + platedata$substance <- factor(platedata$substance) + platedata$unit <- factor(platedata$unit) + platedata$performed <- factor(platedata$performed) + platedata$ok <- factor(platedata$ok) + + blinds <- subset(controldata,type=="blind") + controls <- subset(controldata,type=="control") + + numberOfBlinds <- length(blinds$response) + numberOfControls <- length(controls$response) + meanOfBlinds <- mean(blinds$response) + meanOfControls <- mean(controls$response) + stdOfBlinds <- sd(blinds$response) + stdOfControls <- sd(controls$response) + percentstdOfcontrols <-stdOfControls *100/meanOfControls + + cat("Plate ",plate," from database ",db,"\n", + "\tExperimentator: ",levels(platedata$experimentator),"\n", + "\tType(s): ",levels(platedata$type),"\n", + "\tPerformed on : ",levels(platedata$performed),"\n", + "\tSubstance(s): ",levels(platedata$substance),"\n", + "\tConcentration unit: ",levels(platedata$unit),"\n", + "\tOK: ",levels(platedata$ok),"\n", + "\t\tNumber \tMean \t\tStandard Deviation \t% Standard Deviation \n", + "\tblind\t",numberOfBlinds,"\t",meanOfBlinds,"\t",stdOfBlinds,"\n", + "\tcontrol\t",numberOfControls,"\t",meanOfControls,"\t",stdOfControls,"\t\t",percentstdOfcontrols,"\n") + + par(ask=TRUE) + + boxplot(blinds$response,controls$response, + names=c("blinds","controls"), + ylab="Response",main=paste("Plate ",plate)) + + drdata <- platedata[c(2,4,6)] + drdata$substance <- factor(drdata$substance) + substances <- levels(drdata$substance) + + plot(log10(drdata$conc),drdata$viability, + xlim=c(-2.5, 4.5), + ylim= c(-0.1, 2), + xlab=paste("decadic logarithm of the concentration in ",levels(platedata$unit)), + ylab=responsetype) + + drdatalist <- split(drdata,drdata$substance) + + for (i in 1:length(drdatalist)) { + points(log10(drdatalist[[i]]$conc),drdatalist[[i]][[responsetype]],col=i); + } + + legend("topleft",substances, pch=1, col=1:length(substances), inset=0.05) + title(main=paste("Plate ",plate," - ",levels(platedata$experimentator)," - ",levels(platedata$type))) + } +} -- cgit v1.2.1