Proteína

Grasiela Bruzamarello Tognon
Walmes Marques Zeviani
Francine Lorena Cuquel


Experimento feito com estacas de B. millefolra tendo como fator experimental o tipo de solução para conservação das estacas (4 níveis mais o controle). Cada tratamento foi aplicado em 10 estacas e as variáveis foram observadas ao longo do tempo após aplicação nessas estacas. O mesmo experimento foi repetido nas 4 estações do ano (1 rodada de cada estação).

##-----------------------------------------------------------------------------
## Definições da sessão.

## Lista de pacotes a serem usados na sessão.
pkg <- c("lattice", "latticeExtra", "gridExtra", "nlme", "survival",
         "doBy", "plyr", "multcomp", "wzRfun")
sapply(pkg, require, character.only=TRUE)
##      lattice latticeExtra    gridExtra         nlme     survival         doBy 
##         TRUE         TRUE         TRUE         TRUE         TRUE         TRUE 
##         plyr     multcomp       wzRfun 
##         TRUE         TRUE         TRUE
sessionInfo()
## R version 3.1.1 (2014-07-10)
## Platform: i686-pc-linux-gnu (32-bit)
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=pt_BR.UTF-8       
##  [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=pt_BR.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=pt_BR.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
## [10] LC_TELEPHONE=C             LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] methods   splines   grid      stats     graphics  grDevices utils     datasets 
## [9] base     
## 
## other attached packages:
##  [1] wzRfun_0.3          multcomp_1.3-7      TH.data_1.0-3       mvtnorm_0.9-9997   
##  [5] plyr_1.8.1          doBy_4.5-11         MASS_7.3-34         survival_2.37-7    
##  [9] nlme_3.1-117        gridExtra_0.9.1     latticeExtra_0.6-26 RColorBrewer_1.0-5 
## [13] lattice_0.20-29     knitr_1.7          
## 
## loaded via a namespace (and not attached):
## [1] evaluate_0.5.5 formatR_1.0    Matrix_1.1-4   Rcpp_0.11.3    sandwich_2.3-0
## [6] stringr_0.6.2  tools_3.1.1    zoo_1.7-10
citation()
## 
## To cite R in publications use:
## 
##   R Core Team (2014). R: A language and environment for statistical computing. R
##   Foundation for Statistical Computing, Vienna, Austria. URL
##   http://www.R-project.org/.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {R: A Language and Environment for Statistical Computing},
##     author = {{R Core Team}},
##     organization = {R Foundation for Statistical Computing},
##     address = {Vienna, Austria},
##     year = {2014},
##     url = {http://www.R-project.org/},
##   }
## 
## We have invested a lot of time and effort in creating R, please cite it when
## using it for data analysis. See also 'citation("pkgname")' for citing R
## packages.
##-----------------------------------------------------------------------------
## Definições gráficas trellis.

## display.brewer.all()
## mycol <- brewer.pal(6, "Set1")
mycol <- c(brewer.pal(6, "Dark2"), brewer.pal(6, "Set1"))

## names(trellis.par.get())
## dput(trellis.par.get())

ps <- list(box.rectangle=list(col=1, fill=c("gray70")),
           box.umbrella=list(col=1, lty=1),
           dot.symbol=list(col=1),
           dot.line=list(col=1, lty=3),
           plot.symbol=list(col=1, cex=0.7),
           plot.line=list(col=1),
           plot.polygon=list(col="gray80"),
           superpose.line=list(col=mycol),
           superpose.symbol=list(col=mycol),
           superpose.polygon=list(col=mycol),
           strip.background=list(col=c("gray90","gray50"))
           )

## show.settings()
## show.settings(ps)

##-----------------------------------------------------------------------------
## Ler.

da <- read.table("proteina.txt", header=TRUE, sep="\t")
## str(da)

da$trat <- factor(da$trat)
levels(da$trat) <- c("Controle",
                     "Ácido cítrico",
                     "Metabissulfito de sódio",
                     "Ácido cítrico e Sacarose",
                     "Metabissulfito de sódio e Sacarose")

## str(da)

da$ue <- with(da, interaction(est, trat, rept, drop=TRUE))
nlevels(da$ue)
## [1] 80

B. millefolha

##-----------------------------------------------------------------------------
## Ver.

db <- droplevels(subset(da, especie=="B. milleflora"))
str(db)
## 'data.frame':    420 obs. of  7 variables:
##  $ especie: Factor w/ 1 level "B. milleflora": 1 1 1 1 1 1 1 1 1 1 ...
##  $ est    : Factor w/ 4 levels "inverno","outono",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ dias   : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ trat   : Factor w/ 5 levels "Controle","Ácido cítrico",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ rept   : int  1 2 3 4 1 2 3 4 1 2 ...
##  $ ua     : num  3.05 2.41 4.06 3.39 2.46 ...
##  $ ue     : Factor w/ 80 levels "inverno.Controle.1",..: 3 23 43 63 7 27 47 67 11 31 ...
db$y <- sqrt(db$ua)
useOuterStrips(
    xyplot(y~dias|trat+est, groups=rept, data=db,
           type=c("p","a")))

