phykit 2.1.48__tar.gz → 2.1.49__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.48 → phykit-2.1.49}/PKG-INFO +18 -2
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/plot_config.py +3 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/phykit.py +112 -28
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/ancestral_reconstruction.py +6 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/concordance_asr.py +3 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/cont_map.py +3 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/cophylo.py +4 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/density_map.py +3 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/discordance_asymmetry.py +2 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/phylo_heatmap.py +3 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/quartet_pie.py +3 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/rate_heterogeneity.py +3 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/stochastic_character_map.py +3 -0
- phykit-2.1.49/phykit/version.py +1 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit.egg-info/PKG-INFO +18 -2
- phykit-2.1.48/phykit/version.py +0 -1
- {phykit-2.1.48 → phykit-2.1.49}/LICENSE.md +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/README.md +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/__init__.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/__main__.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/cli_registry.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/errors.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/__init__.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/boolean_argument_parsing.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/caching.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/discrete_models.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/files.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/json_output.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/parallel.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/quartet_utils.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/stats_summary.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/helpers/streaming.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/service_factories.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/__init__.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/__init__.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/alignment_entropy.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/alignment_length.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/alignment_length_no_gaps.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/alignment_outlier_taxa.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/alignment_recoding.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/base.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/column_score.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/composition_per_taxon.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/compositional_bias_per_site.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/create_concatenation_matrix.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/dna_threader.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/evolutionary_rate_per_site.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/faidx.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/gc_content.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/mask_alignment.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/occupancy_per_taxon.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/pairwise_identity.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/parsimony_informative_sites.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/plot_alignment_qc.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/rcv.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/rcvt.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/rename_fasta_entries.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/sum_of_pairs_score.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/alignment/variable_sites.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/base.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/__init__.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/base.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/bipartition_support_stats.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/branch_length_multiplier.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/collapse_branches.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/consensus_network.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/consensus_tree.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/covarying_evolutionary_rates.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/dvmc.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/evo_tempo_map.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/evolutionary_rate.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/fit_continuous.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/fit_discrete.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/hidden_paralogy_check.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/independent_contrasts.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/internal_branch_stats.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/internode_labeler.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/kf_distance.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/last_common_ancestor_subtree.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/lb_score.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/ltt.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/monophyly_check.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/nearest_neighbor_interchange.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/network_signal.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/ou_shift_detection.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/ouwie.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/parsimony_score.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/patristic_distances.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/phenogram.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/phylogenetic_glm.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/phylogenetic_ordination.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/phylogenetic_regression.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/phylogenetic_signal.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/phylomorphospace.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/polytomy_test.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/print_tree.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/prune_tree.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/quartet_network.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/relative_rate_test.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/rename_tree_tips.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/rf_distance.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/root_tree.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/saturation.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/spectral_discordance.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/spurious_sequence.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/terminal_branch_stats.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/threshold_model.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/tip_labels.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/tip_to_tip_distance.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/tip_to_tip_node_distance.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/total_tree_length.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/treeness.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/treeness_over_rcv.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit/services/tree/vcv_utils.py +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit.egg-info/SOURCES.txt +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit.egg-info/dependency_links.txt +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit.egg-info/entry_points.txt +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit.egg-info/requires.txt +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/phykit.egg-info/top_level.txt +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/setup.cfg +0 -0
- {phykit-2.1.48 → phykit-2.1.49}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: phykit
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.49
|
|
4
4
|
Home-page: https://github.com/jlsteenwyk/phykit
|
|
5
5
|
Author: Jacob L. Steenwyk
|
|
6
6
|
Author-email: jlsteenwyk@gmail.com
|
|
@@ -14,6 +14,22 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
14
14
|
Requires-Python: >=3.11
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE.md
|
|
17
|
+
Requires-Dist: biopython>=1.82
|
|
18
|
+
Requires-Dist: matplotlib>=3.7.0
|
|
19
|
+
Requires-Dist: numpy>=1.24.0
|
|
20
|
+
Requires-Dist: scipy>=1.11.3
|
|
21
|
+
Requires-Dist: scikit-learn>=1.4.2
|
|
22
|
+
Requires-Dist: umap-learn>=0.5.0
|
|
23
|
+
Requires-Dist: tqdm>=4.65.0
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: author-email
|
|
26
|
+
Dynamic: classifier
|
|
27
|
+
Dynamic: description
|
|
28
|
+
Dynamic: description-content-type
|
|
29
|
+
Dynamic: home-page
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
Dynamic: requires-dist
|
|
32
|
+
Dynamic: requires-python
|
|
17
33
|
|
|
18
34
|
<p align="center">
|
|
19
35
|
<a href="https://github.com/jlsteenwyk/phykit">
|
|
@@ -23,6 +23,7 @@ class PlotConfig:
|
|
|
23
23
|
title_fontsize: Optional[float] = None
|
|
24
24
|
axis_fontsize: Optional[float] = None
|
|
25
25
|
colors: Optional[List[str]] = None
|
|
26
|
+
ladderize: bool = False
|
|
26
27
|
|
|
27
28
|
def validate(self) -> None:
|
|
28
29
|
if self.fig_width is not None and self.fig_width <= 0:
|
|
@@ -187,6 +188,7 @@ class PlotConfig:
|
|
|
187
188
|
title_fontsize=getattr(args, "title_fontsize", None),
|
|
188
189
|
axis_fontsize=getattr(args, "axis_fontsize", None),
|
|
189
190
|
colors=colors,
|
|
191
|
+
ladderize=getattr(args, "ladderize", False),
|
|
190
192
|
)
|
|
191
193
|
config.validate()
|
|
192
194
|
return config
|
|
@@ -205,3 +207,4 @@ def add_plot_arguments(parser) -> None:
|
|
|
205
207
|
group.add_argument("--title-fontsize", type=float, default=None, help="Font size for the title")
|
|
206
208
|
group.add_argument("--axis-fontsize", type=float, default=None, help="Font size for axis labels")
|
|
207
209
|
group.add_argument("--colors", type=str, default=None, help="Comma-separated colors (hex or named)")
|
|
210
|
+
group.add_argument("--ladderize", action="store_true", default=False, help="Ladderize (sort) the tree before plotting")
|
|
@@ -464,7 +464,7 @@ class Phykit:
|
|
|
464
464
|
[--legend-position <str>]
|
|
465
465
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
466
466
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
467
|
-
[--colors <str>]
|
|
467
|
+
[--colors <str>] [--ladderize]
|
|
468
468
|
[--json]
|
|
469
469
|
|
|
470
470
|
Options
|
|
@@ -512,6 +512,9 @@ class Phykit:
|
|
|
512
512
|
(hex or named, e.g.,
|
|
513
513
|
"#ff0000,blue,#00ff00")
|
|
514
514
|
|
|
515
|
+
--ladderize ladderize (sort) the tree
|
|
516
|
+
before plotting
|
|
517
|
+
|
|
515
518
|
--json optional argument to output
|
|
516
519
|
results as JSON
|
|
517
520
|
"""
|
|
@@ -816,7 +819,7 @@ class Phykit:
|
|
|
816
819
|
[--legend-position <str>]
|
|
817
820
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
818
821
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
819
|
-
[--colors <str>]
|
|
822
|
+
[--colors <str>] [--ladderize]
|
|
820
823
|
[--json]
|
|
821
824
|
|
|
822
825
|
Options
|
|
@@ -862,6 +865,9 @@ class Phykit:
|
|
|
862
865
|
(hex or named, e.g.,
|
|
863
866
|
"#ff0000,blue,#00ff00")
|
|
864
867
|
|
|
868
|
+
--ladderize ladderize (sort) the tree
|
|
869
|
+
before plotting
|
|
870
|
+
|
|
865
871
|
--json optional argument to output
|
|
866
872
|
results as JSON
|
|
867
873
|
"""
|
|
@@ -947,7 +953,7 @@ class Phykit:
|
|
|
947
953
|
[--legend-position <str>]
|
|
948
954
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
949
955
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
950
|
-
[--colors <str>]
|
|
956
|
+
[--colors <str>] [--ladderize]
|
|
951
957
|
[--json]
|
|
952
958
|
|
|
953
959
|
Options
|
|
@@ -992,6 +998,9 @@ class Phykit:
|
|
|
992
998
|
(hex or named, e.g.,
|
|
993
999
|
"#ff0000,blue,#00ff00")
|
|
994
1000
|
|
|
1001
|
+
--ladderize ladderize (sort) the tree
|
|
1002
|
+
before plotting
|
|
1003
|
+
|
|
995
1004
|
--json optional argument to output
|
|
996
1005
|
results as JSON
|
|
997
1006
|
"""
|
|
@@ -1298,7 +1307,7 @@ class Phykit:
|
|
|
1298
1307
|
[--legend-position <str>]
|
|
1299
1308
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
1300
1309
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
1301
|
-
[--colors <str>]
|
|
1310
|
+
[--colors <str>] [--ladderize]
|
|
1302
1311
|
[--json]
|
|
1303
1312
|
|
|
1304
1313
|
Options
|
|
@@ -1348,6 +1357,9 @@ class Phykit:
|
|
|
1348
1357
|
(hex or named, e.g.,
|
|
1349
1358
|
"#ff0000,blue,#00ff00")
|
|
1350
1359
|
|
|
1360
|
+
--ladderize ladderize (sort) the tree
|
|
1361
|
+
before plotting
|
|
1362
|
+
|
|
1351
1363
|
--json optional argument to output
|
|
1352
1364
|
results as JSON
|
|
1353
1365
|
"""
|
|
@@ -1485,7 +1497,7 @@ class Phykit:
|
|
|
1485
1497
|
[--legend-position <str>]
|
|
1486
1498
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
1487
1499
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
1488
|
-
[--colors <str>]
|
|
1500
|
+
[--colors <str>] [--ladderize]
|
|
1489
1501
|
[--json]
|
|
1490
1502
|
|
|
1491
1503
|
Options
|
|
@@ -1530,6 +1542,9 @@ class Phykit:
|
|
|
1530
1542
|
(hex or named, e.g.,
|
|
1531
1543
|
"#ff0000,blue,#00ff00")
|
|
1532
1544
|
|
|
1545
|
+
--ladderize ladderize (sort) the tree
|
|
1546
|
+
before plotting
|
|
1547
|
+
|
|
1533
1548
|
--json optional argument to output
|
|
1534
1549
|
results as JSON
|
|
1535
1550
|
"""
|
|
@@ -1831,7 +1846,7 @@ class Phykit:
|
|
|
1831
1846
|
[--legend-position <str>]
|
|
1832
1847
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
1833
1848
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
1834
|
-
[--colors <str>]
|
|
1849
|
+
[--colors <str>] [--ladderize]
|
|
1835
1850
|
[--json]
|
|
1836
1851
|
|
|
1837
1852
|
Options
|
|
@@ -1888,6 +1903,9 @@ class Phykit:
|
|
|
1888
1903
|
(hex or named, e.g.,
|
|
1889
1904
|
"#ff0000,blue,#00ff00")
|
|
1890
1905
|
|
|
1906
|
+
--ladderize ladderize (sort) the tree
|
|
1907
|
+
before plotting
|
|
1908
|
+
|
|
1891
1909
|
--json output results as JSON
|
|
1892
1910
|
"""
|
|
1893
1911
|
),
|
|
@@ -1961,7 +1979,7 @@ class Phykit:
|
|
|
1961
1979
|
[--legend-position <str>]
|
|
1962
1980
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
1963
1981
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
1964
|
-
[--colors <str>]
|
|
1982
|
+
[--colors <str>] [--ladderize]
|
|
1965
1983
|
[--json]
|
|
1966
1984
|
|
|
1967
1985
|
Options
|
|
@@ -2019,6 +2037,9 @@ class Phykit:
|
|
|
2019
2037
|
(hex or named, e.g.,
|
|
2020
2038
|
"#ff0000,blue,#00ff00")
|
|
2021
2039
|
|
|
2040
|
+
--ladderize ladderize (sort) the tree
|
|
2041
|
+
before plotting
|
|
2042
|
+
|
|
2022
2043
|
--json output results as JSON
|
|
2023
2044
|
"""
|
|
2024
2045
|
),
|
|
@@ -2249,7 +2270,7 @@ class Phykit:
|
|
|
2249
2270
|
[--legend-position <str>]
|
|
2250
2271
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
2251
2272
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
2252
|
-
[--colors <str>]
|
|
2273
|
+
[--colors <str>] [--ladderize]
|
|
2253
2274
|
[--json]
|
|
2254
2275
|
|
|
2255
2276
|
Options
|
|
@@ -2307,6 +2328,9 @@ class Phykit:
|
|
|
2307
2328
|
(hex or named, e.g.,
|
|
2308
2329
|
"#ff0000,blue,#00ff00")
|
|
2309
2330
|
|
|
2331
|
+
--ladderize ladderize (sort) the tree
|
|
2332
|
+
before plotting
|
|
2333
|
+
|
|
2310
2334
|
--json optional argument to output
|
|
2311
2335
|
results as JSON
|
|
2312
2336
|
"""
|
|
@@ -2920,7 +2944,7 @@ class Phykit:
|
|
|
2920
2944
|
[--legend-position <str>]
|
|
2921
2945
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
2922
2946
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
2923
|
-
[--colors <str>]
|
|
2947
|
+
[--colors <str>] [--ladderize]
|
|
2924
2948
|
[--json]
|
|
2925
2949
|
|
|
2926
2950
|
Options
|
|
@@ -3006,6 +3030,9 @@ class Phykit:
|
|
|
3006
3030
|
(hex or named, e.g.,
|
|
3007
3031
|
"#ff0000,blue,#00ff00")
|
|
3008
3032
|
|
|
3033
|
+
--ladderize ladderize (sort) the tree
|
|
3034
|
+
before plotting
|
|
3035
|
+
|
|
3009
3036
|
--json optional argument to output
|
|
3010
3037
|
results as JSON
|
|
3011
3038
|
"""
|
|
@@ -3255,7 +3282,7 @@ class Phykit:
|
|
|
3255
3282
|
[--legend-position <str>]
|
|
3256
3283
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
3257
3284
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
3258
|
-
[--colors <str>]
|
|
3285
|
+
[--colors <str>] [--ladderize]
|
|
3259
3286
|
[--json]
|
|
3260
3287
|
|
|
3261
3288
|
Options
|
|
@@ -3307,6 +3334,9 @@ class Phykit:
|
|
|
3307
3334
|
(hex or named, e.g.,
|
|
3308
3335
|
"#ff0000,blue,#00ff00")
|
|
3309
3336
|
|
|
3337
|
+
--ladderize ladderize (sort) the tree
|
|
3338
|
+
before plotting
|
|
3339
|
+
|
|
3310
3340
|
--json optional argument to output
|
|
3311
3341
|
results as JSON
|
|
3312
3342
|
"""
|
|
@@ -3606,7 +3636,7 @@ class Phykit:
|
|
|
3606
3636
|
[--legend-position <str>]
|
|
3607
3637
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
3608
3638
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
3609
|
-
[--colors <str>]
|
|
3639
|
+
[--colors <str>] [--ladderize]
|
|
3610
3640
|
[--json]
|
|
3611
3641
|
|
|
3612
3642
|
Options
|
|
@@ -3661,6 +3691,9 @@ class Phykit:
|
|
|
3661
3691
|
(hex or named, e.g.,
|
|
3662
3692
|
"#ff0000,blue,#00ff00")
|
|
3663
3693
|
|
|
3694
|
+
--ladderize ladderize (sort) the tree
|
|
3695
|
+
before plotting
|
|
3696
|
+
|
|
3664
3697
|
--json optional argument to output
|
|
3665
3698
|
results as JSON
|
|
3666
3699
|
"""
|
|
@@ -3731,7 +3764,7 @@ class Phykit:
|
|
|
3731
3764
|
[--legend-position <str>]
|
|
3732
3765
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
3733
3766
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
3734
|
-
[--colors <str>]
|
|
3767
|
+
[--colors <str>] [--ladderize]
|
|
3735
3768
|
[--json]
|
|
3736
3769
|
|
|
3737
3770
|
Options
|
|
@@ -3774,6 +3807,9 @@ class Phykit:
|
|
|
3774
3807
|
(hex or named, e.g.,
|
|
3775
3808
|
"#ff0000,blue,#00ff00")
|
|
3776
3809
|
|
|
3810
|
+
--ladderize ladderize (sort) the tree
|
|
3811
|
+
before plotting
|
|
3812
|
+
|
|
3777
3813
|
--json optional argument to also
|
|
3778
3814
|
output results as JSON
|
|
3779
3815
|
"""
|
|
@@ -3823,7 +3859,7 @@ class Phykit:
|
|
|
3823
3859
|
[--legend-position <str>]
|
|
3824
3860
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
3825
3861
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
3826
|
-
[--colors <str>]
|
|
3862
|
+
[--colors <str>] [--ladderize]
|
|
3827
3863
|
[--json]
|
|
3828
3864
|
|
|
3829
3865
|
Options
|
|
@@ -3876,6 +3912,9 @@ class Phykit:
|
|
|
3876
3912
|
(hex or named, e.g.,
|
|
3877
3913
|
"#ff0000,blue,#00ff00")
|
|
3878
3914
|
|
|
3915
|
+
--ladderize ladderize (sort) the tree
|
|
3916
|
+
before plotting
|
|
3917
|
+
|
|
3879
3918
|
--json optional argument to also
|
|
3880
3919
|
output results as JSON
|
|
3881
3920
|
"""
|
|
@@ -3930,7 +3969,7 @@ class Phykit:
|
|
|
3930
3969
|
[--legend-position <str>]
|
|
3931
3970
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
3932
3971
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
3933
|
-
[--colors <str>]
|
|
3972
|
+
[--colors <str>] [--ladderize]
|
|
3934
3973
|
[--json]
|
|
3935
3974
|
|
|
3936
3975
|
Options
|
|
@@ -3973,6 +4012,9 @@ class Phykit:
|
|
|
3973
4012
|
(hex or named, e.g.,
|
|
3974
4013
|
"#ff0000,blue,#00ff00")
|
|
3975
4014
|
|
|
4015
|
+
--ladderize ladderize (sort) the tree
|
|
4016
|
+
before plotting
|
|
4017
|
+
|
|
3976
4018
|
--json optional argument to output
|
|
3977
4019
|
results as JSON
|
|
3978
4020
|
"""
|
|
@@ -4019,7 +4061,7 @@ class Phykit:
|
|
|
4019
4061
|
[--legend-position <str>]
|
|
4020
4062
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
4021
4063
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
4022
|
-
[--colors <str>]
|
|
4064
|
+
[--colors <str>] [--ladderize]
|
|
4023
4065
|
[--json]
|
|
4024
4066
|
|
|
4025
4067
|
Options
|
|
@@ -4065,6 +4107,9 @@ class Phykit:
|
|
|
4065
4107
|
(hex or named, e.g.,
|
|
4066
4108
|
"#ff0000,blue,#00ff00")
|
|
4067
4109
|
|
|
4110
|
+
--ladderize ladderize (sort) the tree
|
|
4111
|
+
before plotting
|
|
4112
|
+
|
|
4068
4113
|
--json optional argument to output
|
|
4069
4114
|
results as JSON
|
|
4070
4115
|
"""
|
|
@@ -4118,7 +4163,7 @@ class Phykit:
|
|
|
4118
4163
|
[--legend-position <str>]
|
|
4119
4164
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
4120
4165
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
4121
|
-
[--colors <str>]
|
|
4166
|
+
[--colors <str>] [--ladderize]
|
|
4122
4167
|
[--json]
|
|
4123
4168
|
|
|
4124
4169
|
Options
|
|
@@ -4170,6 +4215,9 @@ class Phykit:
|
|
|
4170
4215
|
(hex or named, e.g.,
|
|
4171
4216
|
"#ff0000,blue,#00ff00")
|
|
4172
4217
|
|
|
4218
|
+
--ladderize ladderize (sort) the tree
|
|
4219
|
+
before plotting
|
|
4220
|
+
|
|
4173
4221
|
--json optional argument to output
|
|
4174
4222
|
results as JSON
|
|
4175
4223
|
"""
|
|
@@ -4651,7 +4699,7 @@ class Phykit:
|
|
|
4651
4699
|
[--legend-position <str>]
|
|
4652
4700
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
4653
4701
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
4654
|
-
[--colors <str>]
|
|
4702
|
+
[--colors <str>] [--ladderize]
|
|
4655
4703
|
[--json]
|
|
4656
4704
|
|
|
4657
4705
|
Options
|
|
@@ -4702,6 +4750,9 @@ class Phykit:
|
|
|
4702
4750
|
(hex or named, e.g.,
|
|
4703
4751
|
"#ff0000,blue,#00ff00")
|
|
4704
4752
|
|
|
4753
|
+
--ladderize ladderize (sort) the tree
|
|
4754
|
+
before plotting
|
|
4755
|
+
|
|
4705
4756
|
--json optional argument to output
|
|
4706
4757
|
results as JSON
|
|
4707
4758
|
"""
|
|
@@ -4766,7 +4817,7 @@ class Phykit:
|
|
|
4766
4817
|
[--legend-position <str>]
|
|
4767
4818
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
4768
4819
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
4769
|
-
[--colors <str>]
|
|
4820
|
+
[--colors <str>] [--ladderize]
|
|
4770
4821
|
|
|
4771
4822
|
Options
|
|
4772
4823
|
=====================================================
|
|
@@ -4815,6 +4866,9 @@ class Phykit:
|
|
|
4815
4866
|
(default: "#2b8cbe,#d62728,
|
|
4816
4867
|
#969696")
|
|
4817
4868
|
|
|
4869
|
+
--ladderize ladderize (sort) the tree
|
|
4870
|
+
before plotting
|
|
4871
|
+
|
|
4818
4872
|
--json optional argument to output
|
|
4819
4873
|
per-node concordance as JSON
|
|
4820
4874
|
"""
|
|
@@ -4879,7 +4933,7 @@ class Phykit:
|
|
|
4879
4933
|
[--legend-position <str>]
|
|
4880
4934
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
4881
4935
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
4882
|
-
[--colors <str>]
|
|
4936
|
+
[--colors <str>] [--ladderize]
|
|
4883
4937
|
[--json]
|
|
4884
4938
|
|
|
4885
4939
|
Options
|
|
@@ -4936,6 +4990,9 @@ class Phykit:
|
|
|
4936
4990
|
(hex or named, e.g.,
|
|
4937
4991
|
"#ff0000,blue,#00ff00")
|
|
4938
4992
|
|
|
4993
|
+
--ladderize ladderize (sort) the tree
|
|
4994
|
+
before plotting
|
|
4995
|
+
|
|
4939
4996
|
--json optional argument to output
|
|
4940
4997
|
results as JSON
|
|
4941
4998
|
"""
|
|
@@ -5096,7 +5153,7 @@ class Phykit:
|
|
|
5096
5153
|
[--legend-position <str>]
|
|
5097
5154
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
5098
5155
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
5099
|
-
[--colors <str>]
|
|
5156
|
+
[--colors <str>] [--ladderize]
|
|
5100
5157
|
[--json]
|
|
5101
5158
|
|
|
5102
5159
|
Options
|
|
@@ -5142,6 +5199,9 @@ class Phykit:
|
|
|
5142
5199
|
(hex or named, e.g.,
|
|
5143
5200
|
"#ff0000,blue,#00ff00")
|
|
5144
5201
|
|
|
5202
|
+
--ladderize ladderize (sort) the tree
|
|
5203
|
+
before plotting
|
|
5204
|
+
|
|
5145
5205
|
--json optional argument to output
|
|
5146
5206
|
results as JSON
|
|
5147
5207
|
"""
|
|
@@ -5250,7 +5310,7 @@ class Phykit:
|
|
|
5250
5310
|
[--legend-position <str>]
|
|
5251
5311
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
5252
5312
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
5253
|
-
[--colors <str>]
|
|
5313
|
+
[--colors <str>] [--ladderize]
|
|
5254
5314
|
[--json]
|
|
5255
5315
|
|
|
5256
5316
|
Options
|
|
@@ -5298,6 +5358,9 @@ class Phykit:
|
|
|
5298
5358
|
(hex or named, e.g.,
|
|
5299
5359
|
"#ff0000,blue,#00ff00")
|
|
5300
5360
|
|
|
5361
|
+
--ladderize ladderize (sort) the tree
|
|
5362
|
+
before plotting
|
|
5363
|
+
|
|
5301
5364
|
--json optional argument to output
|
|
5302
5365
|
results as JSON
|
|
5303
5366
|
"""
|
|
@@ -5357,7 +5420,7 @@ class Phykit:
|
|
|
5357
5420
|
[--legend-position <str>]
|
|
5358
5421
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
5359
5422
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
5360
|
-
[--colors <str>]
|
|
5423
|
+
[--colors <str>] [--ladderize]
|
|
5361
5424
|
[--json]
|
|
5362
5425
|
|
|
5363
5426
|
Options
|
|
@@ -5421,6 +5484,9 @@ class Phykit:
|
|
|
5421
5484
|
(hex or named, e.g.,
|
|
5422
5485
|
"#ff0000,blue,#00ff00")
|
|
5423
5486
|
|
|
5487
|
+
--ladderize ladderize (sort) the tree
|
|
5488
|
+
before plotting
|
|
5489
|
+
|
|
5424
5490
|
--json optional argument to output
|
|
5425
5491
|
results as JSON
|
|
5426
5492
|
"""
|
|
@@ -5820,7 +5886,7 @@ class Phykit:
|
|
|
5820
5886
|
[--legend-position <str>]
|
|
5821
5887
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
5822
5888
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
5823
|
-
[--colors <str>]
|
|
5889
|
+
[--colors <str>] [--ladderize]
|
|
5824
5890
|
[--json]
|
|
5825
5891
|
|
|
5826
5892
|
Options
|
|
@@ -5877,6 +5943,9 @@ class Phykit:
|
|
|
5877
5943
|
(hex or named, e.g.,
|
|
5878
5944
|
"#ff0000,blue,#00ff00")
|
|
5879
5945
|
|
|
5946
|
+
--ladderize ladderize (sort) the tree
|
|
5947
|
+
before plotting
|
|
5948
|
+
|
|
5880
5949
|
--json optional argument to output
|
|
5881
5950
|
results as JSON
|
|
5882
5951
|
"""
|
|
@@ -6056,7 +6125,7 @@ class Phykit:
|
|
|
6056
6125
|
[--legend-position <str>]
|
|
6057
6126
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
6058
6127
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
6059
|
-
[--colors <str>]
|
|
6128
|
+
[--colors <str>] [--ladderize]
|
|
6060
6129
|
[--json]
|
|
6061
6130
|
|
|
6062
6131
|
Options
|
|
@@ -6107,6 +6176,9 @@ class Phykit:
|
|
|
6107
6176
|
(hex or named, e.g.,
|
|
6108
6177
|
"#ff0000,blue,#00ff00")
|
|
6109
6178
|
|
|
6179
|
+
--ladderize ladderize (sort) the tree
|
|
6180
|
+
before plotting
|
|
6181
|
+
|
|
6110
6182
|
--json optional argument to output
|
|
6111
6183
|
results as JSON
|
|
6112
6184
|
"""
|
|
@@ -6225,7 +6297,7 @@ class Phykit:
|
|
|
6225
6297
|
[--legend-position <str>]
|
|
6226
6298
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
6227
6299
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
6228
|
-
[--colors <str>]
|
|
6300
|
+
[--colors <str>] [--ladderize]
|
|
6229
6301
|
[--json]
|
|
6230
6302
|
|
|
6231
6303
|
Options
|
|
@@ -6270,6 +6342,9 @@ class Phykit:
|
|
|
6270
6342
|
(hex or named, e.g.,
|
|
6271
6343
|
"#ff0000,blue,#00ff00")
|
|
6272
6344
|
|
|
6345
|
+
--ladderize ladderize (sort) the tree
|
|
6346
|
+
before plotting
|
|
6347
|
+
|
|
6273
6348
|
--json optional argument to output
|
|
6274
6349
|
results as JSON
|
|
6275
6350
|
"""
|
|
@@ -6325,7 +6400,7 @@ class Phykit:
|
|
|
6325
6400
|
[--legend-position <str>]
|
|
6326
6401
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
6327
6402
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
6328
|
-
[--colors <str>]
|
|
6403
|
+
[--colors <str>] [--ladderize]
|
|
6329
6404
|
[--json]
|
|
6330
6405
|
|
|
6331
6406
|
Options
|
|
@@ -6369,6 +6444,9 @@ class Phykit:
|
|
|
6369
6444
|
(hex or named, e.g.,
|
|
6370
6445
|
"#ff0000,blue,#00ff00")
|
|
6371
6446
|
|
|
6447
|
+
--ladderize ladderize (sort) the tree
|
|
6448
|
+
before plotting
|
|
6449
|
+
|
|
6372
6450
|
--json optional argument to output
|
|
6373
6451
|
results as JSON
|
|
6374
6452
|
"""
|
|
@@ -6425,7 +6503,7 @@ class Phykit:
|
|
|
6425
6503
|
[--legend-position <str>]
|
|
6426
6504
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
6427
6505
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
6428
|
-
[--colors <str>]
|
|
6506
|
+
[--colors <str>] [--ladderize]
|
|
6429
6507
|
[--json]
|
|
6430
6508
|
|
|
6431
6509
|
Options
|
|
@@ -6483,6 +6561,9 @@ class Phykit:
|
|
|
6483
6561
|
(hex or named, e.g.,
|
|
6484
6562
|
"#ff0000,blue,#00ff00")
|
|
6485
6563
|
|
|
6564
|
+
--ladderize ladderize (sort) the tree
|
|
6565
|
+
before plotting
|
|
6566
|
+
|
|
6486
6567
|
--json output results as JSON
|
|
6487
6568
|
"""
|
|
6488
6569
|
),
|
|
@@ -6556,7 +6637,7 @@ class Phykit:
|
|
|
6556
6637
|
[--legend-position <str>]
|
|
6557
6638
|
[--ylabel-fontsize <float>] [--xlabel-fontsize <float>]
|
|
6558
6639
|
[--title-fontsize <float>] [--axis-fontsize <float>]
|
|
6559
|
-
[--colors <str>]
|
|
6640
|
+
[--colors <str>] [--ladderize]
|
|
6560
6641
|
|
|
6561
6642
|
Options
|
|
6562
6643
|
=====================================================
|
|
@@ -6616,6 +6697,9 @@ class Phykit:
|
|
|
6616
6697
|
(hex or named, e.g.,
|
|
6617
6698
|
"#ff0000,blue,#00ff00")
|
|
6618
6699
|
|
|
6700
|
+
--ladderize ladderize (sort) the tree
|
|
6701
|
+
before plotting
|
|
6702
|
+
|
|
6619
6703
|
--json optional argument to output
|
|
6620
6704
|
results as JSON
|
|
6621
6705
|
"""
|
|
@@ -66,6 +66,9 @@ class AncestralReconstruction(Tree):
|
|
|
66
66
|
if tips_to_prune:
|
|
67
67
|
tree_copy = self.prune_tree_using_taxa_list(tree_copy, tips_to_prune)
|
|
68
68
|
|
|
69
|
+
if self.plot_config.ladderize:
|
|
70
|
+
tree_copy.ladderize()
|
|
71
|
+
|
|
69
72
|
# Label internal nodes
|
|
70
73
|
node_labels = self._label_internal_nodes(tree_copy)
|
|
71
74
|
|
|
@@ -1206,6 +1209,9 @@ class AncestralReconstruction(Tree):
|
|
|
1206
1209
|
if tips_to_prune:
|
|
1207
1210
|
tree_copy = self.prune_tree_using_taxa_list(tree_copy, tips_to_prune)
|
|
1208
1211
|
|
|
1212
|
+
if self.plot_config.ladderize:
|
|
1213
|
+
tree_copy.ladderize()
|
|
1214
|
+
|
|
1209
1215
|
# Label internal nodes
|
|
1210
1216
|
node_labels = self._label_internal_nodes(tree_copy)
|
|
1211
1217
|
|
|
@@ -101,6 +101,9 @@ class ConcordanceAsr(Tree):
|
|
|
101
101
|
species_copy, tips_to_prune
|
|
102
102
|
)
|
|
103
103
|
|
|
104
|
+
if self.plot_config.ladderize:
|
|
105
|
+
species_copy.ladderize()
|
|
106
|
+
|
|
104
107
|
if self.method == "distribution":
|
|
105
108
|
result = self._run_distribution(
|
|
106
109
|
species_copy, gene_trees, trait_values, all_taxa
|
|
@@ -40,6 +40,9 @@ class ContMap(Tree):
|
|
|
40
40
|
if tips_to_prune:
|
|
41
41
|
tree_copy = self.prune_tree_using_taxa_list(tree_copy, tips_to_prune)
|
|
42
42
|
|
|
43
|
+
if self.plot_config.ladderize:
|
|
44
|
+
tree_copy.ladderize()
|
|
45
|
+
|
|
43
46
|
# Label internal nodes
|
|
44
47
|
node_labels = self._label_internal_nodes(tree_copy)
|
|
45
48
|
|
|
@@ -84,6 +84,10 @@ class Cophylo(Tree):
|
|
|
84
84
|
n_tips1 = len(tips1)
|
|
85
85
|
n_tips2 = len(tips2)
|
|
86
86
|
|
|
87
|
+
if self.plot_config.ladderize:
|
|
88
|
+
tree1.ladderize()
|
|
89
|
+
tree2.ladderize()
|
|
90
|
+
|
|
87
91
|
# Optimize tip ordering to reduce line crossings
|
|
88
92
|
tree1_order, tree2_order = self._optimize_tip_order(
|
|
89
93
|
tree1, tree2, mapping_valid
|
|
@@ -64,6 +64,9 @@ class DensityMap(Tree):
|
|
|
64
64
|
for tip_name in tips_to_prune:
|
|
65
65
|
tree.prune(tip_name)
|
|
66
66
|
|
|
67
|
+
if self.plot_config.ladderize:
|
|
68
|
+
tree.ladderize()
|
|
69
|
+
|
|
67
70
|
# Fit Q matrix using ER model
|
|
68
71
|
Q, loglik = scm._fit_q_matrix(tree, tip_states, states, "ER")
|
|
69
72
|
k = len(states)
|
|
@@ -85,6 +85,8 @@ class DiscordanceAsymmetry(Tree):
|
|
|
85
85
|
self._output_text(branch_results, summary)
|
|
86
86
|
|
|
87
87
|
if self.plot_output:
|
|
88
|
+
if self.plot_config.ladderize:
|
|
89
|
+
species_tree.ladderize()
|
|
88
90
|
self._plot(species_tree, branch_results, self.plot_output,
|
|
89
91
|
shared_taxa=shared_taxa)
|
|
90
92
|
|
|
@@ -43,6 +43,9 @@ class PhyloHeatmap(Tree):
|
|
|
43
43
|
if tips_to_prune:
|
|
44
44
|
tree = self.prune_tree_using_taxa_list(tree, tips_to_prune)
|
|
45
45
|
|
|
46
|
+
if self.plot_config.ladderize:
|
|
47
|
+
tree.ladderize()
|
|
48
|
+
|
|
46
49
|
# Get tip order from tree traversal
|
|
47
50
|
tip_order = [t.name for t in tree.get_terminals()]
|
|
48
51
|
|
|
@@ -108,6 +108,9 @@ class RateHeterogeneity(Tree):
|
|
|
108
108
|
|
|
109
109
|
# Plot
|
|
110
110
|
if self.plot_output:
|
|
111
|
+
if self.plot_config.ladderize:
|
|
112
|
+
tree_copy.ladderize()
|
|
113
|
+
parent_map = self._build_parent_map(tree_copy)
|
|
111
114
|
self._plot_regime_tree(
|
|
112
115
|
tree_copy, branch_regimes, regimes, parent_map, self.plot_output
|
|
113
116
|
)
|
|
@@ -67,6 +67,9 @@ class StochasticCharacterMap(Tree):
|
|
|
67
67
|
for tip_name in tips_to_prune:
|
|
68
68
|
tree.prune(tip_name)
|
|
69
69
|
|
|
70
|
+
if self.plot_config.ladderize:
|
|
71
|
+
tree.ladderize()
|
|
72
|
+
|
|
70
73
|
# Fit Q matrix
|
|
71
74
|
Q, loglik = self._fit_q_matrix(tree, tip_states, states, self.model)
|
|
72
75
|
k = len(states)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.1.49"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: phykit
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.49
|
|
4
4
|
Home-page: https://github.com/jlsteenwyk/phykit
|
|
5
5
|
Author: Jacob L. Steenwyk
|
|
6
6
|
Author-email: jlsteenwyk@gmail.com
|
|
@@ -14,6 +14,22 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
14
14
|
Requires-Python: >=3.11
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE.md
|
|
17
|
+
Requires-Dist: biopython>=1.82
|
|
18
|
+
Requires-Dist: matplotlib>=3.7.0
|
|
19
|
+
Requires-Dist: numpy>=1.24.0
|
|
20
|
+
Requires-Dist: scipy>=1.11.3
|
|
21
|
+
Requires-Dist: scikit-learn>=1.4.2
|
|
22
|
+
Requires-Dist: umap-learn>=0.5.0
|
|
23
|
+
Requires-Dist: tqdm>=4.65.0
|
|
24
|
+
Dynamic: author
|
|
25
|
+
Dynamic: author-email
|
|
26
|
+
Dynamic: classifier
|
|
27
|
+
Dynamic: description
|
|
28
|
+
Dynamic: description-content-type
|
|
29
|
+
Dynamic: home-page
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
Dynamic: requires-dist
|
|
32
|
+
Dynamic: requires-python
|
|
17
33
|
|
|
18
34
|
<p align="center">
|
|
19
35
|
<a href="https://github.com/jlsteenwyk/phykit">
|
phykit-2.1.48/phykit/version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.1.48"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|