{
  "_id": "6a1f2e95b401979e73426ad3",
  "Package": "ggmuller",
  "Title": "Create Muller Plots of Evolutionary Dynamics",
  "Version": "0.7.0",
  "Authors@R": "person(\"Robert\", \"Noble\", email = \"robjohnnoble@gmail.com\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-8057-4252\"))",
  "Description": "Create plots that combine a phylogeny and frequency\ndynamics. Phylogenetic input can be a generic adjacency matrix\nor a tree of class \"phylo\". Inspired by similar plots in\npublications of the labs of RE Lenski and JE Barrick. Named for\nHJ Muller (who popularised such plots) and H Wickham (whose\ncode this package exploits).",
  "VignetteBuilder": "knitr",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/robjohnnoble/ggmuller",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "RoxygenNote": "7.3.3",
  "Repository": "https://robjohnnoble.r-universe.dev",
  "Date/Publication": "2026-01-15 10:54:20 UTC",
  "RemoteUrl": "https://github.com/robjohnnoble/ggmuller",
  "RemoteRef": "HEAD",
  "RemoteSha": "7d485163a1d678bc57a8790d86cce99708737f2a",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-15 09:25:12 UTC",
    "User": "root"
  },
  "Author": "Robert Noble [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-8057-4252>)",
  "Maintainer": "Robert Noble <robjohnnoble@gmail.com>",
  "MD5sum": "530528d9b36463e8700034d1d4c1387a",
  "_user": "robjohnnoble",
  "_type": "src",
  "_file": "ggmuller_0.7.0.tar.gz",
  "_fileid": "77b93039c00d729012fb7966bbf293b1447232e60bb512d47d4f0b461b9c8d2f",
  "_filesize": 550856,
  "_sha256": "77b93039c00d729012fb7966bbf293b1447232e60bb512d47d4f0b461b9c8d2f",
  "_created": "2026-05-15T09:25:12.000Z",
  "_published": "2026-06-02T19:27:17.424Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79154385316,
      "time": 141,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7014039559"
    },
    {
      "job": 79154385407,
      "time": 177,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7014050740"
    },
    {
      "job": 79154385384,
      "time": 156,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7014036343"
    },
    {
      "job": 79154385272,
      "time": 166,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7014031866"
    },
    {
      "job": 79154385109,
      "time": 179,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7013998986"
    },
    {
      "job": 79154384515,
      "time": 102,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7367731224"
    },
    {
      "job": 79154385385,
      "time": 87,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7014024428"
    },
    {
      "job": 79154385926,
      "time": 126,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7014035190"
    },
    {
      "job": 79154385880,
      "time": 79,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7014022094"
    }
  ],
  "_buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/robjohnnoble/ggmuller",
  "_commit": {
    "id": "7d485163a1d678bc57a8790d86cce99708737f2a",
    "author": "Rob Noble <robjohnnoble@gmail.com>",
    "committer": "Rob Noble <robjohnnoble@gmail.com>",
    "message": "Avoid warnings in vignette\n\nRemove aes_string. Change the `<scale>` argument of `guides()` from `FALSE` to \"none\".\n",
    "time": 1768474460
  },
  "_maintainer": {
    "name": "Robert Noble",
    "email": "robjohnnoble@gmail.com",
    "login": "robjohnnoble",
    "twitter": "@robjohnnoble",
    "uuid": 6522653,
    "orcid": "0000-0002-8057-4252"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.2.0",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "version": ">= 0.7.0",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "ape",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "RColorBrewer",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "robjohnnoble",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-03",
      "n": 11
    }
  ],
  "_tags": [],
  "_stars": 66,
  "_contributors": [
    {
      "user": "robjohnnoble",
      "count": 156,
      "uuid": 6522653
    },
    {
      "user": "goldingn",
      "count": 4,
      "uuid": 4450731
    },
    {
      "user": "cecilelesueur",
      "count": 3,
      "uuid": 43442886
    },
    {
      "user": "asiripanich",
      "count": 1,
      "uuid": 17020181
    }
  ],
  "_userbio": {
    "uuid": 6522653,
    "type": "user",
    "name": "Rob Noble",
    "description": "Mathematical modeller in evolution and ecology of cancer."
  },
  "_downloads": {
    "count": 604,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/ggmuller"
  },
  "_mentions": 4,
  "_devurl": "https://github.com/robjohnnoble/ggmuller",
  "_searchresults": 71,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/ggmuller.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/robjohnnoble/ggmuller",
  "_realowner": "robjohnnoble",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2017-09-01"
    },
    {
      "version": "0.2.1",
      "date": "2017-09-01"
    },
    {
      "version": "0.2.2",
      "date": "2017-09-11"
    },
    {
      "version": "0.3",
      "date": "2017-10-20"
    },
    {
      "version": "0.4",
      "date": "2018-02-08"
    },
    {
      "version": "0.5.1",
      "date": "2018-02-16"
    },
    {
      "version": "0.5.3",
      "date": "2019-01-15"
    },
    {
      "version": "0.5.4",
      "date": "2019-09-05"
    },
    {
      "version": "0.5.6",
      "date": "2023-02-12"
    },
    {
      "version": "0.7.0",
      "date": "2026-01-15"
    }
  ],
  "_exports": [
    "add_empty_pop",
    "add_root_row",
    "add_start_points",
    "adj_matrix_to_tree",
    "branch_singles",
    "find_start_node",
    "get_Adj",
    "get_edges",
    "get_Muller_df",
    "get_population_df",
    "move_down",
    "move_right",
    "move_up",
    "Muller_plot",
    "Muller_pop_plot",
    "path_vector",
    "path_vector_new",
    "reorder_by_vector"
  ],
  "_datasets": [
    {
      "name": "example_df",
      "title": "Example dataframe",
      "object": "example_df",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Generation",
        "Identity",
        "Parent",
        "Population",
        "RelativeFitness"
      ],
      "rows": 1266,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_edges",
      "title": "Example adjacency matrix",
      "object": "example_edges",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Parent",
        "Identity"
      ],
      "rows": 6,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_pop_df",
      "title": "Example population dataframe",
      "object": "example_pop_df",
      "class": [
        "data.frame"
      ],
      "fields": [
        "Generation",
        "Identity",
        "Population"
      ],
      "rows": 49,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_empty_pop",
      "title": "Modify a dataframe to enable plotting of populations instead of frequencies",
      "topics": [
        "add_empty_pop"
      ]
    },
    {
      "page": "add_root_row",
      "title": "Add a row to the edges list to represent the root node (if not already present).",
      "topics": [
        "add_root_row"
      ]
    },
    {
      "page": "add_start_points",
      "title": "Add rows to a population dataframe to ensure genotype starting points are plotted correctly",
      "topics": [
        "add_start_points"
      ]
    },
    {
      "page": "adj_matrix_to_tree",
      "title": "Create a tree object of class \"phylo\" from an adjacency matrix",
      "topics": [
        "adj_matrix_to_tree"
      ]
    },
    {
      "page": "branch_singles",
      "title": "Add branches of length zero to get rid of single nodes in an adjacency matrix",
      "topics": [
        "branch_singles"
      ]
    },
    {
      "page": "example_df",
      "title": "Example dataframe",
      "topics": [
        "example_df"
      ]
    },
    {
      "page": "example_edges",
      "title": "Example adjacency matrix",
      "topics": [
        "example_edges"
      ]
    },
    {
      "page": "example_pop_df",
      "title": "Example population dataframe",
      "topics": [
        "example_pop_df"
      ]
    },
    {
      "page": "find_start_node",
      "title": "Move to top of adjacency matrix",
      "topics": [
        "find_start_node"
      ]
    },
    {
      "page": "get_Adj",
      "title": "Get adjacency list of a tree.",
      "topics": [
        "get_Adj"
      ]
    },
    {
      "page": "get_edges",
      "title": "Extract an adjacency matrix from a larger data frame",
      "topics": [
        "get_edges"
      ]
    },
    {
      "page": "get_Muller_df",
      "title": "Create a data frame from which to create a Muller plot",
      "topics": [
        "get_Muller_df"
      ]
    },
    {
      "page": "get_population_df",
      "title": "Extract population data from a larger data frame",
      "topics": [
        "get_population_df"
      ]
    },
    {
      "page": "move_down",
      "title": "Move to daughter in adjacency matrix",
      "topics": [
        "move_down"
      ]
    },
    {
      "page": "move_right",
      "title": "Move to sibling in adjacency matrix",
      "topics": [
        "move_right"
      ]
    },
    {
      "page": "move_up",
      "title": "Move to parent in adjacency matrix",
      "topics": [
        "move_up"
      ]
    },
    {
      "page": "Muller_plot",
      "title": "Draw a Muller plot of frequencies using ggplot2",
      "topics": [
        "Muller_plot"
      ]
    },
    {
      "page": "Muller_pop_plot",
      "title": "Draw a Muller plot of population sizes using ggplot2",
      "topics": [
        "Muller_pop_plot"
      ]
    },
    {
      "page": "path_vector",
      "title": "Record a path through all nodes of an adjacency matrix",
      "topics": [
        "path_vector"
      ]
    },
    {
      "page": "path_vector_new",
      "title": "Faster way to record a path through all nodes of an adjacency matrix",
      "topics": [
        "path_vector_new"
      ]
    },
    {
      "page": "reorder_by_vector",
      "title": "Reorder a Muller plot dataframe by a vector",
      "topics": [
        "reorder_by_vector"
      ]
    }
  ],
  "_readme": "https://github.com/robjohnnoble/ggmuller/raw/HEAD/README.md",
  "_rundeps": [
    "ape",
    "cli",
    "cpp11",
    "digest",
    "dplyr",
    "farver",
    "generics",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "labeling",
    "lattice",
    "lifecycle",
    "magrittr",
    "nlme",
    "pillar",
    "pkgconfig",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "S7",
    "scales",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "ggmuller.Rmd",
      "filename": "ggmuller.html",
      "title": "Introduction to ggmuller",
      "engine": "knitr::rmarkdown",
      "headings": [
        "How does it work?",
        "Basic usage: frequencies",
        "Basic usage: population sizes",
        "A more detailed example",
        "Further customisation with ggplot",
        "Converting between adjacency matrix and phylo representations"
      ],
      "created": "2017-09-01 07:46:09",
      "modified": "2026-01-15 10:54:20",
      "commits": 19
    }
  ],
  "_score": 7.448953534644588,
  "_indexed": true,
  "_nocasepkg": "ggmuller",
  "_universes": [
    "robjohnnoble"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.7.0",
      "date": "2026-05-15T09:27:18.000Z",
      "distro": "noble",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "ed26743937c62da66b09d1d9c85a557da9cfc227a8e0541050544b6ba0d6d9a1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.7.0",
      "date": "2026-05-15T09:27:56.000Z",
      "distro": "noble",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "bcbd78189585e0158be9ae1a1823064da4ec89b16d1acb74bf9c94cf609d4532",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-05-15T09:27:20.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "bda6cc6d24a70863e829ed8b0b16687cabf142780529de28bca05986621ea21f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-05-15T09:27:02.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "191b8fa68288dd507879f6a1e1a757071df1bb18c3c0a4f7ccfbd2ea232b1037",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-05-15T09:26:21.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "054e69ef46e5aca666388167d90a6f05a0b4a275d5f58b39d2c23530318b540e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-05-15T09:27:01.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "8ebe5da6f04d4a9ac7fdf24a44ec8b483b9020bceb1a1480cf158bf430c7d42e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-05-15T09:26:15.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "649dad361fb72af65d051cfeba5646ad0e0891f71446a9e5ac182126f24e99cb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.7.0",
      "date": "2026-06-02T19:27:03.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "0c8196aa226ffd73dd0a040a11550b151e56febcc9fb917ae452bde6a894844a",
      "status": "success",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/25910335012"
    }
  ]
}