{
  "_id": "6a1ed349b401979e7340dfcb",
  "Package": "castor",
  "Type": "Package",
  "Title": "Efficient Phylogenetics on Large Trees",
  "Version": "1.8.5",
  "Date": "2026-01-20",
  "Authors@R": "c(person(\"Stilianos\", \"Louca\", role = c(\"aut\", \"cre\",\"cph\"), email=\"louca.research@gmail.com\"))",
  "Description": "Efficient phylogenetic analyses on massive phylogenies\ncomprising up to millions of tips. Functions include pruning,\nrerooting, calculation of most-recent common ancestors,\ncalculating distances from the tree root and calculating\npairwise distances. Calculation of phylogenetic signal and mean\ntrait depth (trait conservatism), ancestral state\nreconstruction and hidden character prediction of discrete\ncharacters, simulating and fitting models of trait evolution,\nfitting and simulating diversification models, dating trees,\ncomparing trees, and reading/writing trees in Newick format.\nCitation: Louca, Stilianos and Doebeli, Michael (2017)\n<doi:10.1093/bioinformatics/btx701>.",
  "License": "GPL (>= 2)",
  "RoxygenNote": "7.1.2",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-05-21 05:59:01 UTC",
    "User": "root"
  },
  "Author": "Stilianos Louca [aut, cre, cph]",
  "Maintainer": "Stilianos Louca <louca.research@gmail.com>",
  "Repository": "https://squidlobster.r-universe.dev",
  "Date/Publication": "2026-01-21 06:57:40 UTC",
  "RemoteUrl": "https://github.com/cran/castor",
  "RemoteRef": "HEAD",
  "RemoteSha": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
  "MD5sum": "8dd8e5191b9b59a76f12626dc38cf1e2",
  "_user": "squidlobster",
  "_type": "src",
  "_file": "castor_1.8.5.tar.gz",
  "_fileid": "ca2382c28e0f9b33f11ec547fe89d0c345d975a48cca86722ae591e45faea563",
  "_filesize": 2300896,
  "_sha256": "ca2382c28e0f9b33f11ec547fe89d0c345d975a48cca86722ae591e45faea563",
  "_created": "2026-05-21T05:59:01.000Z",
  "_published": "2026-06-02T12:57:45.964Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79075676457,
      "time": 207,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7128374794"
    },
    {
      "job": 79075676429,
      "time": 199,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7128373023"
    },
    {
      "job": 79075676598,
      "time": 206,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7128374573"
    },
    {
      "job": 79075676224,
      "time": 208,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7128375047"
    },
    {
      "job": 79075676496,
      "time": 140,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7128359845"
    },
    {
      "job": 79075676092,
      "time": 306,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7128397185"
    },
    {
      "job": 79075676465,
      "time": 129,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7128357217"
    },
    {
      "job": 79075676406,
      "time": 325,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7128401294"
    },
    {
      "job": 79075675443,
      "time": 220,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7128328219"
    },
    {
      "job": 79075675394,
      "time": 102,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 79075676335,
      "time": 255,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7128385941"
    },
    {
      "job": 79075676459,
      "time": 208,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7128375001"
    },
    {
      "job": 79075676022,
      "time": 229,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7128380031"
    }
  ],
  "_buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/castor",
  "_commit": {
    "id": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
    "author": "Stilianos Louca <louca.research@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.8.5\n",
    "time": 1768978660
  },
  "_maintainer": {
    "name": "Stilianos Louca",
    "email": "louca.research@gmail.com",
    "login": "squidlobster",
    "description": "",
    "uuid": 154851006
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "Rcpp",
      "version": ">= 0.12.10",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "parallel",
      "role": "Imports"
    },
    {
      "package": "naturalsort",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "RSpectra",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "nloptr",
      "role": "Suggests"
    },
    {
      "package": "ape",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": true,
  "_usedby": 9,
  "_updates": [
    {
      "week": "2025-34",
      "n": 1
    },
    {
      "week": "2026-04",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.8.4",
      "date": "2025-08-24"
    },
    {
      "name": "1.8.5",
      "date": "2026-01-21"
    }
  ],
  "_stars": 2,
  "_contributors": [
    {
      "user": "squidlobster",
      "count": 7,
      "uuid": 154851006
    }
  ],
  "_userbio": {
    "uuid": 154851006,
    "type": "user",
    "name": "squidlobster"
  },
  "_downloads": {
    "count": 1729,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/castor"
  },
  "_mentions": 5,
  "_searchresults": 575,
  "_topics": [
    "cpp"
  ],
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/castor.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "manual.pdf"
  ],
  "_realowner": "squidlobster",
  "_cranurl": false,
  "_releases": [
    {
      "version": "1.0",
      "date": "2017-05-20"
    },
    {
      "version": "1.1",
      "date": "2017-06-02"
    },
    {
      "version": "1.2",
      "date": "2017-09-23"
    },
    {
      "version": "1.2.1",
      "date": "2017-09-24"
    },
    {
      "version": "1.2.2",
      "date": "2017-09-27"
    },
    {
      "version": "1.3",
      "date": "2017-11-29"
    },
    {
      "version": "1.3.2",
      "date": "2018-01-20"
    },
    {
      "version": "1.3.3",
      "date": "2018-04-11"
    },
    {
      "version": "1.3.4",
      "date": "2018-08-16"
    },
    {
      "version": "1.3.5",
      "date": "2019-02-15"
    },
    {
      "version": "1.3.6",
      "date": "2019-05-06"
    },
    {
      "version": "1.4.0",
      "date": "2019-06-14"
    },
    {
      "version": "1.4.1",
      "date": "2019-06-15"
    },
    {
      "version": "1.4.2",
      "date": "2019-07-30"
    },
    {
      "version": "1.4.3",
      "date": "2019-09-20"
    },
    {
      "version": "1.5.0",
      "date": "2019-11-01"
    },
    {
      "version": "1.5.3",
      "date": "2019-12-20"
    },
    {
      "version": "1.5.4",
      "date": "2020-01-08"
    },
    {
      "version": "1.5.5",
      "date": "2020-01-10"
    },
    {
      "version": "1.5.7",
      "date": "2020-04-12"
    },
    {
      "version": "1.6.1",
      "date": "2020-06-29"
    },
    {
      "version": "1.6.2",
      "date": "2020-07-19"
    },
    {
      "version": "1.6.3",
      "date": "2020-08-27"
    },
    {
      "version": "1.6.4",
      "date": "2020-10-26"
    },
    {
      "version": "1.6.5",
      "date": "2021-01-06"
    },
    {
      "version": "1.6.6",
      "date": "2021-02-20"
    },
    {
      "version": "1.6.7",
      "date": "2021-03-11"
    },
    {
      "version": "1.6.8",
      "date": "2021-06-20"
    },
    {
      "version": "1.6.9",
      "date": "2021-08-16"
    },
    {
      "version": "1.7.0",
      "date": "2021-10-25"
    },
    {
      "version": "1.7.1",
      "date": "2022-01-05"
    },
    {
      "version": "1.7.2",
      "date": "2022-01-08"
    },
    {
      "version": "1.7.3",
      "date": "2022-09-01"
    },
    {
      "version": "1.7.4",
      "date": "2022-10-23"
    },
    {
      "version": "1.7.5",
      "date": "2022-11-10"
    },
    {
      "version": "1.7.6",
      "date": "2022-12-14"
    },
    {
      "version": "1.7.8",
      "date": "2023-03-01"
    },
    {
      "version": "1.7.9",
      "date": "2023-04-18"
    },
    {
      "version": "1.7.10",
      "date": "2023-05-19"
    },
    {
      "version": "1.7.11",
      "date": "2023-08-17"
    },
    {
      "version": "1.8.0",
      "date": "2024-01-09"
    },
    {
      "version": "1.8.2",
      "date": "2024-06-29"
    },
    {
      "version": "1.8.3",
      "date": "2024-11-17"
    },
    {
      "version": "1.8.4",
      "date": "2025-08-24"
    },
    {
      "version": "1.8.5",
      "date": "2026-01-21"
    }
  ],
  "_exports": [
    "asr_empirical_probabilities",
    "asr_independent_contrasts",
    "asr_max_parsimony",
    "asr_mk_model",
    "asr_squared_change_parsimony",
    "asr_subtree_averaging",
    "clade_densities",
    "collapse_monofurcations",
    "collapse_tree_at_resolution",
    "congruent_divergence_times",
    "congruent_hbds_model",
    "consensus_taxonomies",
    "consentrait_depth",
    "correlate_phylo_geodistances",
    "count_lineages_through_time",
    "count_tips_per_node",
    "count_transitions_between_clades",
    "date_tree_red",
    "discrete_trait_depth",
    "evaluate_spline",
    "expanded_tree_from_jplace",
    "expected_distances_sbm",
    "exponentiate_matrix",
    "extend_tree_to_height",
    "extract_deep_frame",
    "extract_fasttree_constraints",
    "extract_tip_neighborhood",
    "extract_tip_radius",
    "find_farthest_tip_pair",
    "find_farthest_tips",
    "find_nearest_tips",
    "find_root",
    "find_root_of_monophyletic_tips",
    "fit_and_compare_bm_models",
    "fit_and_compare_sbm_const",
    "fit_bm_model",
    "fit_hbd_model_on_grid",
    "fit_hbd_model_parametric",
    "fit_hbd_pdr_on_best_grid_size",
    "fit_hbd_pdr_on_grid",
    "fit_hbd_pdr_parametric",
    "fit_hbd_psr_on_best_grid_size",
    "fit_hbd_psr_on_grid",
    "fit_hbd_psr_parametric",
    "fit_hbds_model_on_grid",
    "fit_hbds_model_parametric",
    "fit_mk",
    "fit_musse",
    "fit_sbm_const",
    "fit_sbm_geobiased_const",
    "fit_sbm_linear",
    "fit_sbm_on_grid",
    "fit_sbm_parametric",
    "fit_tree_model",
    "gamma_statistic",
    "generate_gene_tree_msc",
    "generate_gene_tree_msc_hgt_dl",
    "generate_random_tree",
    "generate_tree_hbd_reverse",
    "generate_tree_hbds",
    "generate_tree_with_evolving_rates",
    "geographic_acf",
    "get_all_distances_to_root",
    "get_all_distances_to_tip",
    "get_all_node_depths",
    "get_all_pairwise_distances",
    "get_ancestral_nodes",
    "get_clade_list",
    "get_independent_contrasts",
    "get_independent_sister_tips",
    "get_mrca_of_set",
    "get_pairwise_distances",
    "get_pairwise_mrcas",
    "get_random_diffusivity_matrix",
    "get_random_mk_transition_matrix",
    "get_reds",
    "get_stationary_distribution",
    "get_subtree_at_node",
    "get_subtree_with_tips",
    "get_subtrees_at_nodes",
    "get_tips_for_mrcas",
    "get_trait_acf",
    "get_trait_stats_over_time",
    "get_transition_index_matrix",
    "get_tree_span",
    "get_tree_traversal_root_to_tips",
    "hsp_binomial",
    "hsp_empirical_probabilities",
    "hsp_independent_contrasts",
    "hsp_max_parsimony",
    "hsp_mk_model",
    "hsp_naive",
    "hsp_nearest_neighbor",
    "hsp_squared_change_parsimony",
    "hsp_subtree_averaging",
    "is_bifurcating",
    "is_monophyletic",
    "join_rooted_trees",
    "loglikelihood_hbd",
    "map_to_state_space",
    "mean_abs_change_scalar_ou",
    "merge_nodes_to_multifurcations",
    "merge_short_edges",
    "model_adequacy_hbd",
    "model_adequacy_hbds",
    "multifurcations_to_bifurcations",
    "pick_random_tips",
    "place_tips_taxonomically",
    "plot_tree_radial",
    "read_fasta",
    "read_fastq",
    "read_tree",
    "reconstruct_past_diversification",
    "reorder_tree_edges",
    "root_at_midpoint",
    "root_at_node",
    "root_in_edge",
    "root_via_outgroup",
    "root_via_rtt",
    "shift_clade_times",
    "simulate_bm_model",
    "simulate_deterministic_hbd",
    "simulate_deterministic_hbds",
    "simulate_diversification_model",
    "simulate_dsse",
    "simulate_mk_model",
    "simulate_musse",
    "simulate_ou_model",
    "simulate_rou_model",
    "simulate_sbm",
    "simulate_tdsse",
    "spline_coefficients",
    "split_tree_at_height",
    "tree_distance",
    "tree_from_branching_ages",
    "tree_from_sampling_branching_ages",
    "tree_from_taxa",
    "tree_imbalance",
    "trim_tree_at_height",
    "write_tree"
  ],
  "_help": [
    {
      "page": "castor",
      "title": "Efficient computations on large phylogenetic trees.",
      "topics": [
        "castor-package",
        "castor"
      ]
    },
    {
      "page": "asr_empirical_probabilities",
      "title": "Empirical ancestral state probabilities.",
      "topics": [
        "asr_empirical_probabilities"
      ]
    },
    {
      "page": "asr_independent_contrasts",
      "title": "Ancestral state reconstruction via phylogenetic independent contrasts.",
      "topics": [
        "asr_independent_contrasts"
      ]
    },
    {
      "page": "asr_max_parsimony",
      "title": "Maximum-parsimony ancestral state reconstruction.",
      "topics": [
        "asr_max_parsimony"
      ]
    },
    {
      "page": "asr_mk_model",
      "title": "Ancestral state reconstruction with Mk models and rerooting",
      "topics": [
        "asr_mk_model"
      ]
    },
    {
      "page": "asr_squared_change_parsimony",
      "title": "Squared-change parsimony ancestral state reconstruction.",
      "topics": [
        "asr_squared_change_parsimony"
      ]
    },
    {
      "page": "asr_subtree_averaging",
      "title": "Ancestral state reconstruction via subtree averaging.",
      "topics": [
        "asr_subtree_averaging"
      ]
    },
    {
      "page": "clade_densities",
      "title": "Estimate the density of tips & nodes in a timetree.",
      "topics": [
        "clade_densities"
      ]
    },
    {
      "page": "collapse_monofurcations",
      "title": "Remove monofurcations from a tree.",
      "topics": [
        "collapse_monofurcations"
      ]
    },
    {
      "page": "collapse_tree_at_resolution",
      "title": "Collapse nodes of a tree at a phylogenetic resolution.",
      "topics": [
        "collapse_tree_at_resolution"
      ]
    },
    {
      "page": "congruent_divergence_times",
      "title": "Extract dating anchors for a target tree, using a dated reference tree",
      "topics": [
        "congruent_divergence_times"
      ]
    },
    {
      "page": "congruent_hbds_model",
      "title": "Generate a congruent homogenous-birth-death-sampling model.",
      "topics": [
        "congruent_hbds_model"
      ]
    },
    {
      "page": "consensus_taxonomies",
      "title": "Compute consensus taxonomies across a tree.",
      "topics": [
        "consensus_taxonomies"
      ]
    },
    {
      "page": "consentrait_depth",
      "title": "Calculate phylogenetic depth of a binary trait using the consenTRAIT metric.",
      "topics": [
        "consentrait_depth"
      ]
    },
    {
      "page": "correlate_phylo_geodistances",
      "title": "Correlations between phylogenetic & geographic distances.",
      "topics": [
        "correlate_phylo_geodistances"
      ]
    },
    {
      "page": "count_lineages_through_time",
      "title": "Count number of lineages through time (LTT).",
      "topics": [
        "count_lineages_through_time"
      ]
    },
    {
      "page": "count_tips_per_node",
      "title": "Count descending tips.",
      "topics": [
        "count_tips_per_node"
      ]
    },
    {
      "page": "count_transitions_between_clades",
      "title": "Count the number of state transitions between tips or nodes.",
      "topics": [
        "count_transitions_between_clades"
      ]
    },
    {
      "page": "date_tree_red",
      "title": "Date a tree based on relative evolutionary divergences.",
      "topics": [
        "date_tree_red"
      ]
    },
    {
      "page": "discrete_trait_depth",
      "title": "Calculate phylogenetic depth of a discrete trait.",
      "topics": [
        "discrete_trait_depth"
      ]
    },
    {
      "page": "evaluate_spline",
      "title": "Evaluate a scalar spline at arbitrary locations.",
      "topics": [
        "evaluate_spline"
      ]
    },
    {
      "page": "expanded_tree_from_jplace",
      "title": "Place queries on a tree from a jplace file.",
      "topics": [
        "expanded_tree_from_jplace"
      ]
    },
    {
      "page": "expected_distances_sbm",
      "title": "Expected distances traversed by a Spherical Brownian Motion.",
      "topics": [
        "expected_distances_sbm"
      ]
    },
    {
      "page": "exponentiate_matrix",
      "title": "Exponentiate a matrix.",
      "topics": [
        "exponentiate_matrix"
      ]
    },
    {
      "page": "extend_tree_to_height",
      "title": "Extend a rooted tree up to a specific height.",
      "topics": [
        "extend_tree_to_height"
      ]
    },
    {
      "page": "extract_deep_frame",
      "title": "Extract tips representing a tree's deep splits.",
      "topics": [
        "extract_deep_frame"
      ]
    },
    {
      "page": "extract_fasttree_constraints",
      "title": "Extract tree constraints in FastTree alignment format.",
      "topics": [
        "extract_fasttree_constraints"
      ]
    },
    {
      "page": "extract_tip_neighborhood",
      "title": "Extract a subtree spanning tips within a certain neighborhood.",
      "topics": [
        "extract_tip_neighborhood"
      ]
    },
    {
      "page": "extract_tip_radius",
      "title": "Extract a subtree spanning tips within a certain radius.",
      "topics": [
        "extract_tip_radius"
      ]
    },
    {
      "page": "find_farthest_tip_pair",
      "title": "Find the two most distant tips in a tree.",
      "topics": [
        "find_farthest_tip_pair"
      ]
    },
    {
      "page": "find_farthest_tips",
      "title": "Find farthest tip to each tip & node of a tree.",
      "topics": [
        "find_farthest_tips"
      ]
    },
    {
      "page": "find_nearest_tips",
      "title": "Find nearest tip to each tip & node of a tree.",
      "topics": [
        "find_nearest_tips"
      ]
    },
    {
      "page": "find_root",
      "title": "Find the root of a tree.",
      "topics": [
        "find_root"
      ]
    },
    {
      "page": "find_root_of_monophyletic_tips",
      "title": "Find the node or tip that, as root, would make a set of target tips monophyletic.",
      "topics": [
        "find_root_of_monophyletic_tips"
      ]
    },
    {
      "page": "fit_and_compare_bm_models",
      "title": "Fit and compare Brownian Motion models for multivariate trait evolution between two data sets.",
      "topics": [
        "fit_and_compare_bm_models"
      ]
    },
    {
      "page": "fit_and_compare_sbm_const",
      "title": "Fit and compare Spherical Brownian Motion models for diffusive geographic dispersal between two data sets.",
      "topics": [
        "fit_and_compare_sbm_const"
      ]
    },
    {
      "page": "fit_bm_model",
      "title": "Fit a Brownian Motion model for multivariate trait evolution.",
      "topics": [
        "fit_bm_model"
      ]
    },
    {
      "page": "fit_hbd_model_on_grid",
      "title": "Fit a homogenous birth-death model on a discrete time grid.",
      "topics": [
        "fit_hbd_model_on_grid"
      ]
    },
    {
      "page": "fit_hbd_model_parametric",
      "title": "Fit a parametric homogenous birth-death model to a timetree.",
      "topics": [
        "fit_hbd_model_parametric"
      ]
    },
    {
      "page": "fit_hbd_pdr_on_best_grid_size",
      "title": "Fit pulled diversification rates of birth-death models on a time grid with optimal size.",
      "topics": [
        "fit_hbd_pdr_on_best_grid_size"
      ]
    },
    {
      "page": "fit_hbd_pdr_on_grid",
      "title": "Fit pulled diversification rates of birth-death models on a time grid.",
      "topics": [
        "fit_hbd_pdr_on_grid"
      ]
    },
    {
      "page": "fit_hbd_pdr_parametric",
      "title": "Fit parameterized pulled diversification rates of birth-death models.",
      "topics": [
        "fit_hbd_pdr_parametric"
      ]
    },
    {
      "page": "fit_hbd_psr_on_best_grid_size",
      "title": "Fit pulled speciation rates of birth-death models on a time grid with optimal size.",
      "topics": [
        "fit_hbd_psr_on_best_grid_size"
      ]
    },
    {
      "page": "fit_hbd_psr_on_grid",
      "title": "Fit pulled speciation rates of birth-death models on a time grid.",
      "topics": [
        "fit_hbd_psr_on_grid"
      ]
    },
    {
      "page": "fit_hbd_psr_parametric",
      "title": "Fit parameterized pulled speciation rates of birth-death models.",
      "topics": [
        "fit_hbd_psr_parametric"
      ]
    },
    {
      "page": "fit_hbds_model_on_grid",
      "title": "Fit a homogenous birth-death-sampling model on a discrete time grid.",
      "topics": [
        "fit_hbds_model_on_grid"
      ]
    },
    {
      "page": "fit_hbds_model_parametric",
      "title": "Fit a parametric homogenous birth-death-sampling model to a timetree.",
      "topics": [
        "fit_hbds_model_parametric"
      ]
    },
    {
      "page": "fit_mk",
      "title": "Fit a Markov (Mk) model for discrete trait evolution.",
      "topics": [
        "fit_mk"
      ]
    },
    {
      "page": "fit_musse",
      "title": "Fit a discrete-state-dependent diversification model via maximum-likelihood.",
      "topics": [
        "fit_musse"
      ]
    },
    {
      "page": "fit_sbm_const",
      "title": "Fit a phylogeographic Spherical Brownian Motion model.",
      "topics": [
        "fit_sbm_const"
      ]
    },
    {
      "page": "fit_sbm_geobiased_const",
      "title": "Fit a phylogeographic Spherical Brownian Motion model with geographic sampling bias.",
      "topics": [
        "fit_sbm_geobiased_const"
      ]
    },
    {
      "page": "fit_sbm_linear",
      "title": "Fit a phylogeographic Spherical Brownian Motion model with linearly varying diffusivity.",
      "topics": [
        "fit_sbm_linear"
      ]
    },
    {
      "page": "fit_sbm_on_grid",
      "title": "Fit a phylogeographic Spherical Brownian Motion model with piecewise-linear diffusivity.",
      "topics": [
        "fit_sbm_on_grid"
      ]
    },
    {
      "page": "fit_sbm_parametric",
      "title": "Fit a time-dependent phylogeographic Spherical Brownian Motion model.",
      "topics": [
        "fit_sbm_parametric"
      ]
    },
    {
      "page": "fit_tree_model",
      "title": "Fit a cladogenic model to an existing tree.",
      "topics": [
        "fit_tree_model"
      ]
    },
    {
      "page": "gamma_statistic",
      "title": "Calculate the gamma-statistic of a tree.",
      "topics": [
        "gamma_statistic"
      ]
    },
    {
      "page": "generate_gene_tree_msc",
      "title": "Generate a gene tree based on the multi-species coalescent model.",
      "topics": [
        "generate_gene_tree_msc"
      ]
    },
    {
      "page": "generate_gene_tree_msc_hgt_dl",
      "title": "Generate gene trees based on the multi-species coalescent, horizontal gene transfers and duplications/losses.",
      "topics": [
        "generate_gene_tree_msc_hgt_dl"
      ]
    },
    {
      "page": "generate_random_tree",
      "title": "Generate a tree using a Poissonian speciation/extinction model.",
      "topics": [
        "generate_random_tree"
      ]
    },
    {
      "page": "generate_tree_hbd_reverse",
      "title": "Generate a tree from a birth-death model in reverse time.",
      "topics": [
        "generate_tree_hbd_reverse"
      ]
    },
    {
      "page": "generate_tree_hbds",
      "title": "Generate a tree from a birth-death-sampling model in forward time.",
      "topics": [
        "generate_tree_hbds"
      ]
    },
    {
      "page": "generate_tree_with_evolving_rates",
      "title": "Generate a random tree with evolving speciation/extinction rates.",
      "topics": [
        "generate_tree_with_evolving_rates"
      ]
    },
    {
      "page": "geographic_acf",
      "title": "Phylogenetic autocorrelation function of geographic locations.",
      "topics": [
        "geographic_acf"
      ]
    },
    {
      "page": "get_all_distances_to_root",
      "title": "Get distances of all tips and nodes to the root.",
      "topics": [
        "get_all_distances_to_root"
      ]
    },
    {
      "page": "get_all_distances_to_tip",
      "title": "Get distances of all tips/nodes to a focal tip.",
      "topics": [
        "get_all_distances_to_tip"
      ]
    },
    {
      "page": "get_all_node_depths",
      "title": "Get the phylogenetic depth of each node in a tree.",
      "topics": [
        "get_all_node_depths"
      ]
    },
    {
      "page": "get_all_pairwise_distances",
      "title": "Get distances between all pairs of tips and/or nodes.",
      "topics": [
        "get_all_pairwise_distances"
      ]
    },
    {
      "page": "get_ancestral_nodes",
      "title": "Compute ancestral nodes.",
      "topics": [
        "get_ancestral_nodes"
      ]
    },
    {
      "page": "get_clade_list",
      "title": "Get a representation of a tree as a table listing tips/nodes.",
      "topics": [
        "get_clade_list"
      ]
    },
    {
      "page": "get_independent_contrasts",
      "title": "Phylogenetic independent contrasts for continuous traits.",
      "topics": [
        "get_independent_contrasts"
      ]
    },
    {
      "page": "get_independent_sister_tips",
      "title": "Extract disjoint tip pairs with independent relationships.",
      "topics": [
        "get_independent_sister_tips"
      ]
    },
    {
      "page": "get_mrca_of_set",
      "title": "Most recent common ancestor of a set of tips/nodes.",
      "topics": [
        "get_mrca_of_set"
      ]
    },
    {
      "page": "get_pairwise_distances",
      "title": "Get distances between pairs of tips or nodes.",
      "topics": [
        "get_pairwise_distances"
      ]
    },
    {
      "page": "get_pairwise_mrcas",
      "title": "Get most recent common ancestors of tip/node pairs.",
      "topics": [
        "get_pairwise_mrcas"
      ]
    },
    {
      "page": "get_random_diffusivity_matrix",
      "title": "Create a random diffusivity matrix for a Brownian motion model.",
      "topics": [
        "get_random_diffusivity_matrix"
      ]
    },
    {
      "page": "get_random_mk_transition_matrix",
      "title": "Create a random transition matrix for an Mk model.",
      "topics": [
        "get_random_mk_transition_matrix"
      ]
    },
    {
      "page": "get_reds",
      "title": "Calculate relative evolutionary divergences in a tree.",
      "topics": [
        "get_reds"
      ]
    },
    {
      "page": "get_stationary_distribution",
      "title": "Stationary distribution of Markov transition matrix.",
      "topics": [
        "get_stationary_distribution"
      ]
    },
    {
      "page": "get_subtree_at_node",
      "title": "Extract a subtree descending from a specific node.",
      "topics": [
        "get_subtree_at_node"
      ]
    },
    {
      "page": "get_subtree_with_tips",
      "title": "Extract a subtree spanning a specific subset of tips.",
      "topics": [
        "get_subtree_with_tips"
      ]
    },
    {
      "page": "get_subtrees_at_nodes",
      "title": "Extract subtrees descending from specific nodes.",
      "topics": [
        "get_subtrees_at_nodes"
      ]
    },
    {
      "page": "get_tips_for_mrcas",
      "title": "Find tips with specific most recent common ancestors.",
      "topics": [
        "get_tips_for_mrcas"
      ]
    },
    {
      "page": "get_trait_acf",
      "title": "Phylogenetic autocorrelation function of a numeric trait.",
      "topics": [
        "get_trait_acf"
      ]
    },
    {
      "page": "get_trait_stats_over_time",
      "title": "Calculate mean & standard deviation of a numeric trait on a dated tree over time.",
      "topics": [
        "get_trait_stats_over_time"
      ]
    },
    {
      "page": "get_transition_index_matrix",
      "title": "Create an index matrix for a Markov transition model.",
      "topics": [
        "get_transition_index_matrix"
      ]
    },
    {
      "page": "get_tree_span",
      "title": "Get min and max distance of any tip to the root.",
      "topics": [
        "get_tree_span"
      ]
    },
    {
      "page": "get_tree_traversal_root_to_tips",
      "title": "Traverse tree from root to tips.",
      "topics": [
        "get_tree_traversal_root_to_tips"
      ]
    },
    {
      "page": "hsp_binomial",
      "title": "Hidden state prediction for a binary trait based on the binomial distribution.",
      "topics": [
        "hsp_binomial"
      ]
    },
    {
      "page": "hsp_empirical_probabilities",
      "title": "Hidden state prediction via empirical probabilities.",
      "topics": [
        "hsp_empirical_probabilities"
      ]
    },
    {
      "page": "hsp_independent_contrasts",
      "title": "Hidden state prediction via phylogenetic independent contrasts.",
      "topics": [
        "hsp_independent_contrasts"
      ]
    },
    {
      "page": "hsp_max_parsimony",
      "title": "Hidden state prediction via maximum parsimony.",
      "topics": [
        "hsp_max_parsimony"
      ]
    },
    {
      "page": "hsp_mk_model",
      "title": "Hidden state prediction with Mk models and rerooting",
      "topics": [
        "hsp_mk_model"
      ]
    },
    {
      "page": "hsp_naive",
      "title": "Naive hidden state prediction.",
      "topics": [
        "hsp_naive"
      ]
    },
    {
      "page": "hsp_nearest_neighbor",
      "title": "Hidden state prediction based on nearest neighbor.",
      "topics": [
        "hsp_nearest_neighbor"
      ]
    },
    {
      "page": "hsp_squared_change_parsimony",
      "title": "Hidden state prediction via squared-change parsimony.",
      "topics": [
        "hsp_squared_change_parsimony"
      ]
    },
    {
      "page": "hsp_subtree_averaging",
      "title": "Hidden state prediction via subtree averaging.",
      "topics": [
        "hsp_subtree_averaging"
      ]
    },
    {
      "page": "is_bifurcating",
      "title": "Determine if a tree is bifurcating.",
      "topics": [
        "is_bifurcating"
      ]
    },
    {
      "page": "is_monophyletic",
      "title": "Determine if a set of tips is monophyletic.",
      "topics": [
        "is_monophyletic"
      ]
    },
    {
      "page": "join_rooted_trees",
      "title": "Join two rooted trees.",
      "topics": [
        "join_rooted_trees"
      ]
    },
    {
      "page": "loglikelihood_hbd",
      "title": "Galculate the log-likelihood of a homogenous birth-death model.",
      "topics": [
        "loglikelihood_hbd"
      ]
    },
    {
      "page": "map_to_state_space",
      "title": "Map states of a discrete trait to integers.",
      "topics": [
        "map_to_state_space"
      ]
    },
    {
      "page": "mean_abs_change_scalar_ou",
      "title": "Compute the expected absolute change of an Ornstein-Uhlenbeck process.",
      "topics": [
        "mean_abs_change_scalar_ou"
      ]
    },
    {
      "page": "merge_nodes_to_multifurcations",
      "title": "Merge specific nodes into multifurcations.",
      "topics": [
        "merge_nodes_to_multifurcations"
      ]
    },
    {
      "page": "merge_short_edges",
      "title": "Eliminate short edges in a tree by merging nodes into multifurcations.",
      "topics": [
        "merge_short_edges"
      ]
    },
    {
      "page": "model_adequacy_hbd",
      "title": "Check if a birth-death model adequately explains a timetree.",
      "topics": [
        "model_adequacy_hbd"
      ]
    },
    {
      "page": "model_adequacy_hbds",
      "title": "Check if a birth-death-sampling model adequately explains a timetree.",
      "topics": [
        "model_adequacy_hbds"
      ]
    },
    {
      "page": "multifurcations_to_bifurcations",
      "title": "Expand multifurcations to bifurcations.",
      "topics": [
        "multifurcations_to_bifurcations"
      ]
    },
    {
      "page": "pick_random_tips",
      "title": "Pick random subsets of tips on a tree.",
      "topics": [
        "pick_random_tips"
      ]
    },
    {
      "page": "place_tips_taxonomically",
      "title": "Place queries on a tree based on taxonomic identities.",
      "topics": [
        "place_tips_taxonomically"
      ]
    },
    {
      "page": "plot_tree_radial",
      "title": "Plot a tree in radial layout.",
      "topics": [
        "plot_tree_radial"
      ]
    },
    {
      "page": "read_fasta",
      "title": "Load a fasta file.",
      "topics": [
        "read_fasta"
      ]
    },
    {
      "page": "read_fastq",
      "title": "Load a fastq file.",
      "topics": [
        "read_fastq"
      ]
    },
    {
      "page": "read_tree",
      "title": "Load a tree from a string or file in Newick (parenthetic) format.",
      "topics": [
        "read_tree"
      ]
    },
    {
      "page": "reconstruct_past_diversification",
      "title": "Reconstruct past diversification dynamics from a diversity time series.",
      "topics": [
        "reconstruct_past_diversification"
      ]
    },
    {
      "page": "reorder_tree_edges",
      "title": "Reorder tree edges in preorder or postorder.",
      "topics": [
        "reorder_tree_edges"
      ]
    },
    {
      "page": "root_at_midpoint",
      "title": "Root a tree at the midpoint node.",
      "topics": [
        "root_at_midpoint"
      ]
    },
    {
      "page": "root_at_node",
      "title": "Root a tree at a specific node.",
      "topics": [
        "root_at_node"
      ]
    },
    {
      "page": "root_in_edge",
      "title": "Root a tree in the middle of an edge.",
      "topics": [
        "root_in_edge"
      ]
    },
    {
      "page": "root_via_outgroup",
      "title": "Root a tree based on an outgroup tip.",
      "topics": [
        "root_via_outgroup"
      ]
    },
    {
      "page": "root_via_rtt",
      "title": "Root a tree via root-to-tip regression.",
      "topics": [
        "root_via_rtt"
      ]
    },
    {
      "page": "shift_clade_times",
      "title": "Shift the time of specific nodes & tips.",
      "topics": [
        "shift_clade_times"
      ]
    },
    {
      "page": "simulate_bm_model",
      "title": "Simulate a Brownian motion model for multivariate trait co-evolution.",
      "topics": [
        "simulate_bm_model"
      ]
    },
    {
      "page": "simulate_deterministic_hbd",
      "title": "Simulate a deterministic homogenous birth-death model.",
      "topics": [
        "simulate_deterministic_hbd"
      ]
    },
    {
      "page": "simulate_deterministic_hbds",
      "title": "Simulate a deterministic homogenous birth-death-sampling model.",
      "topics": [
        "simulate_deterministic_hbds"
      ]
    },
    {
      "page": "simulate_diversification_model",
      "title": "Simulate a deterministic uniform speciation/extinction model.",
      "topics": [
        "simulate_diversification_model"
      ]
    },
    {
      "page": "simulate_dsse",
      "title": "Simulate a Discrete-State Speciation and Extinction (dSSE) model.",
      "topics": [
        "simulate_dsse",
        "simulate_musse"
      ]
    },
    {
      "page": "simulate_mk_model",
      "title": "Simulate an Mk model for discrete trait evolution.",
      "topics": [
        "simulate_mk_model"
      ]
    },
    {
      "page": "simulate_ou_model",
      "title": "Simulate an Ornstein-Uhlenbeck model for continuous trait evolution.",
      "topics": [
        "simulate_ou_model"
      ]
    },
    {
      "page": "simulate_rou_model",
      "title": "Simulate a reflected Ornstein-Uhlenbeck model for continuous trait evolution.",
      "topics": [
        "simulate_rou_model"
      ]
    },
    {
      "page": "simulate_sbm",
      "title": "Simulate Spherical Brownian Motion on a tree.",
      "topics": [
        "simulate_sbm"
      ]
    },
    {
      "page": "simulate_tdsse",
      "title": "Simulate a time-dependent Discrete-State Speciation and Extinction (tdSSE) model.",
      "topics": [
        "simulate_tdsse"
      ]
    },
    {
      "page": "spline_coefficients",
      "title": "Get the polynomial coefficients of a spline.",
      "topics": [
        "spline_coefficients"
      ]
    },
    {
      "page": "split_tree_at_height",
      "title": "Split a tree into subtrees at a specific height.",
      "topics": [
        "split_tree_at_height"
      ]
    },
    {
      "page": "tree_distance",
      "title": "Calculate the distance between two trees.",
      "topics": [
        "tree_distance"
      ]
    },
    {
      "page": "tree_from_branching_ages",
      "title": "Generate a random timetree with specific branching ages.",
      "topics": [
        "tree_from_branching_ages"
      ]
    },
    {
      "page": "tree_from_sampling_branching_ages",
      "title": "Generate a random timetree with specific tip/sampling and node/branching ages.",
      "topics": [
        "tree_from_sampling_branching_ages"
      ]
    },
    {
      "page": "tree_from_taxa",
      "title": "Construct a rooted tree from lists of taxa.",
      "topics": [
        "tree_from_taxa"
      ]
    },
    {
      "page": "tree_imbalance",
      "title": "Calculate various imbalance statistics for a tree.",
      "topics": [
        "tree_imbalance"
      ]
    },
    {
      "page": "trim_tree_at_height",
      "title": "Trim a rooted tree down to a specific height.",
      "topics": [
        "trim_tree_at_height"
      ]
    },
    {
      "page": "write_tree",
      "title": "Write a tree in Newick (parenthetic) format.",
      "topics": [
        "write_tree"
      ]
    }
  ],
  "_rundeps": [
    "jsonlite",
    "lattice",
    "Matrix",
    "naturalsort",
    "Rcpp",
    "RcppEigen",
    "RSpectra"
  ],
  "_sysdeps": [
    {
      "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"
    }
  ],
  "_score": 5.729856597786522,
  "_indexed": true,
  "_nocasepkg": "castor",
  "_universes": [
    "squidlobster"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.8.5",
      "date": "2026-05-21T06:02:12.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "a16bd2b92f3b3d97dd74a9e71a0964658bdaf0283c7795dd3dad603841ddcf92",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.8.5",
      "date": "2026-05-21T06:02:02.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "3c2a64d87c626dd9e4c23e98071dc2393d68df95f814b46785e645da84c03f3f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.8.5",
      "date": "2026-05-21T06:02:11.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "c862baffcb193280c5514dad60f958f6ae822d73586bd0be61dd546f15b62b95",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.8.5",
      "date": "2026-05-21T06:02:29.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "cfcd41545331cdd14526a7839b3885dcc868af8b284d73f0e0f595ab3bd3cd9b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.8.5",
      "date": "2026-05-21T06:01:32.000Z",
      "arch": "aarch64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "717d00aa7b6f592fa3393c0253cc9f3b5511e668dd0d5600dbb3e47410b7bc4b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.8.5",
      "date": "2026-05-21T06:03:02.000Z",
      "arch": "x86_64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "9b0faa4ebcbe8e7718db97c8ef6a5a48d8b82c495e32df04915faf10f737a0d4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.8.5",
      "date": "2026-05-21T06:01:26.000Z",
      "arch": "aarch64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "191f7af7aa2ee6150d5ee270a3009147c41888115f185185d33daca5dc28f6c1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.8.5",
      "date": "2026-05-21T06:02:33.000Z",
      "arch": "x86_64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "1fe984240ab90a7d1e942b80c523c020103b1c6a59bb1979897a3bf53a0e0dd4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.8.5",
      "date": "2026-05-21T06:01:23.000Z",
      "arch": "x86_64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "6e965830a3f7267d5d8ffbcb86767ba8454a32f169b38eb07e13dd145290e834",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.8.5",
      "date": "2026-05-21T06:01:08.000Z",
      "arch": "x86_64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "16c95c7d333fdffa2a0366a20c296968f4a529dbd769b9b535d4745cc0c4bbd6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.8.5",
      "date": "2026-05-21T06:01:38.000Z",
      "arch": "x86_64",
      "commit": "9fa978dac91db0dab93fa7ada6aa2756b6b6d7ea",
      "fileid": "4b5b68ecd7cfc4ad6dfeab0eb015f8042e82cf42129878597ccced848cb18d56",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/squidlobster/actions/runs/26208301072"
    }
  ]
}