{
  "_id": "6a1f28c5b401979e73423989",
  "Package": "admixtools",
  "Type": "Package",
  "Title": "Inferring demographic history from genetic data",
  "Version": "2.0.10",
  "Authors@R": "c(\nperson(\"Robert\", \"Maier\", email = \"robertmaier@gmx.net\", role = c(\"aut\", \"cre\")),\nperson(\"Nick\", \"Patterson\", email = \"nickp@broadinstitute.org\", role = \"aut\")\n)",
  "Description": "admixtools is a set of methods used to infer demographic\nhistory from genetic data using f-statistics. It was originally\nimplemented as a command line program in C. This is a new\nimplementation of the programs qpDstat, qpAdm, qpGraph, and\ncontains several new features. It is efficient because it\nprecomputes f2-statistics which can be re-used for many\nanalyses.",
  "License": "GPL-3",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "SystemRequirements": "C++17",
  "URL": "https://github.com/uqrmaie1/admixtools",
  "BugReports": "https://github.com/uqrmaie1/admixtools/issues",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.0.0",
  "Config/testthat/edition": "3",
  "Config/pak/sysreqs": "libglpk-dev libicu-dev libxml2-dev libx11-dev",
  "Repository": "https://evolecolgroup.r-universe.dev",
  "Date/Publication": "2026-06-02 15:59:17 UTC",
  "RemoteUrl": "https://github.com/uqrmaie1/admixtools",
  "RemoteRef": "master",
  "RemoteSha": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-06-02 18:48:56 UTC",
    "User": "root"
  },
  "Author": "Robert Maier [aut, cre],\nNick Patterson [aut]",
  "Maintainer": "Robert Maier <robertmaier@gmx.net>",
  "MD5sum": "8f682bb2f48f9c5e31b8cbe1fa7f5e42",
  "_user": "evolecolgroup",
  "_type": "src",
  "_file": "admixtools_2.0.10.tar.gz",
  "_fileid": "132270dfe8b4089ea743c46fbf6b4c7c80f263a32957a8f09382d2646430fc7d",
  "_filesize": 68852360,
  "_sha256": "132270dfe8b4089ea743c46fbf6b4c7c80f263a32957a8f09382d2646430fc7d",
  "_created": "2026-06-02T18:48:56.000Z",
  "_published": "2026-06-02T19:02:29.215Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79148064971,
      "time": 297,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7367072007"
    },
    {
      "job": 79148064909,
      "time": 280,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7367064557"
    },
    {
      "job": 79148064984,
      "time": 353,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7367091155"
    },
    {
      "job": 79148065016,
      "time": 309,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7367075602"
    },
    {
      "job": 79148064935,
      "time": 237,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7367087654"
    },
    {
      "job": 79148064895,
      "time": 548,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7367193872"
    },
    {
      "job": 79148064887,
      "time": 228,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7367057984"
    },
    {
      "job": 79148065028,
      "time": 393,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7367146410"
    },
    {
      "job": 79146715809,
      "time": 431,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7366961574"
    },
    {
      "job": 79148064876,
      "time": 203,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7367037136"
    },
    {
      "job": 79148064896,
      "time": 369,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7367095103"
    },
    {
      "job": 79148064907,
      "time": 346,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7367089174"
    },
    {
      "job": 79148064919,
      "time": 338,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7367086009"
    }
  ],
  "_buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/uqrmaie1/admixtools",
  "_commit": {
    "id": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
    "author": "Carsten Erickson <127055967+carstenerickson@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "feat(graph_to_lgo): add fix_times mode and a clearer time-consistency error (#158)\n\nTwo follow-ups to graph_to_lgo, the admixtools to LEGOFIT .lgo writer.\n\n* fix_times (default FALSE) emits internal-node and admix-event times as `time fixed` at their computed values instead of `time free`. Pairing free per-segment twoN with free times leaves only the Delta_t/twoN ratio identifiable, so absolute times and twoN are degenerate up to a global scale. Fixing the times removes that degeneracy and makes absolute twoN recoverable. The default of FALSE leaves existing output unchanged.\n\n* The additive-inconsistency abort under time_handling \"fix_admix\" or \"init\" now explains the cause and points to time_handling \"free\" or \"init\" with an explicit time column. Message only, no behavior change.",
    "time": 1780415957
  },
  "_maintainer": {
    "name": "Robert Maier",
    "email": "robertmaier@gmx.net",
    "login": "uqrmaie1",
    "description": "",
    "uuid": 8817129
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.5.0",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "RcppArmadillo",
      "role": "LinkingTo"
    },
    {
      "package": "abind",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "crayon",
      "role": "Imports"
    },
    {
      "package": "cubelyr",
      "role": "Imports"
    },
    {
      "package": "data.tree",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "doParallel",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "foreach",
      "role": "Imports"
    },
    {
      "package": "furrr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "grDevices",
      "role": "Imports"
    },
    {
      "package": "igraph",
      "version": ">= 2.1.0",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "lobstr",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "pgenlibr",
      "role": "Imports"
    },
    {
      "package": "quadprog",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "Rcpp",
      "role": "Imports"
    },
    {
      "package": "readr",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stringi",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "version": ">= 3.1.0",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "admixturegraph",
      "role": "Suggests"
    },
    {
      "package": "DT",
      "role": "Suggests"
    },
    {
      "package": "future",
      "role": "Suggests"
    },
    {
      "package": "genio",
      "role": "Suggests"
    },
    {
      "package": "ggforce",
      "role": "Suggests"
    },
    {
      "package": "gridExtra",
      "role": "Suggests"
    },
    {
      "package": "htmlwidgets",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "m2r",
      "role": "Suggests"
    },
    {
      "package": "plotly",
      "role": "Suggests"
    },
    {
      "package": "pracma",
      "role": "Suggests"
    },
    {
      "package": "pROC",
      "role": "Suggests"
    },
    {
      "package": "Rgraphviz",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "shinyjs",
      "role": "Suggests"
    },
    {
      "package": "shinyBS",
      "role": "Suggests"
    },
    {
      "package": "shinyFiles",
      "role": "Suggests"
    },
    {
      "package": "shinyalert",
      "role": "Suggests"
    },
    {
      "package": "shinythemes",
      "role": "Suggests"
    },
    {
      "package": "shinyWidgets",
      "role": "Suggests"
    },
    {
      "package": "shinydashboard",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tidyverse",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "uqrmaie1",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-23",
      "n": 2
    },
    {
      "week": "2026-20",
      "n": 8
    },
    {
      "week": "2026-21",
      "n": 31
    },
    {
      "week": "2026-22",
      "n": 15
    },
    {
      "week": "2026-23",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v2.0.10",
      "date": "2025-06-07"
    }
  ],
  "_stars": 96,
  "_contributors": [
    {
      "user": "uqrmaie1",
      "count": 224,
      "uuid": 8817129
    },
    {
      "user": "carstenerickson",
      "count": 55,
      "uuid": 127055967
    },
    {
      "user": "ulasisik",
      "count": 15,
      "uuid": 33749031
    },
    {
      "user": "floutt",
      "count": 9,
      "uuid": 19860132
    },
    {
      "user": "rmmaier",
      "count": 1,
      "uuid": 57805604
    }
  ],
  "_userbio": {
    "uuid": 44270007,
    "type": "organization",
    "name": "Evolutionary Ecology Group at University of Cambridge"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/admixtools"
  },
  "_devurl": "https://github.com/uqrmaie1/admixtools",
  "_searchresults": 253,
  "_topics": [
    "openblas",
    "cpp"
  ],
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/admixtools.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_exports": [
    "add_sampled_tips",
    "afs_to_counts",
    "afs_to_f2",
    "agraph_to_igraph",
    "as_edge_tibble",
    "boo_list",
    "compare_fits",
    "compute_f2_cache_id",
    "count_snps",
    "decomposed_tree_neighbors",
    "default_drift_to_time",
    "delete_admix",
    "delete_groups",
    "delete_leaf",
    "desimplify_graph",
    "discard_from_aftable",
    "edges_to_igraph",
    "eigenstrat_to_afs",
    "eigenstrat_to_plink",
    "est_to_boo",
    "est_to_loo",
    "extract_afs",
    "extract_afs_simple",
    "extract_counts",
    "extract_f2",
    "extract_f2_subset",
    "extract_samples",
    "f2",
    "f2_from_geno",
    "f2_from_msprime",
    "f2_from_precomp",
    "f2dat_f4dat",
    "f3",
    "f3blockdat_from_geno",
    "f4",
    "f4_from_afdat",
    "f4_from_f2",
    "f4blockdat_from_geno",
    "f4blockdat_to_f4blocks",
    "find_admixedges",
    "find_graphs",
    "find_graphs_old",
    "find_newedges",
    "find_normedges",
    "flipadmix_random",
    "fst",
    "generate_all_graphs",
    "generate_all_trees",
    "get_block_lengths",
    "get_leafnames",
    "get_outpop",
    "get_rootname",
    "graph_addleaf",
    "graph_equations",
    "graph_f2_function",
    "graph_flipadmix",
    "graph_hash",
    "graph_minusone",
    "graph_minusplus",
    "graph_nodes",
    "graph_plusone",
    "graph_splittrees",
    "graph_to_afs",
    "graph_to_lgo",
    "graph_to_pcs",
    "graph_to_qpadm",
    "graphmod_pavel",
    "group_samples",
    "igraph_to_agraph",
    "insert_admix",
    "insert_admix_n",
    "insert_leaf",
    "is_valid",
    "isomorphism_classes",
    "isomorphism_classes2",
    "joint_sfs",
    "joint_spectrum",
    "lazadm",
    "loo_list",
    "loo_to_est",
    "move_admixedge_once",
    "msprime_genome",
    "msprime_sim",
    "mutate_n",
    "namedList",
    "newick_to_edges",
    "node_times",
    "numadmix",
    "packedancestrymap_to_afs",
    "packedancestrymap_to_plink",
    "parse_dot",
    "parse_fstats",
    "parse_qp3pop_output",
    "parse_qpadm_output",
    "parse_qpdstat_output",
    "parse_qpf4ratio_output",
    "parse_qpgraph_graphfile",
    "parse_qpgraph_output",
    "permute_leaves",
    "pfile_to_afs",
    "place_root_random",
    "plink_to_afs",
    "plot_comparison",
    "plot_graph",
    "plot_graph_map",
    "plot_map",
    "plotly_comparison",
    "plotly_graph",
    "pseudo_dates",
    "qp3pop",
    "qp3pop_resample_inds",
    "qp3pop_resample_snps",
    "qp3pop_wrapper",
    "qpadm",
    "qpadm_models",
    "qpadm_multi",
    "qpadm_p",
    "qpadm_resample_inds",
    "qpadm_resample_snps",
    "qpadm_rotate",
    "qpadm_sweep",
    "qpadm_wrapper",
    "qpdstat",
    "qpdstat_resample_inds",
    "qpdstat_resample_snps",
    "qpdstat_wrapper",
    "qpf4diff",
    "qpf4ratio",
    "qpf4ratio_wrapper",
    "qpfstats",
    "qpgraph",
    "qpgraph_precompute_f3",
    "qpgraph_resample_inds",
    "qpgraph_resample_multi",
    "qpgraph_resample_snps",
    "qpgraph_resample_snps2",
    "qpgraph_wrapper",
    "qpwave",
    "qpwave_pairs",
    "qpwave_resample_inds",
    "qpwave_resample_snps",
    "random_admixturegraph",
    "random_dates",
    "random_newick",
    "random_sim",
    "read_eigenstrat",
    "read_f2",
    "read_f2_cache_metadata",
    "read_lgo",
    "read_packedancestrymap",
    "read_plink",
    "result_to_json",
    "rotate_models",
    "run_shiny_admixtools",
    "satisfies_constraints",
    "satisfies_eventorder",
    "satisfies_nonzerof4",
    "satisfies_numadmix",
    "satisfies_zerof4",
    "set_node_attrs",
    "shortest_unique_prefixes",
    "simplify_graph",
    "split_mat",
    "split_multifurcations",
    "spr_all",
    "spr_leaves",
    "summarize_descendants",
    "summarize_descendants_list",
    "summarize_eventorder",
    "summarize_eventorder_list",
    "summarize_fits",
    "summarize_numadmix",
    "summarize_numadmix_list",
    "summarize_proxies",
    "summarize_proxies_list",
    "summarize_zerof4",
    "summarize_zerof4_list",
    "swap_leaves",
    "test_cladality",
    "tree_in_graph",
    "tree_neighbors",
    "unidentifiable_edges",
    "write_dot",
    "write_f2"
  ],
  "_datasets": [
    {
      "name": "example_anno",
      "title": "Data frame with sample annotations",
      "object": "example_anno",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "iid",
        "yearsbp",
        "group",
        "Continent",
        "Country",
        "lat",
        "lon"
      ],
      "rows": 6725,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_f2_blocks",
      "title": "Blocked f2-statistics for 7 populations",
      "object": "example_f2_blocks",
      "class": [
        "array"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "example_f2sim1",
      "title": "Simulated f2-statistics for 5 populations",
      "object": "example_f2sim1",
      "class": [
        "array"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "example_graph",
      "title": "Admixture graph for 7 populations",
      "object": "example_graph",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "from",
        "to"
      ],
      "rows": 27,
      "table": true,
      "tojson": true
    },
    {
      "name": "example_igraph",
      "title": "Admixture graph for 7 populations",
      "object": "example_igraph",
      "class": [
        "igraph"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "example_opt",
      "title": "Data frame with one fitted admixture graph",
      "object": "example_opt",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "generation",
        "graph",
        "edges",
        "score",
        "mutation",
        "hash",
        "lasthash"
      ],
      "rows": 205,
      "table": false,
      "tojson": false
    },
    {
      "name": "example_qpgraph_ref_results",
      "title": "example_graph fitted using qpGraph",
      "object": "example_qpgraph_ref_results",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "example_triples",
      "title": "Data frame with population triples",
      "object": "example_triples",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "name1",
        "name2",
        "name3",
        "numgraphs",
        "x13",
        "x23",
        "x31",
        "x32",
        "clade",
        "x12",
        "x21",
        "toptopo",
        "toptopocnt",
        "topos"
      ],
      "rows": 120,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_sampled_tips",
      "title": "Materialise sampled internal nodes as leaf tips.",
      "topics": [
        "add_sampled_tips"
      ]
    },
    {
      "page": "admixtools",
      "title": "Tools for inferring demographic history from genetic data",
      "topics": [
        "admixtools-package",
        "admixtools"
      ]
    },
    {
      "page": "afs_to_counts",
      "title": "Compute count blocks and write them to disk",
      "topics": [
        "afs_to_counts"
      ]
    },
    {
      "page": "afs_to_f2",
      "title": "Compute f2 blocks and write them to disk",
      "topics": [
        "afs_to_f2"
      ]
    },
    {
      "page": "afs_to_f2_blocks",
      "title": "Compute all pairwise f2 statistics",
      "topics": [
        "afs_to_f2_blocks"
      ]
    },
    {
      "page": "agraph_to_igraph",
      "title": "Convert agraph to igraph",
      "topics": [
        "agraph_to_igraph"
      ]
    },
    {
      "page": "as_edge_tibble",
      "title": "Coerce to a plain edge tibble (drop the nodes attribute).",
      "topics": [
        "as_edge_tibble"
      ]
    },
    {
      "page": "boo_list",
      "title": "Generate a list of bootstrap resampled arrays",
      "topics": [
        "boo_list"
      ]
    },
    {
      "page": "compare_fits",
      "title": "Compare the fit of two qpgraph models",
      "topics": [
        "compare_fits"
      ]
    },
    {
      "page": "compare_fits2",
      "title": "Compare the fit of two qpgraph models",
      "topics": [
        "compare_fits2"
      ]
    },
    {
      "page": "compare_fits4",
      "title": "Compare the fit of two qpgraph models",
      "topics": [
        "compare_fits4"
      ]
    },
    {
      "page": "compute_f2_cache_id",
      "title": "Compute a stable cache identifier for an 'extract_f2' run",
      "topics": [
        "compute_f2_cache_id"
      ]
    },
    {
      "page": "count_snps",
      "title": "Count SNPs in an f2-statistics array",
      "topics": [
        "count_snps"
      ]
    },
    {
      "page": "count_zero_edges",
      "title": "Count zero-length edges",
      "topics": [
        "count_zero_edges"
      ]
    },
    {
      "page": "decomposed_tree_neighbors",
      "title": "Find all trees within SPR distance of 1 of all graph component trees",
      "topics": [
        "decomposed_tree_neighbors"
      ]
    },
    {
      "page": "default_drift_to_time",
      "title": "Default drift-to-time conversion (identity)",
      "topics": [
        "default_drift_to_time"
      ]
    },
    {
      "page": "delete_admix",
      "title": "Delete an admixture edge",
      "topics": [
        "delete_admix"
      ]
    },
    {
      "page": "delete_groups",
      "title": "Delete groups",
      "topics": [
        "delete_groups"
      ]
    },
    {
      "page": "delete_leaf",
      "title": "Remove population from graph",
      "topics": [
        "delete_leaf"
      ]
    },
    {
      "page": "desimplify_graph",
      "title": "Add two nodes before each admixture node",
      "topics": [
        "desimplify_graph"
      ]
    },
    {
      "page": "discard_from_aftable",
      "title": "Filter SNPs in an allele-frequency table",
      "topics": [
        "discard_from_aftable"
      ]
    },
    {
      "page": "edges_to_igraph",
      "title": "Convert data frame graph to igraph",
      "topics": [
        "edges_to_igraph"
      ]
    },
    {
      "page": "eigenstrat_to_afs",
      "title": "Read allele frequencies from _EIGENSTRAT_ files",
      "topics": [
        "eigenstrat_to_afs"
      ]
    },
    {
      "page": "est_to_boo",
      "title": "Turn per-block estimates into bootstrap estimates",
      "topics": [
        "est_to_boo"
      ]
    },
    {
      "page": "est_to_loo",
      "title": "Turn per-block estimates into leave-one-out estimates",
      "topics": [
        "est_to_loo"
      ]
    },
    {
      "page": "example_anno",
      "title": "Data frame with sample annotations",
      "topics": [
        "example_anno"
      ]
    },
    {
      "page": "example_f2_blocks",
      "title": "Blocked f2-statistics for 7 populations",
      "topics": [
        "example_f2_blocks"
      ]
    },
    {
      "page": "example_f2sim1",
      "title": "Simulated f2-statistics for 5 populations",
      "topics": [
        "example_f2sim1"
      ]
    },
    {
      "page": "example_graph",
      "title": "Admixture graph for 7 populations",
      "topics": [
        "example_graph"
      ]
    },
    {
      "page": "example_igraph",
      "title": "Admixture graph for 7 populations",
      "topics": [
        "example_igraph"
      ]
    },
    {
      "page": "example_opt",
      "title": "Data frame with one fitted admixture graph",
      "topics": [
        "example_opt"
      ]
    },
    {
      "page": "example_qpgraph_ref_results",
      "title": "example_graph fitted using qpGraph",
      "topics": [
        "example_qpgraph_ref_results"
      ]
    },
    {
      "page": "example_triples",
      "title": "Data frame with population triples",
      "topics": [
        "example_triples"
      ]
    },
    {
      "page": "extract_afs",
      "title": "Compute and store blocked allele frequency data",
      "topics": [
        "extract_afs"
      ]
    },
    {
      "page": "extract_afs_simple",
      "title": "Compute and store blocked allele frequency data",
      "topics": [
        "extract_afs_simple"
      ]
    },
    {
      "page": "extract_counts",
      "title": "Extract and store data needed to compute blocked f2",
      "topics": [
        "extract_counts"
      ]
    },
    {
      "page": "extract_f2",
      "title": "Compute and store blocked f2 statistics",
      "topics": [
        "extract_f2"
      ]
    },
    {
      "page": "extract_f2_large",
      "title": "Compute and store blocked f2 statistics",
      "topics": [
        "extract_f2_large"
      ]
    },
    {
      "page": "extract_f2_subset",
      "title": "Copy f2-statistics",
      "topics": [
        "extract_f2_subset"
      ]
    },
    {
      "page": "extract_samples",
      "title": "Extract samples from PLINK files",
      "topics": [
        "extract_samples"
      ]
    },
    {
      "page": "f2",
      "title": "Estimate f2 statistics",
      "topics": [
        "f2"
      ]
    },
    {
      "page": "f2_from_geno",
      "title": "Compute blocked f2 statistics",
      "topics": [
        "f2_from_geno"
      ]
    },
    {
      "page": "f2_from_msprime",
      "title": "Simulate an admixture graph in msprime",
      "topics": [
        "f2_from_msprime"
      ]
    },
    {
      "page": "f2_from_precomp",
      "title": "Read blocked f2 statistics from disk",
      "topics": [
        "f2_from_precomp"
      ]
    },
    {
      "page": "f2dat_f4dat",
      "title": "Turn f2 data to f4 data",
      "topics": [
        "f2dat_f4dat"
      ]
    },
    {
      "page": "f3blockdat_from_geno",
      "title": "f3 from genotype data",
      "topics": [
        "f3blockdat_from_geno"
      ]
    },
    {
      "page": "f4_from_afdat",
      "title": "Compute f4 from allele frequencies",
      "topics": [
        "f4_from_afdat"
      ]
    },
    {
      "page": "f4_from_f2",
      "title": "Get per-block f4-statistics",
      "topics": [
        "f4_from_f2"
      ]
    },
    {
      "page": "f4blockdat_from_geno",
      "title": "f4 from genotype data",
      "topics": [
        "f4blockdat_from_geno"
      ]
    },
    {
      "page": "f4blockdat_to_f4blocks",
      "title": "Turn f4 block data to 3d array",
      "topics": [
        "f4blockdat_to_f4blocks"
      ]
    },
    {
      "page": "find_admixedges",
      "title": "Find admixture edges",
      "topics": [
        "find_admixedges"
      ]
    },
    {
      "page": "find_graphs",
      "title": "Find well fitting admixture graphs",
      "topics": [
        "find_graphs"
      ]
    },
    {
      "page": "find_graphs_old",
      "title": "Find well fitting admixture graphs",
      "topics": [
        "find_graphs_old"
      ]
    },
    {
      "page": "find_newedges",
      "title": "Find possible new edges",
      "topics": [
        "find_newedges"
      ]
    },
    {
      "page": "find_normedges",
      "title": "Find drift edges",
      "topics": [
        "find_normedges"
      ]
    },
    {
      "page": "flipadmix_random",
      "title": "Modify a graph flipping the direction of an admixture edge",
      "topics": [
        "flipadmix_random"
      ]
    },
    {
      "page": "fst",
      "title": "Compute Fst",
      "topics": [
        "fst"
      ]
    },
    {
      "page": "generate_all_graphs",
      "title": "Generate all graphs",
      "topics": [
        "generate_all_graphs"
      ]
    },
    {
      "page": "generate_all_trees",
      "title": "Generate all trees",
      "topics": [
        "generate_all_trees"
      ]
    },
    {
      "page": "get_block_lengths",
      "title": "Find LD-independent blocks",
      "topics": [
        "get_block_lengths"
      ]
    },
    {
      "page": "get_f2",
      "title": "Turns f2_data into f2_blocks",
      "topics": [
        "get_f2"
      ]
    },
    {
      "page": "get_leafnames",
      "title": "Get the population names of a graph",
      "topics": [
        "get_leafnames"
      ]
    },
    {
      "page": "get_outpop",
      "title": "Get the outgroup from a graph (if it exists)",
      "topics": [
        "get_outpop"
      ]
    },
    {
      "page": "get_rootname",
      "title": "Get the root name",
      "topics": [
        "get_rootname"
      ]
    },
    {
      "page": "graph_addleaf",
      "title": "Add a population to an admixture graph",
      "topics": [
        "graph_addleaf"
      ]
    },
    {
      "page": "graph_distances",
      "title": "Pairwise distance estimates for graphs",
      "topics": [
        "graph_distances"
      ]
    },
    {
      "page": "graph_equations",
      "title": "Find well fitting admixture graphs",
      "topics": [
        "graph_equations"
      ]
    },
    {
      "page": "graph_f2_function",
      "title": "Make a function representing a graph",
      "topics": [
        "graph_f2_function"
      ]
    },
    {
      "page": "graph_flipadmix",
      "title": "Find all valid graphs which result from flipping one admixture edge",
      "topics": [
        "graph_flipadmix"
      ]
    },
    {
      "page": "graph_hash",
      "title": "Get unique hash of an admixture graph",
      "topics": [
        "graph_hash"
      ]
    },
    {
      "page": "graph_minusone",
      "title": "Find all graphs which result from removing one admixture edge",
      "topics": [
        "graph_minusone"
      ]
    },
    {
      "page": "graph_minusplus",
      "title": "Find all graphs which result from adding and removing one admixture edge",
      "topics": [
        "graph_minusplus"
      ]
    },
    {
      "page": "graph_nodes",
      "title": "Return the nodes attribute of an edge tibble.",
      "topics": [
        "graph_nodes"
      ]
    },
    {
      "page": "graph_plusone",
      "title": "Find all graphs which result from adding one admixture edge",
      "topics": [
        "graph_plusone"
      ]
    },
    {
      "page": "graph_splittrees",
      "title": "Find all trees which are part of the admixture graph",
      "topics": [
        "graph_splittrees"
      ]
    },
    {
      "page": "graph_to_afs",
      "title": "Simulate allele frequncies under an admixture graph",
      "topics": [
        "graph_to_afs"
      ]
    },
    {
      "page": "graph_to_lgo",
      "title": "Export an admixtools admixture graph to LEGOFIT .lgo format",
      "topics": [
        "graph_to_lgo"
      ]
    },
    {
      "page": "graph_to_pcs",
      "title": "Simulate PCs under an admixture graph",
      "topics": [
        "graph_to_pcs"
      ]
    },
    {
      "page": "graph_to_qpadm",
      "title": "Get all qpadm models for a graph",
      "topics": [
        "graph_to_qpadm"
      ]
    },
    {
      "page": "graphmod_pavel",
      "title": "Return all graphs created from permuting a subclade",
      "topics": [
        "graphmod_pavel"
      ]
    },
    {
      "page": "group_samples",
      "title": "Group precomputed data",
      "topics": [
        "group_samples"
      ]
    },
    {
      "page": "igraph_to_agraph",
      "title": "Convert igraph to agraph",
      "topics": [
        "igraph_to_agraph"
      ]
    },
    {
      "page": "insert_admix",
      "title": "Insert a single edge into graph",
      "topics": [
        "insert_admix"
      ]
    },
    {
      "page": "insert_admix_n",
      "title": "Insert admixture edges into graph",
      "topics": [
        "insert_admix_n"
      ]
    },
    {
      "page": "insert_admix_old",
      "title": "Insert admixture edges into graph",
      "topics": [
        "insert_admix_old"
      ]
    },
    {
      "page": "insert_leaf",
      "title": "Add population to graph",
      "topics": [
        "insert_leaf"
      ]
    },
    {
      "page": "is_valid",
      "title": "Test if an admixture graph is valid",
      "topics": [
        "is_valid"
      ]
    },
    {
      "page": "isomorphism_classes",
      "title": "Find identical graphs",
      "topics": [
        "isomorphism_classes"
      ]
    },
    {
      "page": "isomorphism_classes2",
      "title": "Find identical graphs",
      "topics": [
        "isomorphism_classes2"
      ]
    },
    {
      "page": "joint_sfs",
      "title": "Joint site frequency spectrum",
      "topics": [
        "joint_sfs"
      ]
    },
    {
      "page": "joint_spectrum",
      "title": "Estimate joint allele frequency spectrum",
      "topics": [
        "joint_spectrum"
      ]
    },
    {
      "page": "lazadm",
      "title": "Estimate admixture weights",
      "topics": [
        "lazadm"
      ]
    },
    {
      "page": "loo_list",
      "title": "Generate a list of leave-one-out arrays",
      "topics": [
        "loo_list"
      ]
    },
    {
      "page": "loo_to_est",
      "title": "Turn leave-one-out estimates to per-block estimates",
      "topics": [
        "loo_to_est"
      ]
    },
    {
      "page": "move_admixedge_once",
      "title": "Modify a graph by moving an admixture edge",
      "topics": [
        "move_admixedge_once"
      ]
    },
    {
      "page": "msprime_genome",
      "title": "Simulate an admixture graph in msprime v1.x.",
      "topics": [
        "msprime_genome"
      ]
    },
    {
      "page": "msprime_sim",
      "title": "Simulate an admixture graph in msprime v1.x",
      "topics": [
        "msprime_sim"
      ]
    },
    {
      "page": "mutate_n",
      "title": "Modify a graph by applying n mutation functions",
      "topics": [
        "mutate_n"
      ]
    },
    {
      "page": "namedList",
      "title": "Create a named list from arguments",
      "topics": [
        "namedList"
      ]
    },
    {
      "page": "newick_to_edges",
      "title": "Turn a newick format tree to a matrix of edges",
      "topics": [
        "newick_to_edges"
      ]
    },
    {
      "page": "node_counts",
      "title": "Count how often each node in graph occurs in other graphs",
      "topics": [
        "node_counts"
      ]
    },
    {
      "page": "node_signature",
      "title": "Returns a signature of a graph consisting of the left and right descendent leaf nodes of each internal node (sorted and concatenated)",
      "topics": [
        "node_signature"
      ]
    },
    {
      "page": "node_times",
      "title": "Get fitted times as a named numeric vector.",
      "topics": [
        "node_times"
      ]
    },
    {
      "page": "numadmix",
      "title": "Count number of admixture nodes",
      "topics": [
        "numadmix"
      ]
    },
    {
      "page": "packedancestrymap_to_afs",
      "title": "Read allele frequencies from packedancestrymap files",
      "topics": [
        "packedancestrymap_to_afs"
      ]
    },
    {
      "page": "packedancestrymap_to_plink",
      "title": "Convert _EIGENSTRAT_ or _PACKEDANCESTRYMAP_ to _PLINK_",
      "topics": [
        "eigenstrat_to_plink",
        "packedancestrymap_to_plink"
      ]
    },
    {
      "page": "parse_dot",
      "title": "Read graph in dot format",
      "topics": [
        "parse_dot"
      ]
    },
    {
      "page": "parse_fstats",
      "title": "Parse qpGraph fstats output file",
      "topics": [
        "parse_fstats"
      ]
    },
    {
      "page": "parse_qp3pop_output",
      "title": "Read qp3Pop output file",
      "topics": [
        "parse_qp3pop_output"
      ]
    },
    {
      "page": "parse_qpadm_output",
      "title": "Read qpAdm output file",
      "topics": [
        "parse_qpadm_output"
      ]
    },
    {
      "page": "parse_qpdstat_output",
      "title": "Read qpDstat output file",
      "topics": [
        "parse_qpdstat_output"
      ]
    },
    {
      "page": "parse_qpf4ratio_output",
      "title": "Read qpF4ratio output file",
      "topics": [
        "parse_qpf4ratio_output"
      ]
    },
    {
      "page": "parse_qpgraph_graphfile",
      "title": "Read qpGraph graph file",
      "topics": [
        "parse_qpgraph_graphfile"
      ]
    },
    {
      "page": "parse_qpgraph_output",
      "title": "Read qpGraph output file",
      "topics": [
        "parse_qpgraph_output"
      ]
    },
    {
      "page": "permute_leaves",
      "title": "Modify a graph by permuting leaf nodes",
      "topics": [
        "permute_leaves"
      ]
    },
    {
      "page": "pfile_to_afs",
      "title": "Read allele frequencies from 'PFILE' files ('.pgen' / '.pvar' / '.psam')",
      "topics": [
        "pfile_to_afs"
      ]
    },
    {
      "page": "place_root_random",
      "title": "Modify a graph by changing the position of the root node",
      "topics": [
        "place_root_random"
      ]
    },
    {
      "page": "plink_to_afs",
      "title": "Read allele frequencies from 'PLINK' files",
      "topics": [
        "plink_to_afs"
      ]
    },
    {
      "page": "plot_comparison",
      "title": "Compare two models",
      "topics": [
        "plot_comparison"
      ]
    },
    {
      "page": "plot_graph",
      "title": "Plot an admixture graph",
      "topics": [
        "plot_graph"
      ]
    },
    {
      "page": "plot_graph_map",
      "title": "Plot an admixture graph on a map",
      "topics": [
        "plot_graph_map"
      ]
    },
    {
      "page": "plot_map",
      "title": "Plot samples on a map",
      "topics": [
        "plot_map"
      ]
    },
    {
      "page": "plotly_comparison",
      "title": "Compare two models",
      "topics": [
        "plotly_comparison"
      ]
    },
    {
      "page": "plotly_graph",
      "title": "Plot an admixture graph using plotly",
      "topics": [
        "plotly_graph"
      ]
    },
    {
      "page": "pseudo_dates",
      "title": "Get pseudo dates for graph nodes",
      "topics": [
        "pseudo_dates"
      ]
    },
    {
      "page": "qp3pop",
      "title": "Estimate f3 statistics",
      "topics": [
        "f3",
        "qp3pop"
      ]
    },
    {
      "page": "qp3pop_wrapper",
      "title": "Wrapper function around the original qp3Pop program",
      "topics": [
        "qp3pop_wrapper"
      ]
    },
    {
      "page": "qpadm",
      "title": "Estimate admixture weights",
      "topics": [
        "qpadm"
      ]
    },
    {
      "page": "qpadm_models",
      "title": "Partition a list of populations into left and right populations",
      "topics": [
        "qpadm_models"
      ]
    },
    {
      "page": "qpadm_models_old",
      "title": "Return all valid qpAdm models for an admixturegraph",
      "topics": [
        "qpadm_models_old"
      ]
    },
    {
      "page": "qpadm_multi",
      "title": "Run multiple qpadm models",
      "topics": [
        "qpadm_multi"
      ]
    },
    {
      "page": "qpadm_p",
      "title": "Faster version of 'qpadm' with reduced output",
      "topics": [
        "qpadm_p"
      ]
    },
    {
      "page": "qpadm_rotate",
      "title": "Compute p-values for many qpadm models",
      "topics": [
        "qpadm_rotate"
      ]
    },
    {
      "page": "qpadm_sweep",
      "title": "Sweep qpadm over a Cartesian product of targets, source-sets, and right-sets",
      "topics": [
        "qpadm_sweep"
      ]
    },
    {
      "page": "qpadm_wrapper",
      "title": "Wrapper function around the original qpAdm program",
      "topics": [
        "qpadm_wrapper"
      ]
    },
    {
      "page": "qpdstat",
      "title": "Estimate f4 statistics",
      "topics": [
        "f4",
        "qpdstat"
      ]
    },
    {
      "page": "qpdstat_wrapper",
      "title": "Wrapper function around the original qpDstat program",
      "topics": [
        "qpdstat_wrapper"
      ]
    },
    {
      "page": "qpf4diff",
      "title": "Estimate f4 differences",
      "topics": [
        "qpf4diff"
      ]
    },
    {
      "page": "qpf4ratio",
      "title": "Estimate admixture proportions via f4 ratios",
      "topics": [
        "qpf4ratio"
      ]
    },
    {
      "page": "qpf4ratio_wrapper",
      "title": "Wrapper function around the original qpF4ratio program",
      "topics": [
        "qpf4ratio_wrapper"
      ]
    },
    {
      "page": "qpfstats",
      "title": "Get smoothed f2-statistics",
      "topics": [
        "qpfstats"
      ]
    },
    {
      "page": "qpgraph",
      "title": "Compute the fit of an admixture graph",
      "topics": [
        "qpgraph"
      ]
    },
    {
      "page": "qpgraph_precompute_f3",
      "title": "Compute f3-statistics from f2-statistics.",
      "topics": [
        "qpgraph_precompute_f3"
      ]
    },
    {
      "page": "qpgraph_resample_multi",
      "title": "Evaluate a qpgraph models many times",
      "topics": [
        "qpgraph_resample_multi"
      ]
    },
    {
      "page": "qpgraph_resample_snps2",
      "title": "Evaluate a qpgraph model many times",
      "topics": [
        "qpgraph_resample_snps2"
      ]
    },
    {
      "page": "qpgraph_wrapper",
      "title": "Wrapper function around the original qpGraph program",
      "topics": [
        "qpgraph_wrapper"
      ]
    },
    {
      "page": "qpwave",
      "title": "Estimate admixture waves",
      "topics": [
        "qpwave"
      ]
    },
    {
      "page": "qpwave_pairs",
      "title": "Compute all pairwise qpwave p-values",
      "topics": [
        "qpwave_pairs"
      ]
    },
    {
      "page": "random_admixturegraph",
      "title": "Generate a random admixture graph",
      "topics": [
        "random_admixturegraph"
      ]
    },
    {
      "page": "random_dates",
      "title": "Get random dates for graph nodes",
      "topics": [
        "random_dates"
      ]
    },
    {
      "page": "random_newick",
      "title": "Generate a random binary graph",
      "topics": [
        "random_newick"
      ]
    },
    {
      "page": "random_sim",
      "title": "Generate a random graph and simulate it in msprime v1.x",
      "topics": [
        "random_sim"
      ]
    },
    {
      "page": "read_eigenstrat",
      "title": "Read genotype data from _EIGENSTRAT_ files",
      "topics": [
        "read_eigenstrat"
      ]
    },
    {
      "page": "read_f2",
      "title": "Read blocked f2 estimates from disk",
      "topics": [
        "read_f2"
      ]
    },
    {
      "page": "read_f2_cache_metadata",
      "title": "Read the cache metadata sidecar written by extract_f2()",
      "topics": [
        "read_f2_cache_metadata"
      ]
    },
    {
      "page": "read_lgo",
      "title": "Parse a LEGOFIT .lgo file (minimum-viable subset)",
      "topics": [
        "read_lgo"
      ]
    },
    {
      "page": "read_packedancestrymap",
      "title": "Read genotype data from packedancestrymap files",
      "topics": [
        "read_packedancestrymap"
      ]
    },
    {
      "page": "read_plink",
      "title": "Read genotype data from 'PLINK' files",
      "topics": [
        "read_plink"
      ]
    },
    {
      "page": "resample_inds",
      "title": "Run models while leaving out individuals",
      "topics": [
        "qp3pop_resample_inds",
        "qpadm_resample_inds",
        "qpdstat_resample_inds",
        "qpgraph_resample_inds",
        "qpwave_resample_inds",
        "resample_inds"
      ]
    },
    {
      "page": "resample_snps",
      "title": "Run models while leaving out SNP blocks",
      "topics": [
        "qp3pop_resample_snps",
        "qpadm_resample_snps",
        "qpdstat_resample_snps",
        "qpgraph_resample_snps",
        "qpwave_resample_snps",
        "resample_snps"
      ]
    },
    {
      "page": "result_to_json",
      "title": "Serialize an admixtools result to JSON",
      "topics": [
        "result_to_json"
      ]
    },
    {
      "page": "rotate_models",
      "title": "Rotate populations between left and right",
      "topics": [
        "rotate_models"
      ]
    },
    {
      "page": "run_shiny_admixtools",
      "title": "Launch ADMIXTOOLS 2 GUI",
      "topics": [
        "run_shiny_admixtools"
      ]
    },
    {
      "page": "satisfies_constraints",
      "title": "Test constraints on a graph",
      "topics": [
        "satisfies_constraints"
      ]
    },
    {
      "page": "satisfies_eventorder",
      "title": "Test f4 constraints on a graph",
      "topics": [
        "satisfies_eventorder"
      ]
    },
    {
      "page": "satisfies_nonzerof4",
      "title": "Test f4 constraints on a graph",
      "topics": [
        "satisfies_nonzerof4"
      ]
    },
    {
      "page": "satisfies_numadmix",
      "title": "Test admixture constraints on a graph",
      "topics": [
        "satisfies_numadmix"
      ]
    },
    {
      "page": "satisfies_zerof4",
      "title": "Test f4 constraints on a graph",
      "topics": [
        "satisfies_zerof4"
      ]
    },
    {
      "page": "set_node_attrs",
      "title": "Set or update node attributes.",
      "topics": [
        "set_node_attrs"
      ]
    },
    {
      "page": "shortest_unique_prefixes",
      "title": "Return shortest unique prefixes",
      "topics": [
        "shortest_unique_prefixes"
      ]
    },
    {
      "page": "simplify_graph",
      "title": "Remove redundant edges",
      "topics": [
        "simplify_graph"
      ]
    },
    {
      "page": "split_mat",
      "title": "Split a matrix into blocks",
      "topics": [
        "split_mat"
      ]
    },
    {
      "page": "split_multifurcations",
      "title": "Split nodes with more than two edges",
      "topics": [
        "split_multifurcations"
      ]
    },
    {
      "page": "spr_all",
      "title": "Modify a graph by regrafting a subcomponent",
      "topics": [
        "spr_all"
      ]
    },
    {
      "page": "spr_leaves",
      "title": "Modify a graph by regrafting a leaf",
      "topics": [
        "spr_leaves"
      ]
    },
    {
      "page": "summarize_descendants",
      "title": "List leaf nodes for all internal nodes",
      "topics": [
        "summarize_descendants"
      ]
    },
    {
      "page": "summarize_descendants_list",
      "title": "List leaf nodes for all internal nodes in a list of graphs",
      "topics": [
        "summarize_descendants_list"
      ]
    },
    {
      "page": "summarize_eventorder",
      "title": "List population split events in a graph",
      "topics": [
        "summarize_eventorder"
      ]
    },
    {
      "page": "summarize_eventorder_list",
      "title": "List population split events in a list of graphs",
      "topics": [
        "summarize_eventorder_list"
      ]
    },
    {
      "page": "summarize_fits",
      "title": "Summarize graph fits",
      "topics": [
        "summarize_fits"
      ]
    },
    {
      "page": "summarize_numadmix",
      "title": "List number of admixture events for each population",
      "topics": [
        "summarize_numadmix"
      ]
    },
    {
      "page": "summarize_numadmix_list",
      "title": "List number of admixture events for each population in a list of graphs",
      "topics": [
        "summarize_numadmix_list"
      ]
    },
    {
      "page": "summarize_proxies",
      "title": "Assign proxy populations to admixed populations",
      "topics": [
        "summarize_proxies"
      ]
    },
    {
      "page": "summarize_proxies_list",
      "title": "List proxy populations in graphlist",
      "topics": [
        "summarize_proxies_list"
      ]
    },
    {
      "page": "summarize_triples",
      "title": "Summarize triples across graphs",
      "topics": [
        "summarize_triples"
      ]
    },
    {
      "page": "summarize_zerof4",
      "title": "List clades in a graph",
      "topics": [
        "summarize_zerof4"
      ]
    },
    {
      "page": "summarize_zerof4_list",
      "title": "List clades in a list of graphs",
      "topics": [
        "summarize_zerof4_list"
      ]
    },
    {
      "page": "swap_leaves",
      "title": "Modify a graph by swapping two leaf nodes",
      "topics": [
        "swap_leaves"
      ]
    },
    {
      "page": "test_cladality",
      "title": "Test if two sets of populations form two clades",
      "topics": [
        "test_cladality"
      ]
    },
    {
      "page": "tree_in_graph",
      "title": "Test if a tree is part of a graph",
      "topics": [
        "tree_in_graph"
      ]
    },
    {
      "page": "tree_neighbors",
      "title": "Find all trees within SPR distance of 1",
      "topics": [
        "tree_neighbors"
      ]
    },
    {
      "page": "unidentifiable_edges",
      "title": "Find all unidentifiable edges",
      "topics": [
        "unidentifiable_edges"
      ]
    },
    {
      "page": "write_dot",
      "title": "Convert graph to dot format",
      "topics": [
        "write_dot"
      ]
    },
    {
      "page": "write_f2",
      "title": "Write blocked f2 estimates to disk",
      "topics": [
        "write_f2"
      ]
    }
  ],
  "_readme": "https://github.com/uqrmaie1/admixtools/raw/master/README.md",
  "_rundeps": [
    "abind",
    "bit",
    "bit64",
    "cli",
    "clipr",
    "codetools",
    "cpp11",
    "crayon",
    "cubelyr",
    "data.tree",
    "digest",
    "doParallel",
    "dplyr",
    "farver",
    "foreach",
    "furrr",
    "future",
    "generics",
    "ggplot2",
    "globals",
    "glue",
    "gtable",
    "hms",
    "igraph",
    "isoband",
    "iterators",
    "jsonlite",
    "labeling",
    "lattice",
    "lifecycle",
    "listenv",
    "lobstr",
    "magrittr",
    "Matrix",
    "parallelly",
    "pgenlibr",
    "pillar",
    "pkgconfig",
    "prettyunits",
    "progress",
    "purrr",
    "quadprog",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "RcppArmadillo",
    "readr",
    "rlang",
    "S7",
    "scales",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "tzdb",
    "utf8",
    "vctrs",
    "viridisLite",
    "vroom",
    "withr"
  ],
  "_sysdeps": [
    {
      "shlib": "liblapack",
      "package": "libopenblas0-pthread",
      "source": "openblas",
      "version": "0.3.26+ds-1ubuntu0.1",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    },
    {
      "shlib": "libblas",
      "package": "libopenblas0-pthread",
      "source": "openblas",
      "version": "0.3.26+ds-1ubuntu0.1",
      "name": "openblas",
      "homepage": "https://www.openblas.net/",
      "description": "Optimized BLAS (linear algebra) library (shared lib, pthread)"
    },
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "14.2.0-4ubuntu2~24.04.1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "admixtools.Rmd",
      "filename": "admixtools.html",
      "title": "ADMIXTOOLS 2 Tutorial",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "f-statistics basics",
        "f~2~ in ADMIXTOOLS 2",
        "f~3~ and qp3Pop",
        "f~4~ and qpDstat",
        "F~ST~",
        "qpWave and qpAdm",
        "Running many models",
        "Pairwise cladality tests",
        "Rotating outgroups",
        "Many qpadm models",
        "Sweeps over target × source × right",
        "qpGraph",
        "More about graphs",
        "Comparing results between ADMIXTOOLS and ADMIXTOOLS 2"
      ],
      "created": "2019-12-20 20:20:01",
      "modified": "2026-05-24 10:06:35",
      "commits": 41
    },
    {
      "source": "graphs.Rmd",
      "filename": "graphs.html",
      "title": "Admixture graphs",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Graphs and f-statistics",
        "Graphs and f2",
        "Graphs and f4",
        "f4 ratio test",
        "Graph as a function",
        "Identifiability",
        "How it works",
        "f-statistics vs SFS",
        "Modeling demographic history",
        "Distinguishing between a large number of alternative models requires a large amount of data",
        "Incorporating prior information",
        "f-statistics, qpAdm, and admixture graphs",
        "Graphs in ADMIXTOOLS 2",
        "Valid graphs",
        "Creating and loading admixture graphs",
        "Modifying admixture graphs",
        "Fitting a single graph",
        "Initial weights",
        "Regularization terms",
        "Edge constraints",
        "Confidence intervals",
        "Why f3?",
        "Exploring different graphs",
        "Fully automated graph exploration",
        "Constraining the search space",
        "Semi-automated graph exploration",
        "Comparing the fits of different graphs",
        "Out-of-sample scores",
        "Bootstrap-resampled graph fits",
        "Summarizing graphs",
        "Number of admixing sources",
        "Order of events",
        "Non-zero f4-statistics",
        "Simulating under an admixture graph",
        "msprime"
      ],
      "created": "2020-08-04 17:31:03",
      "modified": "2026-05-24 17:48:10",
      "commits": 25
    },
    {
      "source": "io.Rmd",
      "filename": "io.html",
      "title": "Data formats",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Genotype data formats",
        "PLINK",
        "PLINK 2 (PFILE)",
        "EIGENSTRAT/PACKEDANCESTRYMAP",
        "Reading genotype files",
        "Extracting populations",
        "Combining data sets",
        "Computing allele frequencies",
        "Converting PACKEDANCESTRYMAP to PLINK",
        "f2 cache metadata",
        "Admixture graph formats",
        "Edge list format",
        "igraph format",
        "Original ADMIXTOOLS format",
        "DOT format"
      ],
      "created": "2020-07-31 21:24:35",
      "modified": "2026-05-23 22:50:16",
      "commits": 15
    },
    {
      "source": "fstats.Rmd",
      "filename": "fstats.html",
      "title": "f-statistics",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "f~2~",
        "f~4~",
        "Biases",
        "Bias due to inaccurate allele frequency estimates",
        "Bias due to missing data",
        "Bias due to SNP ascertainment",
        "Common vs rare SNPs",
        "f-statistics in ADMIXTOOLS 2",
        "Allele frequency products",
        "Extracting f~2~ for a large number of populations",
        "Extracting f~2~ for arbitrary populations"
      ],
      "created": "2020-07-31 14:35:31",
      "modified": "2026-05-24 16:47:24",
      "commits": 25
    },
    {
      "source": "paper.Rmd",
      "filename": "paper.html",
      "title": "Paper notes",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Thoughts on Maier, Flegontov et al.",
        "How to prevent overfitting",
        "More thoughts on admixture graphs",
        "What can be concluded if multiple different admixture graph models fit around equally well?",
        "If we don't have enough data to fit complex models, can we just fit simpler models?",
        "When are admixture graph models adequate?",
        "What other options are there?",
        "Correlation, causality, and admixture graphs",
        "More reasons tread carefully",
        "Researcher degrees of freedom",
        "SNP ascertainment",
        "Conclusion"
      ],
      "created": "2022-05-09 00:58:26",
      "modified": "2023-07-07 20:50:57",
      "commits": 2
    },
    {
      "source": "parallel.Rmd",
      "filename": "parallel.html",
      "title": "Parallelization",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What's parallelized",
        "multisession vs multicore",
        "Parallelization on a compute cluster",
        "When parallelization doesn't help"
      ],
      "created": "2020-08-04 17:31:03",
      "modified": "2026-05-23 23:33:04",
      "commits": 5
    },
    {
      "source": "plotting.Rmd",
      "filename": "plotting.html",
      "title": "Plotting",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Plot admixture graph",
        "Admixture graph on a map",
        "All samples on a map"
      ],
      "created": "2019-12-20 20:20:01",
      "modified": "2026-05-24 17:27:21",
      "commits": 9
    },
    {
      "source": "qpadm.Rmd",
      "filename": "qpadm.html",
      "title": "qpWave and qpAdm",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "qpWave",
        "qpWave and f4",
        "Estimating the number of independent gene flows",
        "Estimating the rank of X",
        "qpAdm",
        "Modelling an admixed population",
        "qpadm in practice",
        "Diagnosing collinear right populations",
        "Multiple models: qpadm_multi and qpadm_sweep",
        "qpwave-style runs against genotype data"
      ],
      "created": "2020-12-28 05:09:53",
      "modified": "2026-05-30 07:13:56",
      "commits": 8
    },
    {
      "source": "resampling.Rmd",
      "filename": "resampling.html",
      "title": "Standard errors",
      "author": "Robert Maier",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Quantifying uncertainty",
        "Standard errors and hypothesis testing",
        "Jackknife and bootstrap",
        "Blocked jackknife and bootstrap",
        "Resampling SNPs",
        "Testing whether two graphs fit significantly differently",
        "Resampling individuals"
      ],
      "created": "2020-07-31 21:24:35",
      "modified": "2026-05-24 17:10:08",
      "commits": 14
    }
  ],
  "_score": 8.33963426365471,
  "_indexed": false,
  "_nocasepkg": "admixtools",
  "_universes": [
    "evolecolgroup"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.0.10",
      "date": "2026-06-02T18:53:58.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "3f85d47da8a08db9cc132ce11aa510ff6273b6d836a25fdded42da225cfe4cb0",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "2.0.10",
      "date": "2026-06-02T18:53:39.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "8d21682575af0e0af56cddb4114ff49e1269ca7395a6b53511b602f6381ce2a5",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "2.0.10",
      "date": "2026-06-02T18:54:48.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "8933951cd36288ee6c645823808a51895cf58b8132781f64ca447ed8ce9c7288",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "2.0.10",
      "date": "2026-06-02T18:53:59.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "41f30a91797ef30a8cc5084c5a4adfa6e2967ce4423d5fcad7132951598ea9db",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.0.10",
      "date": "2026-06-02T18:54:54.000Z",
      "arch": "aarch64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "585ccc5cc5e849df14e40feefcf326d987fdc184e56698cfae3acc4c02e3d491",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "2.0.10",
      "date": "2026-06-02T18:57:22.000Z",
      "arch": "x86_64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "5beabbfdfad37e6c6c0faa3ee3923a77f826050026077b2dd3d07a7bd52d9e8c",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "2.0.10",
      "date": "2026-06-02T18:53:32.000Z",
      "arch": "aarch64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "3c097eba335ba5f27c076c326013b2831a5a0d824b40afa7c9a454c50e0cc79b",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "2.0.10",
      "date": "2026-06-02T18:56:14.000Z",
      "arch": "x86_64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "16a5f2f9d4ef7b79752f3db06de398b9eb47b9b2ffb77121ded03bd674f00a56",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "2.0.10",
      "date": "2026-06-02T18:54:11.000Z",
      "arch": "emscripten",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "bdfba0bbdf29a1fd061a5f9539fc74e9694471f88cb52f8c013724ea489e0dd9",
      "status": "success",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "2.0.10",
      "date": "2026-06-02T18:53:23.000Z",
      "arch": "x86_64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "a4b549429538bc700168dbe116c87c0a2851c7debb60612c40018c56dc9806ae",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "2.0.10",
      "date": "2026-06-02T18:53:07.000Z",
      "arch": "x86_64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "db41612735ed79ceb70e3c2bc8736204252b951c37e0bbd365c0a301614850ea",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "2.0.10",
      "date": "2026-06-02T18:52:59.000Z",
      "arch": "x86_64",
      "commit": "0c3ce6a408888bb2241ce4a08c6f06e45e774aa0",
      "fileid": "655beefc3d380df25dbcfdc770f3712ab0b495f197c32c276c03895404b82c38",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/evolecolgroup/actions/runs/26840684747"
    }
  ]
}