Cloning: Cloning virus in plant sap

Description Usage Format Source References Examples

Description

A plant scientist measured the concentration of a particular virus in plant sap using ELISA (enzyme-linked immunosorbent assay) (Novy 1992). The study included 13 potato clones (plants reproduced asexually), with 2 commercial cultivars, 5 somatic hybrids, 5 progeny of the somatic hybrids, and one clone of Solanum etuberosum (a species related to potato). Of the 5 progeny of the somatic hybrids, two were classified as susceptible and three as resistant to the virus. The scientist wants to understand the resistance to the virus among these 13 clones. Plant sap was taken from 5 inoculated plants of each clone, for a total of 65 measurements of titer. Unfortunately, one measurement was lost during processing of the samples. Figure <A HREF="clondat.s">clondat.s</A> shows the raw data by clone. The (a) figure, ordered by clone identifier, indicates considerable range in center and spread but is otherwise not very informative. The (b) figure orders by clone mean, jittered to mitigate overlap, using a separate plot symbol for each clone. The dashed identity line helps track the spread around the mean. This latter plot suggests there is less spread in titer for clones at the extremes than for those in the middle of the range.

Usage

1
2

Format

Cloning data frame with 64 observations on 5 variables.

[,1] clone factor clone identifier
[,2] reps factor replication number
[,3] titer numeric concentration of virus
[,4] code factor plot code
[,5] type factor cell type

ClonCrit data frame with 20 observations on 6 variables.

[,1] set factor all data or balanced
[,2] means numeric number of means
[,3] SNK numeric Student-Neuman-Kuels
[,4] DUNCAN numeric Duncan's Multiple Range
[,5] REGWQ numeric REGWQ
[,6] REGWF numeric REGWFtype

Source

Professor Richard G Novy (mailto:novy@prairie.nodak.edu), Plant Sciences Department, ND St U

References

Novy RG (1992) “Characterization of somatic hybrids between Solanum etuberosum and diploid, tuber-bearing Solanums. PhD Dissertation, Department of Plant Pathology, UW-Madison. 123 pp.

Examples

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
data( Cloning )

Cloning <- Cloning[ !is.na(Cloning$titer), ]
Cloning$clone <- factor(Cloning$code)

# ANOVA table
Cloning.fit <- aov( titer ~ clone, Cloning )
summary( Cloning.fit )

# estimate means
attach( Cloning )
Cloning.means <- data.frame( clone=levels(code),
   pred=c( tapply( titer, code, mean )))
Cloning.means$sd <- c( tapply( titer, code,
   function( x ){ sqrt( var( x ) ) } ))
Cloning.means$n <- c( tapply( titer, code, length ))
Cloning.means$se <- Cloning.means$sd /
   sqrt( Cloning.means$n )
Cloning.means$type <- type[ !duplicated( code ) ]
detach( )

# or try the PDA routine:
Cloning.lsm <- lsmean( Cloning.fit )

# estimate common SD
std.dev( Cloning.fit )

# preselected contrasts
aov(titer ~ clone, Cloning, 
   subset = is.na( match( Cloning$type, c("cult","etb","odd") )))

# critical values for multiple comparisons (from SAS output)
Cloning.crit <- data.frame( all=c(306,555,737,530,278),
   bal=c(254,435,527,414,232),
   row.names=c("LSD","BON","SCHEFFE","HSD","WALLER") )
for (i in names(Cloning.crit))
   names(Cloning.crit[[i]]) <- row.names(Cloning.crit)

# critical values for multi-stage testing (MST) multiple comparisons
data( ClonCrit )
Cloning.tmp <- ClonCrit$set
ClonCrit$set <- NULL
ClonCrit <- split(ClonCrit,Cloning.tmp)
rm(Cloning.tmp)

# Figure B:4.3 Cloning Data by Group
print(stripplot(titer ~ clone, Cloning, jitter = TRUE,
  panel = function(x,y,...) {
    panel.abline(v=unclass(x),lty=3,col="grey")
    panel.stripplot(x,y,...)
  },
  xlab="(a) clone identifier",ylab="titer",
  main = "Figure B:4.3" ),
  more = TRUE, split = c(1,1,2,1))

Cloning$pred <- jitter( predict( Cloning.fit))
print( xyplot( titer ~ pred, Cloning, groups = code,
  type = "p", cex = 1, pch = levels( Cloning$code ),
  panel = function(x,y,...) {
    panel.superpose(x,y,...)
    panel.abline( 0, 1, lty = 2 )
  },
  xlab="(b) clone mean",ylab="titer",
  main = "Cloning Data by Group" ),
  split = c(2,1,2,1))

