phylogenie 2.1.1__tar.gz → 2.1.2__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-2.1.1 → phylogenie-2.1.2}/PKG-INFO +1 -1
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/tree.py +8 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/model.py +2 -3
- {phylogenie-2.1.1 → phylogenie-2.1.2}/pyproject.toml +1 -1
- {phylogenie-2.1.1 → phylogenie-2.1.2}/LICENSE.txt +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/README.md +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/__init__.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/__init__.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/alisim.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/configs.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/dataset.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/factories.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/trees.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/generators/typeguards.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/io.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/main.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/msa.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/py.typed +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/__init__.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/matrix.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/parameter.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/skyline/vector.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/__init__.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/__init__.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/contact_tracing.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/core.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/events/mutations.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/treesimulator/gillespie.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/typeguards.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/typings.py +0 -0
- {phylogenie-2.1.1 → phylogenie-2.1.2}/phylogenie/utils.py +0 -0
|
@@ -73,6 +73,14 @@ class Tree:
|
|
|
73
73
|
def delete(self, key: str) -> None:
|
|
74
74
|
del self._features[key]
|
|
75
75
|
|
|
76
|
+
def copy(self):
|
|
77
|
+
new_tree = Tree(self.id, self.branch_length)
|
|
78
|
+
for key, value in self._features.items():
|
|
79
|
+
new_tree.set(key, value)
|
|
80
|
+
for child in self.children:
|
|
81
|
+
new_tree.add_child(child.copy())
|
|
82
|
+
return new_tree
|
|
83
|
+
|
|
76
84
|
def __iter__(self) -> Iterator["Tree"]:
|
|
77
85
|
return self.preorder_traversal()
|
|
78
86
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
2
|
from collections import defaultdict
|
|
3
3
|
from collections.abc import Sequence
|
|
4
|
-
from copy import deepcopy
|
|
5
4
|
from dataclasses import dataclass
|
|
6
5
|
from typing import Any
|
|
7
6
|
|
|
@@ -122,7 +121,7 @@ class Model:
|
|
|
122
121
|
return self._population[id].state
|
|
123
122
|
|
|
124
123
|
def get_sampled_tree(self) -> Tree:
|
|
125
|
-
tree =
|
|
124
|
+
tree = self._tree.copy()
|
|
126
125
|
for node in list(tree.postorder_traversal()):
|
|
127
126
|
if node.id not in self._sampled and not node.children:
|
|
128
127
|
if node.parent is None:
|
|
@@ -142,7 +141,7 @@ class Model:
|
|
|
142
141
|
return tree
|
|
143
142
|
|
|
144
143
|
def get_full_tree(self) -> Tree:
|
|
145
|
-
return
|
|
144
|
+
return self._tree.copy()
|
|
146
145
|
|
|
147
146
|
def get_population(self, states: str | None = None) -> list[int]:
|
|
148
147
|
if states is None:
|
|
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
|