mixchar

Repository for the R package 'mixchar'

https://github.com/smwindecker/mixchar

Science Score: 33.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 7 committers (28.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.1%) to scientific vocabulary

Keywords

decay thermogravimetry traits

Keywords from Contributors

ecology
Last synced: 6 months ago · JSON representation

Repository

Repository for the R package 'mixchar'

Basic Info
Statistics
  • Stars: 11
  • Watchers: 2
  • Forks: 1
  • Open Issues: 1
  • Releases: 1
Topics
decay thermogravimetry traits
Created over 8 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.Rmd

---
title: "mixchar"
output:
  md_document:
    variant: gfm
---

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

# 

[![CRAN](http://www.r-pkg.org/badges/version/mixchar)](https://cran.r-project.org/package=mixchar)
[![Build Status](https://travis-ci.com/smwindecker/mixchar.svg?branch=master)](https://travis-ci.org/smwindecker/mixchar)
[![codecov](https://codecov.io/gh/smwindecker/mixchar/branch/master/graph/badge.svg)](https://codecov.io/gh/smwindecker/mixchar)
[![repo status](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)
[![DOI](https://zenodo.org/badge/103010631.svg)](https://zenodo.org/badge/latestdoi/103010631)

Please cite [Windecker et al, 2021](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.249)

# Why deconvolution?

Plant cell wall biomass is composed of a range of different types of carbon. Proportions of primary carbon types are useful for estimating kinetic decay parameters or for calculation of intrinsic plant traits. Traditional methods for calculation of these components involve wet chemistry methods that can be monetarily and environmentally costly. Thermogravimetric analysis is an alternative method, already in use in the biofuel field, that involves pyrolysing dry, ground plant litter and estimating components from resulting mass decay peaks. Since different carbon types break down relatively independently during different temperature phases, we can separate the multi-peaked rate of mass loss curve into constituent parts using a mixture model. This package conducts this peak separation analysis in a open-source and reproducible way using R. This methodology has been tested on a range of plant litter composed primarily of soluble carbohydrates, hemicellulose, cellulose, and lignin.

# Installation

You can install `mixchar` by:

```{r, eval = FALSE}
install.packages("mixchar")
```

or install the development version from [GitHub](https://github.com/) with:

``` {r, eval = FALSE}
install.packages("devtools")
devtools::install_github("smwindecker/mixchar")
```

Below we will show a basic implementation of the package. For a detailed step by step workflow, see the [workflow vignette on the website](http://smwindecker.github.io/mixchar/articles/mixchar.html).

For a detailed discussion of the methodology, please see the [methodology vignette on the website](http://smwindecker.github.io/mixchar/articles/Background.html). 

# Basic use

Data from thermogravimetric analysis is usually exported in one of two forms: as mass loss or mass remaining (mg) by temperature. An example dataset that contains mass loss data for the species *Juncus amabilis* is included in the package:

```{r}
library(mixchar)
head(juncus)
```

We can use the function `process()` to take the derivative of this data, resulting in rate of mass loss over temperature data. To do so you need to specify the dataset, the initial mass of sample, the name of the temperature data column, and the name of your mass loss or mass data column. If you have mass loss data you can specify with `mass_loss` argument, if it's mass remaining data you can use the `mass` argument. You only need to provide one. The function defaults to temperature data in Celsius, but you can also indicate the data is provided in Kelvin, by adding `temp_units = 'K'`.

```{r}
tmp <- process(juncus, 
               init_mass = 18.96, 
               temp = 'temp_C', 
               mass_loss = 'mass_loss')
```

The default plot function for the derivative data shows you both the mass with temperature curve and the derivative rate of mass loss curve.

Processed data then needs to be deconvolved into its constituent parts. The deconvolve function takes care of this step, by cropping the derivative data to exclude dehydration and then running the Fraser-Suzuki mixture model and estimating individual peak parameters and weights.

```{r}
output <- deconvolve(tmp)
```

Although most biomass samples have only three main components (corresponding to hemicellulose, cellulose, and lignin), some have a second hemicellulose peak in the low temperature range. The function will decide whether three or four peaks are best, but you can override it by modifying the `n_peaks` argument. The function also has built in starting values for the nonlinear optimisation. If you'd like to modify those or the upper and lower bounds for the estimates, you can also do so with the `start_vec`, `lower_vec`, and `upper_vec` arguments to `deconvolve()`.

The `deconvolve()` function results in a variety of outputs. You can use a accessor functions to look at these. `component_weights()` will display the weights of each carbon component, `rate_data()` will show you the modified dataset used for fitting, `model_fit()` will show you the model fit, and `temp_bounds()` will print the temperature values at which the data were cropped for analysis. You can also plot the resulting output using the default plotting function, which can be in black and white or in colour.

# Contribution

This is still a work in progress! If you see any mistakes, or find that the code is not functioning well on your data, let us know by logging a bug on the [issues page](http://www.github.com/smwindecker/mixchar/issues). 

# Acknowledgements

Thank you to Nick Tierney and David Wilkinson for valuable feedback during development. Thanks to the Holsworth Wildlife Reseach Endowment & The Ecological Society of Australia for support on this project.

Owner

  • Name: Saras Windecker
  • Login: smwindecker
  • Kind: user
  • Location: Melbourne, VIC, Australia
  • Company: University of Melbourne

Postdoctoral Research Fellow with Quantitative and Applied Ecology Group University of Melbourne @zoonproject @qaecology

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 345
  • Total Committers: 7
  • Avg Commits per committer: 49.286
  • Development Distribution Score (DDS): 0.104
Past Year
  • Commits: 2
  • Committers: 1
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Saras Windecker w****s@s****u 309
Nick Golding g****5@g****m 17
Saras Mei Windecker w****s@6****l 7
Saras Windecker s****r@g****m 5
Rekyt m****e@e****r 3
smwindecker s****r 3
James J Balamuta b****2@i****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Total issue authors: 1
  • Total pull request authors: 3
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.8
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • lijianweicode (1)
Pull Request Authors
  • Rekyt (2)
  • goldingn (2)
  • coatless (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 206 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 1
  • Total maintainers: 1
cran.r-project.org: mixchar

Mixture Model for the Deconvolution of Thermal Decay Curves

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 206 Last month
Rankings
Stargazers count: 17.4%
Dependent repos count: 19.3%
Forks count: 21.0%
Dependent packages count: 28.8%
Average: 30.5%
Downloads: 66.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.2.0 depends
  • graphics * imports
  • minpack.lm * imports
  • nloptr * imports
  • stats * imports
  • tmvtnorm * imports
  • zoo * imports
  • covr * suggests
  • devtools * suggests
  • knitr * suggests
  • rmarkdown * suggests
  • testthat * suggests