[Qpcr-commits] r114 - in pkg: NormqPCR/R NormqPCR/inst/doc ReadqPCR/R ReadqPCR/inst/doc ReadqPCR/inst/exData

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Wed Jun 9 21:39:55 CEST 2010


Author: jperkins
Date: 2010-06-09 21:39:54 +0200 (Wed, 09 Jun 2010)
New Revision: 114

Modified:
   pkg/NormqPCR/R/deltaDeltaCt.R
   pkg/NormqPCR/R/plotDdCt.R
   pkg/NormqPCR/inst/doc/NormqPCR.Rnw
   pkg/ReadqPCR/R/qPCRbatch.R
   pkg/ReadqPCR/R/taqmanbatch.R
   pkg/ReadqPCR/inst/doc/ReadqPCR.Rnw
   pkg/ReadqPCR/inst/exData/qPCR.example.txt
   pkg/ReadqPCR/inst/exData/qPCR.noPlateOrWell.txt
   pkg/ReadqPCR/inst/exData/qPCR.techReps.txt
Log:
mainly cosmetics and cleaning up stuff


Modified: pkg/NormqPCR/R/deltaDeltaCt.R
===================================================================
--- pkg/NormqPCR/R/deltaDeltaCt.R	2010-06-08 16:01:39 UTC (rev 113)
+++ pkg/NormqPCR/R/deltaDeltaCt.R	2010-06-09 19:39:54 UTC (rev 114)
@@ -108,7 +108,6 @@
             maxddCts[i] <- NA
           }
           else {
-#            sdCt <- sqrt(sdCase)
             minddCts[i] <- 2 ^ -(ddCt + sdCase)
             maxddCts[i] <- 2 ^ -(ddCt - sdCase)
             ddCts[i] <- 2^-ddCt

Modified: pkg/NormqPCR/R/plotDdCt.R
===================================================================
--- pkg/NormqPCR/R/plotDdCt.R	2010-06-08 16:01:39 UTC (rev 113)
+++ pkg/NormqPCR/R/plotDdCt.R	2010-06-09 19:39:54 UTC (rev 114)
@@ -7,20 +7,20 @@
 #expM
 
 if(detectors!="") {
-#cat("WEN")
     bbb <- ddCtTable[ddCtTable$ID %in% detectors,]
     qPCRSet <- qPCRSet[detectors]
 #    expM <- matrix(exprs(qPCRSet)[detectors,], ncol=8)
 #    rownames(expM) <- detectors
-    expM <- exprs(qPCRSet)
+#    expM <- exprs(qPCRSet)
 } else {
-cat("try")
+#cat("try")
     bbb <- ddCtTable
-    expM <- exprs(qPCRSet)
+#    expM <- exprs(qPCRSet)
 }
-cat("out")
+expM <- exprs(qPCRSet)
+#cat("out")
 #print(bbb)
-cat("YEAH")
+#cat("YEAH")
 ddCts <- as.vector(bbb$ddCt)
 ddCtsNames <- as.vector(bbb$ID)
 ddCtsMax <- log2(as.numeric(as.vector(bbb$ddCt.max)))
@@ -39,13 +39,20 @@
 #qq <- qPCRSet
 #cat("bbbbbbl")
 #return(expM)
-expM <- log2(expM)[,c(3:4,7:8)] - log2(expM)[,c(1:2,5:6)]
-if(length(detectors) == 1) expM <- matrix(expM, ncol=4)
+controlSubbed <- expM[,c(3:4,7:8)] - apply(expM[,c(1:2,5:6)],1,mean,na.rm=TRUE)
+#two <- 2^(-controlSubbed)
+#three <- log2(two)
+#controlSubbed <- log2((2^-((expM[,c(3:4,7:8)]) - (apply(expM[,c(1:2,5:6)],1,mean,na.rm=TRUE)))))
+#controlSubbed <- three
+#print(controlSubbed)
+print(expM)
+controlSubbed <- -(expM[,c(3:4,7:8)] - apply(expM[,c(1:2,5:6)],1,mean,na.rm=TRUE))
+controlSubebed <- log2(controlSubbed)
+#if(length(detectors) == 1) expM <- matrix(expM, ncol=4)
 #cat(featureNames(qPCRSet))
 #rownames(expM) <- featureNames(qPCRSet)
 #print(expM)
 #return(expM)
-source("/home/bsm/jperkins/qpcr/pkg/NormqPCR/R/plotDdCt.R")
-j<-1; for(i in 1:length(featureNames(qPCRSet))) {cat(i);cat(bp[j]);print(expM[i,]); points(rep(bp[j],4),expM[i,]);j=j+1 }
-
+#source("/home/bsm/jperkins/qpcr/pkg/NormqPCR/R/plotDdCt.R")
+#j<-1; for(i in 1:length(featureNames(qPCRSet))) { print(controlSubbed[i,]); points(rep(bp[j],4),controlSubbed[i,]);j=j+1 }
 }

