phykit 2.1.80__tar.gz → 2.1.82__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {phykit-2.1.80 → phykit-2.1.82}/PKG-INFO +1 -1
- {phykit-2.1.80 → phykit-2.1.82}/phykit/cli_registry.py +7 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/phykit.py +166 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/service_factories.py +2 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/__init__.py +2 -0
- phykit-2.1.82/phykit/services/tree/phylo_anova.py +808 -0
- phykit-2.1.82/phykit/services/tree/simmap_summary.py +604 -0
- phykit-2.1.82/phykit/version.py +1 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit.egg-info/PKG-INFO +1 -1
- {phykit-2.1.80 → phykit-2.1.82}/phykit.egg-info/SOURCES.txt +2 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit.egg-info/entry_points.txt +7 -0
- {phykit-2.1.80 → phykit-2.1.82}/setup.py +7 -0
- phykit-2.1.80/phykit/version.py +0 -1
- {phykit-2.1.80 → phykit-2.1.82}/LICENSE.md +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/README.md +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/__init__.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/__main__.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/errors.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/__init__.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/boolean_argument_parsing.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/caching.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/circular_layout.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/color_annotations.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/discrete_models.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/files.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/json_output.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/parallel.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/parsimony_utils.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/plot_config.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/quartet_utils.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/stats_summary.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/helpers/streaming.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/__init__.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/__init__.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/alignment_entropy.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/alignment_length.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/alignment_length_no_gaps.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/alignment_outlier_taxa.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/alignment_recoding.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/alignment_subsample.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/base.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/column_score.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/composition_per_taxon.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/compositional_bias_per_site.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/create_concatenation_matrix.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/dfoil.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/dna_threader.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/dstatistic.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/evolutionary_rate_per_site.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/faidx.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/gc_content.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/identity_matrix.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/mask_alignment.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/occupancy_per_taxon.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/pairwise_identity.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/parsimony_informative_sites.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/phylo_gwas.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/plot_alignment_qc.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/rcv.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/rcvt.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/rename_fasta_entries.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/sum_of_pairs_score.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/taxon_groups.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/alignment/variable_sites.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/base.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/ancestral_reconstruction.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/base.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/bipartition_support_stats.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/branch_length_multiplier.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/character_map.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/collapse_branches.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/concordance_asr.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/consensus_network.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/consensus_tree.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/cont_map.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/cophylo.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/covarying_evolutionary_rates.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/density_map.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/discordance_asymmetry.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/dvmc.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/evo_tempo_map.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/evolutionary_rate.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/fit_continuous.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/fit_discrete.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/hidden_paralogy_check.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/hybridization.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/independent_contrasts.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/internal_branch_stats.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/internode_labeler.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/kf_distance.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/last_common_ancestor_subtree.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/lb_score.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/ltt.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/monophyly_check.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/nearest_neighbor_interchange.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/neighbor_net.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/network_signal.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/ou_shift_detection.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/ouwie.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/parsimony_score.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/patristic_distances.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phenogram.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylo_heatmap.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylo_impute.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylo_logistic.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylogenetic_glm.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylogenetic_ordination.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylogenetic_regression.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylogenetic_signal.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/phylomorphospace.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/polytomy_test.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/print_tree.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/prune_tree.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/quartet_network.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/quartet_pie.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/rate_heterogeneity.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/relative_rate_test.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/rename_tree_tips.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/rf_distance.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/root_tree.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/saturation.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/spectral_discordance.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/spr.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/spurious_sequence.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/stochastic_character_map.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/terminal_branch_stats.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/threshold_model.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/tip_labels.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/tip_to_tip_distance.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/tip_to_tip_node_distance.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/total_tree_length.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/trait_correlation.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/trait_rate_map.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/tree_space.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/treeness.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/treeness_over_rcv.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit/services/tree/vcv_utils.py +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit.egg-info/dependency_links.txt +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit.egg-info/requires.txt +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/phykit.egg-info/top_level.txt +0 -0
- {phykit-2.1.80 → phykit-2.1.82}/setup.cfg +0 -0
|
@@ -55,6 +55,10 @@ ALIAS_TO_HANDLER: Dict[str, str] = {
|
|
|
55
55
|
"sum_of_pairs_score": "sum_of_pairs_score",
|
|
56
56
|
"sops": "sum_of_pairs_score",
|
|
57
57
|
"sop": "sum_of_pairs_score",
|
|
58
|
+
"phylo_anova": "phylo_anova",
|
|
59
|
+
"panova": "phylo_anova",
|
|
60
|
+
"phylo_manova": "phylo_anova",
|
|
61
|
+
"pmanova": "phylo_anova",
|
|
58
62
|
"phylo_gwas": "phylo_gwas",
|
|
59
63
|
"pgwas": "phylo_gwas",
|
|
60
64
|
"vs": "variable_sites",
|
|
@@ -114,6 +118,9 @@ ALIAS_TO_HANDLER: Dict[str, str] = {
|
|
|
114
118
|
"casr": "concordance_asr",
|
|
115
119
|
"simmap": "stochastic_character_map",
|
|
116
120
|
"scm": "stochastic_character_map",
|
|
121
|
+
"simmap_summary": "simmap_summary",
|
|
122
|
+
"smsummary": "simmap_summary",
|
|
123
|
+
"describe_simmap": "simmap_summary",
|
|
117
124
|
"contmap": "cont_map",
|
|
118
125
|
"cmap": "cont_map",
|
|
119
126
|
"densitymap": "density_map",
|
|
@@ -248,10 +248,14 @@ class Phykit:
|
|
|
248
248
|
- fit phylogenetic generalized least squares (PGLS) regression
|
|
249
249
|
phylogenetic_glm (alias: phylo_glm; pglm)
|
|
250
250
|
- fit phylogenetic GLM for binary (logistic) or count (Poisson) data
|
|
251
|
+
phylo_anova (alias: panova; phylo_manova; pmanova)
|
|
252
|
+
- phylogenetic ANOVA / MANOVA using RRPP (Adams & Collyer 2018)
|
|
251
253
|
phylo_logistic (alias: phylo_logreg; plogreg)
|
|
252
254
|
- fit phylogenetic logistic regression (Ives & Garland 2010)
|
|
253
255
|
stochastic_character_map (alias: simmap; scm)
|
|
254
256
|
- stochastic character mapping (SIMMAP) of discrete traits
|
|
257
|
+
simmap_summary (alias: smsummary; describe_simmap)
|
|
258
|
+
- per-branch SIMMAP summary with node posteriors
|
|
255
259
|
cont_map (alias: contmap; cmap)
|
|
256
260
|
- continuous trait map (contMap) visualization on a phylogeny
|
|
257
261
|
trait_rate_map (alias: rate_map; branch_rates)
|
|
@@ -2004,6 +2008,87 @@ class Phykit:
|
|
|
2004
2008
|
_add_json_argument(parser)
|
|
2005
2009
|
_run_service(parser, argv, PhyloGwas)
|
|
2006
2010
|
|
|
2011
|
+
@staticmethod
|
|
2012
|
+
def phylo_anova(argv):
|
|
2013
|
+
parser = _new_parser(
|
|
2014
|
+
description=textwrap.dedent(
|
|
2015
|
+
f"""\
|
|
2016
|
+
{help_header}
|
|
2017
|
+
|
|
2018
|
+
Phylogenetic ANOVA / MANOVA using the Residual
|
|
2019
|
+
Randomization Permutation Procedure (RRPP) of
|
|
2020
|
+
Adams & Collyer (2018).
|
|
2021
|
+
|
|
2022
|
+
Tests whether a continuous trait (ANOVA) or multiple
|
|
2023
|
+
traits (MANOVA) differ across discrete groups while
|
|
2024
|
+
accounting for phylogenetic non-independence.
|
|
2025
|
+
|
|
2026
|
+
Auto-detects univariate vs multivariate based on the
|
|
2027
|
+
number of response trait columns. Override with
|
|
2028
|
+
--method anova or --method manova.
|
|
2029
|
+
|
|
2030
|
+
Aliases:
|
|
2031
|
+
phylo_anova, panova, phylo_manova, pmanova
|
|
2032
|
+
Command line interfaces:
|
|
2033
|
+
pk_phylo_anova, pk_panova, pk_phylo_manova, pk_pmanova
|
|
2034
|
+
|
|
2035
|
+
Usage:
|
|
2036
|
+
phykit phylo_anova -t <tree> --traits <traits_file>
|
|
2037
|
+
[--group-column <name>] [--method auto|anova|manova]
|
|
2038
|
+
[--permutations <int>] [--pairwise]
|
|
2039
|
+
[--plot-output <file>] [--plot-type boxplot|phylomorphospace]
|
|
2040
|
+
[--seed <int>] [--json]
|
|
2041
|
+
|
|
2042
|
+
Options
|
|
2043
|
+
=====================================================
|
|
2044
|
+
-t/--tree species tree file (required)
|
|
2045
|
+
|
|
2046
|
+
--traits TSV file with taxon, group
|
|
2047
|
+
column, and one or more
|
|
2048
|
+
response trait columns
|
|
2049
|
+
(required)
|
|
2050
|
+
|
|
2051
|
+
--group-column name of the categorical
|
|
2052
|
+
grouping column (default:
|
|
2053
|
+
first non-taxon column)
|
|
2054
|
+
|
|
2055
|
+
--method analysis method: auto, anova,
|
|
2056
|
+
or manova (default: auto)
|
|
2057
|
+
|
|
2058
|
+
--permutations number of RRPP permutations
|
|
2059
|
+
(default: 1000)
|
|
2060
|
+
|
|
2061
|
+
--pairwise include post-hoc pairwise
|
|
2062
|
+
group comparisons
|
|
2063
|
+
|
|
2064
|
+
--plot-output output figure path
|
|
2065
|
+
(.png, .pdf, .svg)
|
|
2066
|
+
|
|
2067
|
+
--plot-type boxplot or phylomorphospace
|
|
2068
|
+
(default: auto — boxplot for
|
|
2069
|
+
ANOVA, phylomorphospace for
|
|
2070
|
+
MANOVA)
|
|
2071
|
+
|
|
2072
|
+
--seed random seed for reproducible
|
|
2073
|
+
permutations
|
|
2074
|
+
|
|
2075
|
+
--json output results as JSON
|
|
2076
|
+
"""
|
|
2077
|
+
),
|
|
2078
|
+
)
|
|
2079
|
+
parser.add_argument("-t", "--tree", type=str, required=True, help=SUPPRESS, metavar="")
|
|
2080
|
+
parser.add_argument("--traits", type=str, required=True, help=SUPPRESS, metavar="")
|
|
2081
|
+
parser.add_argument("--group-column", type=str, default=None, help=SUPPRESS, metavar="")
|
|
2082
|
+
parser.add_argument("--method", type=str, default="auto", choices=["auto", "anova", "manova"], help=SUPPRESS, metavar="")
|
|
2083
|
+
parser.add_argument("--permutations", type=int, default=1000, help=SUPPRESS, metavar="")
|
|
2084
|
+
parser.add_argument("--pairwise", action="store_true", help=SUPPRESS)
|
|
2085
|
+
parser.add_argument("--plot-output", type=str, default=None, help=SUPPRESS, metavar="")
|
|
2086
|
+
parser.add_argument("--plot-type", type=str, default="auto", choices=["auto", "boxplot", "phylomorphospace"], help=SUPPRESS, metavar="")
|
|
2087
|
+
parser.add_argument("--seed", type=int, default=None, help=SUPPRESS, metavar="")
|
|
2088
|
+
add_plot_arguments(parser)
|
|
2089
|
+
_add_json_argument(parser)
|
|
2090
|
+
_run_service(parser, argv, PhyloAnova)
|
|
2091
|
+
|
|
2007
2092
|
@staticmethod
|
|
2008
2093
|
def alignment_subsample(argv):
|
|
2009
2094
|
parser = _new_parser(
|
|
@@ -4713,6 +4798,79 @@ class Phykit:
|
|
|
4713
4798
|
_add_json_argument(parser)
|
|
4714
4799
|
_run_service(parser, argv, StochasticCharacterMap)
|
|
4715
4800
|
|
|
4801
|
+
@staticmethod
|
|
4802
|
+
def simmap_summary(argv):
|
|
4803
|
+
parser = _new_parser(
|
|
4804
|
+
description=textwrap.dedent(
|
|
4805
|
+
f"""\
|
|
4806
|
+
{help_header}
|
|
4807
|
+
|
|
4808
|
+
Run N stochastic character maps and summarize per-branch
|
|
4809
|
+
dwelling time proportions, expected transitions, and
|
|
4810
|
+
posterior state probabilities at each node.
|
|
4811
|
+
|
|
4812
|
+
This extends stochastic_character_map by providing a
|
|
4813
|
+
detailed per-branch summary analogous to
|
|
4814
|
+
phytools::describe.simmap() in R.
|
|
4815
|
+
|
|
4816
|
+
Aliases:
|
|
4817
|
+
simmap_summary, smsummary, describe_simmap
|
|
4818
|
+
Command line interfaces:
|
|
4819
|
+
pk_simmap_summary, pk_smsummary, pk_describe_simmap
|
|
4820
|
+
|
|
4821
|
+
Usage:
|
|
4822
|
+
phykit simmap_summary -t <tree> -d <trait_data> -c <trait>
|
|
4823
|
+
[-m/--model ER|SYM|ARD] [-n/--nsim <int>]
|
|
4824
|
+
[--seed <int>] [--plot <file>] [--csv <file>] [--json]
|
|
4825
|
+
|
|
4826
|
+
Options
|
|
4827
|
+
=====================================================
|
|
4828
|
+
-t/--tree phylogenetic tree file
|
|
4829
|
+
(required)
|
|
4830
|
+
|
|
4831
|
+
-d/--trait_data tab-delimited trait file
|
|
4832
|
+
with header row (required)
|
|
4833
|
+
|
|
4834
|
+
-c/--trait column name for the
|
|
4835
|
+
discrete character trait
|
|
4836
|
+
(required)
|
|
4837
|
+
|
|
4838
|
+
-m/--model substitution model: ER
|
|
4839
|
+
(equal rates), SYM
|
|
4840
|
+
(symmetric), or ARD (all
|
|
4841
|
+
rates different). Default: ER
|
|
4842
|
+
|
|
4843
|
+
-n/--nsim number of stochastic maps
|
|
4844
|
+
to simulate (default: 100)
|
|
4845
|
+
|
|
4846
|
+
--seed random seed for
|
|
4847
|
+
reproducibility
|
|
4848
|
+
|
|
4849
|
+
--plot output plot file showing
|
|
4850
|
+
tree with posterior pie
|
|
4851
|
+
charts at nodes
|
|
4852
|
+
|
|
4853
|
+
--csv output CSV file with
|
|
4854
|
+
per-branch dwelling
|
|
4855
|
+
proportions and node
|
|
4856
|
+
posteriors
|
|
4857
|
+
|
|
4858
|
+
--json output results as JSON
|
|
4859
|
+
"""
|
|
4860
|
+
),
|
|
4861
|
+
)
|
|
4862
|
+
parser.add_argument("-t", "--tree", type=str, required=True, help=SUPPRESS, metavar="")
|
|
4863
|
+
parser.add_argument("-d", "--trait_data", type=str, required=True, help=SUPPRESS, metavar="")
|
|
4864
|
+
parser.add_argument("-c", "--trait", type=str, required=True, help=SUPPRESS, metavar="")
|
|
4865
|
+
parser.add_argument("-m", "--model", type=str, required=False, default="ER", help=SUPPRESS, metavar="")
|
|
4866
|
+
parser.add_argument("-n", "--nsim", type=int, required=False, default=100, help=SUPPRESS, metavar="")
|
|
4867
|
+
parser.add_argument("--seed", type=int, required=False, default=None, help=SUPPRESS, metavar="")
|
|
4868
|
+
parser.add_argument("--plot", type=str, required=False, default=None, help=SUPPRESS, metavar="")
|
|
4869
|
+
parser.add_argument("--csv", type=str, required=False, default=None, help=SUPPRESS, metavar="")
|
|
4870
|
+
add_plot_arguments(parser)
|
|
4871
|
+
_add_json_argument(parser)
|
|
4872
|
+
_run_service(parser, argv, SimmapSummary)
|
|
4873
|
+
|
|
4716
4874
|
@staticmethod
|
|
4717
4875
|
def cont_map(argv):
|
|
4718
4876
|
parser = _new_parser(
|
|
@@ -8685,6 +8843,10 @@ def phylo_gwas(argv=None):
|
|
|
8685
8843
|
Phykit.phylo_gwas(sys.argv[1:])
|
|
8686
8844
|
|
|
8687
8845
|
|
|
8846
|
+
def phylo_anova(argv=None):
|
|
8847
|
+
Phykit.phylo_anova(sys.argv[1:])
|
|
8848
|
+
|
|
8849
|
+
|
|
8688
8850
|
def dfoil(argv=None):
|
|
8689
8851
|
Phykit.dfoil(sys.argv[1:])
|
|
8690
8852
|
|
|
@@ -8810,6 +8972,10 @@ def stochastic_character_map(argv=None):
|
|
|
8810
8972
|
Phykit.stochastic_character_map(sys.argv[1:])
|
|
8811
8973
|
|
|
8812
8974
|
|
|
8975
|
+
def simmap_summary(argv=None):
|
|
8976
|
+
Phykit.simmap_summary(sys.argv[1:])
|
|
8977
|
+
|
|
8978
|
+
|
|
8813
8979
|
def cont_map(argv=None):
|
|
8814
8980
|
Phykit.cont_map(sys.argv[1:])
|
|
8815
8981
|
|
|
@@ -44,6 +44,7 @@ RelativeCompositionVariability = _LazyServiceFactory("phykit.services.alignment.
|
|
|
44
44
|
RelativeCompositionVariabilityTaxon = _LazyServiceFactory("phykit.services.alignment.rcvt", "RelativeCompositionVariabilityTaxon")
|
|
45
45
|
RenameFastaEntries = _LazyServiceFactory("phykit.services.alignment.rename_fasta_entries", "RenameFastaEntries")
|
|
46
46
|
SumOfPairsScore = _LazyServiceFactory("phykit.services.alignment.sum_of_pairs_score", "SumOfPairsScore")
|
|
47
|
+
PhyloAnova = _LazyServiceFactory("phykit.services.tree.phylo_anova", "PhyloAnova")
|
|
47
48
|
PhyloGwas = _LazyServiceFactory("phykit.services.alignment.phylo_gwas", "PhyloGwas")
|
|
48
49
|
TaxonGroups = _LazyServiceFactory("phykit.services.alignment.taxon_groups", "TaxonGroups")
|
|
49
50
|
VariableSites = _LazyServiceFactory("phykit.services.alignment.variable_sites", "VariableSites")
|
|
@@ -75,6 +76,7 @@ Phylomorphospace = _LazyServiceFactory("phykit.services.tree.phylomorphospace",
|
|
|
75
76
|
PhylogeneticRegression = _LazyServiceFactory("phykit.services.tree.phylogenetic_regression", "PhylogeneticRegression")
|
|
76
77
|
PhylogeneticGLM = _LazyServiceFactory("phykit.services.tree.phylogenetic_glm", "PhylogeneticGLM")
|
|
77
78
|
PhyloLogistic = _LazyServiceFactory("phykit.services.tree.phylo_logistic", "PhyloLogistic")
|
|
79
|
+
SimmapSummary = _LazyServiceFactory("phykit.services.tree.simmap_summary", "SimmapSummary")
|
|
78
80
|
StochasticCharacterMap = _LazyServiceFactory("phykit.services.tree.stochastic_character_map", "StochasticCharacterMap")
|
|
79
81
|
ContMap = _LazyServiceFactory("phykit.services.tree.cont_map", "ContMap")
|
|
80
82
|
DensityMap = _LazyServiceFactory("phykit.services.tree.density_map", "DensityMap")
|
|
@@ -40,6 +40,7 @@ _EXPORTS = {
|
|
|
40
40
|
"RobinsonFouldsDistance": "rf_distance",
|
|
41
41
|
"RootTree": "root_tree",
|
|
42
42
|
"Saturation": "saturation",
|
|
43
|
+
"SimmapSummary": "simmap_summary",
|
|
43
44
|
"Spr": "spr",
|
|
44
45
|
"SpuriousSequence": "spurious_sequence",
|
|
45
46
|
"TerminalBranchStats": "terminal_branch_stats",
|
|
@@ -52,6 +53,7 @@ _EXPORTS = {
|
|
|
52
53
|
"TreenessOverRCV": "treeness_over_rcv",
|
|
53
54
|
"ConcordanceAsr": "concordance_asr",
|
|
54
55
|
"PhyloLogistic": "phylo_logistic",
|
|
56
|
+
"PhyloAnova": "phylo_anova",
|
|
55
57
|
"PhyloImpute": "phylo_impute",
|
|
56
58
|
"TraitCorrelation": "trait_correlation",
|
|
57
59
|
"TraitRateMap": "trait_rate_map",
|