Plant cell wall biomass is composed of a range of different types of carbon-based compounds [3, 16, 11]. We can use the relative proportion of these carbon components to understand species characteristics, such as litter decomposition [6]. Traditional methods for estimating carbon components, particularly lignocellulosic biomass, involve wet chemistry assays [8] that use sulfuric acid and acetic anhydride, among other chemicals. These chemicals, however, can adversely impact the environment and lead to loss of lignocellulose and other compounds [10]. Thermogravimetric analysis (TGA) is an alternative method, already in use among biofuel researchers, to approximate the proportions of these compounds in plants [11, 5]. In this method, we use mass loss data obtained by heating a biomass sample in an N_{2} environment, termed pyrolysis, to estimate the proportion of different carbon components in a sample.
Mass loss during complete pyrolysis is the sum of the degradation of the main components of the sample, often simplified to the three main components of lignocellulose: hemicelluloses, cellulose, and lignin [18, 16, 15]. The rate of mass loss is generally a multi-peaked curve, which can be mathematically separated into its constituent parts with a mixture model, in a process termed ‘deconvolution’ [17, 13]. The component peaks identified by the mixture model represent the proportion of initial mass lost by each component during pyrolysis. The integral, or area under the curve, of these peaks therefore gives us an estimate of the proportion of each component in the original sample. Carbon component estimation from deconvolution of thermogravimetric loss curves has been validated with estimates achieved with wet chemistry measurements [27].
Most researchers who conduct thermogravimetric analysis use commercial software to deconvolve the rate of mass loss curves [for example OriginPro 3, PeakFit 18, Fityk 18, or Datafit 5]. However, the majority of these proprietary software employ point-and-click interfaces that hinder independent replication of the deconvolution analysis. The inability to reproduce readily others’ experimental results using these software, a guiding principle of functional trait measurement [19], might in part explain why thermogravimetric analysis has not been widely adopted by functional ecologists despite its proven promise [such as in marine and coastal macrophytes 25, and in eucalyptus trees 16].
The mixchar package in R is an open-source tool for the deconvolution of thermal decay curves from thermogravimetric analysis. This tool improves upon existing software by making implicit mixture model choices, such as starting values and number of peaks to estimate, programmatic and transparent. Although the nonlinear mixture model used for peak separation at the core of this package could be used for many different purposes, our mixchar package provides specific guidelines for using thermal decay curve analysis to estimate carbon components in plant material. Detailed vignettes and several default plotting options are included in mixchar so that researchers interested in adopting this method can readily do so for the purpose of estimating carbon components in plant biomass samples.
We collected the litter for development of this package from three freshwater wetlands surrounding Melbourne, Victoria (sites within 60 km of –37.455, 144.985). In the field, we placed the plant litter collected for this analysis in moist plastic bags and stored them in dark coolers until we could transport them to the lab where they were promptly dried at 60°C for 72 hours to ensure our component estimates were an accurate representation of the original composition of the litter samples we collected. We ground our dry litter to <40 μm using a Retsch Centrifugal Mill ZM200.
We pyrolysed 10–20 mg subsamples of dry, ground litter in an N_{2} environment from 30–800°C at a temperature ramp of 10°C/min using a Netzsch TGA-FTIR thermogravimetric analyser (Department of Biomedical Engineering, University of Melbourne).
We developed and tested the functions of our mixchar package using the thermogravimetric decay data of the litter of 29 different plant species. Two species from our data are available as datasets in the package — the freshwater reed Juncus amabilis (accessed as juncus) and the freshwater fern Marsilea drumondii (accessed as marsilea). The data resulting from the pyrolysis is mass loss (mg) against temperature (Figure 1).
library(mixchar)
head(juncus, n = 3)
## temp_C mass_loss
## 1 31.453 -0.000931
## 2 31.452 -0.001340
## 3 31.450 -0.001350
After completing the thermogravimetric analysis, the resulting data can be loaded into R. Using mixchar, the process function calculates the rate of mass loss by taking the derivative of mass loss over temperature. The process() function needs the following dataset features: the initial mass of the sample, the name of the temperature data column, and the name of the mass column (mg). Since TGA-FTIR instruments can export data in variable units, the mass column can be specified either as mass loss data with the mass_loss argument or as mass data with the mass argument.
deriv_juncus <- process(juncus,
init_mass = 18.96, # initial mass of sample
temp = 'temp_C', # temperature data column name
mass_loss = 'mass_loss', # mass loss data column name
temp_units = 'C') # 'C' is the default setting
deriv_juncus
## Derivative thermogravimetry data (DTG) calculated for
## 768 datapoints from 31.5 to 798.52 degrees C.
The process function produces a modified dataframe, which includes the derivative thermogravimetric rate of mass loss data (DTG), the initial mass value that was supplied, and the maximum and minimum temperature values in the data. Plotting the output of the process function yields the mass of sample across temperature curve and the rate of mass loss curve (Figure 2). The rate of mass loss is a multi-peaked curve encompassing three main phases [16]:
Since the overall DTG curve represents the loss of extractives, water, inorganic matter, and volatiles in addition to the components in which we are interested [11], we isolate mass loss from our primary biomass components by subsetting the DTG data to Phase 2. The deconvolve function defaults to temperature bounds at 120°C and 700°C, but these can be modified with the lower_temp and upper_temp arguments.
Biomass components combust relatively independently because they do not interact very much during thermal volatilisation [27]. Therefore, the subsetted DTG curve can be mathematically deconvolved into constituent parts using a mixture model. The derivative rate of mass loss equation ($-{\scriptscriptstyle \frac{\mathrm{dm}}{\mathrm{dT}}}$ ) can be expressed as the sum of n independent reactions (Eq. 1), as follows [16]:
where mass (m) is expressed as a fraction of mass at temperature T (M_{T}) of the initial sample mass (M_{0}) (Eq. 2), c_{i} is the mass of component i that is decayed (Eq. 3), and the mass loss curve of each individual component (${\scriptscriptstyle \frac{d{\alpha}_{i}}{\mathrm{dT}}}$ ) is the derivative of α_{i}, the conversion of mass at a given temperature (M_{Ti}), from the initial (M_{0i}), as a proportion of total mass lost between the initial and final (M_{∞}_{i}) temperature for each peak (Eq. 4).
Although the carbon distribution of many species can be described with only n = 3 peaks, corresponding to a single peak for each of hemicelluose, cellulose, and lignin, some litter samples yield a second hemicellulose peak at a lower temperature, resulting in n = 4 independent peaks. This is because the soluble carbohydrates in plant tissue can take many forms, including xylan, amylose, etc., which apparently degrade at different temperatures [see also 3, 15]. deconvolve() will decide whether three or four peaks are best using an internal function that determines if there is a peak below 220°C. Alternatively, upon inspection of the curve, users can specify the number of peaks with the n_peaks argument.
In order to fit the mixture model to the data, we must decide upon the shape of the individual peaks (${\scriptscriptstyle \frac{d{\alpha}_{i}}{\mathrm{dT}}}$ ) that are summed to produce it. Many different functions have been proposed: the asymmetric bi-Gaussian [23], logistic [1], Weibull [2], asymmetric double sigmoidal [3], and the Fraser-Suzuki function [18, 11]. Researchers have compared several techniques [24, 18, 5] and found that the Fraser-Suzuki function best fit these kinetic peaks. This is because the Fraser-Suzuki function allows for asymmetry (a parametric examination of the Fraser-Suzuki function can be found in Figure 3). We therefore use the Fraser-Suzuki function to describe the rate expression of a single peak (Eq. 5) as follows:
where T is temperature (°C), and the parameters h_{i} (°C^{–1}), s_{i}, p_{i} (°C), and w_{i} (°C) are height, skew, position, and width of the peak, respectively. In total, our model estimates 12 or 16 parameters, one for each parameter of Eq. 5 for either three or four primary components.
Likelihood functions in mixture models have multiple maxima, and therefore expectation-maximisation algorithms are highly dependent on starting value selection [21, 22]. The vector of starting values for the 12 or 16 estimated parameters is based on curves depicted in the literature [15] and from the results of running an identical deconvolution on pure cellulose (carboxy-methyl cellulose) and lignin (alkali lignin from Sigma Aldrich). Hemicelluloses decay in a reasonably narrow band beginning at a lower temperature [15], so we use 270°C for position and 50°C for width. Linear cellulose crystals decay at a higher temperature, but decay more rapidly after peak temperatures are reached, so we set its starting position to 310°C and width to 30°C. Lignin typically decays beginning at a high temperature and over a wide interval [4], so we begin position and width at 410°C and 200°C, respectively.
In an effort to ensure the same starting vector would be useful across a wide variety of different samples, we employ an extra optimisation step before fitting the model. The deconvolve function first optimises the given starting value vector with 300 restarts of the NLOPTR_LN_BOBYQA algorithm [20] with the nloptr [12] package. In this way, we can set the given starting value vector so that it works properly on a wide range of samples, and at the same time the starting values we ultimately give to the model are as close as possible to the global maxima for a given dataset.
To fit the non-linear mixture model, we send the optimised starting value vector to the nlsLM() function in the minpack.lm [7] package, which uses the Levenberg-Marquardt algorithm to minimise residual sum of squares.
The default starting values and two-stage optimisation worked well for our thermogravimetric decay dataset of 29 plant species, encompassing herbaceous, graminoid, as well as woody species. Although this result is encouraging it is not altogether surprising because these data were pyrolysed using the same TGA-FTIR instrument. For this reason, the package was also tested on thermogravimetric data processed from a different instrument, as well as plants from marine ecosystems. Default settings produced well-fit curves for leaf samples from the seagrass species Thalassia testudinum, and rhizome and root samples from the seagrass species Zostera marina [Figure 4; data for both from 25].
Despite the broad range of testing of mixchar, users may still find they need to explore the literature for reasonable estimates of starting values for their study species. Default settings did not, for example, redundant did not identify the fourth peak in the deconvolution of macroalgae species Ecklonia radiata blades [Figure 5a; 25]. In this case, we can use the option to specify our own starting values, with the start_vec, lower_vec, and upper_vec arguments, in order to better guide the model (Figure 5b).
# code given for reference only
start_vec <- c(0.002, -0.15, 250, 50, # for hemicellulose 1
0.003, -0.15, 310, 50, # for hemicellulose 2
0.006, -0.15, 350, 30, # for cellulose
0.001, -0.15, 410, 200) # for lignin
# change the upper bounds to ensure the starting vector values are within
# the allowed range
ub <- c(2, 0.2, 260, 80,
2, 0.2, 330, 90,
2, 0.2, 380, 50,
2, 0.2, 430, 250)
e.radiata_decon <- deconvolve(e.radiata,
n_peaks = 4,
start_vec = start_vec,
upper_vec = ub,
lower_temp = 150,
upper_temp = 600)
After we fit our curve parameters, we can pass each component’s parameter estimates to a single Fraser-Suzuki function and integrate under the peak to calculate the weight of the component in the overall sample (Eq. 6). To estimate the uncertainty of the weight predictions, deconvolve will calculate the 95% interval of the weight estimates across a random sample of parameter estimates, drawn in proportion to their likelihood. We assume a truncated multivariate normal distribution, since the parameters are constrained to positive values, using the modelling package tmvtnorm [26].
We interpret that the peak located around 250–270°C corresponds to primary hemicelluloses (HC), around 310–330°C to cellulose (CL), and around 330–350°C to lignin (LG). If present, the fourth peak located below 200°C corresponds to the most simple hemicelluloses (HC-1). The second dataset included in the package, marsilea, provides an example of a four-peak deconvolution. A worked example can be found in the package vignettes.
The output of the deconvolve function is a list of five items:
DTG_data <- rate_data (output_juncus)
head(DTG_data)
## temp_C derive mass_T
## 5325 120.514 9.570652e-05 17.91630
## 5384 121.501 9.885901e-05 17.91445
## 5445 122.515 1.003878e-04 17.91252
## 5505 123.514 9.133606e-05 17.91079
## 5565 124.513 6.493836e-05 17.90956
## 5625 125.509 8.578618e-05 17.90794
temp_bounds(output_juncus)
## [1] 120 700
model_fit(output_juncus)
## Nonlinear regression model
## model: deriv ~ fs_mixture (temp_C, height_1, skew_1, position_1,
## width_1, height_2, skew_2, position_2, width_2, height_3,
## skew_3, position_3, width_3)
## data: dataframe
## height_1 skew_1 position_1 width_1 height_2 skew_2
## 3.944e-03 1.258e-01 2.662e+02 5.106e+01 5.793e-03 1.344e-02
## position_2 width_2 height_3 skew_3 position_3 width_3
## 3.173e+02 2.866e+01 1.163e-03 1.085e-01 3.300e+02 2.500e+02
## residual sum-of-squares: 9.299e-06
##
## Number of iterations to convergence: 23
## Achieved convergence tolerance: 1.49e-08
output_juncus$n_peaks
## [1] 3
component_weights(output_juncus)
## HC CL LG value_type
## 1 21.5600422 17.6748693 30.6629891 mean
## 2 20.4327310 16.6433643 29.5201899 2.5%
## 3 21.5980403 17.6367428 30.6535159 50%
## 4 22.7575067 18.6700545 31.8302178 97.5%
## 5 0.5978226 0.5128315 0.5914671 5%
Plotting the output of the deconvolve function shows the underlying DTG data, the overall mixture model curve, as well as the component peaks of the deconvolution (Figure 6). The default plot is in black and white, but a colour version that uses colour-blind friendly viridis colours [9] is available by specifying bw = FALSE.
The Fraser-Suzuki family of functions are exported (Table 1) to allow users to create their own plots from the model outputs in conjunction with the parameter estimates, accessed as follows:
juncus_parameters <- model_parameters(output_
juncus)
juncus_parameters
## parameter_name parameter_value
## 1 height_1 3.944240e-03
## 2 skew_1 1.258171e-01
## 3 position_1 2.661764e+02
## 4 width_1 5.105925e+01
## 5 height_2 5.792848e-03
## 6 skew_2 1.344097e-02
## 7 position_2 3.172997e+02
## 8 width_2 2.866180e+01
## 9 height_3 1.162606e-03
## 10 skew_3 1.085210e-01
## 11 position_3 3.300000e+02
## 12 width_3 2.500000e+02
FUNCTION FAMILY | FUNCTION NAME | DESCRIPTION |
---|---|---|
Data | juncus | Example thermogravimetric data for Juncus amabilis |
Data | marsilea | Example thermogravimetric data for Marsilea drumondii |
Basic use | process() | Calculates the derivative rate of mass loss of thermogravimetric data |
Basic use | deconvolve() | Deconvolves derivative rate of mass loss data |
Accessor function | temp_bounds() | Access temperature bounds used to crop data for mixture model |
Accessor function | rate_data() | Access processed dataframe including mass loss, rate of mass loss, and temperature |
Accessor function | model_fit() | Access fit of nonlinear mixture model |
Accessor function | component_weights() | Access mean, upper, and lower bounds for component weight estimates |
Accessor function | model_parameters() | Access parameter estimates |
Fraser-Suzuki function | fs_function() | Fraser-Suzuki equation for a single peak |
Fraser-Suzuki function | fs_mixture() | Fraser-Suzuki mixture model equation |
Fraser-Suzuki function | fs_model() | Non-linear model implementation of Fraser-Suzuki mixture model |
S3 method | print(<process>) | Default print method for process object (derived from process()) |
S3 method | plot(<process>) | Default plot method for process object (derived from process()) |
S3 method | print(<deconvolve>) | Default print method for decon object (derived from deconvolve()) |
S3 method | plot(<deconvolve>) | Default plot method for process object (derived from deconvolve()) |
All the functions of mixchar were tested to see if they produce the desired output. The workflow was tested on thermogravimetric data from two different TGA-FTIR instruments, and on samples outside those used to build the package.
The structure of the package successfully passed the CRAN R CMD check with no errors or warnings, or notes and the results from this check can be found on CRAN.
The package was tested on Windows, Mac OS X, and Linux.
R version 3.2.0 or higher.
An internet connection is required to install the mixchar package.
R packages: graphics, minpack.lm, nloptr, stats, tmvtnorm, zoo.
This package was created by Saras Windecker and Nick Golding.
Name: CRAN
Persistent identifier: https://CRAN.R-project.org/package=mixchar
Licence: MIT and open license as found on https://cran.r-project.org/web/packages/mixchar/LICENSE
Publisher: Saras Windecker
Version published: 0.1.0
Date published: 16/08/2018
Name: Github
https://github.com/smwindecker/mixchar/
Persistent identifier: DOI: 10.5281/zenodo.1343849
Licence: MIT and open license as found on
https://github.com/smwindecker/mixchar/releases/tag/v0.1.0.
Date published: 11/08/2018
R
This package was designed with both the user and developer in mind. There are several vignettes available with the package and on the package website (https://smwindecker.github.io/mixchar/) facilitating exploration of package functionality. We expect that this package will be useful to researchers already using thermogravimetric analysis for biomass component estimation, as well as to functional ecologists seeking to test out this approach as an alternative to wet chemistry methods. For all users, this method improves on most current software available to them, as it is fully open-source and transparent.
Finite mixture models are used to cluster continuous multivariate data. Statistical inference of mixture models is notoriously difficult because of their flexibility [14]. This is especially true for the Fraser-Suzuki function, which has an additional parameter compared to a Gaussian distribution. Many combinations of peaks can create the same overall derivative thermogravimetric curve, and so informed starting values are necessary as they can substantially affect fit. To use mixchar well, we need in some cases to modify the default starting values.
For those who wish to contribute to the package, it is hosted on Github. Contributors can log issues, for example concerning alternative data formats, via the issues tracker (https://github.com/smwindecker/mixchar/issues) or submit a pull request to add functionality to the package.
The authors would like to thank Dr. Nick Tierney and Dr. David Wilkinson for reviewing an early version of the package as well as CRAN reviewers for useful additions. We would like to thank volunteers Paula Sanchez, Abbey Kinnish, Kelsey Johnson, Madeline Brenker, and Urtzi Enriquez Urzelai for their assistance in the field collecting plant specimens. We would also like to thank the University of Melbourne Department of Chemical and Biomolecular Engineering for access to and training on the TGA-FTIR. Plant samples used to build and verify the model were conducted under Victorian Department of Environment, Land, Water and Planning Permit No 10007429.
The authors would like to acknowledge the generous support we received from the Australian Research Council Centre of Excellence for Environmental Decisions, the Holsworth Wildlife Reseach Endowment & The Ecological Society of Australia, and from University of Melbourne, which provided the primary author with a Melbourne International Research Scholarship and a Melbourne International Fee Remission Scholarship from University of Melbourne.
The authors have no competing interests to declare.
Barbadillo F, Fuentes A, Naya S, Cao R, Mier J, Artiaga R. Evaluating the logistic mixture model on real and simulated TG curves. Journal of thermal analysis and calorimetry. 2007; 87(1): 223–227. DOI: https://doi.org/10.1007/s10973-006-8283-x
Cai J, Liu R. Parametric study of the nonisothermal n th-order distributed activation energy model involved the Weibull distribution for biomass pyrolysis. Journal of Thermal Analysis and Calorimetry. 2007; 89(3): 971–975. DOI: https://doi.org/10.1007/s10973-006-8266-y
Chen C, Miao W, Zhou C, Wu H. Thermogravimetric pyrolysis kinetics of bamboo waste via Asymmetric Double Sigmoidal (Asym2sig) function deconvolution. Bioresource Technology. Feb. 2017; 225: 48–57. ISSN 09608524. DOI: https://doi.org/10.1016/j.biortech.2016.11.013
Chen Z, Hu M, Zhu X, Guo D, Liu S, Hu Z, Xiao B, Wang J, Laghari M. Characteristics and kinetic study on pyrolysis of five lignocellulosic biomass via thermogravimetric analysis. Bioresource Technology. Sept. 2015; 192: 441–450. ISSN 09608524. DOI: https://doi.org/10.1016/j.biortech.2015.05.062
Cheng Z, Wu W, Ji P, Zhou X, Liu R, Cai J. Applicability of Fraser-Suzuki function in kinetic analysis of DAEM processes and lignocellulosic biomass pyrolysis processes. Journal of Thermal Analysis and Calorimetry. Feb. 2015; 119(2): 1429–1438. ISSN 1388-6150, 1588-2926. DOI: https://doi.org/10.1007/s10973-014-4215-3
Cornwell WK, Cornelissen JHC, Amatangelo K, Dorrepaal E, Eviner VT, Godoy O, Hobbie SE, Hoorens B, Kurokawa H, Pérez-Harguindeguy N, Quested HM, Santiago LS, Wardle DA, Wright IJ, Aerts R, Allison SD, van Bodegom P, Brovkin V, Chatain A, Callaghan TV, Díaz S, Garnier E, Gurvich DE, Kazakou E, Klein JA, Read J, Reich PB, Soudzilovskaia NA, Vaieretti MV, Westoby M. Plant species traits are the predominant control on litter decomposition rates within biomes worldwide. Ecology Letters. Oct. 2008; 11(10): 1065–1071. ISSN 1461023X, 14610248. DOI: https://doi.org/10.1111/j.1461-0248.2008.01219.x
Elzhov TV, Mullen KM, Spiess A-N, Bolker B. minpack.lm: R Inter-face to the Levenberg-Marquardt Nonlinear Least-Squares Algorithm Found in MINPACK, Plus Support for Bounds; 2016. URL https://CRAN.R-project.org/package=minpack.lm. R package version 1.2-1.
Fukushima RS, Kerley MS. Use of Lignin Extracted from Different Plant Sources as Standards in the Spectrophotometric Acetyl Bromide Lignin Method. Journal of Agricultural and Food Chemistry. Apr. 2011; 59(8): 3505–3509. ISSN 0021-8561. DOI: https://doi.org/10.1021/jf104826n
Garnier S. viridis: Default Color Maps from ‘matplotlib’; 2018. URL https://CRAN.R-project.org/package=viridis. R package version 0.5.1.
Hatfield R, Fukushima RS. Can Lignin Be Accurately Measured? Crop Science. 2005; 45(3): 832. ISSN 1435-0653. DOI: https://doi.org/10.2135/cropsci2004.0238
Hu M, Chen Z, Wang S, Guo D, Ma C, Zhou Y, Chen J, Laghari M, Fazal S, Xiao B, Zhang B, Ma S. Thermogravimetric kinetics of lignocellulosic biomass slow pyrolysis using distributed activation energy model, Fraser-Suzuki deconvolution, and iso-conversional method. Energy Conversion and Management. June 2016; 118: 1–11. ISSN 01968904. DOI: https://doi.org/10.1016/j.enconman.2016.03.058
Johnson SG. The nlopt nonlinear-optimization package. URL http://ab-initio.mit.edu/nlopt.
Kauppinen JK, Moffatt DJ, Mantsch HH, Cameron DG. Fourier Self-Deconvolution: A Method for Resolving Intrinsically Overlapped Bands. Applied Spectroscopy. May 1981; 35(3): 271–276. ISSN 0003-7028. DOI: https://doi.org/10.1366/0003702814732634
McLachlan GJ, Basford KE. Mixture Models: Inference and Applications to Clustering; 1988. Thesis, New York, NY: M. Dekker.
Müller-Hagedorn M, Bockhorn H. Pyrolytic behaviour of different biomasses (angiosperms) (maize plants, straws, and wood) in low temperature pyrolysis. Journal of Analytical and Applied Pyrolysis. May 2007; 79(1–2): 136–146. ISSN 01652370. DOI: https://doi.org/10.1016/j.jaap.2006.12.008
Órfão JJM, Figueiredo JL. A simplified method for determination of lignocellulosic materials pyrolysis kinetics from isothermal thermogravimetric experiments. Thermochimica Acta. Nov. 2001; 380(1): 67–78. ISSN 0040-6031. DOI: https://doi.org/10.1016/S0040-6031(01)00634-7
Peel D, McLachlan GJ. Robust mixture modelling using the t distribution. Statistics and Computing. Oct. 2000; 10(4): 339–348. ISSN 1573-1375. DOI: https://doi.org/10.1023/A:1008981510081
Perejón A, Sánchez-Jiménez PE, Criado JM, Pérez-Maqueda LA. Kinetic Analysis of Complex Solid-State Reactions. A New Deconvolution Procedure. The Journal of Physical Chemistry B. Mar. 2011; 115(8): 1780–1791. ISSN 1520-6106, 1520-5207. DOI: https://doi.org/10.1021/jp110895z
Pérez-Harguindeguy N, Díaz S, Garnier E, Lavorel S, Poorter H, Jaureguiberry P, Bret-Harte MS, Cornwell WK, Craine JM, Gurvich DE, Urcelay C, Veneklaas EJ, Reich PB, Poorter L, Wright IJ, Ray P, Enrico L, Pausas JG, de Vos AC, Buchmann N, Funes G, Quétier F, Hodgson JG, Thompson K, Morgan HD, Ter Steege H, Sack L, Blonder B, Poschlod P, Vaieretti MV, Conti G, Staver AC, Aquino S, Cornelissen JHC. New handbook for standardised measurement of plant functional traits worldwide. Australian Journal of Botany. 2013; 61(3): 167. ISSN 0067-1924. DOI: https://doi.org/10.1071/BT12225
Powell M. The bobyqa algorithm for bound constrained optimization without derivatives. Department of Applied Mathematics and Theoretical Physics, Cambridge England, technical report NA2009/06; 2009.
Seidel W, Mosler K, Alker M. A Cautionary Note on Likelihood Ratio Tests in Mixture Models. Annals of the Institute of Statistical Mathematics. Sept. 2000; 52(3): 481–487. ISSN 1572-9052. DOI: https://doi.org/10.1023/A:1004117419204
Seidel W, Mosler K, Alker M. Likelihood ratio tests based on subglobal optimization: A power comparison in exponential mixture models. Statistical Papers. Jan. 2000; 41(1): 85–98. ISSN 1613-9798. DOI: https://doi.org/10.1007/BF02925678
Sun Y, Bai F, Lü X, Jia C, Wang Q, Guo M, Li Q, Guo W. Kinetic study of Huadian oil shale combustion using a multi-stage parallel reaction model. Energy. Mar. 2015; 82: 705–713. ISSN 03605442. DOI: https://doi.org/10.1016/j.energy.2015.01.080
Svoboda R, Málek J. Applicability of Fraser-Suzuki function in kinetic analysis of complex crystallization processes. Journal of Thermal Analysis and Calorimetry. Feb. 2013; 111(2): 1045–1056. ISSN 1388-6150, 1572–8943. DOI: https://doi.org/10.1007/s10973-012-2445-9
Trevathan-Tackett SM, Kelleway J, Macreadie PI, Beardall J, Ralph P, Bellgrove A. Comparison of marine macrophytes for their contributions to blue carbon sequestration. Ecology. 2015; 96(11): 3043–3057. DOI: https://doi.org/10.1890/15-0149.1
Wilhelm S, Manjunath BG. tmvtnorm: Truncated Multivariate Normal and Student t Distribution; 2015. URL http://CRAN.R-project.org/package=tmvtnorm. R package version 1.4-10.
Yang H, Yan R, Chen H, Zheng C, Lee DH, Liang DT. In-Depth Investigation of Biomass Pyrolysis Based on Three Major Components: Hemicellulose, Cellulose and Lignin. Energy & Fuels. Jan. 2006; 20(1): 388–393. ISSN 0887-0624, 1520-5029. DOI: https://doi.org/10.1021/ef0580117