Modified: pkg/NormqPCR/inst/doc/NormqPCR.Rnw
===================================================================
--- pkg/NormqPCR/inst/doc/NormqPCR.Rnw	2010-06-08 16:01:39 UTC (rev 113)
+++ pkg/NormqPCR/inst/doc/NormqPCR.Rnw	2010-06-09 19:39:54 UTC (rev 114)
@@ -1,4 +1,4 @@
-%\VignetteIndexEntry{NormqPCR}
+%\VignetteIndexEntry{NormqPCR: Functions for normalisation of RT-qPCR data}
 %\VignetteDepends{stats,RColorBrewer,Biobase,methods,ReadqPCR}
 %\VignetteKeywords{real-time, quantitative, PCR, housekeeper, reference gene,geNorm, NormFinder}
 %\VignettePackage{NormqPCR}
@@ -48,17 +48,18 @@
 %-------------------------------------------------------------------------------
 The package \pkg{NormqPCR} provides methods for the normalization of 
 real-time quantitative RT-PCR data. In this vignette we describe and 
-demonstrate the available functions. Firstly we show
-how the user may combine technical replicates, and deal with undetermined values
-and values above a user-chosen threshold. The rest of the vignette is split into
+demonstrate the available functions. 
+Firstly we show
+how the user may combine technical replicates, deal with undetermined values
+and deal with values above a user-chosen threshold. The rest of the vignette is split into
 two distinct sections, the first giving details of different methods to select
 the best houskeeping gene/genes for normalisation, and the second showing how to
-use the selected housekeeping genes to produce $2^{-\Delta Ct}$ normalised
+use the selected housekeeping gene(s) to produce $2^{-\Delta Ct}$ normalised
 estimators and $2^{-\Delta \Delta Ct}$ estimators of differential expression.
 %-------------------------------------------------------------------------------
 \section{Combining technical replicates} 
 %-------------------------------------------------------------------------------
-When a raw data file is read in using read.qPCR contains technical replicates,
+When a raw data file read in using read.qPCR contains technical replicates,
 they are dealt with by concatenating the suffix \_TechRep.n to the detector
 name, where
 n in {1, 2...N } is the number of the replication in the total number of
@@ -78,7 +79,7 @@
 @
 
 It is likely that before continuing with the analysis, the user would wish to
-average the technical replicates by finding their mean. This can be
+average the technical replicates by using the arithmetic mean of the raw Ct values. This can be
 achieved using the combineTechReps function, which will produce a new qPCRBatch
 object, with all tech reps reduced to one reading:
 
@@ -92,8 +93,8 @@
 %-------------------------------------------------------------------------------
 
 When an RT-qPCR experiment does not produce a reading after a certain number of
-cycles (cycle threshold), the reading is given as undetermined. These are
-represented in qPCRBatch objects as "NA". Different users may have different
+cycles (the cycle threshold), the reading is given as undetermined. These are
+represented in qPCRBatch objects as \code{NA}. Different users may have different
 ideas about how many cycles they wish to allow before declaring a detector as
 not present in the sample. There are two methods for the user to decide what to
 do with numbers above a given cycle threshold:
@@ -111,14 +112,14 @@
 qPCRBatch.taqman <- read.taqman(taqman.example)
 @
 
-We can see that for the detector: Ccl20.Rn00570287\_m1 have these readings for
+We can see that for the detector: \code{Ccl20.Rn00570287\_m1} we have these readings for
 the different samples:
 <<taqman detector example>>=
 exprs(qPCRBatch.taqman)["Ccl20.Rn00570287_m1",]
 @
 
 
-Now use the \code{replaceAboveCutOff} method in order to replace anything above
+We can now use the \code{replaceAboveCutOff} method in order to replace anything above
 35 with NA:
 
 <<replace above cutoff>>=
@@ -150,7 +151,7 @@
 gives a maximum number of NAs allowed for each sample type.
 
 So in the example file above we two sample types, with 4 biological replicates
-for each. the contrastMatrix and sampleMaxMatrix might be contructed like this:
+for each, the contrastMatrix and sampleMaxMatrix might be contructed like this:
 
 <<construct contrast matrix>>=
 sampleNames(qPCRBatch.taqman)
@@ -165,10 +166,10 @@
 sMaxM
 @
 
-More details on the contrast matrix can be found in the limma manual.
+More details on contrast matrices can be found in the limma manual, which requires a similar matrix when testing for differential expression between samples.
 
 For example, if the user decides that if at least 3 out of 4 readings are NAs
-for a given detector, then all readings should be NA, they will can do the
+for a given detector, then all readings should be NA, they can do the
 following, using the \code{makeAllNAs} method:
 
 <<replace 3 or more NAs with all NAs>>=
@@ -179,14 +180,14 @@
 been made all NA, wheras before 3 were NA and one was 35. However the case
 values have been kept, since they were all below the NA threshold. It is
 important to filter the data in this way to ensure the correct calculations are
-made downstream.
+made downstream when calculating variation and other parameters.
 
 << ccl20 is now all NAs >>=
 exprs(qPCRBatch.taqman.replaced)["Ccl20.Rn00570287_m1",]
 @
 
 %-------------------------------------------------------------------------------
-\section{Selection of most stable reference/housekeeping genes} 
+\section{Selection of most stable reference/housekeeping genes}
 %-------------------------------------------------------------------------------
 This section contains two subsections containing different methods for the
 selection of appropriate housekeeping genes.
@@ -387,12 +388,12 @@
 %-------------------------------------------------------------------------------
 \subsection{$2^{-\Delta \Delta Ct}$ method using a single housekeeper}
 %-------------------------------------------------------------------------------
