leafdecay package

The leafdecay package is designed to facilitate the analysis of leaf litter decomposition.

Leaf litter decomposition is an ecosystem process widely used to determine the ecological integrity of streams, as it reflects the chemical (e.g., nutrients), physical (e.g., discharge, geomorphology), and biological (e.g., microorganisms) conditions of the streams.
The organic matter breakdown is a source of dissolved and particulate organic carbon, and influences directly and indirectly on the energy source of stream food webs.
Decomposition rates can be affected by mechanical factors, fungal biomass, and macroinvertebrate abundance and richness.


image


To install the latest developmental version from github you will need the R package devtools (NOT YET IN CRAN):
devtools::install_github("PEGutierrezF/leafdecay")


leafdecay is under development and we welcome comments, suggestions, or feature requests. If you find a bug in the newest version, please email Pablo E. Gutiérrez-Fonseca (pabloe.gutierrezfonseca at gmail.com)


Please cite leafdecay as follows:
Gutiérrez-Fonseca, P.E. & A. M. Alonso-Rodríguez. 2020. leafdecay: a package for leaf litter decomposition analysis in R. R package version 1.0.0.



Example
July 25, 2020

Classen-Rodríguez, L., Gutiérrez-Fonseca, P.E. & A., Ramírez. 2019. Leaf-litter decomposition and macroinvertebrate assemblages along an urban stream gradient in Puerto Rico. Biotropica, 51, 641-651. PDF

Considerations before running leafdecay

To use the leafdecay package, leaf litter decomposition experiments must be designed with:
- An appropriate number of replicates (three to five). Each replica will be composed of several leaf packs that will be periodically sampled. We recommend that replicas be independent. This will facilitate the calculation of the decomposition rate for each replica and subsequent analyzes (e.g., ANOVAs).
- Consider using extra leaf packs to calculate mass loss due to handling (more details below).
- Leaf packs should be periodically sampled (e.g., day: 1, 3, 7, 14, 21 ...) throughout the study (1-2 months). However, this will depend on the conditions of the stream and the leaf type.
For an appropriate design of a litter decomposition experiment, we strongly recommend:
Benfield, E.F., Fritz, K.M., & S.D., Tiegs. (2017). Leaf-litter breakdown. In G. Lamberti, & F. R. Hauer (Eds.). Methods in stream ecology (3rd ed). pp.71-82. Cambridge, MA: Academic Press.


Installation of the leafdecay package

The package offers functions to:
- Quantify mass loss due to handling.
- Determine the leaf mass remaining.
- Calculate the decomposition rate (-k).
- Calculate the regression fit of leaf mass vs. time.
- Visually explore data using 5 types of graphs.


Install leafdecay package

devtools::install_github("PEGutierrezF/leafdecay")
library(leafdecay)

Structure of the input files

leafdecay requires 7 input objects:
Day: Time in which a leaf pack is collected.
Treatment: Different groups evaluated.
Replicate: Number of independent samples deployed in different pools.
InitialWt: Initial mass (dry mass) of the leaf packs.
FinalWt: Final mass (dry mass) of the leaf packs.
Frac.InitialWt: Initial mass of a fraction of the leaf pack to be burned (AFDM).
Frac.FinalWt : Final mass of a fraction of the leaf pack that has been burned (AFDM).

The easiest way to get these objects into leafdecay is to create an Excel file or similar, and then copying it across as in the following example:

