{
  "_id": "6ad004ade2d863f662953a8a",
  "Package": "clusnalyst",
  "Title": "Point-and-Click Cluster Analysis of Molecular and Trait Data",
  "Version": "0.1.0",
  "Authors@R": "c(\nperson(\"Ebenezer\", \"Ogoe\", , \"ebenezerogoe@gmail.com\", role = c(\"aut\", \"cre\", \"cph\"),\ncomment = \"Co-creator; wrote the 2026 package\"),\nperson(\"Michael\", \"Obeng\", role = \"aut\",\ncomment = \"Co-creator of Clusnalyst (2022)\"),\nperson(\"Stephen\", \"Amoako\", role = \"aut\",\ncomment = \"Co-creator of Clusnalyst (2022)\")\n)",
  "Description": "A 'shiny' application and a set of plain R functions for\nclustering samples from dominant markers, SNP genotypes (CSV,\nVCF or HapMap), quantitative or mixed traits, and DNA or\nprotein sequences. It computes distance matrices, builds trees\nby UPGMA, WPGMA, single, complete or Ward linkage, neighbour\njoining or BIONJ, and checks them with marker bootstrap support\n(Felsenstein 1985 <doi:10.1111/j.1558-5646.1985.tb00420.x>),\ncophenetic correlation, average silhouette width, the gap\nstatistic and Mantel tests. It also offers principal\ncoordinates and principal components, k-means and partitioning\naround medoids, and exports a self-contained HTML report and an\nR script that reproduces the analysis.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/ebenogoe/clusnalyst,\nhttps://ebenogoe.github.io/clusnalyst/",
  "BugReports": "https://github.com/ebenogoe/clusnalyst/issues",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "Config/pak/sysreqs": "libcairo2-dev cmake libfontconfig1-dev\nlibfreetype6-dev libfribidi-dev make libharfbuzz-dev libicu-dev\nlibpng-dev libuv1-dev zlib1g-dev",
  "Repository": "https://ebenogoe.r-universe.dev",
  "Date/Publication": "2026-10-14 19:33:12 UTC",
  "RemoteUrl": "https://github.com/ebenogoe/clusnalyst",
  "RemoteRef": "main",
  "RemoteSha": "026a65b73d10f5831353ea0330258c363a2299d5",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-14 22:33:28 UTC",
    "User": "root"
  },
  "Author": "Ebenezer Ogoe [aut, cre, cph] (Co-creator; wrote the 2026 package),\nMichael Obeng [aut] (Co-creator of Clusnalyst (2022)),\nStephen Amoako [aut] (Co-creator of Clusnalyst (2022))",
  "Maintainer": "Ebenezer Ogoe <ebenezerogoe@gmail.com>",
  "_user": "ebenogoe",
  "_type": "src",
  "_file": "clusnalyst_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/e0a4bd46c2de6495f92ba71933f4525ce4b488be0ce97b0abb3c95a9f94092cc",
  "_filesize": 1918428,
  "_sha256": "e0a4bd46c2de6495f92ba71933f4525ce4b488be0ce97b0abb3c95a9f94092cc",
  "_expires": "2027-01-22T22:39:19.000Z",
  "_created": "2026-10-14T22:33:28.000Z",
  "_published": "2026-10-14T22:39:40.653Z",
  "_buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 116141235450,
      "time": 179,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11933795886"
    },
    {
      "job": 116141235412,
      "time": 205,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11933437574"
    },
    {
      "job": 116141235738,
      "time": 131,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11932914249"
    },
    {
      "job": 116141235745,
      "time": 112,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11934010825"
    },
    {
      "job": 116139672630,
      "time": 246,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11932853969"
    },
    {
      "job": 116141235437,
      "time": 146,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11933795810"
    },
    {
      "job": 116141235471,
      "time": 111,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11932759914"
    },
    {
      "job": 116141235673,
      "time": 109,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11933516983"
    },
    {
      "job": 116141235592,
      "time": 133,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11932804306"
    }
  ],
  "_upstream": "https://github.com/ebenogoe/clusnalyst",
  "_commit": {
    "id": "026a65b73d10f5831353ea0330258c363a2299d5",
    "author": "Ebenezer Ogoe <ebenezerogoe@gmail.com>",
    "committer": "Ebenezer Ogoe <ebenezerogoe@gmail.com>",
    "message": "Fix guided tour; full-height page layout without sideways scroll\n",
    "time": 1792006392
  },
  "_maintainer": {
    "name": "Ebenezer Ogoe",
    "email": "ebenezerogoe@gmail.com",
    "login": "ebenogoe",
    "linkedin": "in/ebenogoe",
    "description": "",
    "uuid": 12881069
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "ade4",
      "role": "Imports"
    },
    {
      "package": "ape",
      "role": "Imports"
    },
    {
      "package": "Biostrings",
      "role": "Imports"
    },
    {
      "package": "bsicons",
      "role": "Imports"
    },
    {
      "package": "bslib",
      "version": ">= 0.8.0",
      "role": "Imports"
    },
    {
      "package": "cicerone",
      "role": "Imports"
    },
    {
      "package": "cluster",
      "role": "Imports"
    },
    {
      "package": "config",
      "role": "Imports"
    },
    {
      "package": "ggiraph",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.5.0",
      "role": "Imports"
    },
    {
      "package": "ggtree",
      "role": "Imports"
    },
    {
      "package": "golem",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "msa",
      "role": "Imports"
    },
    {
      "package": "reactable",
      "role": "Imports"
    },
    {
      "package": "readxl",
      "role": "Imports"
    },
    {
      "package": "seqinr",
      "role": "Imports"
    },
    {
      "package": "shiny",
      "version": ">= 1.8.1",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "svglite",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "vcfR",
      "role": "Imports"
    },
    {
      "package": "writexl",
      "role": "Imports"
    },
    {
      "package": "chromote",
      "role": "Suggests"
    },
    {
      "package": "pkgload",
      "role": "Suggests"
    },
    {
      "package": "shinytest2",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "ebenogoe",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-42",
      "n": 13
    }
  ],
  "_tags": [],
  "_topics": [
    "cluster-analysis",
    "phylogenetics",
    "plant-breeding",
    "shiny"
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "ebenogoe",
      "count": 13,
      "uuid": 12881069
    }
  ],
  "_userbio": {
    "uuid": 12881069,
    "type": "user",
    "name": "Ebenezer Ogoe",
    "followers": 2
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/clusnalyst"
  },
  "_devurl": "https://github.com/ebenogoe/clusnalyst",
  "_pkgdown": "https://ebenogoe.github.io/clusnalyst/",
  "_searchresults": 0,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/clusnalyst.html",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "align_sequences",
    "attach_metadata",
    "bootstrap_tree",
    "build_report",
    "build_script",
    "build_tree",
    "cl_palette",
    "clusnalyst_demo",
    "compute_distance",
    "consensus_tree",
    "cophenetic_cor",
    "cophenetic_table",
    "data_types",
    "default_distance",
    "default_settings",
    "demo_info",
    "detect_format",
    "distance_choices",
    "filter_data",
    "genotypes_to_dosage",
    "guess_type",
    "has_numeric",
    "load_session",
    "mantel_test",
    "metadata_distance",
    "optimal_k",
    "ordinate",
    "partition",
    "plot_heatmap",
    "plot_k",
    "plot_mantel",
    "plot_ordination",
    "plot_qc",
    "plot_scree",
    "plot_support",
    "plot_tree",
    "qc_summary",
    "read_fasta",
    "read_hapmap",
    "read_markers",
    "read_metadata",
    "read_second_matrix",
    "read_vcf",
    "run_analysis",
    "run_app",
    "sample_names",
    "save_session",
    "silhouette_meaning",
    "theme_clusnalyst",
    "tree_choices"
  ],
  "_help": [
    {
      "page": "align_sequences",
      "title": "Align sequences with the msa package",
      "topics": [
        "align_sequences"
      ]
    },
    {
      "page": "attach_metadata",
      "title": "Attach metadata to a dataset",
      "topics": [
        "attach_metadata"
      ]
    },
    {
      "page": "bootstrap_tree",
      "title": "Bootstrap support for a tree",
      "topics": [
        "bootstrap_tree"
      ]
    },
    {
      "page": "build_report",
      "title": "Write a self-contained HTML report",
      "topics": [
        "build_report"
      ]
    },
    {
      "page": "build_script",
      "title": "Write an R script that repeats an analysis",
      "topics": [
        "build_script"
      ]
    },
    {
      "page": "build_tree",
      "title": "Build a tree from a distance matrix",
      "topics": [
        "build_tree"
      ]
    },
    {
      "page": "cl_palette",
      "title": "Colours for groups",
      "topics": [
        "cl_palette"
      ]
    },
    {
      "page": "compute_distance",
      "title": "Compute a distance matrix",
      "topics": [
        "compute_distance"
      ]
    },
    {
      "page": "consensus_tree",
      "title": "Majority-rule consensus of bootstrap trees",
      "topics": [
        "consensus_tree"
      ]
    },
    {
      "page": "cophenetic_cor",
      "title": "Cophenetic correlation of a tree",
      "topics": [
        "cophenetic_cor"
      ]
    },
    {
      "page": "cophenetic_table",
      "title": "Compare tree methods by cophenetic correlation",
      "topics": [
        "cophenetic_table"
      ]
    },
    {
      "page": "data_types",
      "title": "Data types Clusnalyst works with",
      "topics": [
        "data_types"
      ]
    },
    {
      "page": "default_distance",
      "title": "Default distance for a dataset",
      "topics": [
        "default_distance"
      ]
    },
    {
      "page": "default_settings",
      "title": "Default analysis settings",
      "topics": [
        "default_settings"
      ]
    },
    {
      "page": "demo_info",
      "title": "Demo datasets",
      "topics": [
        "clusnalyst_demo",
        "demo_info"
      ]
    },
    {
      "page": "detect_format",
      "title": "Guess the format of a data file",
      "topics": [
        "detect_format"
      ]
    },
    {
      "page": "distance_choices",
      "title": "Distance measures available for a data type",
      "topics": [
        "distance_choices"
      ]
    },
    {
      "page": "filter_data",
      "title": "Filter markers, traits or sequences",
      "topics": [
        "filter_data"
      ]
    },
    {
      "page": "genotypes_to_dosage",
      "title": "Convert letter genotypes to allele dosages",
      "topics": [
        "genotypes_to_dosage"
      ]
    },
    {
      "page": "guess_type",
      "title": "Guess the data type of a table",
      "topics": [
        "guess_type"
      ]
    },
    {
      "page": "has_numeric",
      "title": "Can PCA or k-means be used on this dataset?",
      "topics": [
        "has_numeric"
      ]
    },
    {
      "page": "mantel_test",
      "title": "Mantel test between two distance matrices",
      "topics": [
        "mantel_test"
      ]
    },
    {
      "page": "metadata_distance",
      "title": "Distances from numeric metadata columns",
      "topics": [
        "metadata_distance"
      ]
    },
    {
      "page": "optimal_k",
      "title": "Choose the number of clusters",
      "topics": [
        "optimal_k"
      ]
    },
    {
      "page": "ordinate",
      "title": "Principal coordinates or principal components",
      "topics": [
        "ordinate"
      ]
    },
    {
      "page": "partition",
      "title": "Split samples into groups",
      "topics": [
        "partition"
      ]
    },
    {
      "page": "plot_heatmap",
      "title": "Heatmap of a distance matrix",
      "topics": [
        "plot_heatmap"
      ]
    },
    {
      "page": "plot_k",
      "title": "Plot the cluster-number diagnostics",
      "topics": [
        "plot_k"
      ]
    },
    {
      "page": "plot_mantel",
      "title": "Plot two distance matrices against each other",
      "topics": [
        "plot_mantel"
      ]
    },
    {
      "page": "plot_ordination",
      "title": "Plot an ordination",
      "topics": [
        "plot_ordination"
      ]
    },
    {
      "page": "plot_qc",
      "title": "Plot quality-check summaries",
      "topics": [
        "plot_qc"
      ]
    },
    {
      "page": "plot_scree",
      "title": "Scree plot of an ordination",
      "topics": [
        "plot_scree"
      ]
    },
    {
      "page": "plot_support",
      "title": "Plot bootstrap support values",
      "topics": [
        "plot_support"
      ]
    },
    {
      "page": "plot_tree",
      "title": "Plot a tree",
      "topics": [
        "plot_tree"
      ]
    },
    {
      "page": "qc_summary",
      "title": "Quality summary of a dataset",
      "topics": [
        "qc_summary"
      ]
    },
    {
      "page": "read_fasta",
      "title": "Read a FASTA file",
      "topics": [
        "read_fasta"
      ]
    },
    {
      "page": "read_hapmap",
      "title": "Read a HapMap genotype file",
      "topics": [
        "read_hapmap"
      ]
    },
    {
      "page": "read_markers",
      "title": "Read a data file into a Clusnalyst dataset",
      "topics": [
        "read_markers"
      ]
    },
    {
      "page": "read_metadata",
      "title": "Read a sample metadata table",
      "topics": [
        "read_metadata"
      ]
    },
    {
      "page": "read_second_matrix",
      "title": "Read a second matrix for a Mantel test",
      "topics": [
        "read_second_matrix"
      ]
    },
    {
      "page": "read_vcf",
      "title": "Read a VCF file as SNP dosages",
      "topics": [
        "read_vcf"
      ]
    },
    {
      "page": "run_analysis",
      "title": "Run a whole analysis from settings",
      "topics": [
        "run_analysis"
      ]
    },
    {
      "page": "run_app",
      "title": "Run the Clusnalyst app",
      "topics": [
        "run_app"
      ]
    },
    {
      "page": "sample_names",
      "title": "Sample names of a Clusnalyst dataset",
      "topics": [
        "sample_names"
      ]
    },
    {
      "page": "save_session",
      "title": "Save and restore an analysis session",
      "topics": [
        "load_session",
        "save_session"
      ]
    },
    {
      "page": "silhouette_meaning",
      "title": "How to read an average silhouette width",
      "topics": [
        "silhouette_meaning"
      ]
    },
    {
      "page": "theme_clusnalyst",
      "title": "ggplot2 theme used by Clusnalyst",
      "topics": [
        "theme_clusnalyst"
      ]
    },
    {
      "page": "tree_choices",
      "title": "Tree-building methods",
      "topics": [
        "tree_choices"
      ]
    }
  ],
  "_readme": "https://github.com/ebenogoe/clusnalyst/raw/main/README.md",
  "_rundeps": [
    "ade4",
    "ape",
    "aplot",
    "assertthat",
    "attempt",
    "base64enc",
    "BiocGenerics",
    "Biostrings",
    "bsicons",
    "bslib",
    "cachem",
    "cellranger",
    "cicerone",
    "cli",
    "cluster",
    "codetools",
    "commonmark",
    "config",
    "cpp11",
    "crayon",
    "digest",
    "dplyr",
    "evaluate",
    "farver",
    "fastmap",
    "fontawesome",
    "fontBitstreamVera",
    "fontLiberation",
    "fontquiver",
    "fs",
    "gdtools",
    "generics",
    "ggfun",
    "ggiraph",
    "ggplot2",
    "ggplotify",
    "ggtree",
    "glue",
    "golem",
    "gridGraphics",
    "gtable",
    "highr",
    "hms",
    "htmltools",
    "htmlwidgets",
    "httpuv",
    "IRanges",
    "isoband",
    "jquerylib",
    "jsonlite",
    "knitr",
    "labeling",
    "later",
    "lattice",
    "lazyeval",
    "lifecycle",
    "magrittr",
    "MASS",
    "Matrix",
    "memoise",
    "memuse",
    "mgcv",
    "mime",
    "msa",
    "MultipleAlignment",
    "nlme",
    "otel",
    "patchwork",
    "permute",
    "pillar",
    "pinfsc50",
    "pixmap",
    "pkgconfig",
    "prettyunits",
    "progress",
    "promises",
    "purrr",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "RcppArmadillo",
    "reactable",
    "reactR",
    "readxl",
    "rematch",
    "rlang",
    "rmarkdown",
    "S4Vectors",
    "S7",
    "sass",
    "scales",
    "segmented",
    "Seqinfo",
    "seqinr",
    "shiny",
    "sourcetools",
    "sp",
    "stringi",
    "stringr",
    "svglite",
    "systemfonts",
    "textshaping",
    "tibble",
    "tidyr",
    "tidyselect",
    "tidytree",
    "tinytex",
    "treeio",
    "utf8",
    "vcfR",
    "vctrs",
    "vegan",
    "viridisLite",
    "withr",
    "writexl",
    "xfun",
    "xtable",
    "XVector",
    "yaml",
    "yulab.utils"
  ],
  "_score": 1.6989700043360187,
  "_indexed": true,
  "_nocasepkg": "clusnalyst",
  "_universes": [
    "ebenogoe"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-10-14T22:36:13.000Z",
      "distro": "resolute",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/aa912e92559f3c001c597d445ea7c3735a8aea29b9f604f37ea7abc6815d817f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-10-14T22:36:37.000Z",
      "distro": "resolute",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/bd7a43d70f9cdad5b0981a1d86b037935639393014a5d3bd1dfdccddcb8940c2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-10-14T22:35:37.000Z",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/a28861ec1b3c7c48682ce5db7b5feeaa9d9f4a90d50dfbab6be280b7fc479a94",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.0",
      "date": "2026-10-14T22:37:17.000Z",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/3cf54b21a50ac5ef9fc06d4ad149867a8b7ff0200a6c49dea9605757c5df4ed9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-10-14T22:36:17.000Z",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/d557e0152148fe67845c373ac66c40ddba4caa1f522702286d84ab3ad7e94d09",
      "status": "success",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-10-14T22:34:53.000Z",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/c26f1b071df6c0339598be606183bf9a15723e715296a283fb3efebba6a6fcdf",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-10-14T22:34:50.000Z",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/2d5c948e75de379a52607aefea948fa0bffe095c28813e7eb23e6d789e64cd28",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-10-14T22:35:21.000Z",
      "commit": "026a65b73d10f5831353ea0330258c363a2299d5",
      "fileid": "https://r2.ropensci.org/015d9bcd2f091070eeb31876b41f2558099e3f8455eb0cf1ab36f1ccfc675a29",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/ebenogoe/actions/runs/38648002457"
    }
  ]
}