[CHNOSZ-commits] r131 - in pkg/CHNOSZ: . R demo inst man vignettes

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sun Feb 5 08:30:25 CET 2017


Author: jedick
Date: 2017-02-05 08:30:22 +0100 (Sun, 05 Feb 2017)
New Revision: 131

Modified:
   pkg/CHNOSZ/DESCRIPTION
   pkg/CHNOSZ/R/buffer.R
   pkg/CHNOSZ/R/diagram.R
   pkg/CHNOSZ/R/util.plot.R
   pkg/CHNOSZ/demo/buffer.R
   pkg/CHNOSZ/demo/protbuff.R
   pkg/CHNOSZ/inst/NEWS
   pkg/CHNOSZ/man/affinity.Rd
   pkg/CHNOSZ/man/diagram.Rd
   pkg/CHNOSZ/man/util.plot.Rd
   pkg/CHNOSZ/vignettes/anintro.Rmd
   pkg/CHNOSZ/vignettes/vig.bib
Log:
anintro.Rmd: add transects


Modified: pkg/CHNOSZ/DESCRIPTION
===================================================================
--- pkg/CHNOSZ/DESCRIPTION	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/DESCRIPTION	2017-02-05 07:30:22 UTC (rev 131)
@@ -1,6 +1,6 @@
 Date: 2017-02-05
 Package: CHNOSZ
-Version: 1.0.8-20
+Version: 1.0.8-21
 Title: Chemical Thermodynamics and Activity Diagrams
 Author: Jeffrey Dick
 Maintainer: Jeffrey Dick <j3ffdick at gmail.com>

Modified: pkg/CHNOSZ/R/buffer.R
===================================================================
--- pkg/CHNOSZ/R/buffer.R	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/R/buffer.R	2017-02-05 07:30:22 UTC (rev 131)
@@ -23,7 +23,7 @@
         thermo$buffers <- thermo$buffers[-imod,]
         assign("thermo", thermo, "CHNOSZ")
         message(paste('mod.buffer: removed ',c2s(species),' in ',
-          c2s(unique(name)),' buffer.',sep=''))
+          c2s(unique(name)),' buffer',sep=''))
       } else {
         if(missing(state)) state <- thermo$buffers$state[imod]
         if(missing(logact)) logact <- thermo$buffers$logact[imod]
@@ -36,10 +36,10 @@
         assign("thermo", thermo, "CHNOSZ")
         if(identical(state.old,state) & identical(logact.old,logact)) {
           message(paste('mod.buffer: nothing changed for ',
-            c2s(species),' in ',c2s(unique(name)),' buffer.',sep=''))
+            c2s(species),' in ',c2s(unique(name)),' buffer',sep=''))
         } else {
           message(paste('mod.buffer: changed state and/or logact of ',
-            c2s(species),' in ',c2s(unique(name)),' buffer.',sep=''))
+            c2s(species),' in ',c2s(unique(name)),' buffer',sep=''))
         }
       }
     } else {
@@ -51,7 +51,7 @@
     t <- data.frame(name=name,species=species,state=state,logact=logact)
     thermo$buffers <- rbind(thermo$buffers,t)
     assign("thermo", thermo, "CHNOSZ")
-    message(paste('mod.buffer: added ',c2s(unique(name)),'.',sep=''))
+    message(paste('mod.buffer: added',c2s(unique(name))))
   }
   return(invisible(thermo$buffers[thermo$buffers$name %in% name,]))
 }

Modified: pkg/CHNOSZ/R/diagram.R
===================================================================
--- pkg/CHNOSZ/R/diagram.R	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/R/diagram.R	2017-02-05 07:30:22 UTC (rev 131)
@@ -20,7 +20,7 @@
   # line styles
   lty=NULL, lwd=par("lwd"), dotted=NULL, 
   # colors
-  bg=par("bg"), col=par("col"), col.names=par("col"), fill=NULL, 
+  col=par("col"), col.names=par("col"), fill=NULL, 
   # labels
   names=NULL, main=NULL, legend.x="topright", format.names=TRUE,
   # plotting controls
@@ -254,7 +254,7 @@
             if(xvalues[imax] < xlim[1] + 0.2*diff(xlim)) adj <- 0
             text(xvalues[imax], plotvals[[i]][imax], labels=names[i], adj=adj)
           }
