MyNixOS website logo
Description

Estimate Chla Concentrations of Phytoplankton Groups.

Determine the chlorophyll a (Chl a) concentrations of different phytoplankton groups based on their pigment biomarkers. The method uses non-negative matrix factorisation and simulated annealing to minimise error between the observed and estimated values of pigment concentrations (Hayward et al. (2023) <doi:10.1002/lom3.10541>). The approach is similar to the widely used 'CHEMTAX' program (Mackey et al. 1996) <doi:10.3354/meps144265>, but is more straightforward, accurate, and not reliant on initial guesses for the pigment to Chl a ratios for phytoplankton groups.

phytoclass

The phytoclass package uses non-negative matrix factorization and simulated annealing to determine the chl a concentrations of different phytoplankton groups from pigment concentrations.

The main function is ‘Simulated annealing’. This can be used in conjuction with the cluster function, which clusters larger datasets. To understand how to use your own matrices instead of the default dataset, please see the example in the vignette.

When setting up your matrices, it is important to ensure that pigments are in the same order in the Sm and Fm matrices. Chlorophyll a must be the final column.

There is a separate function when Divinyl chlorophyll a and Prochlorococcus are used. Here Divynl chlorophyll a must be the 2nd to last column (see ‘Fp’).

The ’Steepest Descent’function is similar to that of CHEMTAX, and is unconstrained by minimum and maximum values, unlike the simualted annealing function. I would use this with more caution.

Installation

It can be installed from CRAN with:

install.packages("phytoclass")

Or the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("AndyMcKenzieFromNZ/phytoclass")

Example

For the built-in samples matrix Sm of pigment samples:

library(phytoclass)
set.seed("84545")

Results <- simulated_annealing(Sm, niter = 5)
#> 
#> Condition number = 222
#> Current error:  0.0334
#> Neighbour's error:  0.0334
#> Temperature (%):  99.1
#> 
#> Current error:  0.0292
#> Neighbour's error:  0.0292
#> Temperature (%):  98.21
#> 
#> Current error:  0.0289
#> Neighbour's error:  0.0289
#> Temperature (%):  97.32
#> 
#> Current error:  0.0289
#> Neighbour's error:  0.0291
#> Temperature (%):  96.45
#> 
#> Current error:  0.0289
#> Neighbour's error:  0.0295
#> Temperature (%):  95.58
#> 