# Figure B:4.4 Plot of Clone Mean vs SD
print( xyplot( sd ~ pred, Cloning.means, groups = clone,
  type = "p", pch = levels( Cloning.means$clone ), cex = 2,
  xlab="(a) mean by clone identifier", ylab="clone SD",
  main = "Figure B:4.4" ),
  more = TRUE, split = c(1,1,2,1))
print( xyplot( sd ~ pred, Cloning.means, groups = type,
  type = "p", pch = levels( Cloning.means$type ), cex = 2,
  xlab="(b) mean by type", ylab="clone SD",
  main = "Clone Mean vs SD" ),
  split = c(2,1,2,1))

# Figure B:4.7 95% Critical Values by Groups
ci.plot( Cloning.fit, lsm = Cloning.lsm,
  rdf=df.resid( Cloning.fit), sort=TRUE, ylim = c(-150,2000),
  xlab = "", ylab = "(a) with common S",
  main = "Figure B:4.7",
  panelf = function(...) {
    panel.abline( h = 0, lty = 2 )
  },
  more = TRUE, split = c(1,1,2,1) )

ci.plot( Cloning.fit, lsm = Cloning.means,
  rdf = Cloning.means$n-1, sort=TRUE, ylim = c(-150,2000),
  xlab = "", ylab = "(b) with group SDs",
  main = "Cloning 95 % CIs",
  panelf = function(...) {
    panel.abline( h = 0, lty = 2 )
  },
  split = c(2,1,2,1) )

# Figure B:6.2 Cloning Unbalanced Multiple Comparisons
# critical values for Cloning data with all 13 groups
Cloning.x <- c( 2, max( ClonCrit$all$means ))
Cloning.y <- range( unlist( c( Cloning.crit$all,
   ClonCrit$all[,-1] )))
Cloning.tmp <- round( mean( Cloning.x ) )
Cloning.zaxis <- seq( 1.5, 5, .5 )
Cloning.z <- Cloning.zaxis * sqrt(2/5)*239

plot( Cloning.x, Cloning.y, type="n",
   xlab="(a) based on F test", ylab="" )
title( "Figure B:6.2(a) Unbalanced Comparisons" )
axis( 4, Cloning.z,
   labels = as.character( Cloning.zaxis ))
for ( i in c("LSD","BON","SCHEFFE","WALLER") ) {
	abline( Cloning.crit[i,"all"], 0, lty=2 )
	text( Cloning.tmp, Cloning.crit[i,"all"], i )
}
for ( i in c("REGWF") ) {
	lines( ClonCrit$all$means, ClonCrit$all[[i]] )
	text( Cloning.tmp, ClonCrit$all[[i]][Cloning.tmp], i )
}

plot( Cloning.x, Cloning.y, type="n",
   xlab = "(b) based on range", ylab = "critical value" )
title( "Figure B:6.2(b) Unbalanced Comparisons" )
axis( 4, Cloning.z, labels = as.character( Cloning.zaxis ))

Cloning.p <- NULL
for ( i in c("LSD","HSD") )
	Cloning.p[i] <- Cloning.crit[i,"all"]
for ( i in c("REGWQ","SNK","DUNCAN") )
	Cloning.p[i] <- ClonCrit$all[[i]][Cloning.tmp]
Cloning.p["SNK"] <- Cloning.p["SNK"] - 25
Cloning.p["HSD"] <- Cloning.p["HSD"] + 25
for ( i in c("LSD","HSD")) {
	abline( Cloning.crit[i,"all"], 0, lty=2 )
	text( Cloning.tmp, Cloning.p[i], i )
}
for ( i in c("REGWQ","SNK","DUNCAN") ) {
	lines( ClonCrit$all$means, ClonCrit$all[[i]] )
	text( Cloning.tmp, Cloning.p[i], i )
}
rm( Cloning.tmp, Cloning.x, Cloning.y, Cloning.p, Cloning.z )

# Figure B: Critical Values for Comparison of 9 Clones
# critical values for Cloning data with 9 groups
Cloning.x <- c( 2, max( ClonCrit$bal$means) )
Cloning.y <- range( unlist( c( Cloning.crit$bal,
   ClonCrit$bal[,-1] ) ) )
Cloning.tmp <- round( mean( Cloning.x ) )
Cloning.z <- Cloning.zaxis * sqrt( 2 / 4.91) * 198

