NEWS
biocharkit 0.3.0 (2026-07-21)
- New TGA module:
read_tga_txt(): defensive plain-text reader for raw TGA exports
(temperature, time, weight columns), following the same
readLines()/strsplit() approach as read_ftir_txt()/read_xrd_txt().
tga_normalize(): rescale a raw mass column (e.g. mg) to percent of
initial mass.
tga_dtg(): smoothed derivative thermogravimetric (DTG) curve via
stats::smooth.spline(), rather than a raw finite difference of
noisy instrument data.
find_dtg_peaks(): automatic local-maxima peak picking on a DTG
curve with a prominence filter, mirroring find_ftir_peaks().
tga_decomposition_reference() / assign_dtg_peaks(): reference
table of typical lignocellulosic decomposition temperature ranges
(moisture, hemicellulose, cellulose, lignin) and a matcher for
observed DTG peaks, mirroring ftir_band_reference() /
assign_ftir_peaks().
tga_stages(): reads moisture/volatile-matter/ash percentages
directly off a TGA curve at three temperature breakpoints and hands
them to the existing proximate_analysis() for fixed-carbon-by-
difference, so a TGA-derived proximate analysis gets the same
100%-sum check as a gravimetric one.
tga_stages_batch(): tga_stages() applied per sample ID across a
long-format multi-sample data frame, mirroring fit_isotherm_batch()
/ fit_kinetics_batch().
tga_kinetics_kissinger(): non-isothermal single-step kinetics
(activation energy and pre-exponential factor) from DTG peak
temperatures at several heating rates, following Kissinger (1957)
doi:10.1021/ac60131a045. Returns a plain lm-backed fit object, so
fit_confint() works on it directly like any other fit in this
package.
plot_tga(): base-graphics dual-axis TG/DTG plot, usable with the
existing save_tiff() for 600 dpi export.
biocharkit 0.2.0 (2026-07-21)
- New isotherm models:
fit_temkin(), fit_dr() (Dubinin-Radushkevich,
with mean free energy E), fit_sips().
- New kinetics models:
fit_elovich(), fit_intraparticle()
(Weber-Morris).
- Thermodynamics:
fit_vant_hoff() computes deltaH, deltaS, and deltaG
from equilibrium distribution coefficients across temperatures.
fit_confint(): confidence intervals for any isotherm/kinetics/van't
Hoff fit from this package, with an automatic fallback to a Wald
interval if profiling fails.
- Batch fitting:
fit_isotherm_batch() and fit_kinetics_batch() fit a
model separately per group (e.g. per sample ID), skipping groups that
fail to converge with a warning instead of aborting the whole batch.
- FTIR:
baseline_correct() (linear or rolling-minimum baseline) and
find_ftir_peaks() (automatic local-maxima peak picking with a
prominence filter).
- XRD:
xrd_deconvolve(), a simplified simultaneous multi-Gaussian peak
fit that also returns a crystallinity index.
bet_surface_area(): multi-point BET surface area from gas adsorption
data.
- Proximate/ultimate analysis:
pct_mass_change(), proximate_analysis()
(fixed carbon by difference), ultimate_ratios() (H/C, O/C, N/C atomic
ratios for Van Krevelen analysis).
- New vignette,
vignette("biocharkit-intro"), walking through a full
synthetic-data analysis using every function in the package.
- Bugfix:
find_ftir_peaks() incorrectly rejected a local maximum that
fell exactly between two grid points (a common case when a peak center
doesn't align with the sampling interval), due to requiring a strictly
unique maximum within the search window. Tied/plateau maxima are now
correctly collapsed to a single peak at their midpoint.
biocharkit 0.1.0
- Initial release.
- Sample ID parsing:
parse_sbc_id().
- Data import:
read_ftir_txt(), read_xrd_txt().
- Adsorption:
qe_batch(), removal_efficiency().
- Isotherms:
fit_langmuir(), fit_freundlich() (nonlinear with linearised fallback).
- Kinetics:
fit_pfo(), fit_pso().
- FTIR:
ftir_band_reference(), assign_ftir_peaks(), functional_group_density().
- XRD:
xrd_crystallinity_index().
- Statistics:
correlation_matrix().
- Plotting:
plot_isotherm(), plot_kinetics(), plot_ftir_spectrum(), save_tiff().
- Synthetic example dataset
sbc_example for demonstration and testing.