RioPriedras
##    Day Treatment Replicate InitialWt FinalWt InitialFraction FinalFraction
## 1    0   Control         1      5.01    4.99          1.1071        0.3858
## 2    0   Control         1      5.01    4.94          1.1964        0.3504
## 3    0   Control         1      5.01    4.84          1.0647        0.4248
## 4    0   Control         1      5.01    4.82          1.0005        0.3333
## 5    0   Control         1      5.01    4.96          1.0453        0.3417
## 6    0   Control         1      5.00    4.97          1.1212        0.3467
## 7    2        CC         1      5.00    4.65          1.0081        0.3229
## 8    4        CC         1      5.00    4.64          1.0898        0.3489
## 9    8        CC         1      5.00    4.17          1.0956        0.4098
## 10  16        CC         1      5.00    4.00          1.0060        0.3345
## 11  32        CC         1      5.01    4.26          1.0472        0.3921
## 12  44        CC         1      5.00    3.70          1.0143        0.3470
## 13   2        CC         2      5.00    4.63          1.0972        0.3605
## 14   4        CC         2      5.01    4.37          1.0750        0.3181
## 15   8        CC         2      5.00    3.72          1.0420        0.3762
## 16  16        CC         2      5.00    3.99          1.1052        0.3595
## 17  32        CC         2      5.01    3.30          1.0843        0.3908
## 18  44        CC         2      5.00    3.75          1.1112        0.3366
## 19   2        CC         3      5.00    4.67          1.1307        0.3304
## 20   4        CC         3      5.00    4.37          1.0295        0.2948
## 21   8        CC         3      5.00    4.12          1.0876        0.3787
## 22  16        CC         3      5.01    3.64          1.0922        0.3511
## 23  32        CC         3      5.00    3.47          1.0177        0.3385
## 24  44        CC         3      5.00    3.30          1.0061        0.3318
## 25   2       QLC         1      5.01    4.91          1.1301        0.2833
## 26   4       QLC         1      5.00    4.52          1.0000        0.2189
## 27   8       QLC         1      5.01    4.54          1.0449        0.3299
## 28  16       QLC         1      5.00    3.66          1.0420        0.3175
## 29  32       QLC         1      5.00    2.46          1.0661        0.3336
## 30  44       QLC         1      5.01    1.82          1.0840        0.2582
## 31   2       QLC         2      5.00    4.66          1.1228        0.3676
## 32   4       QLC         2      5.01    4.25          1.0606        0.3627
## 33   8       QLC         2      5.00    4.02          1.0922        0.3539
## 34  16       QLC         2      5.00    3.33          1.0006        0.3414
## 35  32       QLC         2      5.00    2.29          1.1265        0.4577
## 36  44       QLC         2      5.00    0.90          0.6735        0.2734
## 37   2       QLC         3      5.01    4.68          1.1719        0.3842
## 38   4       QLC         3      5.00    4.58          1.1156        0.3237
## 39   8       QLC         3      5.01    4.02          1.1061        0.3903
## 40  16       QLC         3      5.00    3.21          1.0003        0.3110
## 41  32       QLC         3      5.01    0.90          1.0300        0.2147
## 42  44       QLC         3      5.01    0.37          0.1770        0.0671

Step 1: Calculating the loss of litter mass by handling

Dried leaves are easily broken in handling. Therefore, extra leaf packs are necessary to account for losses during fashioning, transporting, and placing the packs in the stream. The extra leaf packs will be used to correct by "handling losses", and are often called Control.

To load the data into leafdecay use:

control <- manipulation(data= RioPriedras,
                        InitialWt= InitialWt,
                        FinalWt= FinalWt,
                        Treatment= Control)
control
## [1] 98.23666

This means that we lost 1.76334% due to handling.


Step 2: Percentage of AFDM Remaining

The AFDM() function convert leaf pack dry mass to AFDM remaining (AFDMrem) as percentage. Also, this function converts the values of AFDMrem to LN (Ln.AFDMrem), which makes it easy to compare the remaining leaf mass against time in the following function (slope.k()).

remaining <- AFDM(data= RioPriedras,
                InitialWt= InitialWt,
                FinalWt= FinalWt,
                Frac.InitialWt= InitialFraction,
                Frac.FinalWt= FinalFraction,
                Treatment= Treatment,
                Day= Day,
                Replicate= Replicate)

remaining
##    grp Day Replicate Treatment   AFDMrem Ln.AFDMrem
## 1    1   0         1        CC 98.236660   4.587379
## 2    1   2         1        CC 94.669342   4.550390
## 3    1   4         1        CC 94.465752   4.548237
## 4    1   8         1        CC 84.897023   4.441439
## 5    1  16         1        CC 81.435993   4.399817
## 6    1  32         1        CC 86.556221   4.460794
## 7    1  44         1        CC 75.328294   4.321856
## 8    2   0         2        CC 98.236660   4.587379
## 9    2   2         2        CC 94.262162   4.546080
## 10   2   4         2        CC 88.791240   4.486288
## 11   2   8         2        CC 75.735474   4.327247
## 12   2  16         2        CC 81.232403   4.397314
## 13   2  32         2        CC 67.050593   4.205447
## 14   2  44         2        CC 76.346244   4.335279
## 15   3   0         3        CC 98.236660   4.587379
## 16   3   2         3        CC 95.076522   4.554682
## 17   3   4         3        CC 88.968823   4.488286
## 18   3   8         3        CC 83.879073   4.429376
## 19   3  16         3        CC 73.958836   4.303509
## 20   3  32         3        CC 70.645724   4.257678
## 21   3  44         3        CC 67.184695   4.207445
## 22   4   0         1       QLC 98.236660   4.587379
## 23   4   2         1       QLC 99.763156   4.602799
## 24   4   4         1       QLC 92.022673   4.522035
## 25   4   8         1       QLC 92.245362   4.524452
## 26   4  16         1       QLC 74.513934   4.310986
## 27   4  32         1       QLC 50.083136   3.913684
## 28   4  44         1       QLC 36.979418   3.610361
## 29   5   0         2       QLC 98.236660   4.587379
## 30   5   2         2       QLC 94.872932   4.552538
## 31   5   4         2       QLC 86.353037   4.458444
## 32   5   8         2       QLC 81.843173   4.404805
## 33   5  16         2       QLC 67.795465   4.216495
## 34   5  32         2       QLC 46.622106   3.842075
## 35   5  44         2       QLC 18.323099   2.908162
## 36   6   0         3       QLC 98.236660   4.587379
## 37   6   2         3       QLC 95.089932   4.554823
## 38   6   4         3       QLC 93.244212   4.535222
## 39   6   8         3       QLC 81.679814   4.402807
## 40   6  16         3       QLC 65.352385   4.179794
## 41   6  32         3       QLC 18.286525   2.906164
## 42   6  44         3       QLC  7.517794   2.017273

