{
  "_id": "6af060e294cdbf48db2aff35",
  "Package": "nutrigon",
  "Title": "Angular Separation Between Nutritional Optima",
  "Version": "0.1.0",
  "Authors@R": "person(\"Juliano\", \"Morimoto\", email = \"juliano.morimoto@abdn.ac.uk\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-3561-1920\"))",
  "Description": "Fits response surfaces (ordinary least squares,\ngeneralized linear models with any family including\nquasi-families, or linear mixed-effects models) to trait data\ncollected under the Geometric Framework for Nutrition and\ncomputes the angular separation (theta) between the nutritional\noptima of two traits, with percentile bootstrap confidence\nintervals that propagate surface-estimation uncertainty (case\nor stratified resampling; paired or unpaired). Provides a\ndesign-matched coverage check that simulates validation\nconfigurations on the user's own design and at the\nsignal-to-noise ratio of the fitted surfaces, an equivalence\ntest for alignment of optima, local Gaussian and mean\ncurvature, and a surface-area ratio. Includes the Drosophila\nlifespan and fecundity dataset of Lee et al. (2008) \"Lifespan\nand reproduction in Drosophila: new insights from nutritional\ngeometry\" <doi:10.1073/pnas.0710787105> as a worked example.\nThe angular approach was introduced in Morimoto (2023)\n\"Nutrigonometry I: using right-angle triangles to quantify\nnutritional trade-offs in performance landscapes\"\n<doi:10.1086/723599>.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "URL": "https://github.com/jmor2753/nutrigon",
  "BugReports": "https://github.com/jmor2753/nutrigon/issues",
  "NeedsCompilation": "no",
  "Repository": "https://jmor2753.r-universe.dev",
  "Date/Publication": "2026-10-23 12:28:03 UTC",
  "RemoteUrl": "https://github.com/jmor2753/nutrigon",
  "RemoteRef": "HEAD",
  "RemoteSha": "bd9496233cc3d033ceb718d525476f3b41893038",
  "Packaged": {
    "Date": "2026-11-08 11:40:56 UTC",
    "User": "root"
  },
  "Author": "Juliano Morimoto [aut, cre] (ORCID:\n<https://orcid.org/0000-0003-3561-1920>)",
  "Maintainer": "Juliano Morimoto <juliano.morimoto@abdn.ac.uk>",
  "_user": "jmor2753",
  "_type": "src",
  "_file": "nutrigon_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/b3eff8c0dc755ff2ce38ab862f343521dddbf2d43a890c5d810ccea1a9987187",
  "_filesize": 2319235,
  "_sha256": "b3eff8c0dc755ff2ce38ab862f343521dddbf2d43a890c5d810ccea1a9987187",
  "_expires": "2027-02-16T11:45:36.000Z",
  "_created": "2026-11-08T11:40:56.000Z",
  "_published": "2026-11-08T11:45:38.493Z",
  "_upstream": "https://github.com/jmor2753/nutrigon",
  "_status": "success",
  "_maintainer": {
    "name": "Juliano Morimoto",
    "email": "juliano.morimoto@abdn.ac.uk",
    "orcid": "0000-0003-3561-1920"
  },
  "_jobs": [
    {
      "job": 128719973274,
      "time": 131,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13614994410"
    },
    {
      "job": 128719973204,
      "time": 119,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13615743051"
    },
    {
      "job": 128719973180,
      "time": 237,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13615489116"
    },
    {
      "job": 128719973252,
      "time": 182,
      "config": "macos-release-arm64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13615628591"
    },
    {
      "job": 128719278384,
      "time": 188,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13615492287"
    },
    {
      "job": 128719973172,
      "time": 109,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13615947206"
    },
    {
      "job": 128719973305,
      "time": 99,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13615578588"
    },
    {
      "job": 128719973198,
      "time": 68,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13615867601"
    },
    {
      "job": 128719973226,
      "time": 96,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13615723073"
    }
  ],
  "_buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161",
  "_commit": {
    "id": "bd9496233cc3d033ceb718d525476f3b41893038",
    "author": "ju_morimoto <71599487+jmor2753@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Update cran-comments.md",
    "time": 1792758483
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "ggdendro",
      "role": "Suggests"
    },
    {
      "package": "ggrepel",
      "role": "Suggests"
    },
    {
      "package": "patchwork",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "lme4",
      "role": "Suggests"
    },
    {
      "package": "lmerTest",
      "role": "Suggests"
    },
    {
      "package": "pracma",
      "role": "Suggests"
    }
  ],
  "_owner": "jmor2753",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-28",
      "n": 14
    },
    {
      "week": "2026-29",
      "n": 1
    },
    {
      "week": "2026-43",
      "n": 7
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "jmor2753",
      "count": 23,
      "uuid": 71599487
    }
  ],
  "_userbio": {
    "uuid": 71599487,
    "type": "user",
    "name": "ju_morimoto",
    "followers": 0,
    "description": "Interdisciplinary scientist"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/nutrigon"
  },
  "_devurl": "https://github.com/jmor2753/nutrigon",
  "_searchresults": 0,
  "_rbuild": "4.6.2",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/nutrigon.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/jmor2753/nutrigon",
  "_realowner": "jmor2753",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2026-11-07"
    }
  ],
  "_exports": [
    "nutrigon_build_grid",
    "nutrigon_check",
    "nutrigon_coefs",
    "nutrigon_compare",
    "nutrigon_curvature",
    "nutrigon_elongation",
    "nutrigon_equivalence",
    "nutrigon_fit",
    "nutrigon_grid",
    "nutrigon_hull",
    "nutrigon_matrix",
    "nutrigon_region_polygon",
    "nutrigon_snr"
  ],
  "_datasets": [
    {
      "name": "lee_drosophila",
      "title": "Lee et al. (2008) Drosophila lifespan and fecundity data",
      "object": "lee_drosophila",
      "class": [
        "data.frame"
      ],
      "fields": [
        "carb_eaten",
        "protein_eaten",
        "lifespan",
        "lifetimeegg",
        "dailyeggs",
        "treatment",
        "replicate",
        "Ratio",
        "Food",
        "P_fixed",
        "C_fixed"
      ],
      "rows": 973,
      "table": true,
      "tojson": true
    },
    {
      "name": "nutrigon_validation_grid",
      "title": "Pre-built generic validation grid (seed = 2025)",
      "object": "nutrigon_validation_grid",
      "class": [
        "data.frame"
      ],
      "fields": [
        "max_elongation",
        "min_edge_distance",
        "angle_diff",
        "coverage",
        "n_valid_sims"
      ],
      "rows": 1000,
      "table": true,
      "tojson": true
    },
    {
      "name": "zanco_survival",
      "title": "Zanco et al. (2025) Drosophila viability data",
      "object": "zanco_survival",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Code",
        "Block",
        "Temperature",
        "Population",
        "Food",
        "Ratio",
        "Replicate",
        "Ratio_Num",
        "Prot",
        "Carb",
        "Total_Eggs",
        "Total_Adults",
        "dead_adults",
        "Prop_viable",
        "design_id"
      ],
      "rows": 1495,
      "table": true,
      "tojson": true
    },
    {
      "name": "zanco_tradeoff_matrix",
      "title": "Pre-computed pairwise angular trade-off matrix for the Zanco example",
      "object": "zanco_tradeoff_matrix",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "zanco_wingsize",
      "title": "Zanco et al. (2025) Drosophila wing size data",
      "object": "zanco_wingsize",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Food",
        "Ratio",
        "Replicate",
        "Prot",
        "Carb",
        "Population",
        "Temperature",
        "WingSize",
        "design_id"
      ],
      "rows": 2073,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "lee_drosophila",
      "title": "Lee et al. (2008) Drosophila lifespan and fecundity data",
      "topics": [
        "lee_drosophila"
      ]
    },
    {
      "page": "nutrigon_build_grid",
      "title": "Build a validation grid for the design-matched coverage check",
      "topics": [
        "nutrigon_build_grid"
      ]
    },
    {
      "page": "nutrigon_check",
      "title": "Design-matched coverage check for one result",
      "topics": [
        "nutrigon_check"
      ]
    },
    {
      "page": "nutrigon_coefs",
      "title": "Extract fitted quadratic coefficients from a 'nutrigon_fit' object",
      "topics": [
        "nutrigon_coefs"
      ]
    },
    {
      "page": "nutrigon_compare",
      "title": "Compare two nutritional optima and bootstrap the angular separation",
      "topics": [
        "nutrigon_compare"
      ]
    },
    {
      "page": "nutrigon_curvature",
      "title": "Local Gaussian and mean curvature, and surface-area ratio, of a fitted surface",
      "topics": [
        "nutrigon_curvature"
      ]
    },
    {
      "page": "nutrigon_elongation",
      "title": "Curvature elongation ratio of a fitted quadratic surface",
      "topics": [
        "nutrigon_elongation"
      ]
    },
    {
      "page": "nutrigon_equivalence",
      "title": "Equivalence test for alignment of two nutritional optima",
      "topics": [
        "nutrigon_equivalence"
      ]
    },
    {
      "page": "nutrigon_fit",
      "title": "Fit a quadratic response surface and locate the nutritional optimum",
      "topics": [
        "nutrigon_fit"
      ]
    },
    {
      "page": "nutrigon_grid",
      "title": "Build a prediction grid inside the design hull for surface plotting",
      "topics": [
        "nutrigon_grid"
      ]
    },
    {
      "page": "nutrigon_hull",
      "title": "Design hull as a closed polygon for plotting",
      "topics": [
        "nutrigon_hull"
      ]
    },
    {
      "page": "nutrigon_matrix",
      "title": "Angular trade-off matrix for N surfaces, with joint bootstrap uncertainty",
      "topics": [
        "nutrigon_matrix"
      ]
    },
    {
      "page": "nutrigon_region_polygon",
      "title": "Peak (or valley) region as a convex hull polygon for plotting",
      "topics": [
        "nutrigon_region_polygon"
      ]
    },
    {
      "page": "nutrigon_snr",
      "title": "Signal-to-noise ratio of a fitted surface",
      "topics": [
        "nutrigon_snr"
      ]
    },
    {
      "page": "nutrigon_validation_grid",
      "title": "Pre-built generic validation grid (seed = 2025)",
      "topics": [
        "nutrigon_validation_grid"
      ]
    },
    {
      "page": "zanco_survival",
      "title": "Zanco et al. (2025) Drosophila viability data",
      "topics": [
        "zanco_survival"
      ]
    },
    {
      "page": "zanco_tradeoff_matrix",
      "title": "Pre-computed pairwise angular trade-off matrix for the Zanco example",
      "topics": [
        "zanco_tradeoff_matrix"
      ]
    },
    {
      "page": "zanco_wingsize",
      "title": "Zanco et al. (2025) Drosophila wing size data",
      "topics": [
        "zanco_wingsize"
      ]
    }
  ],
  "_pkglogo": "https://github.com/jmor2753/nutrigon/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/jmor2753/nutrigon/raw/HEAD/README.md",
  "_rundeps": [
    "withr"
  ],
  "_vignettes": [
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting started with nutrigon: the Lee et al. (2008) example",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Fitting the two surfaces",
        "Comparing the optima",
        "Design-matched coverage check",
        "Small angles and alignment",
        "Plotting the surfaces",
        "Local curvature and surface area",
        "References"
      ],
      "created": "2026-07-07 12:23:41",
      "modified": "2026-10-23 12:15:13",
      "commits": 5
    },
    {
      "source": "zanco-tradeoff-matrix.Rmd",
      "filename": "zanco-tradeoff-matrix.html",
      "title": "The Zanco et al. (2025) trade-off matrix: unpaired comparisons and clustering",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "How the matrix was built",
        "Headline result: viability-wing size trade-off by temperature and population",
        "Hierarchical clustering and multidimensional scaling",
        "Surface overlay plots",
        "Refitting viability with a quasibinomial GLM",
        "Joint uncertainty across the matrix",
        "Headline strip chart",
        "References"
      ],
      "created": "2026-07-07 12:23:41",
      "modified": "2026-10-23 12:15:13",
      "commits": 4
    }
  ],
  "_score": 4.477121254719663,
  "_indexed": true,
  "_nocasepkg": "nutrigon",
  "_universes": [
    "jmor2753"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-11-08T11:42:56.000Z",
      "distro": "resolute",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/8526fe2d42d2ee527c2b2c480552ce9f0970ff74d25f4778b67db325c658484c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-11-08T11:42:43.000Z",
      "distro": "resolute",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/17f431f68ef927f54cc8c3bc8c29c4723b65925c5b9578fecba724b5560965d7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-11-08T11:43:59.000Z",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/6cb40bacc9dbae877c37ad9cb2c6ded9eeebfa820a7023f2019e242df0e97494",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    },
    {
      "r": "4.6.2",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-11-08T11:43:06.000Z",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/c9ae77718f2fde1aab61656befd2497accb9f171408bb33c5318b59cee072124",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-11-08T11:43:02.000Z",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/f82f0d7897ef0aa7074341d941f9a05b5ace2c1b1fdb3a41f10d54d988a2c410",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-11-08T11:42:11.000Z",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/fea31a65ffb7ce444f9317e2a8a9928e24c193a0b55131c123684152bf436042",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-11-08T11:41:58.000Z",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/41597839ba40e11974be9e3fa384d84c473a0fc03106ca25acdc32c5bf7891ca",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-11-08T11:42:21.000Z",
      "commit": "bd9496233cc3d033ceb718d525476f3b41893038",
      "fileid": "https://r2.ropensci.org/fc5c527ba31b418eba0cc29e3aec4ee0d2b4d9205a4ece9935e426fa94ce4f64",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jmor2753/actions/runs/42476596161"
    }
  ]
}