plot( Cloning.x, Cloning.y, type="n",
   xlab="(a) based on F test", ylab="" )
title( "Figure B:6.3(a) Balanced Comparisons" )
axis(4, Cloning.z, lab = as.character( Cloning.zaxis ) )
for ( i in c("LSD","BON","SCHEFFE","WALLER") ) {
	abline( Cloning.crit[i,"bal"], 0, lty=2 )
	text( Cloning.tmp, Cloning.crit[i,"bal"], i )
}
for ( i in c("REGWF") ) {
	lines( ClonCrit$bal$means, ClonCrit$bal[[i]] )
	text( Cloning.tmp, ClonCrit$bal[[i]][Cloning.tmp], i )
}

plot( Cloning.x, Cloning.y, type="n",
   xlab="(b) based on range", ylab="critical value" )
title( "Figure B:6.3(b) Balanced Comparisons" )
axis(4, Cloning.z, labels = as.character( Cloning.zaxis ))
Cloning.p <- NULL
for ( i in c("LSD","HSD") )
	Cloning.p[i] <- Cloning.crit$bal[i]
for ( i in c("REGWQ","SNK","DUNCAN") )
	Cloning.p[i] <- ClonCrit$bal[[i]][Cloning.tmp]
Cloning.p["SNK"] <- Cloning.p["SNK"] - 25
Cloning.p["HSD"] <- Cloning.p["HSD"] + 25
for ( i in c("LSD","HSD") ) {
	abline( Cloning.crit[i,"bal"], 0, lty=2 )
	text( Cloning.tmp, Cloning.p[i], i )
}
for ( i in c("REGWQ","SNK","DUNCAN") ) {
	lines( ClonCrit$bal$means, ClonCrit$bal[[i]] )
	text( Cloning.tmp, Cloning.p[i], i )
}
rm( Cloning.tmp, Cloning.x, Cloning.y, Cloning.p, Cloning.z,
   Cloning.zaxis )

# Figure B:6.4 Critical Value by Number of Groups

Cloning.groups <- 2:20
Cloning.alpha <- .05

plot( range(Cloning.groups), c(1,6), type="n",
	xlab="number of groups", ylab="critical value" )
title( "Figure B:6.4 Critical Value by Number of Groups" )
axis(1,c(2,13))
# SCHEFFE
lines( Cloning.groups, sqrt( qchisq( 1 - Cloning.alpha,
   Cloning.groups - 1 ) ), lty=2 )
text( 13, 5, "SCHEFFE" )
# TUKEY's HSD
lines( Cloning.groups,
   c(2.77,3.32,3.63,3.86,4.03,4.17,4.29,4.39,4.47,4.55,4.62,
   4.68,4.74,4.8,4.84,4.89,4.93,4.97,5.01) / sqrt(2), lty=3 )
text( 13, 3, "HSD" )
# BON
Cloning.comp <- Cloning.groups * ( Cloning.groups - 1 )
lines( Cloning.groups,
   qnorm( 1 - Cloning.alpha / Cloning.comp ) )
text( 13, 3.8, "BONFERRONI" )
# LSD
lines( c(2,20), rep( qnorm( 1 - Cloning.alpha / 2), 2 ) )
text( 13, 1.6, "LSD" )

rm( Cloning.alpha, Cloning.groups, Cloning.comp )

# Figure B:6.5 Bonferroni Comparisons to Match Scheffe' Method

Cloning.groups <- 2:20
Cloning.alpha <- .05

# equivalent comparisons between B and S
Cloning.a <- log( Cloning.alpha / ( 2 * ( 1 - pnorm( sqrt(
   qchisq( .95, Cloning.groups - 1 ))))))
plot(Cloning.groups, Cloning.a, type="l", yaxt="n",
	xlab="number of groups", ylab="comparisons" )
title( "Figure B:6.5 Match of Bonferroni to Scheffe" )
axis( 1, c(2,13) )
axis( 2, log( c(1,10,78,1000,10000,100000,1000000) ),
	c("1","10","78","1000","10^4","10^5","10^6"), adj=1 )
axis( 2, log(100), FALSE )
lines( c(13,13), c(0,Cloning.a[12]), lty=2 )
lines( c(2,13), rep(log(78),2), lty=2 )

rm( Cloning.groups, Cloning.alpha, Cloning.a )

byandell/pda documentation built on May 13, 2019, 9:27 a.m.