Results$RMSE
#> [1] 0.02887119
Results$MAE
#>          Per       X19but         Fuco         Neox         Viol       X19hex 
#> 6.762107e-05 2.117964e-05 4.868073e-03 9.245641e-03 4.011338e-03 3.175673e-04 
#>         Allo          Zea        Chl_b        Tchla 
#> 1.271716e-04 5.946094e-05 3.004235e-03 6.487357e-02
Results$Error
#>                 Per        X19but         Fuco        Neox          Viol
#>  [1,] -3.253203e-04  5.363457e-05 -0.012327735 0.004113861  0.0016646554
#>  [2,] -5.150124e-04  8.490852e-05 -0.019515955 0.003010191  0.0014654390
#>  [3,] -4.308139e-04  7.102697e-05 -0.016325323 0.005076986 -0.0044188896
#>  [4,] -3.763864e-04  6.205367e-05 -0.014262838 0.005379809 -0.0046022039
#>  [5,] -8.763904e-05  1.444878e-05 -0.003321006 0.008703848 -0.0043486318
#>  [6,] -3.571294e-05  5.887883e-06 -0.001353311 0.008530798 -0.0043429984
#>  [7,]  0.000000e+00 -3.251896e-05  0.007474381 0.007151298  0.0007978740
#>  [8,]  0.000000e+00 -2.319004e-05  0.005330158 0.002588776 -0.0004659437
#>  [9,]  0.000000e+00 -5.749674e-06  0.001321544 0.002274345  0.0015089554
#> [10,]  0.000000e+00 -3.081395e-05  0.007082488 0.007245941  0.0015906999
#> [11,]  0.000000e+00 -1.341877e-05  0.003084262 0.006617658 -0.0053975686
#> [12,]  0.000000e+00 -1.506524e-05  0.003462698 0.015971833 -0.0069289827
#> [13,]  0.000000e+00 -1.333348e-05  0.003064657 0.014568176 -0.0090934337
#> [14,]  0.000000e+00 -2.479751e-05  0.005699628 0.016813884  0.0011476034
#> [15,] -1.006561e-04  1.659487e-05 -0.003814278 0.013939555  0.0089862189
#> [16,]  0.000000e+00 -1.042338e-05  0.002395780 0.016908409  0.0116951587
#> [17,] -4.521531e-05  7.454510e-06 -0.001713396 0.009954774  0.0103869980
#> [18,]  0.000000e+00 -1.805572e-05  0.004150050 0.010623890  0.0015261320
#> [19,]  0.000000e+00 -7.308043e-06  0.001679731 0.009895152  0.0030226855
#> [20,]  0.000000e+00 -7.329856e-06  0.001684744 0.005672210  0.0024367842
#> [21,]  0.000000e+00 -8.577450e-06  0.001971500 0.008121745  0.0028953335
#> [22,] -6.645487e-06  1.095621e-06 -0.000251825 0.003468847  0.0009586975
#> [23,] -3.760915e-05  6.200505e-06 -0.001425166 0.006553443  0.0010144299
#> [24,]  0.000000e+00 -2.107489e-05  0.004843997 0.016800268  0.0067781747
#> [25,]  0.000000e+00 -8.859498e-06  0.002036328 0.008479515  0.0030955093
#> [26,]  0.000000e+00 -8.626625e-06  0.001982802 0.010122495  0.0022323503
#> [27,]  0.000000e+00 -1.364556e-05  0.003136388 0.012557039  0.0036196604
#> [28,]  0.000000e+00 -1.515004e-05  0.003482189 0.011933333  0.0081960749
#> [29,]  0.000000e+00 -1.296497e-05  0.002979957 0.015045507 -0.0017107194
#>              X19hex          Allo           Zea         Chl_b        Tchla
#>  [1,] -8.041962e-04 -3.376568e-04 -1.505768e-04 -3.484168e-03  0.164283515
#>  [2,] -1.273118e-03 -5.345421e-04 -2.383771e-04 -4.149725e-03  0.260076134
#>  [3,] -1.064978e-03 -4.471507e-04 -1.994052e-04 -1.010734e-03  0.217556704
#>  [4,] -9.304321e-04 -3.906592e-04 -1.742130e-04 -6.888635e-04  0.190071345
#>  [5,] -2.166449e-04 -9.096239e-05 -4.056434e-05  1.669699e-06  0.044256839
#>  [6,] -8.828286e-05 -3.706720e-05 -1.652998e-05  3.107503e-04  0.018034677
#>  [7,]  4.875891e-04  2.047233e-04  9.129562e-05 -8.967796e-04 -0.099606096
#>  [8,]  3.477113e-04  1.459931e-04  6.510506e-05  4.442483e-04 -0.071031463
#>  [9,]  8.621056e-05  3.619711e-05  1.614197e-05 -1.100851e-03 -0.017611341
#> [10,]  4.620240e-04  1.939894e-04  8.650885e-05 -1.393601e-03 -0.094383599
#> [11,]  2.012009e-04  8.447795e-05  3.767263e-05  1.899010e-03 -0.041101900
#> [12,]  2.258881e-04  0.000000e+00  4.229503e-05  7.811498e-04 -0.046145070
#> [13,]  1.999220e-04  0.000000e+00  3.743317e-05  2.175209e-03 -0.040840647
#> [14,]  3.718136e-04  1.561129e-04  6.961795e-05 -3.382436e-03 -0.075955153
#> [15,] -2.488233e-04 -1.044731e-04 -4.658939e-05 -8.274774e-03  0.050830340
#> [16,]  1.562880e-04  6.562043e-05  2.926319e-05 -9.477557e-03 -0.031926963
#> [17,] -1.117729e-04 -4.692992e-05 -2.092822e-05 -7.880297e-03  0.022833282
#> [18,]  2.707273e-04  1.136699e-04  5.069067e-05 -2.486666e-03 -0.055304947
#> [19,]  1.095767e-04  4.600783e-05  2.051702e-05 -3.474013e-03 -0.022384651
#> [20,]  1.099038e-04  4.614515e-05  2.057826e-05 -2.265071e-03 -0.022451463
#> [21,]  1.286102e-04  5.399939e-05  2.408083e-05 -2.988952e-03 -0.026272862
#> [22,] -1.642773e-05 -6.897489e-06 -3.075910e-06 -1.281776e-03  0.003355904
#> [23,] -9.297032e-05 -3.903532e-05 -1.740766e-05 -2.130429e-03  0.018992245
#> [24,]  3.159967e-04  1.326771e-04  5.916686e-05 -6.495509e-03 -0.064552718
#> [25,]  1.328392e-04  5.577503e-05  2.487267e-05 -3.162350e-03 -0.027136782
#> [26,]  1.293475e-04  5.430897e-05  2.421889e-05 -3.059299e-03 -0.026423488
#> [27,]  2.046014e-04  8.590570e-05  3.830933e-05 -4.152928e-03 -0.041796559
#> [28,]  2.271596e-04  9.537719e-05  4.253311e-05 -6.407416e-03 -0.046404819
#> [29,]  1.943966e-04  8.162104e-05  3.639860e-05 -1.866587e-03 -0.039711899
Results$`F matrix`
#>                      Per X19but   Fuco   Neox   Viol X19hex   Allo      Zea
#> Chlorophytes      0.0000 0.0000 0.0000 0.0223 0.0559 0.0000 0.0000 0.008800
#> Cryptophytes      0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5406 0.000000
#> Diatoms-2         0.0000 0.0000 0.7893 0.0000 0.0000 0.0000 0.0000 0.000000
#> Dinoflagellates-1 0.5611 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.000000
#> Haptophytes       0.0000 0.1078 0.2585 0.0000 0.0000 0.4263 0.0000 0.000000
#> Pelagophytes      0.0000 0.5890 0.9259 0.0000 0.0000 0.0000 0.0000 0.000000
#> Syn               0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.212254
#>                    Chl_b Tchla
#> Chlorophytes      0.7834     1
#> Cryptophytes      0.0000     1
#> Diatoms-2         0.0000     1
#> Dinoflagellates-1 0.0000     1
#> Haptophytes       0.0000     1
#> Pelagophytes      0.0000     1
#> Syn               0.0000     1
Results$`Class abudances`
#> NULL
Results$Figure
Metadata

Version

1.2.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows