{
  "_id": "6acca3cea14063b82c3a7367",
  "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-10-12 09:05:56 UTC",
    "User": "root"
  },
  "Author": "Robert Noble [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-8057-4252>)",
  "Maintainer": "Robert Noble <robjohnnoble@gmail.com>",
  "_user": "robjohnnoble",
  "_type": "src",
  "_file": "ggmuller_0.7.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/1d66fc710e2b40c959daa6cf07e3bdf922a5d49903a13854a6d6ce2692c6050f",
  "_filesize": 551943,
  "_sha256": "1d66fc710e2b40c959daa6cf07e3bdf922a5d49903a13854a6d6ce2692c6050f",
  "_expires": "2027-01-20T09:09:32.000Z",
  "_created": "2026-10-12T09:05:56.000Z",
  "_published": "2026-10-12T09:09:34.527Z",
  "_buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 114739241667,
      "time": 124,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11735879890"
    },
    {
      "job": 114739241532,
      "time": 171,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11735954796"
    },
    {
      "job": 114739241688,
      "time": 153,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11737825043"
    },
    {
      "job": 114739241641,
      "time": 160,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11737295723"
    },
    {
      "job": 114738098035,
      "time": 191,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11736384912"
    },
    {
      "job": 114739241536,
      "time": 88,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11737260662"
    },
    {
      "job": 114739241589,
      "time": 94,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11737028244"
    },
    {
      "job": 114739241572,
      "time": 87,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11736079445"
    },
    {
      "job": 114739241559,
      "time": 93,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11735824839"
    }
  ],
  "_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",
    "description": "Mathematical modeller in evolution and ecology of cancer.",
    "uuid": 6522653,
    "orcid": "0000-0002-8057-4252"
  },
  "_distro": "resolute",
  "_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",
    "followers": 32,
    "description": "Mathematical modeller in evolution and ecology of cancer."
  },
  "_downloads": {
    "count": 564,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/ggmuller"
  },
  "_mentions": 4,
  "_devurl": "https://github.com/robjohnnoble/ggmuller",
  "_searchresults": 71,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/ggmuller.html",
    "extra/manual.pdf",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_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-10-12T09:07:44.000Z",
      "distro": "resolute",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/1c0524d41abc0025c2adcf55058a163caf1ac5713776852764710cdc941be90e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.7.0",
      "date": "2026-10-12T09:08:31.000Z",
      "distro": "resolute",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/6ab5b9deeaf7822f5e5fd093a4b96d0d1a2c2410350d755c044db5e5bb151379",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-10-12T09:08:08.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/952f26c4e41a31a0d5edef0d99fece965b519a6d89b5b1866b8e5535a6c0e8df",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.7.0",
      "date": "2026-10-12T09:08:12.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/2d5fffaeec6bc26150734f9bb1104d618832e1fc971c5dc690e9b82f368c1469",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.7.0",
      "date": "2026-10-12T09:07:42.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/828c475c8a47889b509d20c25287ff0967ae5ea45b3ea8f95b6d9670ad4bc539",
      "status": "success",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-10-12T09:07:03.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/0ee3fe8258164b7e0082243ecb5c3d9b4e25e085e5d57cdab37653e86c910f64",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-10-12T09:07:03.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/3f54a033cd40689c4644ef89676e299928b50957683bd56874b62d3ff480fc58",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.7.0",
      "date": "2026-10-12T09:07:07.000Z",
      "commit": "7d485163a1d678bc57a8790d86cce99708737f2a",
      "fileid": "https://r2.ropensci.org/2b16eb8324f504792bdf6198f1b6c73cf70eedbd469ab65327d43b063dd58ca8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/robjohnnoble/actions/runs/38227342786"
    }
  ]
}