-It is possible to use the $2^{-\Delta \Delta Ct}$ method for calculating the
-relative gene expression. 
+It is possible to use the $2^{-\Delta \Delta Ct}$ method for calculating
+relative gene expression between two sample types.
 Both the same well and the separate well methods as detailed in \cite{ddCt} can
-be used for this purpose.
-By default detectors in the same sample will be paired, and the standard deviation used will be that of the differences between cases and controls. However, if the argument \code{paired=FALSE} is added ,standard deviation between case and control will be calculated as s = $\sqrt{s_{1}^{2} +
-s_{2}^{2}}$, where $s_{1}$ is the standard deviation for all the case readings and $s_{2}$ is the standard deviation for all control readings.
+be used for this purpose, and will produce the same answers, but with different levels of variation.
+By default detectors in the same sample will be paired with the housekeeper, and the standard deviation used will be that of the differences between detectors and the housekeepers. However, if the argument \code{paired=FALSE} is added, standard deviation between case and control will be calculated as s = $\sqrt{s_{1}^{2} +
+s_{2}^{2}}$, where $s_{1}$ is the standard deviation for the detector readings and $s_{2}$ is the standard deviation the housekeeper gene readings.
 The latter approach is not recommended when the housekeeper and genes to be compared
 are from the same sample, as is the case when using the taqman cards, but is
 included for completeness and for situations where readings for the housekeeper
@@ -452,11 +453,11 @@
 We can also average the taqman data using the separate samples/wells method .
 Here standard deviation is calculated separately and then combined, as described above. Therefore the pairing
 of housekeeper with the detector value within
-the same sample is lost. This can increase variance
+the same sample is lost. This can potentially increase variance.
 
 << ddCt Avg >>=
 hkg <- "Actb-Rn00667869_m1"
-ddCtAvg.taqman <- deltaDeltaCt(qPCRBatch = qPCRBatch.taqman, maxNACase=1, maxNAControl=1, hkg=hkg, contrastM=contM, case="interestingPhenotype", control="wildTypePhenotype", paired=TRUE)
+ddCtAvg.taqman <- deltaDeltaCt(qPCRBatch = qPCRBatch.taqman, maxNACase=1, maxNAControl=1, hkg=hkg, contrastM=contM, case="interestingPhenotype", control="wildTypePhenotype", paired=FALSE)
 head(ddCtAvg.taqman)
 @
 %-------------------------------------------------------------------------------
@@ -496,6 +497,8 @@
 @
 
 
+TO SHOW EXAMPLE USING GENORM/NORMFINDER DATA
+
 %-------------------------------------------------------------------------------
 \begin{thebibliography}{1}
 

Modified: pkg/ReadqPCR/R/qPCRbatch.R
===================================================================
--- pkg/ReadqPCR/R/qPCRbatch.R	2010-06-08 16:01:39 UTC (rev 113)
+++ pkg/ReadqPCR/R/qPCRbatch.R	2010-06-09 19:39:54 UTC (rev 114)
@@ -72,7 +72,7 @@
        }
        raw.data$Detector <- as.factor(raw.data$Detector)
         if(noWellData == FALSE) {
-            well.info <- data.frame(raw.data$Detector[raw.data$Sample == sample], # put Cts values in a matrix
+            well.info <- data.frame(raw.data$Detector[raw.data$Sample == sample], # put well info values in a matrix
               raw.data$PlateID[raw.data$Sample == sample],
                 row.names=1)
         }
@@ -89,7 +89,12 @@
     qPCRInfo <- list()
     names(exprs) <- samples
     qPCRInfo$exprs <- as.matrix(exprs)
-    if(noWellData == FALSE) qPCRInfo$well.order <- well.order
+#    colnames(well.order) <- names(exprs)
+    if(noWellData == FALSE) {
+      colnames(well.order) <- names(exprs)
+      qPCRInfo$well.order <- well.order
+#      colnames(well.order) <- names(exprs)
+    }
     return(qPCRInfo)
 }
 

Modified: pkg/ReadqPCR/R/taqmanbatch.R
===================================================================
--- pkg/ReadqPCR/R/taqmanbatch.R	2010-06-08 16:01:39 UTC (rev 113)
+++ pkg/ReadqPCR/R/taqmanbatch.R	2010-06-09 19:39:54 UTC (rev 114)
@@ -131,7 +131,7 @@
             original.order <- c(original.order,list(cbind(as.character(raw.data$Detector[raw.data$Sample == sample]),
                 as.character(raw.data$Ct[raw.data$Sample == sample])))) # This bit to add the information about pipetting and order
 
