{
  "_id": "6a104802acfb0bcc41c9f175",
  "Package": "phytoclass",
  "Title": "Estimate Chla Concentrations of Phytoplankton Groups",
  "Version": "3.0.0",
  "Authors@R": "c(person(\n\"Alexander\", \"Hayward\", role = c(\"aut\", \"cre\", \"cph\"), email = \"phytoclass@outlook.com\"\n), person(\ngiven=\"Tylar\", family=\"Murray\", role = c(\"aut\")\n), person(\ngiven=\"Sebastian\", family=\"Di Geronimo\", role = c(\"aut\")\n), person(\ngiven = \"Mohd Aasim Maqsood\", family = \"Khan\", role = c(\"aut\")\n), person(\ngiven=\"Andy\", family=\"McKenzie\", role = c(\"aut\")\n))",
  "Description": "Determine the chlorophyll a (Chl a) concentrations of\ndifferent phytoplankton groups based on their pigment\nbiomarkers. The method uses non-negative matrix factorisation\nand simulated annealing to minimise error between the observed\nand estimated values of pigment concentrations (Hayward et al.\n(2023) <doi:10.1002/lom3.10541>). The approach is similar to\nthe widely used 'CHEMTAX' program (Mackey et al. 1996)\n<doi:10.3354/meps144265>, but is more straightforward,\naccurate, and not reliant on initial guesses for the pigment to\nChl a ratios for phytoplankton groups.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "LazyData": "true",
  "VignetteBuilder": "knitr",
  "URL": "https://github.com/phytoclass/phytoclass/",
  "BugReports": "https://github.com/phytoclass/phytoclass/issues/",
  "Config/testthat/edition": "3",
  "Config/pak/sysreqs": "make libicu-dev",
  "Repository": "https://phytoclass.r-universe.dev",
  "Date/Publication": "2026-04-10 17:37:06 UTC",
  "RemoteUrl": "https://github.com/phytoclass/phytoclass",
  "RemoteRef": "HEAD",
  "RemoteSha": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-10 09:20:22 UTC",
    "User": "root"
  },
  "Author": "Alexander Hayward [aut, cre, cph],\nTylar Murray [aut],\nSebastian Di Geronimo [aut],\nMohd Aasim Maqsood Khan [aut],\nAndy McKenzie [aut]",
  "Maintainer": "Alexander Hayward <phytoclass@outlook.com>",
  "MD5sum": "292ce99162ac49a81def67c6207ef51b",
  "_user": "phytoclass",
  "_type": "src",
  "_file": "phytoclass_3.0.0.tar.gz",
  "_fileid": "d75a9a7211bb990b804ccb8796946f48214e84f92497ace4f5eb5a167c30998b",
  "_filesize": 1108639,
  "_sha256": "d75a9a7211bb990b804ccb8796946f48214e84f92497ace4f5eb5a167c30998b",
  "_created": "2026-05-10T09:20:22.000Z",
  "_published": "2026-05-22T12:11:46.463Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77376766811,
      "time": 159,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6902626968"
    },
    {
      "job": 77376767132,
      "time": 187,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6902629470"
    },
    {
      "job": 77376766913,
      "time": 180,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6902674820"
    },
    {
      "job": 77376766922,
      "time": 168,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6902703740"
    },
    {
      "job": 77376766401,
      "time": 331,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6902611763"
    },
    {
      "job": 77376766202,
      "time": 123,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7160159923"
    },
    {
      "job": 77376767107,
      "time": 103,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6902621816"
    },
    {
      "job": 77376767119,
      "time": 94,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6902621003"
    },
    {
      "job": 77376766846,
      "time": 108,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6902622241"
    }
  ],
  "_buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/phytoclass/phytoclass",
  "_commit": {
    "id": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
    "author": "Tylar <murray.tylar@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Merge pull request #70 from 7yl4r/main\n\n+ new matrix checks functionality. v3. fix failing vignette build.",
    "time": 1775842626
  },
  "_maintainer": {
    "name": "Alexander Hayward",
    "email": "phytoclass@outlook.com"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.8",
      "role": "Depends"
    },
    {
      "package": "bestNormalize",
      "role": "Imports"
    },
    {
      "package": "dynamicTreeCut",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "RcppML",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "progress",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "quarto",
      "role": "Suggests"
    },
    {
      "package": "here",
      "role": "Suggests"
    }
  ],
  "_owner": "phytoclass",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-21",
      "n": 3
    },
    {
      "week": "2025-22",
      "n": 1
    },
    {
      "week": "2025-23",
      "n": 2
    },
    {
      "week": "2025-24",
      "n": 1
    },
    {
      "week": "2025-25",
      "n": 3
    },
    {
      "week": "2025-26",
      "n": 4
    },
    {
      "week": "2025-27",
      "n": 1
    },
    {
      "week": "2025-28",
      "n": 3
    },
    {
      "week": "2025-29",
      "n": 1
    },
    {
      "week": "2025-30",
      "n": 3
    },
    {
      "week": "2025-31",
      "n": 3
    },
    {
      "week": "2025-35",
      "n": 1
    },
    {
      "week": "2025-42",
      "n": 22
    },
    {
      "week": "2025-45",
      "n": 1
    },
    {
      "week": "2026-04",
      "n": 1
    },
    {
      "week": "2026-05",
      "n": 4
    },
    {
      "week": "2026-11",
      "n": 1
    },
    {
      "week": "2026-15",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 3,
  "_contributors": [
    {
      "user": "andymckenziefromniwa",
      "count": 401,
      "uuid": 153784840
    },
    {
      "user": "sebastiandig",
      "count": 247,
      "uuid": 42149171
    },
    {
      "user": "7yl4r",
      "count": 95,
      "uuid": 1051390
    },
    {
      "user": "aasimkhan02",
      "count": 22,
      "uuid": 146741343
    },
    {
      "user": "andymckenziefromnz",
      "count": 19,
      "uuid": 14102532
    },
    {
      "user": "alexanderhayward1995",
      "count": 6,
      "uuid": 111029333
    }
  ],
  "_userbio": {
    "uuid": 181228310,
    "type": "organization",
    "name": "phytoclass"
  },
  "_downloads": {
    "count": 259,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/phytoclass"
  },
  "_devurl": "https://github.com/phytoclass/phytoclass",
  "_searchresults": 15,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/phytoclass.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/phytoclass/phytoclass",
  "_realowner": "phytoclass",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.0",
      "date": "2023-09-29"
    },
    {
      "version": "1.2.0",
      "date": "2024-05-11"
    },
    {
      "version": "2.0.0",
      "date": "2024-11-14"
    },
    {
      "version": "2.3.1",
      "date": "2026-01-30"
    }
  ],
  "_exports": [
    "Bounded_weights",
    "Cluster",
    "Matrix_checks",
    "NNLS_MF",
    "simulated_annealing",
    "simulated_annealing_Prochloro",
    "Steepest_Desc"
  ],
  "_datasets": [
    {
      "name": "Fm",
      "title": "Fm data",
      "object": "Fm",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Per",
        "X19but",
        "Fuco",
        "Neox",
        "Pra",
        "Viol",
        "X19hex",
        "Allo",
        "Zea",
        "Lut",
        "ChlcMGDG18",
        "ChlcMGDG14",
        "Chl_b",
        "Tchla"
      ],
      "rows": 8,
      "table": true,
      "tojson": true
    },
    {
      "name": "Fp",
      "title": "Fp data",
      "object": "Fp",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Per",
        "X19but",
        "Fuco",
        "Neox",
        "Pra",
        "Viol",
        "X19hex",
        "Allo",
        "Zea",
        "Lut",
        "ChlcMGDG18",
        "Chl_b",
        "Dvchla",
        "Tchla"
      ],
      "rows": 8,
      "table": true,
      "tojson": true
    },
    {
      "name": "min_max",
      "title": "min_max data",
      "object": "min_max",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Class",
        "Pig_Abbrev",
        "min",
        "max"
      ],
      "rows": 53,
      "table": true,
      "tojson": true
    },
    {
      "name": "Sm",
      "title": "Sm data",
      "object": "Sm",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Per",
        "X19but",
        "Fuco",
        "Neox",
        "Pra",
        "Viol",
        "X19hex",
        "Allo",
        "Zea",
        "Lut",
        "ChlcMGDG18",
        "ChlcMGDG14",
        "Chl_b",
        "Tchla"
      ],
      "rows": 29,
      "table": true,
      "tojson": true
    },
    {
      "name": "Sp",
      "title": "Sp data",
      "object": "Sp",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Per",
        "X19but",
        "Fuco",
        "Neox",
        "Pra",
        "Viol",
        "X19hex",
        "Allo",
        "Zea",
        "Lut",
        "ChlcMGDG18",
        "Chl_b",
        "Dvchla",
        "Tchla"
      ],
      "rows": 20,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "Bounded_weights",
      "title": "Add weights to the data, bound at a maximum.",
      "topics": [
        "Bounded_weights"
      ]
    },
    {
      "page": "Cluster",
      "title": "Cluster things",
      "topics": [
        "Cluster"
      ]
    },
    {
      "page": "convergence_figure",
      "title": "Convergence Figure",
      "topics": [
        "convergence_figure"
      ]
    },
    {
      "page": "Fm",
      "title": "Fm data",
      "topics": [
        "Fm"
      ]
    },
    {
      "page": "Fp",
      "title": "Fp data",
      "topics": [
        "Fp"
      ]
    },
    {
      "page": "Matrix_checks",
      "title": "This function ensures S and F matrices are properly formatted and ordered for the simulated annealing function.",
      "topics": [
        "Matrix_checks"
      ]
    },
    {
      "page": "min_max",
      "title": "min_max data",
      "topics": [
        "min_max"
      ]
    },
    {
      "page": "NNLS_MF",
      "title": "Performs the non-negative matrix factorisation for given phytoplankton pigments and pigment ratios, to attain an estimate of phytoplankton class abundances.",
      "topics": [
        "NNLS_MF"
      ]
    },
    {
      "page": "phyto_figure",
      "title": "Phytoplankton Class Abundance Figure",
      "topics": [
        "phyto_figure"
      ]
    },
    {
      "page": "simulated_annealing",
      "title": "This is the main phytoclass algorithm. It performs simulated annealing algorithm for S and F matrices. See the examples (Fm, Sm) for how to set up matrices, and the vignette for more detailed instructions. Different pigments and phytoplankton groups may be used.",
      "topics": [
        "simulated_annealing"
      ]
    },
    {
      "page": "simulated_annealing_Prochloro",
      "title": "Perform simulated annealing algorithm for samples with divinyl chlorophyll and prochlorococcus. Chlorophyll must be the final column of both S and F matrices, with Divinyl Chlorophyll a the 2nd to last column. See how the example Sp and Fp matrices are organised.",
      "topics": [
        "simulated_annealing_Prochloro"
      ]
    },
    {
      "page": "Sm",
      "title": "Sm data",
      "topics": [
        "Sm"
      ]
    },
    {
      "page": "Sp",
      "title": "Sp data",
      "topics": [
        "Sp"
      ]
    },
    {
      "page": "Steepest_Desc",
      "title": "Stand-alone version of steepest descent algorithm. This is similar to the CHEMTAX steepest descent algorithm. It is not required to use this function, and as results are not bound by minimum and maximum, results may be unrealistic.",
      "topics": [
        "Steepest_Desc"
      ]
    }
  ],
  "_readme": "https://github.com/phytoclass/phytoclass/raw/HEAD/README.md",
  "_rundeps": [
    "bestNormalize",
    "butcher",
    "class",
    "cli",
    "clock",
    "codetools",
    "cpp11",
    "crayon",
    "data.table",
    "diagram",
    "digest",
    "doParallel",
    "doRNG",
    "dplyr",
    "dynamicTreeCut",
    "farver",
    "foreach",
    "future",
    "future.apply",
    "generics",
    "ggplot2",
    "globals",
    "glue",
    "gower",
    "gtable",
    "hardhat",
    "hms",
    "ipred",
    "isoband",
    "iterators",
    "KernSmooth",
    "labeling",
    "LambertW",
    "lamW",
    "lattice",
    "lava",
    "lifecycle",
    "listenv",
    "lobstr",
    "lubridate",
    "magrittr",
    "MASS",
    "Matrix",
    "nnet",
    "nortest",
    "numDeriv",
    "parallelly",
    "pillar",
    "pkgconfig",
    "plyr",
    "prettyunits",
    "prodlim",
    "progress",
    "progressr",
    "purrr",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "RcppEigen",
    "RcppML",
    "RcppParallel",
    "recipes",
    "reshape2",
    "rlang",
    "rngtools",
    "rpart",
    "S7",
    "scales",
    "shape",
    "sparsevctrs",
    "SQUAREM",
    "stringi",
    "stringr",
    "survival",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "timeDate",
    "tzdb",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "common-issues-f-matrix.Rmd",
      "filename": "common-issues-f-matrix.html",
      "title": "Common Issues : F Matrix",
      "engine": "knitr::rmarkdown",
      "headings": [
        "non-conformable arguments",
        "non-numeric argument to binary operator",
        "x needs two+ dimensions",
        "subscript out of bounds:",
        "'x' must be numeric"
      ],
      "created": "2025-02-18 21:42:15",
      "modified": "2025-05-19 14:17:04",
      "commits": 2
    },
    {
      "source": "custom-example.Rmd",
      "filename": "custom-example.html",
      "title": "Example Usage : Custom F & MinMax Matrices",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2025-02-18 21:42:15",
      "modified": "2026-04-10 17:37:06",
      "commits": 7
    },
    {
      "source": "minmax.Rmd",
      "filename": "minmax.html",
      "title": "Table of Default F MinMax Values",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2025-02-18 21:42:15",
      "modified": "2025-05-19 14:17:04",
      "commits": 2
    },
    {
      "source": "minimal-example.Rmd",
      "filename": "minimal-example.html",
      "title": "Example : Minimal",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Preparing the S Matrix",
        "Simulated Annealing",
        "Viewing Results"
      ],
      "created": "2025-02-18 21:42:15",
      "modified": "2025-07-10 12:41:03",
      "commits": 4
    },
    {
      "source": "phytoclass-vignette.Rmd",
      "filename": "phytoclass-vignette.html",
      "title": "The phytoclass package",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "Main function: simulated_annealing()",
        "Cluster function",
        "Example without clustering",
        "Example with clustering",
        "Example using non-default values",
        "Helper functions",
        "Matrix_checks",
        "Steep_Desc",
        "Bounded_weights",
        "NNLS_MF",
        "References"
      ],
      "created": "2023-08-29 01:49:56",
      "modified": "2026-04-10 17:37:06",
      "commits": 31
    }
  ],
  "_score": 7.005395031886706,
  "_indexed": true,
  "_nocasepkg": "phytoclass",
  "_universes": [
    "phytoclass"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "3.0.0",
      "date": "2026-05-10T09:22:52.000Z",
      "distro": "noble",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "7b0877e4bb15c1f73c090a0b8d215425349548dee5ff9f016a62cb4779e9f844",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "3.0.0",
      "date": "2026-05-10T09:23:11.000Z",
      "distro": "noble",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "acf9c0671c70391def38ce0ed2f9e680a70a754f198c4eaf65e72ecbecf53724",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "3.0.0",
      "date": "2026-05-10T09:31:28.000Z",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "9e02151a287ac61e478574a1099f775bdb15db153cb860d738d18827f7e641ea",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "3.0.0",
      "date": "2026-05-10T09:35:59.000Z",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "f1f84f26ef8e1ec690ba94721d0d6f8222798a945d505de9e448478d6c9ea361",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "3.0.0",
      "date": "2026-05-10T09:21:52.000Z",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "e8ce5ec1cf50a834cc45314154fd2b3145088bb6813aab8ef86c96ee4c232ce2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "3.0.0",
      "date": "2026-05-10T09:21:38.000Z",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "41dfda31d377771643180c5d64c509338816659f59223034db71a30a826f577d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "3.0.0",
      "date": "2026-05-10T09:21:50.000Z",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "1a360782f6dcb05b3120f8e0902bf5d4b5cf3999207c491789057a9c1e1c1b04",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "3.0.0",
      "date": "2026-05-22T12:11:29.000Z",
      "commit": "3c2df0d2eaabede0d70ce065cf813addcde4b7e9",
      "fileid": "795c7824f55060d7ec74f5b6ec8f88429870c6a1c40b428c1c1a7218198fcd22",
      "status": "success",
      "buildurl": "https://github.com/r-universe/phytoclass/actions/runs/25624949765"
    }
  ]
}