Given a folder containing homolog trees, prune paralogs from the trees using the monophyletic outgroups (MO) method. For trees that have non-repeating, monophyletic outgroups, this method extracts the largest subtree containing the outgroup. Trees that consist solely of one-to-one orthologs (i.e., no duplications within a sample/taxon) will also be retained. This function will overwrite any output files with the same name in outdir.

prune_paralogs_MO(path_to_ys = pkgconfig::get_config("baitfindR::path_to_ys"),
  tree_folder, tree_file_ending, ingroup, outgroup, minimal_taxa = 4,
  outdir, overwrite = FALSE, get_hash = TRUE,
  echo = pkgconfig::get_config("baitfindR::echo", fallback = FALSE), ...)

Arguments

path_to_ys

Character vector of length one; the path to the folder containing Y&S python scripts, e.g., "/Users/me/apps/phylogenomic_dataset_construction/"

tree_folder

Character vector of length one; the path to the folder containing the trees to be used for pruning.

tree_file_ending

Character vector of length one; only tree files with this file ending will be used.

ingroup

Character vector; names of ingroup taxa/samples.

outgroup

Character vector; names of outgroup taxa/samples.

minimal_taxa

Numeric; minimal number of taxa required for tree to be included. Default 4, the minimum number of taxa needed for an un-rooted tree.

outdir

Character vector of length one; the path to the folder where the pruned trees should be written.

overwrite

Logical; should previous output of this command be erased so new output can be written? Once erased it cannot be restored, so use with caution!

get_hash

Logical; should the 32-byte MD5 hash be computed for all pruned tree files concatenated together? Used for by drake_plan for tracking during workflows. If TRUE, this function will return the hash.

echo

Logical; should the standard output and error be printed to the screen?

...

Other arguments. Not used by this function, but meant to be used by drake_plan for tracking during workflows.

Value

For each tree file ending in tree_file_ending in tree_folder, putative orthologs will be extracted from the tree using the MO method and written to outdir with the file ending .ortho.tre; re-rooted trees will also be written with the file ending .reroot. If get_hash is TRUE, the 32-byte MD5 hash be computed for all extracted tree files concatenated together will be returned.

Details

Wrapper for Yang and Smith (2014) prune_paralogs_MO.py

References

Yang, Y. and S.A. Smith. 2014. Orthology inference in non-model organisms using transcriptomes and low-coverage genomes: improving accuracy and matrix occupancy for phylogenomics. Molecular Biology and Evolution 31:3081-3092. https://bitbucket.org/yangya/phylogenomic_dataset_construction/overview

Examples

# NOT RUN {
prune_paralogs_MO(tree_folder = "some/folder/containing/tree/files", tree_file_ending = ".tre", outgroup = c("ABC", "EFG"), ingroup = c("HIJ", "KLM"), outdir = "some/folder")
# }