-        } else legend(x=legend.x, lty=lty, legend=names, col=col, bg=bg, cex=cex.names, lwd=lwd)
+        } else legend(x=legend.x, lty=lty, legend=names, col=col, cex=cex.names, lwd=lwd, ...)
       }
       # add a title
       if(!is.null(main)) title(main=main)

Modified: pkg/CHNOSZ/R/util.plot.R
===================================================================
--- pkg/CHNOSZ/R/util.plot.R	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/R/util.plot.R	2017-02-05 07:30:22 UTC (rev 131)
@@ -3,7 +3,7 @@
 
 thermo.plot.new <- function(xlim,ylim,xlab,ylab,cex=par('cex'),mar=NULL,lwd=par('lwd'),side=c(1,2,3,4),
   mgp=c(1.5,0.3,0),cex.axis=par('cex'),col=par('col'),yline=NULL,axs='i',do.box=TRUE,ticks=NULL,
-  las=1,xline=NULL) {
+  las=1,xline=NULL, ...) {
   # start a new plot with some customized settings
   thermo <- get("thermo")
   # 20120523 store the old par in thermo$opar
@@ -17,7 +17,7 @@
   # 20090324 mar handling: NULL - a default setting; NA - par's setting
   # 20090413 changed mar of top side from 2 to 2.5
   if(is.null(mar)) mar <- c(3,3.5,2.5,1) else if(is.na(mar[1])) mar <- par('mar')
-  par(mar=mar,mgp=mgp,tcl=0.3,las=las,xaxs=axs,yaxs=axs,cex=cex,lwd=lwd,col=col,fg=col)
+  par(mar=mar,mgp=mgp,tcl=0.3,las=las,xaxs=axs,yaxs=axs,cex=cex,lwd=lwd,col=col,fg=col, ...)
   plot.new()
   plot.window(xlim=xlim,ylim=ylim)
   if(do.box) box()

Modified: pkg/CHNOSZ/demo/buffer.R
===================================================================
--- pkg/CHNOSZ/demo/buffer.R	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/demo/buffer.R	2017-02-05 07:30:22 UTC (rev 131)
@@ -12,7 +12,7 @@
 bufferline <- function(buffer, ixlab) {
   basis("H2", buffer)
   a <- affinity(T=xlim, P=300, return.buffer=TRUE, exceed.Ttr=TRUE)
-  lines(a$vals[[1]], a$H2, col="red", lwd=2)
+  lines(a$vals[[1]], a$H2, col=3, lwd=2)
   text(a$vals[[1]][ixlab], a$H2[ixlab], buffer)
 }
 bufferline("FeFeO", 20)
@@ -29,4 +29,4 @@
 }
 # add legend
 legend("topright", legend = c(describe.property("P", 300), describe.basis(ibasis=c(2,4)),
-  "minerals", "formaldehyde", "HCN"), lty=c(NA, NA, NA, 1, 3, 2), col=c(NA, NA, NA, 2, 1, 1), bg="white")
+  "minerals", "formaldehyde", "HCN"), lty=c(NA, NA, NA, 1, 3, 2), col=c(NA, NA, NA, 3, 1, 1), bg="white")

Modified: pkg/CHNOSZ/demo/protbuff.R
===================================================================
--- pkg/CHNOSZ/demo/protbuff.R	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/demo/protbuff.R	2017-02-05 07:30:22 UTC (rev 131)
@@ -13,7 +13,7 @@
 basis(c("CO2", "H2O", "NH3", "O2"), as.numeric(a[1:4]))
 a <- affinity(pH=c(4, 10, 300), T=c(40, 60, 300))
 e <- equilibrate(a, normalize=TRUE)
-diagram(e, fill=NULL)
+diagram(e, fill=NULL, format.names=FALSE)
 title(main="Thiol peroxidases from bacteria")
 legend("topleft", describe.basis(thermo$basis[-6,]))
 
@@ -34,7 +34,7 @@
 basis(c("CO2", "NH3", "H2S", "O2"), as.numeric(logact))
 species(paste(proteins, "ECOLI", sep="_"))
 a <- affinity(pH=c(5, 10), T=c(10, 40))
-diagram(a, normalize=FALSE, fill="heat")
+diagram(a, normalize=FALSE, fill="heat", format.names=FALSE)
 title(main="Relative stabilities of sigma factors in E. coli")
 ptext <- c(describe.property("T", 25), 
   describe.basis(ibasis=c(2, 6), oneline=TRUE))