plot of chunk unnamed-chunk-3

##-----------------------------------------------------------------------------

## m0 <- lme(y~est*trat*(dias+I(dias^2)), random=~1+dias|ue, data=db,
##           na.action=na.omit, method="ML")

m0 <- lme(y~est*trat*dias, random=~1+dias|ue, data=db,
          na.action=na.omit, method="ML")

##-----------------------------------------------------------------------------
## Diagnóstico.

r <- residuals(m0); f <- fitted(m0); o <- na.omit(m0$data$y)

par(mfrow=c(2,2))
qqnorm(r)
plot(r~f, type="n")
panel.smooth(f, r)
plot(sqrt(abs(r))~f, type="n")
panel.smooth(f, sqrt(abs(r)))
plot(o~f, type="n")
panel.smooth(f, o)

plot of chunk unnamed-chunk-3

layout(1)

##-----------------------------------------------------------------------------
## Medidas de ajuste e efeito.

VarCorr(m0)
## ue = pdLogChol(1 + dias) 
##             Variance     StdDev       Corr  
## (Intercept) 6.929162e-12 2.632330e-06 (Intr)
## dias        3.811442e-12 1.952292e-06 0     
## Residual    3.930117e-02 1.982452e-01
anova(m0)
##               numDF denDF   F-value p-value
## (Intercept)       1   320 18593.603  <.0001
## est               3    60   123.900  <.0001
## trat              4    60    21.588  <.0001
## dias              1   320   211.491  <.0001
## est:trat         12    60     5.658  <.0001
## est:dias          3   320    43.014  <.0001
## trat:dias         4   320     2.166  0.0726
## est:trat:dias    12   320     5.810  <.0001
##-----------------------------------------------------------------------------
## Modelo final.

m1 <- m0
## anova(m1)

##-----------------------------------------------------------------------------
## Representando o resultado.

p0 <- ddply(db, .(est, trat), summarise,
            dias=seq(min(dias)-0.5, max(dias)+0.5, by=0.25))
p0$y <- predict(m0, newdata=p0, level=0)

##-----------------------------------------------------------------------------
## Predição com bandas de confiança.

p1 <- p0
p1$y <- predict(m1, newdata=p1, level=0)

F <- model.matrix(formula(m1), data=p1)
U <- chol(vcov(m1))
se <- sqrt(apply(F%*%t(U), 1, function(x) sum(x^2)))
tval <- qt(p=c(lwr=0.025, fit=0.5, upr=0.975), df=nrow(db)-ncol(F))
me <- outer(se, tval, "*")
p1 <- cbind(p1, sweep(me, 1, p1$y, "+"))
str(p1)
## 'data.frame':    780 obs. of  7 variables:
##  $ est : Factor w/ 4 levels "inverno","outono",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ trat: Factor w/ 5 levels "Controle","Ácido cítrico",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ dias: num  0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 ...
##  $ y   : atomic  1.52 1.53 1.54 1.54 1.55 ...
##   ..- attr(*, "label")= chr "Predicted values"
##  $ lwr : num  1.36 1.37 1.38 1.4 1.41 ...
##  $ fit : num  1.52 1.53 1.54 1.54 1.55 ...
##  $ upr : num  1.68 1.69 1.69 1.69 1.69 ...
col <- trellis.par.get()$superpose.line$col[1:4]

xyplot(y~dias|est, groups=trat, data=db, type="p", auto.key=TRUE)+
    as.layer(xyplot(fit~dias|est, groups=trat, data=p1,
                    type="l", ## col=1,
                    cty="bands", alpha=0.3,
                    ly=p1$lwr, uy=p1$upr,
                    prepanel=prepanel.cbH,
                    panel.groups=panel.cbH,
                    panel=panel.superpose))

plot of chunk unnamed-chunk-3

xyplot(fit~dias|est, groups=trat, data=p1,
       auto.key=list(
           ## corner=c(0.02,0.98),
           points=FALSE, lines=TRUE),
       xlab="Período de observação (dias)",
       ylab="Atividade da Polifenoloxidase (min/mg de proteína)",
       type="l", ## col=1,
       cty="bands", alpha=0.3,
       ly=p1$lwr, uy=p1$upr,
       prepanel=prepanel.cbH,
       panel.groups=panel.cbH,
       panel=panel.superpose)

plot of chunk unnamed-chunk-3

B. tridentata

##-----------------------------------------------------------------------------
## Ver.

