{
  "_id": "6ad7ede00d12c08e591b9553",
  "Package": "palettome",
  "Title": "Hierarchy-Aware, Interactively Editable Color Palettes for\nClusters",
  "Version": "1.0.1",
  "Authors@R": "person(\"Chenbin\", \"Huang\", email = \"chenbin.huang@emory.edu\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-2179-2217\"))",
  "Description": "Assigns perceptually-informed color palettes to clustered\ndata (e.g. scRNA-seq clusters / cell subtypes from 'Seurat' or\nplain UMAP coordinate tables), where clusters that belong to\nthe same \"family\" (e.g. subtypes of T cells) can be colored\neither harmoniously (shared hue, varying shade) or with maximal\ncontrast (with family membership encoded via a secondary\nchannel). Families can be auto-detected from embedding-space\nhierarchical clustering or supplied explicitly, and every\ngenerated color remains individually overridable, with manual\noverrides preserved across regeneration. Colors are constructed\nin the HCL space as in Zeileis et al. (2020)\n<doi:10.18637/jss.v096.i01>, separated using the CIEDE2000\ncolor difference of Sharma, Wu and Dalal (2005)\n<doi:10.1002/col.20070>, and checked for color-vision\ndeficiency using the simulation of Machado, Oliveira and\nFernandes (2009) <doi:10.1109/TVCG.2009.113>. Core algorithms\nhave no UI dependencies; an optional interactive 'shiny' UI is\nprovided separately.",
  "License": "Apache License (== 2.0)",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.2",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "URL": "https://github.com/thisishcb/Palettome",
  "BugReports": "https://github.com/thisishcb/Palettome/issues",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-20 22:37:01 UTC",
    "User": "root"
  },
  "Author": "Chenbin Huang [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-2179-2217>)",
  "Maintainer": "Chenbin Huang <chenbin.huang@emory.edu>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-20 18:20:10 UTC",
  "RemoteUrl": "https://github.com/cran/palettome",
  "RemoteRef": "HEAD",
  "RemoteSha": "cbe1961a52b81788dc1f3a54bb8a41c907e9047d",
  "_user": "cran",
  "_type": "src",
  "_file": "palettome_1.0.1.tar.gz",
  "_fileid": "https://r2.ropensci.org/d2532b691e91d1369fd16242d758c55c00dc08e907b26133c2f224edb3bad5b3",
  "_filesize": 1287293,
  "_sha256": "d2532b691e91d1369fd16242d758c55c00dc08e907b26133c2f224edb3bad5b3",
  "_expires": "2027-01-28T22:40:30.000Z",
  "_created": "2026-10-20T22:37:01.000Z",
  "_published": "2026-10-20T22:40:32.954Z",
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/39508848165",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 118926520031,
      "time": 165,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12304748484"
    },
    {
      "job": 118926520104,
      "time": 166,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12305023032"
    },
    {
      "job": 118924640923,
      "time": 280,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12304433359"
    },
    {
      "job": 118926520011,
      "time": 153,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12304433752"
    },
    {
      "job": 118926520190,
      "time": 126,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12305250829"
    },
    {
      "job": 118926520040,
      "time": 108,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12305045992"
    }
  ],
  "_upstream": "https://github.com/cran/palettome",
  "_commit": {
    "id": "cbe1961a52b81788dc1f3a54bb8a41c907e9047d",
    "author": "Chenbin Huang <chenbin.huang@emory.edu>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.0.1\n",
    "time": 1792520410
  },
  "_maintainer": {
    "name": "Chenbin Huang",
    "email": "chenbin.huang@emory.edu",
    "login": "thisishcb",
    "description": "ShanghaiTech Alumni; \nMSCS & Current PhD Candidate  | Computer Science, Biomedical Informatics | Emory University ",
    "uuid": 24517165,
    "orcid": "0000-0002-2179-2217"
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "colorspace",
      "role": "Imports"
    },
    {
      "package": "farver",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "graphics",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "Seurat",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "plotly",
      "role": "Suggests"
    },
    {
      "package": "colourpicker",
      "role": "Suggests"
    },
    {
      "package": "shinyjs",
      "role": "Suggests"
    },
    {
      "package": "dendextend",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-43",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.0.1",
      "date": "2026-10-20"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "thisishcb",
      "count": 1,
      "uuid": 24517165
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/palettome"
  },
  "_devurl": "https://github.com/thisishcb/palettome",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/palettome.html",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.0.1",
      "date": "2026-10-20"
    }
  ],
  "_exports": [
    "as_cluster_data",
    "cluster_colors",
    "color_distance",
    "compute_centroids",
    "compute_family_dendrogram",
    "cut_families",
    "detect_families",
    "downsample_stratified",
    "export_palette_csv",
    "export_palette_json",
    "family_colors",
    "generate_palette",
    "import_palette_json",
    "launch_palettome_ui",
    "optimize_color",
    "plot_dendrogram",
    "plot_palette_static",
    "plot_swatches",
    "reset_overrides",
    "set_manual_color",
    "simulate_cvd"
  ],
  "_help": [
    {
      "page": "as_cluster_data",
      "title": "Build a palettome data object from a data frame or Seurat object",
      "topics": [
        "as_cluster_data",
        "as_cluster_data.data.frame",
        "as_cluster_data.Seurat"
      ]
    },
    {
      "page": "cluster_colors",
      "title": "Get cluster colors as a named vector or a plain data frame",
      "topics": [
        "cluster_colors"
      ]
    },
    {
      "page": "color_distance",
      "title": "Pairwise perceptual color distance",
      "topics": [
        "color_distance"
      ]
    },
    {
      "page": "compute_centroids",
      "title": "Compute per-cluster centroids and cell counts",
      "topics": [
        "compute_centroids"
      ]
    },
    {
      "page": "compute_family_dendrogram",
      "title": "Build a cluster-distance dendrogram for family detection",
      "topics": [
        "compute_family_dendrogram"
      ]
    },
    {
      "page": "cut_families",
      "title": "Cut a precomputed dendrogram into families",
      "topics": [
        "cut_families"
      ]
    },
    {
      "page": "detect_families",
      "title": "Detect (or pass through) cluster families",
      "topics": [
        "detect_families"
      ]
    },
    {
      "page": "downsample_stratified",
      "title": "Stratified per-cluster subsample for interactive preview",
      "topics": [
        "downsample_stratified"
      ]
    },
    {
      "page": "export_palette_csv",
      "title": "Export cluster and/or family color tables as CSV",
      "topics": [
        "export_palette_csv"
      ]
    },
    {
      "page": "export_palette_json",
      "title": "Export a palette session to JSON",
      "topics": [
        "export_palette_json"
      ]
    },
    {
      "page": "family_colors",
      "title": "Get family colors as a named vector or a plain data frame",
      "topics": [
        "family_colors"
      ]
    },
    {
      "page": "generate_palette",
      "title": "Generate a cluster/family color palette",
      "topics": [
        "generate_palette"
      ]
    },
    {
      "page": "import_palette_json",
      "title": "Import a palette session from JSON",
      "topics": [
        "import_palette_json"
      ]
    },
    {
      "page": "launch_palettome_ui",
      "title": "Launch the interactive Palettome Shiny UI",
      "topics": [
        "launch_palettome_ui"
      ]
    },
    {
      "page": "optimize_color",
      "title": "Snap a hand-picked color into the palette's aesthetic envelope",
      "topics": [
        "optimize_color"
      ]
    },
    {
      "page": "plot_dendrogram",
      "title": "Plot a dendrogram preview of detected families",
      "topics": [
        "plot_dendrogram"
      ]
    },
    {
      "page": "plot_palette_static",
      "title": "Static plot of an embedding colored by the current palette",
      "topics": [
        "plot_palette_static"
      ]
    },
    {
      "page": "plot_swatches",
      "title": "Standalone swatch/legend figure, grouped by family",
      "topics": [
        "plot_swatches"
      ]
    },
    {
      "page": "reset_overrides",
      "title": "Reset manual color overrides",
      "topics": [
        "reset_overrides"
      ]
    },
    {
      "page": "set_manual_color",
      "title": "Manually set a cluster's or family's color",
      "topics": [
        "set_manual_color"
      ]
    },
    {
      "page": "simulate_cvd",
      "title": "Simulate color-vision deficiency on a palette",
      "topics": [
        "simulate_cvd"
      ]
    }
  ],
  "_readme": "https://github.com/cran/palettome/raw/HEAD/README.md",
  "_rundeps": [
    "colorspace",
    "farver",
    "jsonlite"
  ],
  "_vignettes": [
    {
      "source": "palettome.Rmd",
      "filename": "palettome.html",
      "title": "Getting started with palettome",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What this package is for",
        "Example data",
        "Step 1: build a palettome_data object",
        "The same step with a Seurat object",
        "Step 2: detect families",
        "Step 3: generate a palette",
        "Harmonious mode",
        "Contrast mode",
        "Steering the look",
        "Step 4: manual overrides",
        "Checking the palette",
        "Using the colors elsewhere",
        "Saving and resuming",
        "Large datasets",
        "The interactive UI"
      ],
      "created": "2026-10-20 18:20:10",
      "modified": "2026-10-20 18:20:10",
      "commits": 1
    }
  ],
  "_score": 2.6989700043360187,
  "_indexed": false,
  "_nocasepkg": "palettome",
  "_universes": [
    "cran",
    "thisishcb"
  ],
  "_indexurl": "https://thisishcb.r-universe.dev/palettome",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.1",
      "date": "2026-10-20T22:39:44.000Z",
      "distro": "resolute",
      "commit": "cbe1961a52b81788dc1f3a54bb8a41c907e9047d",
      "fileid": "https://r2.ropensci.org/33b4444424dabb0b2f17fde77219cbb5e537af80969b0169150194e6782f59f1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39508848165"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.0.1",
      "date": "2026-10-20T22:39:41.000Z",
      "distro": "resolute",
      "commit": "cbe1961a52b81788dc1f3a54bb8a41c907e9047d",
      "fileid": "https://r2.ropensci.org/8de91daa856ecb2adc5cc9e45f0ffeec64535228f5737560cce2f0808baf7c74",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39508848165"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.1",
      "date": "2026-10-20T22:39:52.000Z",
      "commit": "cbe1961a52b81788dc1f3a54bb8a41c907e9047d",
      "fileid": "https://r2.ropensci.org/a357140bf077c0176d6e3203c68aa49feedaefe1d41d026ee73626eea4050ce3",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39508848165"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.1",
      "date": "2026-10-20T22:39:01.000Z",
      "commit": "cbe1961a52b81788dc1f3a54bb8a41c907e9047d",
      "fileid": "https://r2.ropensci.org/80337bf319245146ee2cf96685109b4c063067ef766ae234c59d6acb1ae8fbf1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39508848165"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.0.1",
      "date": "2026-10-20T22:38:42.000Z",
      "commit": "cbe1961a52b81788dc1f3a54bb8a41c907e9047d",
      "fileid": "https://r2.ropensci.org/539e6b2baa37a25b1e159a3b0e9edefb5a13c5ed4a9bd9d73b7f225f5d9ddb5b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/39508848165"
    }
  ]
}