TK1                  package:ccems                  R Documentation

_T_h_y_m_i_d_i_n_e _K_i_n_a_s_e _1 _D_a_t_a

_D_e_s_c_r_i_p_t_i_o_n:

     Human thymidine kinase 1 (i.e. cytosolic) data.

_U_s_a_g_e:

     data(TK1)

_F_o_r_m_a_t:

     A data frame with the following columns.

     '_E' The total concentration of TK1 enzyme. 

     '_S' The total concentration of dT (the nucleoside substrate).

     '_X' The total concentration of ATP.

     '_v' The velocity of the kinase reaction.

     '_f_g' The figure number in the original paper.

     '_y_e_a_r' The year of the original paper.

     '_j_r_n_l' The journal of the data source:  'PEP' is Protein
          Expression and Purification,  'EJB' is  European Journal of
          Biochemistry,  'BBRC' is Biochem Biophys Res Commun,  'JBC'
          is Journal of Biological Chemistry.

     '_v_o_l' The volume number of the article.

     '_p_a_g_e' The page number of the article.

     '_f_r_s_t_A_u_t' The first author of the article. This is a factor.  

     '_i_n_d_e_x' The articles indexed as 1 through 5.  

_D_e_t_a_i_l_s:

     All concentrations are in micromolar.

_S_o_u_r_c_e:

     The figure number, year, first author, journal, volume and page
     number are all included in the dataframe.

_E_x_a_m_p_l_e_s:

     ## Note that two windows devices will end up exactly on top of each other. 
     ## Please move device 3 below device 2 to compare their residual plots. 
     library(ccems)
     ## Warning: the next line clears all existing figures!!
     if (!is.null(dev.list())) for (i in 2:max(dev.list())) dev.off(i);
     if (.Platform$OS.type=="windows") 
      windows(width = 9, height = 4,restoreConsole = TRUE) else X11(width=9,height=4)
     par(mfcol=c(2,5))
     for (i in 1:5) {
     d=subset(TK1,index==i,select=c(E,S,v,frstAut,year))
     ## for Birringer, 30 uL vessel and 306 pmoles/L= .000306 pmoles/uL 
     ##   and thus .000306*30= .00918 pmoles/30 uL, i.e. 
     if (i==1) d=transform(d,v=v/(60*.00918))# v now in pmoles/sec/pmole = 1/sec
     if (i>1) d=transform(d,v=v/(.04*60))# v now in umole/s/umole = 1/sec
     plot(d$S,d$v,xlab="Total [dT]",log="xy", ylab="reaction velocity (1/sec)", 
              main=paste(d[1,"frstAut"],d[1,"year"]))
     ## Note that the specific activity is ~16 fold higher in non-Birringer data
     ## In the Hill fits V is the rate at which enzyme bound substrate becomes product  
     hillda<-nls(v~V*alpha*S^h/(1+alpha*S^h),d,start=list(V=5,alpha=1,h=1))
     print(hillda)
     ## print(summary(hillda))
     S50=1/(hillda$m$getPars()["alpha"]^(1/hillda$m$getPars()["h"]))
     print(S50)
     lgx=log(d$S)
     upr=range(lgx)[2]
     lwr=range(lgx)[1]
     del=(upr-lwr)/50
     fineX=exp(seq(lwr,upr,by=del))
     lines(fineX,predict(hillda,list(S=fineX)),col="blue",lwd=1)
     plot(hillda$m$fitted(),hillda$m$resid(),xlab="fitted value",
                                             ylab="residual",main="Hill")
     ## Note that variance increases with the mean in non-Birringer data
     ## and that the 2000 and 1993 Hill fits are poor at low v (and [S])
     }

     if (.Platform$OS.type=="windows")  # now create a window for ccems fits 
      windows(width = 9, height = 4,restoreConsole = TRUE) else X11(width=9,height=4)
     library(ccems)
     topology <- list(  
         heads=c("E1S0"), # E1S0 = substrate free E
         sites=list(                    
             c=list(    # c for catalytic site  
                 t=c("E1S1","E1S2","E1S3","E1S4")   
             ) # t for tetramer 
         )
     )   # in transform below, TK1 is 25kDa => 25mg/umole
     g <-mkg(topology, activity=TRUE,TCC=FALSE)

     getKk <- function(x) {t(x$report[c(paste("E1S",0:3,"_S",sep=""),
                                      paste("kE1S",1:4,sep="")),"final",drop=FALSE])}
     getAIC <- function(x) { x$report["AIC","final"]}
     getSSE <- function(x) { x$report["SSE","final"]}

     outs=list(NULL)
     par(mfcol=c(2,5))
     for (i in 1:5) {
     d=subset(TK1,index==i,select=c(E,S,v,frstAut,year))
     if (i==1) d=transform(d,E=E/4,v=E*v/(60*.00918))# v now in uM/sec
     if (i>1) d=transform(d,E=E/4,v=E*v/(.04*60))# v now in uM/sec
     plot(d$S,d$v,xlab="Total [dT]",log="xy", ylab="reaction velocity (1/sec)", 
              main=paste(d[1,"frstAut"],d[1,"year"]))
     names(d)[1:2]= c("ET","ST")
     tops=ems(d,g,maxTotalPs=3,doSpurs=FALSE)# takes ~15 sec for each dataset
     lgx=log(d$ST)
     upr=range(lgx)[2]
     lwr=range(lgx)[1]
     del=(upr-lwr)/50
     fineX=exp(seq(lwr,upr,by=del))
     predict <- data.frame(ET = rep(d$ET[1],length(fineX)), ST = fineX)
     df <- simulateData(tops[[1]],predict=predict,typeYP="v")$predict  
     lines(df$ST,df$EY) 
     Kk=lapply(tops,getKk)
     nms=names(Kk)
     rowList=data.frame(NULL)
     for (j in nms) {
         rowList=rbind(rowList,Kk[[j]])
       }
     rownames(rowList)<-nms
     aic=sapply(tops,getAIC)
     sse=sapply(tops,getSSE)
     eDelAIC=exp(-(aic-min(aic)))
     wgts=eDelAIC/sum(eDelAIC)
     print(sum(wgts))
     df=data.frame(aic,sse,wgts,rowList)
     M=as.matrix(rowList)
     ma=exp(wgts%*%log(M)) # average in space of gibbs free energy changes
     dataID=paste(d[1,"frstAut"],d[1,"year"],sep="")
     outs[[dataID]]$df=df
     outs[[dataID]]$ma=ma
     plot(tops[[1]]$d$EY,tops[[1]]$res,xlab="fitted value",
                                ylab="residual",main=tops[[1]]$mid)
     ## Note that the 2000 and 1993 fits are now improved 
     }
     outs=outs[-1] # remove leading NULL
     print(outs)   # compare model averages across datasets
     par(mfrow=c(1,1))