-            well.info <- data.frame(raw.data$Detector[raw.data$Sample == sample], # put Cts values in a matrix
+            well.info <- data.frame(raw.data$Detector[raw.data$Sample == sample], # put Well data in a matrix
                          raw.data$PlateID[raw.data$Sample == sample],
                          row.names=1)
             Cts <- data.frame(raw.data$Detector[raw.data$Sample == sample], # put Cts values in a matrix

Modified: pkg/ReadqPCR/inst/doc/ReadqPCR.Rnw
===================================================================
--- pkg/ReadqPCR/inst/doc/ReadqPCR.Rnw	2010-06-08 16:01:39 UTC (rev 113)
+++ pkg/ReadqPCR/inst/doc/ReadqPCR.Rnw	2010-06-09 19:39:54 UTC (rev 114)
@@ -48,7 +48,7 @@
 As well as the functions to read in the data, \pkg{ReadqPCR} contains the \code{qPCRBatch} class definition.
 The data output by these RT-qPCR systems is in the form of cycle threshold, or Ct values, which represents the number of cycles of amplification needed in order to detect the expression of a given gene from a sample.
 
-ReadqPCR is designed to be complementary to 2 other R modules: QCqPCR and NormqPCR, which are intended for (respectively) the quality control and normalisation of qPCR data.
+ReadqPCR is designed to be complementary to 2 other R modules: QCqPCR and NormqPCR, which are intended for (respectively) the quality control and normalisation of qPCR data. It must be installed before the other two modules can be.
 %-------------------------------------------------------------------------------
 \section{read.qPCR}
 
@@ -63,7 +63,7 @@
     \item[Ct] This is the cycle threshold for a given detector in the corresponding sample.
 \end{description}
 
-The generic function \code{read.qPCR} is called to read in the qPCR file. It is similar to the \code{read.affybatch} function of the \pkg{affy} package, in that it reads a file and automatically populates an R object, code{qPCRBatch} described below. However it is different in that the file is user formatted. In addition, unlike \code{read.affybatch}, and also unlike the \code{read.taqman} function detailed below, only one file may be read in at a time.
+The generic function \code{read.qPCR} is called to read in the qPCR file. It is similar to the \code{read.affybatch} function of the \pkg{affy} package, in that it reads a file and automatically populates an R object, \code{qPCRBatch} described below. However it is different in that the file is user formatted. In addition, unlike \code{read.affybatch}, and also unlike the \code{read.taqman} function detailed below, only one file may be read in at a time.
 
 If \code{Well} and \code{Plate ID} information are given, then these are used to populate the \code{exprs.well.order}, a new \code{assayData} slot introduced in the \code{qPCRBatch} object, as detailed below in section \code{qPCRBatch}.
 
@@ -90,7 +90,7 @@
 
 
 The reason for appending the suffix when technical replicates are encountered is in order to populate the \code{exprs} and \code{exprs.well.order} slots correctly and keep them to the \code{assayData} format.
-It also allows the decisions on how to deal with the analysis and combination of technical replicates to be controlled by the user, either using the \pkg{NormqPCR} package, or any other function that takes \code{assayData} format R objects as input.
+It also allows the decisions on how to deal with the analysis and combination of technical replicates to be controlled by the user, either using the \pkg{NormqPCR} package, or potentially some other function that takes \code{assayData} format R objects as input.
 
 \section{read.taqman}
 
@@ -109,7 +109,8 @@
 path <- system.file("exData", package = "ReadqPCR")
 taqman.example <- paste(path, "/example.txt", sep="")
 taqman.example.second.file <- paste(path, "/example2.txt", sep="")
-qPCRBatch.taq.two.files <- read.taqman(taqman.example, taqman.example.second.file)
+qPCRBatch.taq.two.files <- read.taqman(taqman.example, 
+                             taqman.example.second.file)
 @
 
 SDS output will not necessarily contain plate identifiers, in which case a numeric identifier will be generated, which will increment for each plate, depending on the order of the plates within the SDS files.
@@ -126,7 +127,7 @@
 @
 
 As with read.qPCR, the motivation for appending the suffix when technical replicates are encountered is in order to populate the \code{exprs} and \code{exprs.well.order} slots correctly and keep them to the \code{assayData} format.
-Again it also allows the decisions on how to deal with the analysis of technical replicates to be controlled by the user, either using the \pkg{NormqPCR} package, or otherwise.
+Again it allows the decisions on how to deal with the analysis of technical replicates to be controlled by the user, either using the \pkg{NormqPCR} package, or otherwise.
 
 \section{qPCRBatch}
 \code{qPCRBatch} is an S4 class, designed to store information on the Ct raw values
@@ -174,8 +175,10 @@
 
 <<taqman.exprs.well.order.plate.and.not>>=
 taqman.example <- paste(path, "/example.txt", sep="")
-taqman.example.plateNames <-paste(path,"/exampleWithPlateNames.txt",sep="")
-qPCRBatch.taq.mixedPlateNames <- read.taqman(taqman.example, taqman.example.plateNames)
+taqman.example.plateNames <-paste(path,"/exampleWithPlateNames.txt",
+                                                               sep="")
+qPCRBatch.taq.mixedPlateNames <- read.taqman(taqman.example, 
+                                    taqman.example.plateNames)
 head(exprs.well.order(qPCRBatch.taq.mixedPlateNames))
 @
 

Modified: pkg/ReadqPCR/inst/exData/qPCR.example.txt
===================================================================
--- pkg/ReadqPCR/inst/exData/qPCR.example.txt	2010-06-08 16:01:39 UTC (rev 113)
+++ pkg/ReadqPCR/inst/exData/qPCR.example.txt	2010-06-09 19:39:54 UTC (rev 114)
@@ -1,201 +1,201 @@
-"Well" "PlateID" "Sample" "Detector" "Cts"
-1 "A" "one" "dm" 21.0014917960626
-2 "A" "one" "sw" 19.8315362467861
-3 "A" "one" "er" 20.4971810118107
-4 "A" "one" "jw" 18.9761465052152
-5 "A" "one" "il" 20.2740299279722
-6 "A" "one" "bc" 19.6343712615078
-7 "A" "one" "qy" 19.9381496369056
-8 "A" "one" "qs" 19.9339218016992
-9 "A" "one" "dh" 20.4150318782850
-10 "A" "one" "hl" 19.4111838416443
-11 "A" "one" "by" 18.7933717338123
-12 "A" "one" "ev" 19.0555529479869
-13 "A" "one" "jr" 20.1413846318420
-14 "A" "one" "dq" 19.6327635272094
-15 "A" "one" "rz" 20.5200006807006
-16 "A" "one" "iv" 19.4778806082065
-17 "A" "one" "vx" 21.1229460930688
-18 "A" "one" "ai" 18.2534598786095
-19 "A" "one" "dr" 18.5331584854772
-20 "A" "one" "fr" 20.4680950899178
-21 "A" "one" "gx" 20.0511317453079
-22 "A" "one" "eg" 19.5369999829546
-23 "A" "one" "az" 19.9991513818477
-24 "A" "one" "xz" 20.8111760975806
-25 "A" "one" "fw" 20.1737816572178
-26 "A" "two" "dm" 19.5633938670487
-27 "A" "two" "sw" 19.5077596509739
-28 "A" "two" "er" 20.3335871479588
-29 "A" "two" "jw" 19.3955831562278
-30 "A" "two" "il" 19.0607887556414
-31 "A" "two" "bc" 20.7528383985073
-32 "A" "two" "qy" 19.6728237870993
-33 "A" "two" "qs" 20.1664816830546
-34 "A" "two" "dh" 20.3859270837548
-35 "A" "two" "hl" 19.2627392465938
-36 "A" "two" "by" 20.1110463079268
-37 "A" "two" "ev" 19.5677452058614
-38 "A" "two" "jr" 20.4840144604876
-39 "A" "two" "dq" 20.9272692090057
-40 "A" "two" "rz" 20.4931475098658
-41 "A" "two" "iv" 19.8608390916101
-42 "A" "two" "vx" 22.2020991464141
-43 "A" "two" "ai" 19.5963548365375
-44 "A" "two" "dr" 21.0463284341796
-45 "A" "two" "fr" 18.7445909337096
-46 "A" "two" "gx" 19.3370923981357
-47 "A" "two" "eg" 20.1182039772963
-48 "A" "two" "az" 19.5232560343072
-49 "A" "two" "xz" 20.8956519114685
-50 "A" "two" "fw" 21.5349269321586
-1 "B" "three" "dm" 19.599424044724
-2 "B" "three" "sw" 18.7775131391418
-3 "B" "three" "er" 20.4157632961591
-4 "B" "three" "jw" 19.1922450575311
-5 "B" "three" "il" 20.9060650714403
-6 "B" "three" "bc" 21.6659836667452
-7 "B" "three" "qy" 19.5635729729058
-8 "B" "three" "qs" 19.5231007057247
-9 "B" "three" "dh" 19.6831359891326
-10 "B" "three" "hl" 18.6584666569296
-11 "B" "three" "by" 19.5800217095197
-12 "B" "three" "ev" 20.1879641813157
-13 "B" "three" "jr" 19.9521189246857
-14 "B" "three" "dq" 20.3288273574398
-15 "B" "three" "rz" 19.9815814732238
-16 "B" "three" "iv" 19.0765841293029
-17 "B" "three" "vx" 18.1605432770232
-18 "B" "three" "ai" 19.967186142245
-19 "B" "three" "dr" 20.4874926294608
-20 "B" "three" "fr" 19.5938335577460
-21 "B" "three" "gx" 20.0493646425960
-22 "B" "three" "eg" 19.7515398275396
-23 "B" "three" "az" 18.7481976699327
-24 "B" "three" "xz" 20.7493922258348
-25 "B" "three" "fw" 18.5503222908182
-26 "B" "four" "dm" 20.8395418431417
-27 "B" "four" "sw" 18.2138877101961
-28 "B" "four" "er" 18.8059631723498
-29 "B" "four" "jw" 19.9486352669284
-30 "B" "four" "il" 20.2503679531
-31 "B" "four" "bc" 20.5809333713652
-32 "B" "four" "qy" 18.2851799980457
-33 "B" "four" "qs" 17.4893790714407
-34 "B" "four" "dh" 19.3189337414645
-35 "B" "four" "hl" 20.8563312435095
-36 "B" "four" "by" 18.1636062848498
-37 "B" "four" "ev" 20.2699290592588
-38 "B" "four" "jr" 21.423326017771
-39 "B" "four" "dq" 20.1302577263771
-40 "B" "four" "rz" 17.7697142777519
-41 "B" "four" "iv" 19.6511475349660
-42 "B" "four" "vx" 19.5642401478024
-43 "B" "four" "ai" 21.8182560633770
-44 "B" "four" "dr" 21.5444378047811
-45 "B" "four" "fr" 20.6072912335256
-46 "B" "four" "gx" 18.4612934392979
-47 "B" "four" "eg" 20.7298410352993
-48 "B" "four" "az" 20.2425873046043
-49 "B" "four" "xz" 18.5861762559058
-50 "B" "four" "fw" 21.3999377034634
-1 "C" "one" "dm" 20.2709739699307
-2 "C" "one" "sw" 21.9311873120558
-3 "C" "one" "er" 21.7857499006095
-4 "C" "one" "jw" 19.3867229940152
-5 "C" "one" "il" 18.2064422746961
-6 "C" "one" "bc" 19.9712829913985
-7 "C" "one" "qy" 22.0094973641946
-8 "C" "one" "qs" 21.3584908638776
-9 "C" "one" "dh" 18.5648770855196
-10 "C" "one" "hl" 20.5172127984268
-11 "C" "one" "by" 19.768475517607
-12 "C" "one" "ev" 19.6376594496951
-13 "C" "one" "jr" 20.2465556480891
-14 "C" "one" "dq" 21.2399931102537
-15 "C" "one" "rz" 19.9502945644295
-16 "C" "one" "iv" 18.6281515515089
-17 "C" "one" "vx" 20.0964318640378
-18 "C" "one" "ai" 19.1769205655404
-19 "C" "one" "dr" 18.2746914243454
-20 "C" "one" "fr" 17.8280346713740
-21 "C" "one" "gx" 20.0441558548604
-22 "C" "one" "eg" 20.6043225072735
-23 "C" "one" "az" 19.7141040071578
-24 "C" "one" "xz" 20.1560057526097
-25 "C" "one" "fw" 20.9973523184449
-26 "C" "two" "dm" 19.9894160519445
-27 "C" "two" "sw" 19.8047755834153
-28 "C" "two" "er" 19.9911623405408
-29 "C" "two" "jw" 21.0042767060770
-30 "C" "two" "il" 20.1565758217355
-31 "C" "two" "bc" 20.3833034113827
-32 "C" "two" "qy" 18.9436613873013
-33 "C" "two" "qs" 20.8476615993419
-34 "C" "two" "dh" 19.4459706816620
-35 "C" "two" "hl" 19.5630798425886
-36 "C" "two" "by" 20.0961954770471
-37 "C" "two" "ev" 17.7290142716347
-38 "C" "two" "jr" 19.7100449367721
-39 "C" "two" "dq" 20.3190757114800
-40 "C" "two" "rz" 17.9060859721407
-41 "C" "two" "iv" 19.5208712891125
-42 "C" "two" "vx" 19.0541298230337
-43 "C" "two" "ai" 19.3309166611293
-44 "C" "two" "dr" 18.8372600075061
-45 "C" "two" "fr" 19.4041778564794
-46 "C" "two" "gx" 21.1356631394293
-47 "C" "two" "eg" 21.7457837680075
-48 "C" "two" "az" 20.046543997699
-49 "C" "two" "xz" 19.1233944627407
-50 "C" "two" "fw" 19.275130708386
-1 "D" "three" "dm" 19.0730513249518
-2 "D" "three" "sw" 21.8577356502919
-3 "D" "three" "er" 20.2640908713482
-4 "D" "three" "jw" 19.9075935513591
-5 "D" "three" "il" 19.6704472202351
-6 "D" "three" "bc" 18.8694964744147
-7 "D" "three" "qy" 19.6399775655525
-8 "D" "three" "qs" 19.6218853583455
-9 "D" "three" "dh" 19.8053959708005
-10 "D" "three" "hl" 21.6689508468287
-11 "D" "three" "by" 20.7400957861041
-12 "D" "three" "ev" 19.5266225682397
-13 "D" "three" "jr" 19.9013263746145
-14 "D" "three" "dq" 19.6613812202236
-15 "D" "three" "rz" 20.5606599546275
-16 "D" "three" "iv" 18.8491614856104
-17 "D" "three" "vx" 18.7020438905139
-18 "D" "three" "ai" 21.0219929057775
-19 "D" "three" "dr" 20.2184516358930
-20 "D" "three" "fr" 19.8620624606787
-21 "D" "three" "gx" 19.4502747875137
-22 "D" "three" "eg" 20.2399304370681
-23 "D" "three" "az" 20.4297386086333
-24 "D" "three" "xz" 20.4757927712348
-25 "D" "three" "fw" 19.2812740612491
-26 "D" "four" "dm" 19.8217277769028
-27 "D" "four" "sw" 20.6187808523916
-28 "D" "four" "er" 18.6327899942201
-29 "D" "four" "jw" 18.8529201749265
-30 "D" "four" "il" 20.5724236293671
-31 "D" "four" "bc" 19.2407132755982
-32 "D" "four" "qy" 18.3368696798480
-33 "D" "four" "qs" 18.6467421648343
-34 "D" "four" "dh" 21.4314546592365
-35 "D" "four" "hl" 20.6617272286417
-36 "D" "four" "by" 20.7429802145681
-37 "D" "four" "ev" 19.7406038517418
-38 "D" "four" "jr" 20.9170778664594
-39 "D" "four" "dq" 18.7289619361650
-40 "D" "four" "rz" 21.2820110142392
-41 "D" "four" "iv" 21.2111090998191
-42 "D" "four" "vx" 19.9599353887929
-43 "D" "four" "ai" 19.2464885799813
-44 "D" "four" "dr" 20.4832936051055
-45 "D" "four" "fr" 21.2785374125132
-46 "D" "four" "gx" 21.6868757078195
-47 "D" "four" "eg" 19.1716944263018
-48 "D" "four" "az" 20.7179112195396
-49 "D" "four" "xz" 19.9786507377350
-50 "D" "four" "fw" 19.8522036845548
+Well PlateID Sample Detector Cts
+1 A caseA gene_dm 21.0014917960626
+2 A caseA gene_sw 19.8315362467861
+3 A caseA gene_er 20.4971810118107
+4 A caseA gene_jw 18.9761465052152
+5 A caseA gene_il 20.2740299279722
+6 A caseA gene_bc 19.6343712615078
+7 A caseA gene_qy 19.9381496369056
+8 A caseA gene_qs 19.9339218016992
+9 A caseA gene_dh 20.415031878285
+10 A caseA gene_hl 19.4111838416443
+11 A caseA gene_by 18.7933717338123
+12 A caseA gene_ev 19.0555529479869
+13 A caseA gene_jr 20.141384631842
+14 A caseA gene_dq 19.6327635272094
+15 A caseA gene_rz 20.5200006807006
+16 A caseA gene_iv 19.4778806082065
+17 A caseA gene_vx 21.1229460930688
+18 A caseA gene_ai 18.2534598786095
+19 A caseA gene_dr 18.5331584854772
+20 A caseA gene_fr 20.4680950899178
+21 A caseA gene_gx 20.0511317453079
+22 A caseA gene_eg 19.5369999829546
+23 A caseA gene_az 19.9991513818477
+24 A caseA gene_xz 20.8111760975806
+25 A caseA gene_fw 20.1737816572178
+26 A caseB gene_dm 19.5633938670487
+27 A caseB gene_sw 19.5077596509739
+28 A caseB gene_er 20.3335871479588
+29 A caseB gene_jw 19.3955831562278
+30 A caseB gene_il 19.0607887556414
+31 A caseB gene_bc 20.7528383985073
+32 A caseB gene_qy 19.6728237870993
+33 A caseB gene_qs 20.1664816830546
+34 A caseB gene_dh 20.3859270837548
+35 A caseB gene_hl 19.2627392465938
+36 A caseB gene_by 20.1110463079268
+37 A caseB gene_ev 19.5677452058614
+38 A caseB gene_jr 20.4840144604876
+39 A caseB gene_dq 20.9272692090057
+40 A caseB gene_rz 20.4931475098658
+41 A caseB gene_iv 19.8608390916101
+42 A caseB gene_vx 22.2020991464141
+43 A caseB gene_ai 19.5963548365375
+44 A caseB gene_dr 21.0463284341796
+45 A caseB gene_fr 18.7445909337096
+46 A caseB gene_gx 19.3370923981357
+47 A caseB gene_eg 20.1182039772963
+48 A caseB gene_az 19.5232560343072
+49 A caseB gene_xz 20.8956519114685
+50 A caseB gene_fw 21.5349269321586
+1 B controlA gene_dm 19.599424044724
+2 B controlA gene_sw 18.7775131391418
+3 B controlA gene_er 20.4157632961591
+4 B controlA gene_jw 19.1922450575311
+5 B controlA gene_il 20.9060650714403
+6 B controlA gene_bc 21.6659836667452
+7 B controlA gene_qy 19.5635729729058
+8 B controlA gene_qs 19.5231007057247
+9 B controlA gene_dh 19.6831359891326
+10 B controlA gene_hl 18.6584666569296
+11 B controlA gene_by 19.5800217095197
+12 B controlA gene_ev 20.1879641813157
+13 B controlA gene_jr 19.9521189246857
+14 B controlA gene_dq 20.3288273574398
+15 B controlA gene_rz 19.9815814732238
+16 B controlA gene_iv 19.0765841293029
+17 B controlA gene_vx 18.1605432770232
+18 B controlA gene_ai 19.967186142245
+19 B controlA gene_dr 20.4874926294608
+20 B controlA gene_fr 19.593833557746
+21 B controlA gene_gx 20.049364642596
+22 B controlA gene_eg 19.7515398275396
+23 B controlA gene_az 18.7481976699327
+24 B controlA gene_xz 20.7493922258348
+25 B controlA gene_fw 18.5503222908182
+26 B controlB gene_dm 20.8395418431417
+27 B controlB gene_sw 18.2138877101961
+28 B controlB gene_er 18.8059631723498
+29 B controlB gene_jw 19.9486352669284
+30 B controlB gene_il 20.2503679531
+31 B controlB gene_bc 20.5809333713652
+32 B controlB gene_qy 18.2851799980457
+33 B controlB gene_qs 17.4893790714407
+34 B controlB gene_dh 19.3189337414645
+35 B controlB gene_hl 20.8563312435095
+36 B controlB gene_by 18.1636062848498
+37 B controlB gene_ev 20.2699290592588
+38 B controlB gene_jr 21.423326017771
+39 B controlB gene_dq 20.1302577263771
+40 B controlB gene_rz 17.7697142777519
+41 B controlB gene_iv 19.651147534966
+42 B controlB gene_vx 19.5642401478024
+43 B controlB gene_ai 21.818256063377
+44 B controlB gene_dr 21.5444378047811
+45 B controlB gene_fr 20.6072912335256
+46 B controlB gene_gx 18.4612934392979
+47 B controlB gene_eg 20.7298410352993
+48 B controlB gene_az 20.2425873046043
+49 B controlB gene_xz 18.5861762559058
+50 B controlB gene_fw 21.3999377034634
+1 C caseA gene_dm 20.2709739699307
+2 C caseA gene_sw 21.9311873120558
+3 C caseA gene_er 21.7857499006095
+4 C caseA gene_jw 19.3867229940152
+5 C caseA gene_il 18.2064422746961
+6 C caseA gene_bc 19.9712829913985
+7 C caseA gene_qy 22.0094973641946
+8 C caseA gene_qs 21.3584908638776
+9 C caseA gene_dh 18.5648770855196
+10 C caseA gene_hl 20.5172127984268
+11 C caseA gene_by 19.768475517607
+12 C caseA gene_ev 19.6376594496951
+13 C caseA gene_jr 20.2465556480891
+14 C caseA gene_dq 21.2399931102537
+15 C caseA gene_rz 19.9502945644295
+16 C caseA gene_iv 18.6281515515089
+17 C caseA gene_vx 20.0964318640378
+18 C caseA gene_ai 19.1769205655404
+19 C caseA gene_dr 18.2746914243454
+20 C caseA gene_fr 17.828034671374
+21 C caseA gene_gx 20.0441558548604
+22 C caseA gene_eg 20.6043225072735
+23 C caseA gene_az 19.7141040071578
+24 C caseA gene_xz 20.1560057526097
+25 C caseA gene_fw 20.9973523184449
+26 C caseB gene_dm 19.9894160519445
+27 C caseB gene_sw 19.8047755834153
+28 C caseB gene_er 19.9911623405408
+29 C caseB gene_jw 21.004276706077
+30 C caseB gene_il 20.1565758217355
+31 C caseB gene_bc 20.3833034113827
+32 C caseB gene_qy 18.9436613873013
+33 C caseB gene_qs 20.8476615993419
+34 C caseB gene_dh 19.445970681662
+35 C caseB gene_hl 19.5630798425886
+36 C caseB gene_by 20.0961954770471
+37 C caseB gene_ev 17.7290142716347
+38 C caseB gene_jr 19.7100449367721
+39 C caseB gene_dq 20.31907571148
+40 C caseB gene_rz 17.9060859721407
+41 C caseB gene_iv 19.5208712891125
+42 C caseB gene_vx 19.0541298230337
+43 C caseB gene_ai 19.3309166611293
+44 C caseB gene_dr 18.8372600075061
+45 C caseB gene_fr 19.4041778564794
+46 C caseB gene_gx 21.1356631394293
+47 C caseB gene_eg 21.7457837680075
+48 C caseB gene_az 20.046543997699
+49 C caseB gene_xz 19.1233944627407
+50 C caseB gene_fw 19.275130708386
+1 D controlA gene_dm 19.0730513249518
+2 D controlA gene_sw 21.8577356502919
+3 D controlA gene_er 20.2640908713482
+4 D controlA gene_jw 19.9075935513591
+5 D controlA gene_il 19.6704472202351
+6 D controlA gene_bc 18.8694964744147
+7 D controlA gene_qy 19.6399775655525
+8 D controlA gene_qs 19.6218853583455
+9 D controlA gene_dh 19.8053959708005
+10 D controlA gene_hl 21.6689508468287
+11 D controlA gene_by 20.7400957861041
+12 D controlA gene_ev 19.5266225682397
+13 D controlA gene_jr 19.9013263746145
+14 D controlA gene_dq 19.6613812202236
+15 D controlA gene_rz 20.5606599546275
+16 D controlA gene_iv 18.8491614856104
+17 D controlA gene_vx 18.7020438905139
+18 D controlA gene_ai 21.0219929057775
+19 D controlA gene_dr 20.218451635893
+20 D controlA gene_fr 19.8620624606787
+21 D controlA gene_gx 19.4502747875137
+22 D controlA gene_eg 20.2399304370681
+23 D controlA gene_az 20.4297386086333
+24 D controlA gene_xz 20.4757927712348
+25 D controlA gene_fw 19.2812740612491
+26 D controlB gene_dm 19.8217277769028
+27 D controlB gene_sw 20.6187808523916
+28 D controlB gene_er 18.6327899942201
+29 D controlB gene_jw 18.8529201749265
+30 D controlB gene_il 20.5724236293671
+31 D controlB gene_bc 19.2407132755982
+32 D controlB gene_qy 18.336869679848
+33 D controlB gene_qs 18.6467421648343
+34 D controlB gene_dh 21.4314546592365
+35 D controlB gene_hl 20.6617272286417
+36 D controlB gene_by 20.7429802145681
+37 D controlB gene_ev 19.7406038517418
+38 D controlB gene_jr 20.9170778664594
+39 D controlB gene_dq 18.728961936165
+40 D controlB gene_rz 21.2820110142392
+41 D controlB gene_iv 21.2111090998191
+42 D controlB gene_vx 19.9599353887929
+43 D controlB gene_ai 19.2464885799813
+44 D controlB gene_dr 20.4832936051055
+45 D controlB gene_fr 21.2785374125132
+46 D controlB gene_gx 21.6868757078195
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/qpcr -r 114


More information about the Qpcr-commits mailing list