{
  "_id": "6aea2715818c9e3ef6dbff5d",
  "Package": "segmantR",
  "Title": "Cell Segmentation for Histology with Human-in-the-Loop Training",
  "Version": "0.2.0",
  "Authors@R": "person(\"R.\", \"Heller\", , \"raban.heller@uni-ulm.de\",\nrole = c(\"aut\", \"cre\", \"cph\"),\ncomment = c(ORCID = \"0000-0001-8006-9742\"))",
  "Description": "Cell segmentation for histology and multiplexed tissue\nimaging. Provides classical segmentation methods (adaptive\nthresholding, watershed, Voronoi propagation), wrappers through\n'reticulate' for the deep learning models 'Cellpose' (Stringer\net al. (2021) <doi:10.1038/s41592-020-01018-x>), 'StarDist'\n(Schmidt et al. (2018) <doi:10.1007/978-3-030-00934-2_30>) and\n'Mesmer' (Greenwald et al. (2022)\n<doi:10.1038/s41587-021-01094-0>), and a human-in-the-loop\niterative refinement workflow. A 'shiny' application lets\nresearchers annotate, correct, train, evaluate and download\ncustom segmentation models without leaving R. Versioned\ndeclarative segmentation protocols, a neutral interchange\nformat (JSON manifests, integer label TIFF, GeoJSON,\nmeasurement tables with SHA-256 inventories), training dataset\nmanifests with grouped splits, and readable 'QuPath' script\ntemplates with a 'StarDist' parameter adapter support\nreproducible exchange with 'QuPath' and partner packages.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/CTTIR/segmantR,\nhttps://cttir.github.io/segmantR/",
  "BugReports": "https://github.com/CTTIR/segmantR/issues",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "SystemRequirements": "Optional: Python with the 'cellpose', 'stardist' or\n'deepcell' modules for the deep learning backends; QuPath (>=\n0.4) to run the exported QuPath scripts.",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Config/Needs/website": "CTTIR/themakR",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev\nmake libuv1-dev libssl-dev libproj-dev python3 libsqlite3-dev\nlibudunits2-dev zlib1g-dev",
  "Repository": "https://cttir.r-universe.dev",
  "Date/Publication": "2026-10-29 11:19:01 UTC",
  "RemoteUrl": "https://github.com/CTTIR/segmantR",
  "RemoteRef": "HEAD",
  "RemoteSha": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-11-03 18:19:54 UTC",
    "User": "root"
  },
  "Author": "R. Heller [aut, cre, cph] (ORCID:\n<https://orcid.org/0000-0001-8006-9742>)",
  "Maintainer": "R. Heller <raban.heller@uni-ulm.de>",
  "_user": "cttir",
  "_type": "src",
  "_file": "segmantR_0.2.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/f153de26326471ee7e8f75203529fe17cb5e55bfa25aaf3a0cd50dae6d778d76",
  "_filesize": 1265167,
  "_sha256": "f153de26326471ee7e8f75203529fe17cb5e55bfa25aaf3a0cd50dae6d778d76",
  "_expires": "2027-02-11T18:25:23.000Z",
  "_created": "2026-11-03T18:19:54.000Z",
  "_published": "2026-11-03T18:25:25.101Z",
  "_upstream": "https://github.com/CTTIR/segmantR",
  "_status": "success",
  "_maintainer": {
    "name": "R. Heller",
    "email": "raban.heller@uni-ulm.de",
    "login": "r-heller",
    "orcid": "0000-0001-8006-9742",
    "description": "Doctoral researcher at Charité Universitätsmedizin Berlin, Germany. Focus on biomedical research, biostatistics, and data science.",
    "uuid": 58561665
  },
  "_jobs": [
    {
      "job": 126115706942,
      "time": 258,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13258950841"
    },
    {
      "job": 126115707008,
      "time": 274,
      "config": "linux-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13258211031"
    },
    {
      "job": 126115706950,
      "time": 219,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13256414970"
    },
    {
      "job": 126115707059,
      "time": 207,
      "config": "macos-release-arm64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13257912003"
    },
    {
      "job": 126112963192,
      "time": 290,
      "config": "source",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13257034288"
    },
    {
      "job": 126115707109,
      "time": 142,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "13256694932"
    },
    {
      "job": 126115707759,
      "time": 219,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "13258111763"
    },
    {
      "job": 126115707103,
      "time": 208,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "13259125125"
    },
    {
      "job": 126115706976,
      "time": 223,
      "config": "windows-release-x86_64",
      "r": "4.6.2",
      "check": "OK",
      "artifact": "13257104786"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962",
  "_commit": {
    "id": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
    "author": "R. Heller <58561665+r-heller@users.noreply.github.com>",
    "committer": "R. Heller <58561665+r-heller@users.noreply.github.com>",
    "message": "Pass the private-term secret to the shared check workflow\n",
    "time": 1793272741
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "sf",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "stars",
      "version": ">= 0.6.0",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.4.0",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "version": ">= 1.7.0",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "EBImage",
      "role": "Suggests"
    },
    {
      "package": "htmlwidgets",
      "role": "Suggests"
    },
    {
      "package": "imager",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "magick",
      "role": "Suggests"
    },
    {
      "package": "nanoparquet",
      "role": "Suggests"
    },
    {
      "package": "openssl",
      "role": "Suggests"
    },
    {
      "package": "processx",
      "role": "Suggests"
    },
    {
      "package": "reticulate",
      "version": ">= 1.35",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "terra",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tiff",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "zip",
      "role": "Suggests"
    }
  ],
  "_owner": "cttir",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2026-19",
      "n": 1
    },
    {
      "week": "2026-24",
      "n": 6
    },
    {
      "week": "2026-25",
      "n": 1
    },
    {
      "week": "2026-26",
      "n": 2
    },
    {
      "week": "2026-29",
      "n": 2
    },
    {
      "week": "2026-33",
      "n": 1
    },
    {
      "week": "2026-34",
      "n": 2
    },
    {
      "week": "2026-38",
      "n": 1
    },
    {
      "week": "2026-40",
      "n": 7
    },
    {
      "week": "2026-42",
      "n": 5
    },
    {
      "week": "2026-43",
      "n": 5
    },
    {
      "week": "2026-44",
      "n": 76
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-05-04"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "r-heller",
      "count": 114,
      "uuid": 58561665
    }
  ],
  "_userbio": {
    "uuid": 275040041,
    "type": "organization",
    "name": "CTTIR",
    "followers": 10,
    "description": "Computational Trauma and Tissue Injury Research"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/segmantR"
  },
  "_devurl": "https://github.com/cttir/segmantr",
  "_pkgdown": "https://cttir.github.io/segmantR/",
  "_searchresults": 4,
  "_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/readme.html",
    "extra/readme.md",
    "extra/segmantR.html",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "new_sg_image",
    "new_sg_mask",
    "new_sg_trained_model",
    "renderSgCanvas",
    "sg_active_learning_loop",
    "sg_app",
    "sg_apply_corrections",
    "sg_canvas",
    "sg_canvas_correct",
    "sg_cleanup_labels",
    "sg_control_capabilities",
    "sg_create_annotation_task",
    "sg_dataset_manifest",
    "sg_display_levels",
    "sg_display_range",
    "sg_envi_info",
    "sg_evaluate_segmentation",
    "sg_example_image",
    "sg_example_mask",
    "sg_export_interchange",
    "sg_export_mask",
    "sg_export_qupath",
    "sg_extract_features",
    "sg_filter_cells",
    "sg_hash_assets",
    "sg_image_channels",
    "sg_import_interchange",
    "sg_import_qupath",
    "sg_interchange_capabilities",
    "sg_interchange_manifest",
    "sg_load_model",
    "sg_mask_legend",
    "sg_mask_revision",
    "sg_mask_status",
    "sg_mask_to_polygons",
    "sg_merge_masks",
    "sg_model_card",
    "sg_package_model",
    "sg_plot_comparison",
    "sg_plot_features",
    "sg_plot_mask",
    "sg_plot_metrics",
    "sg_plot_overlay",
    "sg_predict_model",
    "sg_prepare_training_data",
    "sg_preprocess",
    "sg_protocol_get",
    "sg_protocol_list",
    "sg_protocol_run",
    "sg_protocol_schema",
    "sg_protocol_validate",
    "sg_read_envi",
    "sg_read_field",
    "sg_read_fields",
    "sg_read_image",
    "sg_read_window",
    "sg_replace_mask",
    "sg_review_mask",
    "sg_roi_add_layer",
    "sg_roi_add_roi",
    "sg_roi_area",
    "sg_roi_bbox",
    "sg_roi_buffer",
    "sg_roi_centroid",
    "sg_roi_check_containment",
    "sg_roi_check_geometry",
    "sg_roi_circle",
    "sg_roi_clamp",
    "sg_roi_contains",
    "sg_roi_difference",
    "sg_roi_dims",
    "sg_roi_distance",
    "sg_roi_ellipse",
    "sg_roi_fix_geometry",
    "sg_roi_flip_y",
    "sg_roi_frame",
    "sg_roi_freehand",
    "sg_roi_from_geojson",
    "sg_roi_from_sf",
    "sg_roi_intersect",
    "sg_roi_layer",
    "sg_roi_layer_add",
    "sg_roi_layer_n",
    "sg_roi_layer_remove",
    "sg_roi_layer_rois",
    "sg_roi_layers",
    "sg_roi_mask",
    "sg_roi_mask_boundary",
    "sg_roi_mask_derive",
    "sg_roi_mask_legend",
    "sg_roi_mask_preview",
    "sg_roi_mask_stack",
    "sg_roi_mask_stats",
    "sg_roi_overlaps",
    "sg_roi_point",
    "sg_roi_polygon",
    "sg_roi_project",
    "sg_roi_read_geojson",
    "sg_roi_read_qupath",
    "sg_roi_rect",
    "sg_roi_remove_layer",
    "sg_roi_remove_roi",
    "sg_roi_rescale",
    "sg_roi_ring",
    "sg_roi_rois",
    "sg_roi_rois_overlap",
    "sg_roi_simplify",
    "sg_roi_snap",
    "sg_roi_style",
    "sg_roi_summary",
    "sg_roi_symdiff",
    "sg_roi_transform",
    "sg_roi_union",
    "sg_roi_validate",
    "sg_roi_write_geojson",
    "sg_roi_write_qupath",
    "sg_run_app",
    "sg_segment_cellpose",
    "sg_segment_mesmer",
    "sg_segment_propagate",
    "sg_segment_stardist",
    "sg_segment_threshold",
    "sg_segment_watershed",
    "sg_select_channel",
    "sg_setup_python",
    "sg_slide_display_ranges",
    "sg_stage_mask",
    "sg_stain_deconvolve",
    "sg_stardist_capabilities",
    "sg_stardist_manifest",
    "sg_stardist_parameter_map",
    "sg_train_cellpose",
    "sg_train_stardist",
    "sg_validate_interchange",
    "sg_validate_training_manifest",
    "sgCanvasOutput"
  ],
  "_help": [
    {
      "page": "new_sg_image",
      "title": "Create a new sg_image object",
      "topics": [
        "new_sg_image"
      ]
    },
    {
      "page": "new_sg_mask",
      "title": "Create a new sg_mask object",
      "topics": [
        "new_sg_mask"
      ]
    },
    {
      "page": "new_sg_trained_model",
      "title": "Create a new sg_trained_model object",
      "topics": [
        "new_sg_trained_model"
      ]
    },
    {
      "page": "sg_active_learning_loop",
      "title": "Run an active learning loop for iterative segmentation refinement",
      "topics": [
        "sg_active_learning_loop"
      ]
    },
    {
      "page": "sg_app",
      "title": "Build the segmantR Shiny application",
      "topics": [
        "sg_app"
      ]
    },
    {
      "page": "sg_apply_corrections",
      "title": "Apply manual corrections to a segmentation mask",
      "topics": [
        "sg_apply_corrections"
      ]
    },
    {
      "page": "sg_canvas",
      "title": "Draw cell boundaries on a microscopy image",
      "topics": [
        "sg_canvas"
      ]
    },
    {
      "page": "sg_canvas_correct",
      "title": "Apply a cell canvas correction",
      "topics": [
        "sg_canvas_correct"
      ]
    },
    {
      "page": "sg_cleanup_labels",
      "title": "Clean up a label mask",
      "topics": [
        "sg_cleanup_labels"
      ]
    },
    {
      "page": "sg_control_capabilities",
      "title": "Control service capabilities (segmantR-control-v1)",
      "topics": [
        "sg_control_capabilities"
      ]
    },
    {
      "page": "sg_create_annotation_task",
      "title": "Create an annotation task for human review",
      "topics": [
        "sg_create_annotation_task"
      ]
    },
    {
      "page": "sg_dataset_manifest",
      "title": "Describe a training dataset",
      "topics": [
        "sg_dataset_manifest"
      ]
    },
    {
      "page": "sg_display_levels",
      "title": "Display levels from positive and negative reference cells",
      "topics": [
        "sg_display_levels"
      ]
    },
    {
      "page": "sg_display_range",
      "title": "Display range of fluorescence values",
      "topics": [
        "sg_display_range"
      ]
    },
    {
      "page": "sg_envi_info",
      "title": "Read and validate an ENVI header without reading pixel data",
      "topics": [
        "sg_envi_info"
      ]
    },
    {
      "page": "sg_evaluate_segmentation",
      "title": "Evaluate segmentation quality",
      "topics": [
        "sg_evaluate_segmentation"
      ]
    },
    {
      "page": "sg_example_image",
      "title": "Load a bundled example image",
      "topics": [
        "sg_example_image"
      ]
    },
    {
      "page": "sg_example_mask",
      "title": "Load a bundled example mask",
      "topics": [
        "sg_example_mask"
      ]
    },
    {
      "page": "sg_export_interchange",
      "title": "Export to the neutral interchange format",
      "topics": [
        "sg_export_interchange"
      ]
    },
    {
      "page": "sg_export_mask",
      "title": "Export mask to file",
      "topics": [
        "sg_export_mask"
      ]
    },
    {
      "page": "sg_export_qupath",
      "title": "Export segmantR objects or a StarDist protocol for QuPath",
      "topics": [
        "sg_export_qupath"
      ]
    },
    {
      "page": "sg_extract_features",
      "title": "Extract per-cell features from an image and mask",
      "topics": [
        "sg_extract_features"
      ]
    },
    {
      "page": "sg_filter_cells",
      "title": "Filter cells by morphological criteria",
      "topics": [
        "sg_filter_cells"
      ]
    },
    {
      "page": "sg_hash_assets",
      "title": "Hash, write or verify a bundle inventory",
      "topics": [
        "sg_hash_assets"
      ]
    },
    {
      "page": "sg_image_channels",
      "title": "List the channels of a multi-page microscopy TIFF",
      "topics": [
        "sg_image_channels"
      ]
    },
    {
      "page": "sg_import_interchange",
      "title": "Import interchange data",
      "topics": [
        "sg_import_interchange"
      ]
    },
    {
      "page": "sg_import_qupath",
      "title": "Import QuPath results into segmantR",
      "topics": [
        "sg_import_qupath"
      ]
    },
    {
      "page": "sg_interchange_capabilities",
      "title": "Interchange capability report",
      "topics": [
        "sg_interchange_capabilities"
      ]
    },
    {
      "page": "sg_interchange_manifest",
      "title": "Build an interchange manifest",
      "topics": [
        "sg_interchange_manifest"
      ]
    },
    {
      "page": "sg_load_model",
      "title": "Load a packaged segmantR model",
      "topics": [
        "sg_load_model"
      ]
    },
    {
      "page": "sg_mask_legend",
      "title": "Effective legend of a mask",
      "topics": [
        "sg_mask_legend"
      ]
    },
    {
      "page": "sg_mask_review",
      "title": "Stage, review or replace masks",
      "topics": [
        "sg_mask_review",
        "sg_replace_mask",
        "sg_review_mask",
        "sg_stage_mask"
      ]
    },
    {
      "page": "sg_mask_revision",
      "title": "Content revision of a mask",
      "topics": [
        "sg_mask_revision"
      ]
    },
    {
      "page": "sg_mask_status",
      "title": "Review state of a mask",
      "topics": [
        "sg_mask_status"
      ]
    },
    {
      "page": "sg_mask_to_polygons",
      "title": "Convert mask to polygon geometries",
      "topics": [
        "sg_mask_to_polygons"
      ]
    },
    {
      "page": "sg_merge_masks",
      "title": "Merge nuclear and cell body masks",
      "topics": [
        "sg_merge_masks"
      ]
    },
    {
      "page": "sg_model_card",
      "title": "Display a formatted model card",
      "topics": [
        "sg_model_card"
      ]
    },
    {
      "page": "sg_package_model",
      "title": "Package a trained model for sharing",
      "topics": [
        "sg_package_model"
      ]
    },
    {
      "page": "sg_plot_comparison",
      "title": "Side-by-side comparison of two masks",
      "topics": [
        "sg_plot_comparison"
      ]
    },
    {
      "page": "sg_plot_features",
      "title": "Scatter plot of cell features",
      "topics": [
        "sg_plot_features"
      ]
    },
    {
      "page": "sg_plot_mask",
      "title": "Render a mask as a coloured image",
      "topics": [
        "sg_plot_mask"
      ]
    },
    {
      "page": "sg_plot_metrics",
      "title": "Bar chart of evaluation metrics",
      "topics": [
        "sg_plot_metrics"
      ]
    },
    {
      "page": "sg_plot_overlay",
      "title": "Overlay cell boundaries on an image",
      "topics": [
        "sg_plot_overlay"
      ]
    },
    {
      "page": "sg_predict_model",
      "title": "Predict with a trained model",
      "topics": [
        "sg_predict_model"
      ]
    },
    {
      "page": "sg_prepare_training_data",
      "title": "Prepare training data tiles",
      "topics": [
        "sg_prepare_training_data"
      ]
    },
    {
      "page": "sg_preprocess",
      "title": "Preprocess an image",
      "topics": [
        "sg_preprocess"
      ]
    },
    {
      "page": "sg_protocol_get",
      "title": "Get a registered protocol",
      "topics": [
        "sg_protocol_get"
      ]
    },
    {
      "page": "sg_protocol_list",
      "title": "List registered segmentation protocols",
      "topics": [
        "sg_protocol_list"
      ]
    },
    {
      "page": "sg_protocol_run",
      "title": "Run a declarative segmentation protocol",
      "topics": [
        "sg_protocol_run"
      ]
    },
    {
      "page": "sg_protocol_schema",
      "title": "Protocol schema and parameter specifications",
      "topics": [
        "sg_protocol_schema"
      ]
    },
    {
      "page": "sg_protocol_validate",
      "title": "Validate a protocol, optionally against an image and parameters",
      "topics": [
        "sg_protocol_validate"
      ]
    },
    {
      "page": "sg_read_envi",
      "title": "Read an ENVI cube window into an sg_image",
      "topics": [
        "sg_read_envi"
      ]
    },
    {
      "page": "sg_read_field",
      "title": "Read a square multichannel field around a point",
      "topics": [
        "sg_read_field"
      ]
    },
    {
      "page": "sg_read_fields",
      "title": "Read many square fields, for example cell galleries",
      "topics": [
        "sg_read_fields"
      ]
    },
    {
      "page": "sg_read_image",
      "title": "Read an image file",
      "topics": [
        "sg_read_image"
      ]
    },
    {
      "page": "sg_read_window",
      "title": "Read a rectangular pixel window of one channel",
      "topics": [
        "sg_read_window"
      ]
    },
    {
      "page": "sg_roi",
      "title": "Histology ROI objects",
      "topics": [
        "sg_roi"
      ]
    },
    {
      "page": "sg_roi_add_layer",
      "title": "Add a layer to a project",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_add_layer"
      ]
    },
    {
      "page": "sg_roi_add_roi",
      "title": "Add an ROI to a project layer",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_add_roi"
      ]
    },
    {
      "page": "sg_roi_area",
      "title": "ROI area",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_area"
      ]
    },
    {
      "page": "sg_roi_bbox",
      "title": "ROI bounding box",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_bbox"
      ]
    },
    {
      "page": "sg_roi_buffer",
      "title": "Buffer an ROI",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_buffer"
      ]
    },
    {
      "page": "sg_roi_centroid",
      "title": "ROI centroid",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_centroid"
      ]
    },
    {
      "page": "sg_roi_check_containment",
      "title": "Check cross-layer containment",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_check_containment"
      ]
    },
    {
      "page": "sg_roi_check_geometry",
      "title": "Check the geometry of every ROI in a project",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_check_geometry"
      ]
    },
    {
      "page": "sg_roi_circle",
      "title": "Create a circular ROI",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_circle"
      ]
    },
    {
      "page": "sg_roi_clamp",
      "title": "Clip an ROI to image bounds",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_clamp"
      ]
    },
    {
      "page": "sg_roi_contains",
      "title": "Test whether points fall inside an ROI",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_contains"
      ]
    },
    {
      "page": "sg_roi_dims",
      "title": "Image dimensions at a pyramid level",
      "concept": [
        "images"
      ],
      "topics": [
        "sg_roi_dims"
      ]
    },
    {
      "page": "sg_roi_distance",
      "title": "Distance between two ROIs",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_distance"
      ]
    },
    {
      "page": "sg_roi_ellipse",
      "title": "Create an elliptical ROI",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_ellipse"
      ]
    },
    {
      "page": "sg_roi_fix_geometry",
      "title": "Repair the geometry of a project",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_fix_geometry"
      ]
    },
    {
      "page": "sg_roi_flip_y",
      "title": "Flip an ROI's y-axis",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_flip_y"
      ]
    },
    {
      "page": "sg_roi_frame",
      "title": "Declare the coordinate frame for histology ROIs",
      "topics": [
        "sg_roi_frame"
      ]
    },
    {
      "page": "sg_roi_freehand",
      "title": "Create a freehand ROI",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_freehand"
      ]
    },
    {
      "page": "sg_roi_from_geojson",
      "title": "Convert a GeoJSON feature to an ROI",
      "concept": [
        "io",
        "rois"
      ],
      "topics": [
        "sg_roi_from_geojson"
      ]
    },
    {
      "page": "sg_roi_from_sf",
      "title": "Create an ROI from an existing sf geometry",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_from_sf"
      ]
    },
    {
      "page": "sg_roi_layer",
      "title": "Create a layer",
      "concept": [
        "layers"
      ],
      "topics": [
        "sg_roi_layer"
      ]
    },
    {
      "page": "sg_roi_layer_add",
      "title": "Add an ROI to a layer",
      "concept": [
        "layers"
      ],
      "topics": [
        "sg_roi_layer_add"
      ]
    },
    {
      "page": "sg_roi_layer_n",
      "title": "Number of ROIs in a layer",
      "concept": [
        "layers"
      ],
      "topics": [
        "sg_roi_layer_n"
      ]
    },
    {
      "page": "sg_roi_layer_remove",
      "title": "Remove an ROI from a layer",
      "concept": [
        "layers"
      ],
      "topics": [
        "sg_roi_layer_remove"
      ]
    },
    {
      "page": "sg_roi_layer_rois",
      "title": "Layer ROI table",
      "concept": [
        "layers"
      ],
      "topics": [
        "sg_roi_layer_rois"
      ]
    },
    {
      "page": "sg_roi_layers",
      "title": "Layer summary table",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_layers"
      ]
    },
    {
      "page": "sg_roi_mask",
      "title": "Rasterise ROIs to a mask",
      "concept": [
        "masks"
      ],
      "topics": [
        "sg_roi_mask"
      ]
    },
    {
      "page": "sg_roi_mask_boundary",
      "title": "Object boundaries of a mask",
      "concept": [
        "masks"
      ],
      "topics": [
        "sg_roi_mask_boundary"
      ]
    },
    {
      "page": "sg_roi_mask_derive",
      "title": "Derive a training mask from layer masks",
      "concept": [
        "masks"
      ],
      "topics": [
        "sg_roi_mask_derive"
      ]
    },
    {
      "page": "sg_roi_mask_legend",
      "title": "Legend of a mask",
      "concept": [
        "masks"
      ],
      "topics": [
        "sg_roi_mask_legend"
      ]
    },
    {
      "page": "sg_roi_mask_preview",
      "title": "Downsampled preview of a mask",
      "concept": [
        "masks"
      ],
      "topics": [
        "sg_roi_mask_preview"
      ]
    },
    {
      "page": "sg_roi_mask_stack",
      "title": "Stack per-layer masks into a 3D array",
      "concept": [
        "masks"
      ],
      "topics": [
        "sg_roi_mask_stack"
      ]
    },
    {
      "page": "sg_roi_mask_stats",
      "title": "Per-value statistics of a mask",
      "concept": [
        "masks"
      ],
      "topics": [
        "sg_roi_mask_stats"
      ]
    },
    {
      "page": "sg_roi_overlaps",
      "title": "Test whether two ROIs intersect",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_overlaps"
      ]
    },
    {
      "page": "sg_roi_point",
      "title": "Create a point ROI",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_point"
      ]
    },
    {
      "page": "sg_roi_polygon",
      "title": "Create a polygon ROI",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_polygon"
      ]
    },
    {
      "page": "sg_roi_project",
      "title": "Create an annotation project",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_project"
      ]
    },
    {
      "page": "sg_roi_read_geojson",
      "title": "Read ROIs from a GeoJSON file",
      "concept": [
        "io"
      ],
      "topics": [
        "sg_roi_read_geojson"
      ]
    },
    {
      "page": "sg_roi_read_qupath",
      "title": "Read ROIs from a QuPath GeoJSON file",
      "concept": [
        "io"
      ],
      "topics": [
        "sg_roi_read_qupath"
      ]
    },
    {
      "page": "sg_roi_rect",
      "title": "Create a rectangular ROI",
      "concept": [
        "rois"
      ],
      "topics": [
        "sg_roi_rect"
      ]
    },
    {
      "page": "sg_roi_remove_layer",
      "title": "Remove a layer from a project",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_remove_layer"
      ]
    },
    {
      "page": "sg_roi_remove_roi",
      "title": "Remove an ROI from a project",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_remove_roi"
      ]
    },
    {
      "page": "sg_roi_rescale",
      "title": "Rescale an ROI between pyramid levels",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_rescale"
      ]
    },
    {
      "page": "sg_roi_ring",
      "title": "Ring (annulus) along an ROI margin",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_ring"
      ]
    },
    {
      "page": "sg_roi_rois",
      "title": "Query the ROIs of a project",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_rois"
      ]
    },
    {
      "page": "sg_roi_rois_overlap",
      "title": "Pairwise ROI overlaps within a layer",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_rois_overlap"
      ]
    },
    {
      "page": "sg_roi_setops",
      "title": "Set operations on ROIs",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_difference",
        "sg_roi_intersect",
        "sg_roi_setops",
        "sg_roi_symdiff",
        "sg_roi_union"
      ]
    },
    {
      "page": "sg_roi_simplify",
      "title": "Simplify an ROI",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_simplify"
      ]
    },
    {
      "page": "sg_roi_snap",
      "title": "Snap ROI vertices to a grid",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_snap"
      ]
    },
    {
      "page": "sg_roi_style",
      "title": "Layer style",
      "concept": [
        "layers"
      ],
      "topics": [
        "sg_roi_style"
      ]
    },
    {
      "page": "sg_roi_summary",
      "title": "Summarise a project",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_summary"
      ]
    },
    {
      "page": "sg_roi_transform",
      "title": "Transform an ROI between pyramid levels using real image dimensions",
      "concept": [
        "geometry"
      ],
      "topics": [
        "sg_roi_transform"
      ]
    },
    {
      "page": "sg_roi_validate",
      "title": "Validate a project's invariants",
      "concept": [
        "projects"
      ],
      "topics": [
        "sg_roi_validate"
      ]
    },
    {
      "page": "sg_roi_write_geojson",
      "title": "Write a project's ROIs to GeoJSON",
      "concept": [
        "io"
      ],
      "topics": [
        "sg_roi_write_geojson"
      ]
    },
    {
      "page": "sg_roi_write_qupath",
      "title": "Write a project's ROIs as QuPath GeoJSON",
      "concept": [
        "io"
      ],
      "topics": [
        "sg_roi_write_qupath"
      ]
    },
    {
      "page": "sg_run_app",
      "title": "Launch the segmantR Shiny application",
      "topics": [
        "sg_run_app"
      ]
    },
    {
      "page": "sg_segment_cellpose",
      "title": "Cellpose cell segmentation",
      "topics": [
        "sg_segment_cellpose"
      ]
    },
    {
      "page": "sg_segment_mesmer",
      "title": "Mesmer (DeepCell) cell segmentation",
      "topics": [
        "sg_segment_mesmer"
      ]
    },
    {
      "page": "sg_segment_propagate",
      "title": "Voronoi propagation from nuclear seeds",
      "topics": [
        "sg_segment_propagate"
      ]
    },
    {
      "page": "sg_segment_stardist",
      "title": "StarDist cell segmentation",
      "topics": [
        "sg_segment_stardist"
      ]
    },
    {
      "page": "sg_segment_threshold",
      "title": "Threshold-based cell segmentation",
      "topics": [
        "sg_segment_threshold"
      ]
    },
    {
      "page": "sg_segment_watershed",
      "title": "Marker-controlled watershed segmentation",
      "topics": [
        "sg_segment_watershed"
      ]
    },
    {
      "page": "sg_select_channel",
      "title": "Select one analysis channel from an image",
      "topics": [
        "sg_select_channel"
      ]
    },
    {
      "page": "sg_setup_python",
      "title": "Set up a Python environment for deep learning backends",
      "topics": [
        "sg_setup_python"
      ]
    },
    {
      "page": "sg_slide_display_ranges",
      "title": "Slide-wide display ranges from sampled image blocks",
      "topics": [
        "sg_slide_display_ranges"
      ]
    },
    {
      "page": "sg_stain_deconvolve",
      "title": "Separate H&E stain channels by colour deconvolution",
      "topics": [
        "sg_stain_deconvolve"
      ]
    },
    {
      "page": "sg_stardist_capabilities",
      "title": "StarDist adapter capabilities",
      "topics": [
        "sg_stardist_capabilities"
      ]
    },
    {
      "page": "sg_stardist_manifest",
      "title": "Describe a StarDist model for exchange",
      "topics": [
        "sg_stardist_manifest"
      ]
    },
    {
      "page": "sg_stardist_parameter_map",
      "title": "Map StarDist protocol parameters to Python or QuPath",
      "topics": [
        "sg_stardist_parameter_map"
      ]
    },
    {
      "page": "sg_train_cellpose",
      "title": "Fine-tune a Cellpose model on user-corrected masks",
      "topics": [
        "sg_train_cellpose"
      ]
    },
    {
      "page": "sg_train_stardist",
      "title": "Train a StarDist 2D model",
      "topics": [
        "sg_train_stardist"
      ]
    },
    {
      "page": "sg_validate_interchange",
      "title": "Validate interchange data",
      "topics": [
        "sg_validate_interchange"
      ]
    },
    {
      "page": "sg_validate_training_manifest",
      "title": "Validate a training dataset manifest",
      "topics": [
        "sg_validate_training_manifest"
      ]
    },
    {
      "page": "sgCanvasOutput",
      "title": "Shiny bindings for the cell canvas",
      "topics": [
        "renderSgCanvas",
        "sgCanvasOutput"
      ]
    }
  ],
  "_pkglogo": "https://github.com/CTTIR/segmantR/raw/HEAD/man/figures/logo.svg",
  "_readme": "https://github.com/CTTIR/segmantR/raw/HEAD/README.md",
  "_rundeps": [
    "abind",
    "base64enc",
    "bslib",
    "cachem",
    "class",
    "classInt",
    "cli",
    "commonmark",
    "cpp11",
    "DBI",
    "digest",
    "dplyr",
    "e1071",
    "farver",
    "fastmap",
    "fontawesome",
    "fs",
    "generics",
    "ggplot2",
    "glue",
    "gtable",
    "htmltools",
    "httpuv",
    "isoband",
    "jquerylib",
    "jsonlite",
    "KernSmooth",
    "labeling",
    "later",
    "lifecycle",
    "magrittr",
    "memoise",
    "mime",
    "otel",
    "pillar",
    "pkgconfig",
    "promises",
    "proxy",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "s2",
    "S7",
    "sass",
    "scales",
    "sf",
    "shiny",
    "sourcetools",
    "stars",
    "tibble",
    "tidyselect",
    "units",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr",
    "wk",
    "xtable"
  ],
  "_vignettes": [
    {
      "source": "protocols-and-interop.Rmd",
      "filename": "protocols-and-interop.html",
      "title": "Standard protocols, DNN training and QuPath/StarDist exchange",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Standard protocols",
        "Hyperspectral channels",
        "2. Neutral interchange",
        "3. Training data, StarDist training and prediction",
        "4. QuPath and StarDist",
        "5. Capabilities"
      ],
      "created": "2026-09-15 09:24:21",
      "modified": "2026-10-28 07:36:12",
      "commits": 2
    }
  ],
  "_score": 4.2552725051033065,
  "_indexed": true,
  "_nocasepkg": "segmantr",
  "_universes": [
    "cttir",
    "r-heller"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-11-03T18:23:05.000Z",
      "distro": "resolute",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/916d17468a06c1d2bd44d1724d9a702ba2c1914b715426d97e4602a7b0af360e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    },
    {
      "r": "4.6.2",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-11-03T18:23:22.000Z",
      "distro": "resolute",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/728c327727e7ee682fd47ea07a8ce817b9a85f8b4e9692714ccab508a84271ff",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-11-03T18:22:23.000Z",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/8643f56666a8959de7041d81d311fc2db73025f1765d9903e6ea3fb4e9babb98",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    },
    {
      "r": "4.6.2",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-11-03T18:22:25.000Z",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/e5213c35f0fa7cbe48258b53e52be0c67941e5064ac062786ccf17645a88a7fb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-11-03T18:22:48.000Z",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/5c55ed2759b9130f9dfa6ef75b81d3d86cb79ad97746a177f3171d9a19cf1d91",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-11-03T18:21:51.000Z",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/0bf6e4d273f8347d03baf5a4ffcfdd03c38914be15c306d3304de2d40c13d147",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-11-03T18:21:53.000Z",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/20a0b28145102dbfd01c52a4d4c2c360a4dcc344cd4f053d8c3cb2a49d0394b0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    },
    {
      "r": "4.6.2",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-11-03T18:21:52.000Z",
      "commit": "882c2fb7fe0546f71f6f11bbfd3de6103859b098",
      "fileid": "https://r2.ropensci.org/283c6e99525ec106e87d69e19571278cc8d4f25a9eaf586435a65b375256fede",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cttir/actions/runs/41692013962"
    }
  ]
}