{
  "_id": "6ad47569712795fb4dcb0021",
  "Package": "petrographer",
  "Title": "Petrographic Thin Section Analysis with Deep Learning",
  "Version": "0.0.0.9000",
  "Authors@R": "c(\nperson(\"Nicolas\", \"Gauthier\", , \"nicolas.gauthier@ufl.edu\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-2225-5827\")),\nperson(\"Ashley\", \"Rutkoski\", , \"arutkoski@ufl.edu\", role = c(\"aut\")))",
  "Description": "Automated petrographic analysis of thin section images\nusing deep learning models. Provides tools for training RF-DETR\ndetection and segmentation models, running predictions with\nSAHI (Slicing Aided Hyper Inference), calculating morphological\nproperties, and analyzing results. Supports both local and HPC\ntraining workflows with seamless R-Python integration via\nreticulate.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "VignetteBuilder": "quarto",
  "Config/testthat/edition": "3",
  "Remotes": [
    "flmnh-ai/hipergator"
  ],
  "URL": "https://flmnh-ai.github.io/petrographer/",
  "BugReports": "https://github.com/flmnh-ai/petrographer/issues",
  "SystemRequirements": "Python (>= 3.8), PyTorch, rfdetr, SAHI,\nsupervision, opencv-python, scikit-image, pycocotools",
  "Config/pak/sysreqs": "cmake make libicu-dev libpng-dev libuv1-dev\nlibopencv-dev libssl-dev python3 libx11-dev",
  "Repository": "https://flmnh-ai.r-universe.dev",
  "Date/Publication": "2026-04-21 17:27:24 UTC",
  "RemoteUrl": "https://github.com/flmnh-ai/petrographer",
  "RemoteRef": "HEAD",
  "RemoteSha": "cdaf5711967f2c2016b52ff728a364e441166f8e",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-18 07:13:40 UTC",
    "User": "root"
  },
  "Author": "Nicolas Gauthier [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-2225-5827>),\nAshley Rutkoski [aut]",
  "Maintainer": "Nicolas Gauthier <nicolas.gauthier@ufl.edu>",
  "_user": "flmnh-ai",
  "_type": "src",
  "_file": "petrographer_0.0.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/bb5b7330c501df1c164a14cf5e1662e10fc495d36c0a6c31679c7fc9266b9d6a",
  "_filesize": 1010933,
  "_sha256": "bb5b7330c501df1c164a14cf5e1662e10fc495d36c0a6c31679c7fc9266b9d6a",
  "_expires": "2027-01-26T07:29:43.000Z",
  "_created": "2026-10-18T07:13:40.000Z",
  "_published": "2026-10-18T07:29:45.373Z",
  "_buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 117614589411,
      "time": 179,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "12128489287"
    },
    {
      "job": 117614589453,
      "time": 176,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "12129135772"
    },
    {
      "job": 117614589392,
      "time": 163,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "12129241798"
    },
    {
      "job": 117614589394,
      "time": 186,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "12129082318"
    },
    {
      "job": 117613945144,
      "time": 198,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12128444149"
    },
    {
      "job": 117614589465,
      "time": 128,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12129290102"
    },
    {
      "job": 117614589483,
      "time": 227,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "ERROR",
      "artifact": "12128723552"
    },
    {
      "job": 117614589473,
      "time": 238,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "ERROR",
      "artifact": "12128504419"
    },
    {
      "job": 117614589429,
      "time": 218,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "ERROR",
      "artifact": "12128658626"
    }
  ],
  "_upstream": "https://github.com/flmnh-ai/petrographer",
  "_commit": {
    "id": "cdaf5711967f2c2016b52ff728a364e441166f8e",
    "author": "Nick Gauthier <nicolas.gauthier@ufl.edu>",
    "committer": "Nick Gauthier <nicolas.gauthier@ufl.edu>",
    "message": "Update .Rbuildignore\n",
    "time": 1776792444
  },
  "_maintainer": {
    "name": "Nicolas Gauthier",
    "email": "nicolas.gauthier@ufl.edu",
    "login": "nick-gauthier",
    "twitter": "@nick_gaut",
    "description": "Assistant Curator, AI for Bio/Cultural Diversity",
    "uuid": 12808168,
    "orcid": "0000-0002-2225-5827"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "fs",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "pins",
      "role": "Imports"
    },
    {
      "package": "processx",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "reticulate",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "grid",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "hipergator",
      "role": "Suggests"
    },
    {
      "package": "here",
      "role": "Suggests"
    },
    {
      "package": "htmltools",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "patchwork",
      "role": "Suggests"
    },
    {
      "package": "png",
      "role": "Suggests"
    },
    {
      "package": "quarto",
      "role": "Suggests"
    },
    {
      "package": "reactable",
      "role": "Suggests"
    },
    {
      "package": "scico",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tools",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "flmnh-ai",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-42",
      "n": 17
    },
    {
      "week": "2026-17",
      "n": 4
    }
  ],
  "_tags": [],
  "_stars": 5,
  "_contributors": [
    {
      "user": "nick-gauthier",
      "count": 147,
      "uuid": 12808168
    },
    {
      "user": "griffin-pitts",
      "count": 2,
      "uuid": 110428226
    },
    {
      "user": "arutkoski",
      "count": 2,
      "uuid": 143046656
    }
  ],
  "_userbio": {
    "uuid": 116828111,
    "type": "organization",
    "name": "AI at the Florida Museum of Natural History",
    "followers": 9,
    "description": "Code repository for the AI for Human Ecology Lab at the Florida Museum of Natural History, University of Florida"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/petrographer"
  },
  "_devurl": "https://github.com/flmnh-ai/petrographer",
  "_pkgdown": "https://flmnh-ai.github.io/petrographer/",
  "_searchresults": 13,
  "_quarto": true,
  "_topics": [
    "quarto"
  ],
  "_rbuild": "4.6.1",
  "_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/petrographer.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "align_images",
    "analyze_segmentation_dir",
    "clean_temp_datasets",
    "confusion_matrix",
    "evaluate_model_sahi",
    "evaluate_training",
    "from_pretrained",
    "get_dataset_path",
    "get_population_stats",
    "get_training_dataset",
    "list_datasets",
    "list_models",
    "list_trained_models",
    "model_info",
    "pg_plot_annotations",
    "pg_plot_dataset_image",
    "pg_save_dataset_preview",
    "pin_dataset",
    "pin_model",
    "predict_image",
    "predict_images",
    "slice_dataset",
    "summarize_by_image",
    "train_model",
    "validate_dataset"
  ],
  "_help": [
    {
      "page": "align_images",
      "title": "Align thin section image pair",
      "topics": [
        "align_images"
      ]
    },
    {
      "page": "analyze_segmentation_dir",
      "title": "Run a segmentation batch workflow on a directory of images",
      "topics": [
        "analyze_segmentation_dir"
      ]
    },
    {
      "page": "clean_temp_datasets",
      "title": "Delete auto-pinned temp datasets",
      "topics": [
        "clean_temp_datasets"
      ]
    },
    {
      "page": "confusion_matrix",
      "title": "Compute a confusion matrix from SAHI predictions + COCO ground truth",
      "topics": [
        "confusion_matrix"
      ]
    },
    {
      "page": "evaluate_model_sahi",
      "title": "Evaluate detections with SAHI and COCO metrics",
      "topics": [
        "evaluate_model_sahi"
      ]
    },
    {
      "page": "evaluate_training",
      "title": "Evaluate model training",
      "topics": [
        "evaluate_training"
      ]
    },
    {
      "page": "from_pretrained",
      "title": "Load a pretrained RF-DETR model",
      "topics": [
        "from_pretrained"
      ]
    },
    {
      "page": "get_dataset_path",
      "title": "Get path to pinned dataset",
      "topics": [
        "get_dataset_path"
      ]
    },
    {
      "page": "get_population_stats",
      "title": "Get overall population statistics",
      "topics": [
        "get_population_stats"
      ]
    },
    {
      "page": "get_training_dataset",
      "title": "Get the dataset used to train a model",
      "topics": [
        "get_training_dataset"
      ]
    },
    {
      "page": "list_datasets",
      "title": "List pinned datasets",
      "topics": [
        "list_datasets"
      ]
    },
    {
      "page": "list_models",
      "title": "List available models",
      "topics": [
        "list_models"
      ]
    },
    {
      "page": "list_trained_models",
      "title": "List all locally trained models",
      "topics": [
        "list_trained_models"
      ]
    },
    {
      "page": "model_info",
      "title": "Get model info",
      "topics": [
        "model_info"
      ]
    },
    {
      "page": "pg_plot_annotations",
      "title": "Plot COCO annotations on an image",
      "topics": [
        "pg_plot_annotations"
      ]
    },
    {
      "page": "pg_plot_dataset_image",
      "title": "Plot a sample image from a dataset directory",
      "topics": [
        "pg_plot_dataset_image"
      ]
    },
    {
      "page": "pg_save_dataset_preview",
      "title": "Save a preview image for a dataset",
      "topics": [
        "pg_save_dataset_preview"
      ]
    },
    {
      "page": "pin_dataset",
      "title": "Pin a dataset to a board",
      "topics": [
        "pin_dataset"
      ]
    },
    {
      "page": "pin_model",
      "title": "Pin a trained RF-DETR model to a board",
      "topics": [
        "pin_model"
      ]
    },
    {
      "page": "predict_image",
      "title": "Predict objects in a single image",
      "topics": [
        "predict_image"
      ]
    },
    {
      "page": "predict_images",
      "title": "Predict objects in multiple images (directory)",
      "topics": [
        "predict_images"
      ]
    },
    {
      "page": "predict.PetrographyModel",
      "title": "Predict objects in an image",
      "topics": [
        "predict.PetrographyModel"
      ]
    },
    {
      "page": "slice_dataset",
      "title": "Slice COCO dataset for varying image sizes",
      "topics": [
        "slice_dataset"
      ]
    },
    {
      "page": "summarize_by_image",
      "title": "Summarize detections by image",
      "topics": [
        "summarize_by_image"
      ]
    },
    {
      "page": "train_model",
      "title": "Train a new petrography detection model",
      "topics": [
        "train_model"
      ]
    },
    {
      "page": "validate_dataset",
      "title": "Validate a COCO-style dataset directory",
      "topics": [
        "validate_dataset"
      ]
    }
  ],
  "_pkglogo": "https://github.com/flmnh-ai/petrographer/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/flmnh-ai/petrographer/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "bit",
    "bit64",
    "cli",
    "clipr",
    "cpp11",
    "crayon",
    "curl",
    "digest",
    "dplyr",
    "fs",
    "generics",
    "glue",
    "here",
    "hms",
    "httr",
    "jsonlite",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "mime",
    "openssl",
    "pillar",
    "pins",
    "pkgconfig",
    "png",
    "prettyunits",
    "processx",
    "progress",
    "ps",
    "purrr",
    "R6",
    "rappdirs",
    "Rcpp",
    "RcppTOML",
    "readr",
    "reticulate",
    "rlang",
    "rprojroot",
    "stringi",
    "stringr",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "tzdb",
    "utf8",
    "vctrs",
    "vroom",
    "whisker",
    "withr",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "analyzing-predictions.qmd",
      "filename": "analyzing-predictions.html",
      "title": "Analyzing Predictions",
      "engine": "quarto::html",
      "headings": [
        "Load the Toolkit",
        "Load a Model",
        "Detection Workflow",
        "Predict a Single Image",
        "Review the Output Columns",
        "Summarize a Single Image",
        "Batch Process a Directory",
        "Summarize Across Images",
        "Plot Detection-Level Distributions",
        "Segmentation Workflow",
        "Inspect Morphology Columns",
        "Single-Image Morphology Summary",
        "Plot Morphology",
        "Batch Segmentation Analysis",
        "Summaries from Batch Segmentation",
        "Choosing an Analysis Path",
        "Next Steps"
      ],
      "created": "2026-04-21 15:53:56",
      "modified": "2026-04-21 15:53:56",
      "commits": 1
    },
    {
      "source": "training-models.qmd",
      "filename": "training-models.html",
      "title": "Training Custom Models",
      "engine": "quarto::html",
      "headings": [
        "Choose a Training Task",
        "Prepare the Dataset",
        "Optional: Slice Large Images",
        "Optional: Pin the Dataset",
        "Start Training",
        "Detection Example",
        "Segmentation Example",
        "Local vs HPC Training",
        "Local Training",
        "HPC Training",
        "Choose a Model Variant",
        "What Training Produces",
        "Evaluate and Inspect the Result",
        "Detection Validation",
        "Segmentation Validation",
        "Maintainership and Publishing",
        "Troubleshooting"
      ],
      "created": "2025-10-14 01:04:27",
      "modified": "2026-04-21 15:53:56",
      "commits": 2
    },
    {
      "source": "whole-slide-basics.qmd",
      "filename": "whole-slide-basics.html",
      "title": "Whole-Slide Prediction Basics",
      "engine": "quarto::html",
      "headings": [
        "Load the Toolkit",
        "Point to a Large Image",
        "Load a Pretrained Model",
        "Run SAHI Inference",
        "Review the Overlay",
        "Summarize Detections",
        "Batch Process a Directory",
        "Next Steps"
      ],
      "created": "2025-10-14 01:04:27",
      "modified": "2026-04-21 15:53:56",
      "commits": 3
    }
  ],
  "_score": 4.5910646070264995,
  "_indexed": true,
  "_nocasepkg": "petrographer",
  "_universes": [
    "flmnh-ai",
    "nick-gauthier"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:15:40.000Z",
      "distro": "resolute",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/a0629e343162cae6e4cd6753179f9d239143a8a9b37cfa66f83ef76f13fb5aea",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:15:49.000Z",
      "distro": "resolute",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/d736a7e14ef9bbe5a76b75d106cd2706ca59799a6e74795eb7192abf3d4be01f",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:28:41.000Z",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/22aad27aaa264ad6d914885b8a1a130ffb86ba1c2f27964def3e0cf906120a30",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:26:21.000Z",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/fa72fe4f7b42742fbc8e346898a42e889ad2d3dc2f0f70db5825c0d18755745d",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:16:07.000Z",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/c72522d1ddb1e20cbac0a3250b3649b40a40d01459e2bdd7cdb928195d8330d9",
      "status": "success",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:15:28.000Z",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/0557d3d7e6b22af906366018185f0c3fad722ddf6969858e9073074687f8ae0a",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:15:37.000Z",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/edf97b413cdba984c287461b737fc8f2809972ca6218e626d49010c2ecc96773",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.0.9000",
      "date": "2026-10-18T07:15:27.000Z",
      "commit": "cdaf5711967f2c2016b52ff728a364e441166f8e",
      "fileid": "https://r2.ropensci.org/4b0cd17d566947ffd209757df0abae0dff44426c17b06970661f90d55a9e61c6",
      "status": "failure",
      "check": "ERROR",
      "buildurl": "https://github.com/r-universe/flmnh-ai/actions/runs/39106666958"
    }
  ]
}