data(thermo)
### Interaction with the 'protein' function
## Thermodynamic properties of proteins
# get the composition of a protein
protein("BPT1_BOVIN")
# retrieve the rownumber of a protein in thermo$protein
iprotein <- protein("LYSC", "CHICK")
# calculate properties and parameters of aqueous protein
protein(iprotein)
# of crystalline protein
protein(iprotein, "cr")
# a call to info() causes the protein properties to
# be appended to thermo$obigt
info("LYSC_CHICK")
# thermodynamic properties can be calculated with subcrt()
subcrt("LYSC_CHICK")
### Table of properties of some proteins
basis("CHNOS+")
species(c("LYSC_CHICK", "CYC_BOVIN", "MYG_HORSE", "RNAS1_BOVIN"))
protein.info()
# the following gives the per-residue composition (i.e. formation
# reaction cofficients) for the ionized proteins
residue.info()
## Protein Data from Online Sources
\dontrun{
## marked dontrun because it requires internet
# this asks to search SWISS-Prot
info("PRND_HUMAN")
# an online search can also be started from the
# "subcrt" function
subcrt("SPRN_HUMAN") }
## Inputting protein compositions
# make a new protein
protein("GGSGG", "PROTEIN_TEST")
# a sequence can be pasted into the command line:
# type this
protein("
# then paste the sequence (this is it)
# and end the command by typing
","PROTEIN_NEW")
# or use whatever name you want (with an underscore).
## Standard molal entropy of a protein reaction
basis("CHNOS")
# here we provide the reaction coefficients of the
# proteins (per protein backbone); 'subcrt' function calculates
# the coefficients of the basis species in the reaction
s <- subcrt(c("CSG_METTL","CSG_METJA"), c(-1/530,1/530),
T=seq(0, 350, length.out=50))
thermo.plot.new(xlim=range(s$out$T), ylim=range(s$out$S),
xlab=axis.label("T"), ylab=axis.label("DS0r"))
lines(s$out$T, s$out$S)
# do it at high pressure as well
s <- subcrt(c("CSG_METTL","CSG_METJA"), c(-1/530,1/530),
T=seq(0,350,length.out=50), P=3000)
lines(s$out$T, s$out$S, lty=2)
# label the plot
title(main=paste("Standard molal entropy\n",
"P = Psat (solid), P = 3000 bar (dashed)"))
s$reaction$coeff <- round(s$reaction$coeff, 3)
d <- describe(s$reaction,
use.name=c(TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE))
text(170, -3, c2s(s2c(d,sep="="),sep="\n"), cex=0.8)
### Metastability calculations
## subcellular homologs of yeast glutaredoxin
## as a function of logfO2 - logaH2O, after Dick, 2009
basis("CHNOS+")
protein <- c("GLRX1","GLRX2","GLRX3","GLRX4","GLRX5")
loc <- c("(C)","(M)","(N)","(N)","(M)")
species(protein,"YEAST")
a <- affinity(H2O=c(-10,0), O2=c(-85,-60))
diagram(a, names=paste(protein,loc))
title(main=paste("Yeast glutaredoxins (black) and residues (blue)\n",
describe(thermo$basis[-c(2,5),])))
# note the difference when we set as.residue=TRUE to
# plot stability fields for the residue equivalents of the
# proteins instead of the proteins themselves ...
# the residue equivalent for one of the larger proteins appears
diagram(a, names=paste(protein,loc), as.residue=TRUE,
add=TRUE, col="blue")
## surface-layer proteins from Methanococcus and others:
## a speciation diagram for surface layer proteins
## as a function of oxygen fugacity after Dick, 2008
# make our protein list
organisms <- c("METSC","METJA","METFE","HALJP","METVO",
"METBU","ACEKI","BACST","BACLI","AERSA")
proteins <- c(rep("CSG",6), rep("SLAP",4))
proteins <- paste(proteins, organisms,sep="_")
# set some graphical parameters
lwd <- c(rep(3,6), rep(1,4))
lty <- c(1:6,1:4)
# load the basis species and proteins
basis("CHNOS+")
species(proteins)
# calculate affinities
a <- affinity(O2=c(-100,-65))
# make diagram
d <- diagram(a,ylim=c(-5,-1), legend.x=NULL, lwd=lwd,
ylab=as.expression(quote(log~italic(a[j]))),yline=1.7)
# label diagram
text(-80,-1.9,"METJA")
text(-74.5,-1.9,"METVO")
text(-69,-1.9,"HALJP")
text(-78,-2.85,"METBU",cex=0.8,srt=-22)
text(-79,-3.15,"ACEKI",cex=0.8,srt=-25)
text(-81,-3.3,"METSC",cex=0.8,srt=-25)
text(-87,-3.1,"METFE",cex=0.8,srt=-17)
text(-79,-4.3,"BACST",cex=0.8)
text(-85.5,-4.7,"AERSA",cex=0.8,srt=38)
text(-87,-4.25,"BACLI",cex=0.8,srt=30)
# add water line
abline(v=-83.1, lty=2)
title(main=paste("Surface-layer proteins",
"After Dick, 2008",sep="\n"))
## relative metastabilities of bovine proteins,
## as a function of temperature along a glutathione redox buffer
mod.buffer("GSH-GSSG",c("GSH","GSSG"), logact=c(-3,-7))
basis(c("CO2","H2O","NH4+","SO4-2","H2","H+"),
c(-1,0,-4,-4,"GSH-GSSG",-7))
basis("CO2","gas")
prot <- c("CYC","RNAS1","BPT1","ALBU","INS","PRIO")
species(prot,"BOVIN")
a <- affinity(T=c(0,200))
d <- diagram(a, as.residue=TRUE, ylim=c(-2,0.5))
# add some text labels
text(40,data.frame(d$logact)[25,],prot)
title(main="Relative stabilities of bovine proteins on glutathione buffer")
## relative metastabilities of plasma proteins,
## using chemical activities of H2 and O2
# clean up basis species, species from previous example
data(thermo)
basis(c("CO2","NH3","H2S","H2","O2","H+"))
basis("O2","aq")
basis(c("CO2","NH3","H2S","H+"),c(-3,-3,-10,-7))
f <- system.file("extdata/abundance/AA03.csv", package="CHNOSZ")
pdata <- read.csv(f, as.is=TRUE)
notna <- !is.na(pdata$name)
pname <- pdata$name[notna]
# take out insulin C peptide to show more proteins
pname <- pname[!pname %in% "INS.C"]
species(pname,"HUMAN")
a <- affinity(H2=c(-20,0), O2=c(-80,-60))
diagram(a)
title(main="Human Plasma Proteins")
# note that the darker colors go with higher abundances
# as reported by Anderson and Anderson, 2003
# add lines showing equilibrium activity of H2O
species(delete=TRUE)
species("H2O")
logaH2 <- seq(-20,0,length.out=128)
for(logaH2O in c(-5,0,5)) {
species("H2O",logaH2O)
a <- affinity(H2=logaH2)
logaO2 <- diagram(a,what="O2",do.plot=FALSE)$logact[[1]]
lines(logaH2,logaO2,lty=2)
itext <- 72 + 5 * logaH2O
lab <- paste("logaH2O =",logaH2O)
text(logaH2[itext]+0.4,logaO2[itext],lab,srt=-64)
}
Run the code above in your browser using DataLab