Modified: pkg/CHNOSZ/inst/NEWS
===================================================================
--- pkg/CHNOSZ/inst/NEWS	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/inst/NEWS	2017-02-05 07:30:22 UTC (rev 131)
@@ -1,4 +1,4 @@
-CHANGES IN CHNOSZ 1.0.8-20 (2017-02-05)
+CHANGES IN CHNOSZ 1.0.8-21 (2017-02-05)
 ---------------------------------------
 
 - Add "AA" as a keyword for preset species in basis() (cysteine,
@@ -45,6 +45,8 @@
 - diagram() applies formatting (subscripts and superscripts) to names
   that parse as chemical formulas; use `format.names` to disable.
 
+- Add '...' argument to thermo.plot.new() (extra arguments for par()).
+
 CHANGES IN CHNOSZ 1.0.8 (2016-05-28)
 ------------------------------------
 

Modified: pkg/CHNOSZ/man/affinity.Rd
===================================================================
--- pkg/CHNOSZ/man/affinity.Rd	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/man/affinity.Rd	2017-02-05 07:30:22 UTC (rev 131)
@@ -51,8 +51,7 @@
 \code{iprotein} contains indices of desired proteins in \code{\link{thermo}$protein}; \code{affinity} adds to the species list the amino acid residues and and terminal H2O group (indicated by \dQuote{RESIDUE} in \code{thermo$protein}) then calculates the properties of the reactions for the residues and terminal group, including ionization effects, and adds them together to get those of the indicated proteins.
 
 In CHNOSZ version 0.9, \code{energy} gained a new argument \samp{transect} which is set to TRUE by \code{energy.args} when the length(s) of the variables is(are) greater than three.
-In this mode of operation, instead of performing the calculations on an \eqn{n}{n}-dimensional grid, the affinities are calculated on an \eqn{n}{n}-dimensional transect through chemical potential (possibly including T and/or P) space. 
-
+In this mode of operation, instead of performing the calculations on an \eqn{n}{n}-dimensional grid, the affinities are calculated on a transect of changing T, P, and/or chemical activity of basis species.
 }
 
 \value{
@@ -72,25 +71,28 @@
 \examples{
 \dontshow{data(thermo)}## set up a system and calculate
 ## chemical affinities of formation reactions
-basis(c("SiO2","MgO","H2O","O2"),c(-5,-5,0,999))
+basis(c("SiO2", "MgO", "H2O", "O2"), c(-5, -5, 0, 999))
 species(c("quartz","enstatite","forsterite"))
 # chemical affinities (A/2.303RT) at 25 deg C and 1 bar
 affinity()
 # at higher temperature and pressure
-affinity(T=500,P=2000)
+affinity(T=500, P=2000)
 # ten different temperatures at one pressure
-affinity(T=c(500,1000,10),P=2000)
+affinity(T=c(500, 1000, 10), P=2000)
 # at 25 temperatures and pressures
-affinity(T=c(500,1000,5),P=c(1000,5000,5))
+affinity(T=c(500, 1000, 5), P=c(1000, 5000, 5))
 # as a function of logarithm of activity of MgO
-affinity(MgO=c(-10,-5,10))
-## equilibrium constants of formation reactions
+affinity(MgO=c(-10, -5, 10))
+# equilibrium constants of formation reactions
 affinity(property="logK")
-# Standard molal Gibbs energies of species,
+# standard molal Gibbs energies of species,
 # user units (default: cal/mol)
 affinity(property="G.species")
-# Standard molal Gibbs energies of reactions
+# standard molal Gibbs energies of reactions
 affinity(property="G")
+# a T,P-transect
+# (fluid pressure from Helgeson et al., 2009 Fig. 7)
+affinity(T=c(25, 110, 115, 215), P=c(11, 335, 500, 1450))
 
 ## affinities of metabolic reactions
 ## after Amend and Shock, 2001, Fig. 7
@@ -180,37 +182,6 @@
 # reset units and species to run next examples
 E.units("cal")
 species(delete=TRUE)
-
-## calculations along a transect: methanogenesis and biosynthetic 
-## reactions in hydrothermal systems, after Shock and Canovas, 2010
-# this file has their mixing path results for Rainbow hydrothermal field
-file <- system.file("extdata/cpetc/SC10_Rainbow.csv", package="CHNOSZ")
-rb <- read.csv(file, check.names=FALSE)
-# write all synthesis reactions in terms of these basis species
-# it's okay not to set the activities of the basis species now
-# because they'll be changing along with temperature
-basis(c("CO2", "H2", "NH4+", "H2O", "H2S", "H+"))
-# now a selection of the species from SC10, with activities equal to 1e-6
-species(c("CH4", "formaldehyde", "ethylene", "glycolic acid", 
-  "n-nonanoic acid", "leucine", "aspartic acid", "tryptophan", "deoxyribose", 
-  "adenine", "cytosine"), -6)
-# the exception is methane; unlike SC10 we use a constant activity 1e-3
-# (accounting for variable activities of the species of interest here 
-# is possible but would require longer code ....)
-species("CH4", -3)
-# synchronized change of temperature and five basis activities
-a <- affinity(T=rb$T, CO2=rb$CO2, H2=rb$H2, `NH4+`=rb$`NH4+`, H2S=rb$H2S, pH=rb$pH)
-# the tricky part: affinity() uses dimensionless values (A/2.303RT)
-# but we want to show the values in cal/mol
-a$values <- lapply(a$values, function(val) {
-  -convert(val, "G", T=convert(a$vals[[1]], "K")) })
-# if we didn't have balance=1 here the values would be 
-# divided by the number of moles of CO2 in the reactions ...
-diagram(a, balance=1, ylim=c(-100000, 100000), ylab=axis.label("A"),
-  col=topo.colors(4), lwd=2)
-# add a zero-affinity line and a title
-abline(h=0, lty=2, lwd=2)
-title(main="Affinities of organic synthesis, after Shock and Canovas, 2010")
 }
 
 \references{
@@ -220,6 +191,8 @@
 
   Dick, J. M., LaRowe, D. E. and Helgeson, H. C. (2006) Temperature, pressure, and electrochemical constraints on protein speciation: Group additivity calculation of the standard molal thermodynamic properties of ionized unfolded proteins. \emph{Biogeosciences} \bold{3}, 311--336. \url{http://www.biogeosciences.net/3/311/2006/bg-3-311-2006.html}
 
+  Helgeson, H. C., Richard, L, McKenzie, W. F., Norton, D. L. and Schmitt, A. (2009) A chemical and thermodynamic model of oil generation in hydrocarbon source rocks. \emph{Geochim. Cosmochim. Acta} \bold{73}, 594--695. \url{http://dx.doi.org/10.1016/j.gca.2008.03.004}
+
   Kondepudi, D. K. and Prigogine, I. (1998) \emph{Modern Thermodynamics: From Heat Engines to Dissipative Structures}, John Wiley & Sons, New York, 486 p. \url{http://www.worldcat.org/oclc/38055900}
 
   Shock, E. and Canovas, P. (2010) The potential for abiotic organic synthesis and biosynthesis at seafloor hydrothermal systems. \emph{Geofluids} \bold{10}, 161--192. \url{http://dx.doi.org/10.1111/j.1468-8123.2010.00277.x}

Modified: pkg/CHNOSZ/man/diagram.Rd
===================================================================
--- pkg/CHNOSZ/man/diagram.Rd	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/man/diagram.Rd	2017-02-05 07:30:22 UTC (rev 131)
@@ -14,7 +14,7 @@
     ylog=TRUE, xlim=NULL, ylim=NULL, xlab=NULL, ylab=NULL,
     cex=par("cex"), cex.names=1, cex.axis=par("cex"),
     lty=NULL, lwd=par("lwd"), dotted=NULL,
-    bg=par("bg"), col=par("col"), col.names=par("col"), fill=NULL,
+    col=par("col"), col.names=par("col"), fill=NULL,
     names=NULL, main=NULL, legend.x="topright", format.names=TRUE,
     add=FALSE, plot.it=TRUE, tplot=TRUE, ...)
   strip(affinity, ispecies = NULL, col = NULL, ns = NULL, 
@@ -45,7 +45,6 @@
   \item{lty}{numeric, line types to be used in plots}
   \item{lwd}{numeric, line width}
   \item{dotted}{numeric, how often to skip plotting points on predominance field boundaries (to gain the effect of dotted or dashed boundary lines)}
-  \item{bg}{character, background color for legend}
   \item{col}{character, color of activity lines (1D diagram) or predominance field boundaries (2D diagram), or colors of bars in a strip diagram (\code{strip})}
   \item{col.names}{character, colors for labels of species}
   \item{fill}{character, colors used to fill predominance fields}

Modified: pkg/CHNOSZ/man/util.plot.Rd
===================================================================
--- pkg/CHNOSZ/man/util.plot.Rd	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/man/util.plot.Rd	2017-02-05 07:30:22 UTC (rev 131)
@@ -20,7 +20,7 @@
     mar = NULL, lwd = par("lwd"), side = c(1,2,3,4), 
     mgp = c(1.5, 0.3, 0), cex.axis = par("cex"), col = par("col"),
     yline = NULL, axs = "i", do.box = TRUE, ticks = NULL, las = 1,
-    xline = NULL)
+    xline = NULL, ...)
   thermo.axis(lab = "x-axis", side = 1, line = 1.5, cex = par("cex"),
     lwd = par("lwd"), T = NULL, col = par("col"))
   label.plot(x, xfrac = 0.05, yfrac = 0.95, paren = FALSE,
@@ -53,6 +53,7 @@
   \item{ticks}{numeric, same effect as \code{side} (retained for backwards compatibility)}
   \item{las}{numeric, style for axis labels}
   \item{xline}{numeric, margin line on which to plot \eqn{x}{x}-axis name}
+  \item{...}{further arguments passed to \code{par} or \code{mtext}}
   \item{lab}{character, description of axis label}
   \item{line}{numeric, margin line to plot axis label}
   \item{T}{numeric, temperature (K)}
@@ -70,7 +71,6 @@
   \item{xpoints}{numeric, points to plot on \eqn{x}{x} axis}
   \item{O2state}{character, state of O2}
   \item{main}{character, text for plot title}
-  \item{...}{further arguments passed to \code{mtext}}
   \item{residuals}{numeric, named vector of residuals to plot}
   \item{property}{character, name of property}
   \item{model}{character, name of model to use in plot title}

Modified: pkg/CHNOSZ/vignettes/anintro.Rmd
===================================================================
--- pkg/CHNOSZ/vignettes/anintro.Rmd	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/vignettes/anintro.Rmd	2017-02-05 07:30:22 UTC (rev 131)
@@ -582,8 +582,63 @@
 mosaicfun(list(O2=c(-70, 0, res)))
 ```
 
-## T-, P-, activity-transect
+## *T*, *P*, activity transects
 
+Above, we used evenly-spaced grids of *T*, *P*, and/or chemical activities of basis species; the ranges of variables were given by two or three values (minimum, maximum, and optionally resolution).
+`affinity()` can also perform calculations along a transect, i.e. a particular path along one or more variables.
+A transect is calculated when there are four or more values assigned to the variable(s).
+Let's use this feature to calculate affinities (negative Gibbs energies) of methanogenesis and biosynthetic reactions in a hydrothermal system.
+The results of mixing calculations between seawater and the Rainbow hydrothermal vent fluid, reported by @SC10, are included in a data file in CHNOSZ:
+```{r rainbow_data}
+file <- system.file("extdata/cpetc/SC10_Rainbow.csv", package="CHNOSZ")
+rb <- read.csv(file, check.names=FALSE)
+```
+
+We take a selection of the species from Shock and Canovas (2010) with activities equal to 10<sup>-6</sup>; methane is assigned an activity of 10<sup>-3</sup>.
+We will write the synthesis reactions of organic species in terms of these basis species:
+```{marginfigure}
+The constant activity of methane is a simplification of the calculation reported by Shock and Canovas (2010).
+More code could be added here to vary the activity of methane.
+```
+```{r rainbow_species, results="hide"}
+basis(c("CO2", "H2", "NH4+", "H2O", "H2S", "H+"))
+species("CH4", -3)
+species(c("adenine", "cytosine", "aspartic acid", "deoxyribose",
+          "methane", "leucine", "tryptophan", "n-nonanoic acid"), -6)
+```
+
+Now we can calculate affinity along the transect of changing temperature and activities of five basis species.
+Each variable is given as a named argument; the name for `NH4+` must be quoted.
+```{marginfigure}
+A shorter code would use `do.call()` to construct the argument list: `do.call(affinity, as.list(rb))`
+```
+```{marginfigure}
+The target of the conversion is `G`, or free energy, from `logK`.
+That conversion requires temperature in Kelvin, which is obtained by conversion from °C.
+We finish with a negation (affinity is negative Gibbs energy) and scaling from cal to kcal.
+```
+Using the `convert()` function in CHNOSZ, we also convert the result from dimensionless values (**_A_**/2.303*RT*) to kcal/mol.
+```{r rainbow_affinity, message=FALSE}
+a <- affinity(T=rb$T, CO2=rb$CO2, H2=rb$H2,
+              `NH4+`=rb$`NH4+`, H2S=rb$H2S, pH=rb$pH)
+T <- convert(a$vals[[1]], "K")
+a$values <- lapply(a$values, convert, "G", T)
+a$values <- lapply(a$values, `*`, -0.001)
+```
+
+```{r rainbow_diagram, fig.margin=TRUE, fig.width=4, fig.height=4, small.mar=TRUE, dpi=50, out.width="100%", echo=FALSE, message=FALSE, cache=TRUE, fig.cap="Affinities of organic synthesis in a hydrothermal system, after Shock and Canovas (2010)."}
+diagram(a, balance=1, ylim=c(-100, 100), ylab=axis.label("A", prefix="k"),
+        col=rainbow(8), lwd=2, legend.x=NA, bg="slategray3")
+abline(h=0, lty=2, lwd=2)
+```
+Finally, we use `diagram()` to plot the results.
+Although only temperature is shown on the *x*-axis, pH and the activities of CO<sub>2</sub>, H<sub>2</sub>, NH<sub>4</sub><sup>+</sup>, and H<sub>2</sub>S are also varied according to the data in `rb`.
+By default, `diagram()` attempts to scale the affinities by dividing by the reaction coefficients of a shared basis species (in this case, CO<sub>2</sub>).
+To override that behavior, we set `balance=1` to plot the affinities of the formation reactions as written (per mole of the species being formed).
+Also, `legend.x=NA` is used to suppress making a legend (so the labels are placed next to the lines instead).
+```{r rainbow_diagram, eval=FALSE}
+```
+
 ## Buffers
 
 There is one final feature of `affinity()` to notice.
@@ -611,14 +666,14 @@
 species(c("pyrite", "magnetite"))
 species("pyrrhotite", "cr2")
 ```
+```{marginfigure}
+The affinity of formation of pyrite happens to be zero because it is identical to one of the selected basis species.
+```
 ```{r PPM_affinity, message=FALSE}
 unlist(affinity(T=300, P=100)$values)
 ```
-```{marginfigure}
-The affinity of formation of pyrite happens to be zero because it is identical to one of the selected basis species.
-```
 
-We use `mod.buffer()` to choose the `cr2` phase of phyrrhotite, which is stable at this temperature.
+We use <span style="color:red">`mod.buffer()`</span> to choose the `cr2` phase of phyrrhotite, which is stable at this temperature.
 Then, we set up H<sub>2</sub>S and O<sub>2</sub> to be buffered by PPM, and inspect their buffered activities:
 ```{r PPM_setup, results="hide"}
 mod.buffer("PPM", "pyrrhotite", "cr2")

Modified: pkg/CHNOSZ/vignettes/vig.bib
===================================================================
--- pkg/CHNOSZ/vignettes/vig.bib	2017-02-05 03:29:16 UTC (rev 130)
+++ pkg/CHNOSZ/vignettes/vig.bib	2017-02-05 07:30:22 UTC (rev 131)
@@ -243,6 +243,20 @@
   doi       = {10.1557/PROC-432-317},
 }
 
+ at Article{SC10,
+  author    = {Shock, Everett and Canovas, Peter},
+  journal   = {Geofluids},
+  title     = {{T}he potential for abiotic organic synthesis and biosynthesis at seafloor hydrothermal systems},
+  year      = {2010},
+  volume    = {10},
+  number    = {1-2},
+  pages     = {161--192},
+  af        = {Shock, E.EOLEOLCanovas, P.},
+  doi       = {10.1111/j.1468-8123.2010.00277.x},
+  si        = {Sp. Iss. SI},
+  sn        = {1468-8115},
+}
+
 @Article{SH90,
   author    = {Shock, Everett L. and Helgeson, Harold C.},
   journal   = {Geochimica et Cosmochimica Acta},



More information about the CHNOSZ-commits mailing list