Step 3: Calculating the decomposition rate (-k)

The slope.k() function relates the LN.AFDM values against time to obtain the slope that is equal to the decomposition rate (-k). This procedure is run for each replica, which allows subsequent analyzes using the different -k.

slope.k(remaining,Treatment, Replicate, Day, Ln.AFDMrem)
## # A tibble: 12 x 7
##    Treatment Replicate term        estimate std.error statistic  p.value
##    <chr>         <dbl> <chr>          <dbl>     <dbl>     <dbl>    <dbl>
##  1 CC                1 (Intercept)  4.54      0.0302     150.   2.46e-10
##  2 CC                1 Day         -0.00472   0.00139     -3.39 1.94e- 2
##  3 CC                2 (Intercept)  4.50      0.0511      88.1  3.57e- 9
##  4 CC                2 Day         -0.00611   0.00236     -2.59 4.87e- 2
##  5 CC                3 (Intercept)  4.53      0.0306     148.   2.69e-10
##  6 CC                3 Day         -0.00832   0.00141     -5.90 2.00e- 3
##  7 QLC               1 (Intercept)  4.64      0.0236     197.   6.40e-11
##  8 QLC               1 Day         -0.0229    0.00109    -21.1  4.44e- 6
##  9 QLC               2 (Intercept)  4.66      0.0942      49.5  6.39e- 8
## 10 QLC               2 Day         -0.0343    0.00434     -7.91 5.20e- 4
## 11 QLC               3 (Intercept)  4.78      0.106       44.9  1.03e- 7
## 12 QLC               3 Day         -0.0593    0.00490    -12.1  6.81e- 5

Step 4: Calculating the r-Squared

The rsquared.k() function shows the regression fit (LN.AFDM vs time) and the p-value for each replica.

rsquared.k(remaining,Treatment, Replicate, Day, Ln.AFDMrem)
## # A tibble: 6 x 14
##   Treatment Replicate r.squared adj.r.squared  sigma statistic p.value    df
##   <chr>         <dbl>     <dbl>         <dbl>  <dbl>     <dbl>   <dbl> <dbl>
## 1 CC                1     0.697         0.636 0.0573     11.5  1.94e-2     1
## 2 CC                2     0.573         0.488 0.0970      6.72 4.87e-2     1
## 3 CC                3     0.874         0.849 0.0581     34.8  2.00e-3     1
## 4 QLC               1     0.989         0.987 0.0447    445.   4.44e-6     1
## 5 QLC               2     0.926         0.911 0.179      62.5  5.20e-4     1
## 6 QLC               3     0.967         0.960 0.202     146.   6.81e-5     1
## # ... with 6 more variables: logLik <dbl>, AIC <dbl>, BIC <dbl>,
## #   deviance <dbl>, df.residual <int>, nobs <int>

Step 5: Plotting the data

Now, we show 5 plots that can be used to explore your data. However, we strongly suggest improving the plots for publications according to the requirements of journals.


Plot of mean (SD) by treatment.

plot.A(remaining)

Plots of replicate by treatment

plot.B(remaining)
## `geom_smooth()` using formula 'y ~ x'

Plots of treatment trends

plot.C(remaining)
## `geom_smooth()` using formula 'y ~ x'

Plots of replica trends

plot.D(remaining)
## `geom_smooth()` using formula 'y ~ x'

Plot by replica

plot.E(remaining)
## `geom_smooth()` using formula 'y ~ x'