db <- droplevels(subset(da, especie=="B. tridentata"))
str(db)
## 'data.frame':    400 obs. of  7 variables:
##  $ especie: Factor w/ 1 level "B. tridentata": 1 1 1 1 1 1 1 1 1 1 ...
##  $ est    : Factor w/ 4 levels "inverno","outono",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ dias   : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ trat   : Factor w/ 5 levels "Controle","Ácido cítrico",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ rept   : int  1 2 3 4 1 2 3 4 1 2 ...
##  $ ua     : num  1.147 1.212 1.089 1.136 0.507 ...
##  $ ue     : Factor w/ 80 levels "inverno.Controle.1",..: 3 23 43 63 7 27 47 67 11 31 ...
db$y <- sqrt(db$ua)
useOuterStrips(
    xyplot(y~dias|trat+est, groups=rept, data=db,
           type=c("p","a")))

plot of chunk unnamed-chunk-4

##-----------------------------------------------------------------------------

## m0 <- lme(y~est*trat*(dias+I(dias^2)), random=~1+dias|ue, data=db,
##           na.action=na.omit, method="ML")

m0 <- lme(y~est*trat*dias, random=~1+dias|ue, data=db,
          na.action=na.omit, method="ML")

##-----------------------------------------------------------------------------
## Diagnóstico.

r <- residuals(m0); f <- fitted(m0); o <- na.omit(m0$data$y)

par(mfrow=c(2,2))
qqnorm(r)
plot(r~f, type="n")
panel.smooth(f, r)
plot(sqrt(abs(r))~f, type="n")
panel.smooth(f, sqrt(abs(r)))
plot(o~f, type="n")
panel.smooth(f, o)

plot of chunk unnamed-chunk-4

layout(1)

##-----------------------------------------------------------------------------
## Medidas de ajuste e efeito.

VarCorr(m0)
## ue = pdLogChol(1 + dias) 
##             Variance     StdDev       Corr  
## (Intercept) 6.624224e-12 2.573757e-06 (Intr)
## dias        8.610672e-14 2.934395e-07 0     
## Residual    3.059528e-02 1.749151e-01
anova(m0)
##               numDF denDF   F-value p-value
## (Intercept)       1   300 13224.492  <.0001
## est               3    60    10.283  <.0001
## trat              4    60    17.298  <.0001
## dias              1   300    61.291  <.0001
## est:trat         12    60    12.639  <.0001
## est:dias          3   300     8.206  <.0001
## trat:dias         4   300     5.666   2e-04
## est:trat:dias    12   300     7.667  <.0001
##-----------------------------------------------------------------------------
## Modelo final.

m1 <- m0
## anova(m1)

##-----------------------------------------------------------------------------
## Representando o resultado.

p0 <- ddply(db, .(est, trat), summarise,
            dias=seq(min(dias)-0.5, max(dias)+0.5, by=0.25))
p0$y <- predict(m0, newdata=p0, level=0)

##-----------------------------------------------------------------------------
## Predição com bandas de confiança.

p1 <- p0
p1$y <- predict(m1, newdata=p1, level=0)

F <- model.matrix(formula(m1), data=p1)
U <- chol(vcov(m1))
se <- sqrt(apply(F%*%t(U), 1, function(x) sum(x^2)))
tval <- qt(p=c(lwr=0.025, fit=0.5, upr=0.975), df=nrow(db)-ncol(F))
me <- outer(se, tval, "*")
p1 <- cbind(p1, sweep(me, 1, p1$y, "+"))
str(p1)
## 'data.frame':    740 obs. of  7 variables:
##  $ est : Factor w/ 4 levels "inverno","outono",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ trat: Factor w/ 5 levels "Controle","Ácido cítrico",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ dias: num  0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 ...
##  $ y   : atomic  1.37 1.36 1.34 1.33 1.32 ...
##   ..- attr(*, "label")= chr "Predicted values"
##  $ lwr : num  1.23 1.23 1.22 1.21 1.2 ...
##  $ fit : num  1.37 1.36 1.34 1.33 1.32 ...
##  $ upr : num  1.5 1.48 1.47 1.45 1.43 ...
col <- trellis.par.get()$superpose.line$col[1:4]

xyplot(y~dias|est, groups=trat, data=db, type="p", auto.key=TRUE)+
    as.layer(xyplot(fit~dias|est, groups=trat, data=p1,
                    type="l", ## col=1,
                    cty="bands", alpha=0.3,
                    ly=p1$lwr, uy=p1$upr,
                    prepanel=prepanel.cbH,
                    panel.groups=panel.cbH,
                    panel=panel.superpose))

plot of chunk unnamed-chunk-4

xyplot(fit~dias|est, groups=trat, data=p1,
       auto.key=list(
           ## corner=c(0.02,0.98),
           points=FALSE, lines=TRUE),
       xlab="Período de observação (dias)",
       ylab="Atividade da Polifenoloxidase (min/mg de proteína)",
       type="l", ## col=1,
       cty="bands", alpha=0.3,
       ly=p1$lwr, uy=p1$upr,
       prepanel=prepanel.cbH,
       panel.groups=panel.cbH,
       panel=panel.superpose)

plot of chunk unnamed-chunk-4