phylogenie 3.1.3__tar.gz → 3.1.4__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.
Potentially problematic release.
This version of phylogenie might be problematic. Click here for more details.
- {phylogenie-3.1.3 → phylogenie-3.1.4}/PKG-INFO +1 -1
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/draw.py +6 -4
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/main.py +2 -6
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie.egg-info/PKG-INFO +1 -1
- {phylogenie-3.1.3 → phylogenie-3.1.4}/pyproject.toml +9 -9
- {phylogenie-3.1.3 → phylogenie-3.1.4}/LICENSE.txt +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/README.md +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/__init__.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/generators/__init__.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/generators/alisim.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/generators/configs.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/generators/dataset.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/generators/factories.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/generators/trees.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/generators/typeguards.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/io/__init__.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/io/fasta.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/mixins.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/msa.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/py.typed +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/skyline/__init__.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/skyline/matrix.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/skyline/parameter.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/skyline/vector.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/__init__.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/events/__init__.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/events/base.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/events/contact_tracing.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/events/core.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/events/mutations.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/features.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/gillespie.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/io/__init__.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/io/newick.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/io/nexus.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/model.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/tree.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/treesimulator/utils.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/typeguards.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie/typings.py +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie.egg-info/SOURCES.txt +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie.egg-info/dependency_links.txt +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie.egg-info/entry_points.txt +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie.egg-info/requires.txt +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/phylogenie.egg-info/top_level.txt +0 -0
- {phylogenie-3.1.3 → phylogenie-3.1.4}/setup.cfg +0 -0
|
@@ -5,6 +5,7 @@ import matplotlib.colors as mcolors
|
|
|
5
5
|
import matplotlib.patches as mpatches
|
|
6
6
|
import matplotlib.pyplot as plt
|
|
7
7
|
from matplotlib.axes import Axes
|
|
8
|
+
from matplotlib.colors import Colormap
|
|
8
9
|
from mpl_toolkits.axes_grid1.inset_locator import inset_axes # pyright: ignore
|
|
9
10
|
|
|
10
11
|
from phylogenie.treesimulator import Tree, get_node_depth_levels, get_node_depths
|
|
@@ -51,7 +52,7 @@ def draw_tree(
|
|
|
51
52
|
color_by: str | dict[str, Any] | None = None,
|
|
52
53
|
coloring: str | Coloring | None = None,
|
|
53
54
|
default_color: Color = "black",
|
|
54
|
-
|
|
55
|
+
colormap: str | Colormap | None = None,
|
|
55
56
|
vmin: float | None = None,
|
|
56
57
|
vmax: float | None = None,
|
|
57
58
|
show_legend: bool = True,
|
|
@@ -79,6 +80,10 @@ def draw_tree(
|
|
|
79
80
|
if any(isinstance(f, float) for f in values)
|
|
80
81
|
else Coloring.DISCRETE
|
|
81
82
|
)
|
|
83
|
+
if colormap is None:
|
|
84
|
+
colormap = "tab20" if coloring == Coloring.DISCRETE else "viridis"
|
|
85
|
+
if isinstance(colormap, str):
|
|
86
|
+
colormap = plt.get_cmap(colormap)
|
|
82
87
|
|
|
83
88
|
def _get_colors(feature_map: Callable[[Any], Color]) -> dict[Tree, Color]:
|
|
84
89
|
return {
|
|
@@ -91,8 +96,6 @@ def draw_tree(
|
|
|
91
96
|
raise ValueError(
|
|
92
97
|
"Discrete coloring selected but feature values are not all categorical."
|
|
93
98
|
)
|
|
94
|
-
|
|
95
|
-
colormap = plt.get_cmap("tab20" if cmap is None else cmap)
|
|
96
99
|
feature_colors = {
|
|
97
100
|
f: mcolors.to_hex(colormap(i)) for i, f in enumerate(set(values))
|
|
98
101
|
}
|
|
@@ -118,7 +121,6 @@ def draw_tree(
|
|
|
118
121
|
vmin = min(values) if vmin is None else vmin
|
|
119
122
|
vmax = max(values) if vmax is None else vmax
|
|
120
123
|
norm = mcolors.Normalize(vmin=vmin, vmax=vmax)
|
|
121
|
-
colormap = plt.get_cmap("viridis" if cmap is None else cmap)
|
|
122
124
|
colors = _get_colors(lambda f: colormap(norm(float(f))))
|
|
123
125
|
|
|
124
126
|
if show_hist:
|
|
@@ -15,14 +15,10 @@ def run(config_path: str) -> None:
|
|
|
15
15
|
if os.path.isdir(config_path):
|
|
16
16
|
for config_file in glob(os.path.join(config_path, "**/*.yaml"), recursive=True):
|
|
17
17
|
with open(config_file, "r") as f:
|
|
18
|
-
|
|
19
|
-
generator = adapter.validate_python(config)
|
|
20
|
-
generator.generate()
|
|
18
|
+
adapter.validate_python(safe_load(f)).generate()
|
|
21
19
|
else:
|
|
22
20
|
with open(config_path, "r") as f:
|
|
23
|
-
|
|
24
|
-
generator = adapter.validate_python(config)
|
|
25
|
-
generator.generate()
|
|
21
|
+
adapter.validate_python(safe_load(f)).generate()
|
|
26
22
|
|
|
27
23
|
|
|
28
24
|
def main() -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "phylogenie"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.4"
|
|
4
4
|
description = "Add your description here"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -13,6 +13,14 @@ dependencies = [
|
|
|
13
13
|
"tqdm>=4.67.1",
|
|
14
14
|
]
|
|
15
15
|
|
|
16
|
+
[dependency-groups]
|
|
17
|
+
dev = [
|
|
18
|
+
"joblib-stubs>=1.5.2.0.20250831",
|
|
19
|
+
"pandas-stubs>=2.3.2.250926",
|
|
20
|
+
"pyright>=1.1.407",
|
|
21
|
+
"pytest>=8.4.2",
|
|
22
|
+
]
|
|
23
|
+
|
|
16
24
|
[tool.pyright]
|
|
17
25
|
typeCheckingMode = "strict"
|
|
18
26
|
|
|
@@ -22,11 +30,3 @@ phylogenie = "phylogenie.main:main"
|
|
|
22
30
|
[build-system]
|
|
23
31
|
requires = ["setuptools>=42"]
|
|
24
32
|
build-backend = "setuptools.build_meta"
|
|
25
|
-
|
|
26
|
-
[dependency-groups]
|
|
27
|
-
dev = [
|
|
28
|
-
"joblib-stubs>=1.5.2.0.20250831",
|
|
29
|
-
"pandas-stubs>=2.3.2.250926",
|
|
30
|
-
"pyright>=1.1.407",
|
|
31
|
-
"pytest>=8.4.2",
|
|
32
|
-
]
|
|
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
|