risk-network 0.0.4b3__py3-none-any.whl → 0.0.5__py3-none-any.whl
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.
- risk/__init__.py +2 -2
- risk/annotations/annotations.py +2 -2
- risk/constants.py +2 -2
- risk/network/graph.py +45 -19
- risk/network/plot.py +35 -18
- risk/risk.py +4 -0
- {risk_network-0.0.4b3.dist-info → risk_network-0.0.5.dist-info}/METADATA +3 -4
- {risk_network-0.0.4b3.dist-info → risk_network-0.0.5.dist-info}/RECORD +11 -11
- {risk_network-0.0.4b3.dist-info → risk_network-0.0.5.dist-info}/WHEEL +1 -1
- {risk_network-0.0.4b3.dist-info → risk_network-0.0.5.dist-info}/LICENSE +0 -0
- {risk_network-0.0.4b3.dist-info → risk_network-0.0.5.dist-info}/top_level.txt +0 -0
risk/__init__.py
CHANGED
risk/annotations/annotations.py
CHANGED
@@ -207,7 +207,7 @@ def _simplify_word_list(words: List[str], threshold: float = 0.80) -> List[str]:
|
|
207
207
|
similar_words = [
|
208
208
|
other_word
|
209
209
|
for other_word in word_counts
|
210
|
-
if
|
210
|
+
if _calculate_jaccard_index(word_set, set(other_word)) >= threshold
|
211
211
|
]
|
212
212
|
# Sort by frequency and choose the most frequent word
|
213
213
|
similar_words.sort(key=lambda w: word_counts[w], reverse=True)
|
@@ -220,7 +220,7 @@ def _simplify_word_list(words: List[str], threshold: float = 0.80) -> List[str]:
|
|
220
220
|
return final_words
|
221
221
|
|
222
222
|
|
223
|
-
def
|
223
|
+
def _calculate_jaccard_index(set1: Set[Any], set2: Set[Any]) -> float:
|
224
224
|
"""Calculate the Jaccard Index of two sets.
|
225
225
|
|
226
226
|
Args:
|
risk/constants.py
CHANGED
@@ -3,6 +3,8 @@ risk/constants
|
|
3
3
|
~~~~~~~~~~~~~~
|
4
4
|
"""
|
5
5
|
|
6
|
+
GROUP_LINKAGE_METHODS = ["single", "complete", "average", "weighted", "centroid", "median", "ward"]
|
7
|
+
|
6
8
|
GROUP_DISTANCE_METRICS = [
|
7
9
|
"braycurtis",
|
8
10
|
"canberra",
|
@@ -27,5 +29,3 @@ GROUP_DISTANCE_METRICS = [
|
|
27
29
|
"sqeuclidean",
|
28
30
|
"yule",
|
29
31
|
]
|
30
|
-
|
31
|
-
GROUP_LINKAGE_METHODS = ["single", "complete", "average", "weighted", "centroid", "median", "ward"]
|
risk/network/graph.py
CHANGED
@@ -5,13 +5,12 @@ risk/network/graph
|
|
5
5
|
|
6
6
|
import random
|
7
7
|
from collections import defaultdict
|
8
|
-
from typing import Any, Dict, List, Tuple
|
8
|
+
from typing import Any, Dict, List, Tuple, Union
|
9
9
|
|
10
10
|
import networkx as nx
|
11
11
|
import numpy as np
|
12
12
|
import pandas as pd
|
13
13
|
import matplotlib
|
14
|
-
import matplotlib.cm as cm
|
15
14
|
|
16
15
|
|
17
16
|
class NetworkGraph:
|
@@ -101,7 +100,12 @@ class NetworkGraph:
|
|
101
100
|
self.node_coordinates = _extract_node_coordinates(G_2d)
|
102
101
|
|
103
102
|
def get_domain_colors(
|
104
|
-
self,
|
103
|
+
self,
|
104
|
+
min_scale: float = 0.8,
|
105
|
+
max_scale: float = 1.0,
|
106
|
+
scale_factor: float = 1.0,
|
107
|
+
random_seed: int = 888,
|
108
|
+
**kwargs,
|
105
109
|
) -> np.ndarray:
|
106
110
|
"""Generate composite colors for domains.
|
107
111
|
|
@@ -112,6 +116,8 @@ class NetworkGraph:
|
|
112
116
|
Args:
|
113
117
|
min_scale (float, optional): Minimum scale for color intensity. Defaults to 0.8.
|
114
118
|
max_scale (float, optional): Maximum scale for color intensity. Defaults to 1.0.
|
119
|
+
scale_factor (float, optional): Exponent for scaling, where values > 1 increase contrast by dimming small
|
120
|
+
values more. Defaults to 1.0.
|
115
121
|
random_seed (int, optional): Seed for random number generation. Defaults to 888.
|
116
122
|
**kwargs: Additional keyword arguments for color generation.
|
117
123
|
|
@@ -119,7 +125,7 @@ class NetworkGraph:
|
|
119
125
|
np.ndarray: Array of transformed colors.
|
120
126
|
"""
|
121
127
|
# Get colors for each domain
|
122
|
-
domain_colors = self._get_domain_colors(
|
128
|
+
domain_colors = self._get_domain_colors(random_seed=random_seed)
|
123
129
|
# Generate composite colors for nodes
|
124
130
|
node_colors = self._get_composite_node_colors(domain_colors)
|
125
131
|
# Transform colors to ensure proper alpha values and intensity
|
@@ -128,6 +134,7 @@ class NetworkGraph:
|
|
128
134
|
self.node_enrichment_sums,
|
129
135
|
min_scale=min_scale,
|
130
136
|
max_scale=max_scale,
|
137
|
+
scale_factor=scale_factor,
|
131
138
|
)
|
132
139
|
|
133
140
|
return transformed_colors
|
@@ -153,9 +160,15 @@ class NetworkGraph:
|
|
153
160
|
|
154
161
|
return composite_colors
|
155
162
|
|
156
|
-
def _get_domain_colors(
|
163
|
+
def _get_domain_colors(
|
164
|
+
self, color: Union[str, None] = None, random_seed: int = 888
|
165
|
+
) -> Dict[str, Any]:
|
157
166
|
"""Get colors for each domain.
|
158
167
|
|
168
|
+
Args:
|
169
|
+
color (Union[str, None], optional): Specific color to use for all domains. If specified, it will overwrite the colormap.
|
170
|
+
random_seed (int, optional): Seed for random number generation. Defaults to 888.
|
171
|
+
|
159
172
|
Returns:
|
160
173
|
dict: A dictionary mapping domain keys to their corresponding RGBA colors.
|
161
174
|
"""
|
@@ -164,20 +177,28 @@ class NetworkGraph:
|
|
164
177
|
col for col in self.domains.columns if isinstance(col, (int, np.integer))
|
165
178
|
]
|
166
179
|
domains = np.sort(numeric_domains)
|
167
|
-
domain_colors = _get_colors(
|
180
|
+
domain_colors = _get_colors(
|
181
|
+
num_colors_to_generate=len(domains), color=color, random_seed=random_seed
|
182
|
+
)
|
168
183
|
return dict(zip(self.domain_to_nodes.keys(), domain_colors))
|
169
184
|
|
170
185
|
|
171
186
|
def _transform_colors(
|
172
|
-
colors: np.ndarray,
|
187
|
+
colors: np.ndarray,
|
188
|
+
enrichment_sums: np.ndarray,
|
189
|
+
min_scale: float = 0.8,
|
190
|
+
max_scale: float = 1.0,
|
191
|
+
scale_factor: float = 1.0,
|
173
192
|
) -> np.ndarray:
|
174
|
-
"""Transform colors
|
193
|
+
"""Transform colors using power scaling to emphasize high enrichment sums more.
|
175
194
|
|
176
195
|
Args:
|
177
196
|
colors (np.ndarray): An array of RGBA colors.
|
178
197
|
enrichment_sums (np.ndarray): An array of enrichment sums corresponding to the colors.
|
179
198
|
min_scale (float, optional): Minimum scale for color intensity. Defaults to 0.8.
|
180
199
|
max_scale (float, optional): Maximum scale for color intensity. Defaults to 1.0.
|
200
|
+
scale_factor (float, optional): Exponent for scaling, where values > 1 increase contrast by dimming small
|
201
|
+
values more. Defaults to 1.0.
|
181
202
|
|
182
203
|
Returns:
|
183
204
|
np.ndarray: The transformed array of RGBA colors with adjusted intensities.
|
@@ -185,11 +206,12 @@ def _transform_colors(
|
|
185
206
|
if min_scale == max_scale:
|
186
207
|
min_scale = max_scale - 10e-6 # Avoid division by zero
|
187
208
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
209
|
+
# Normalize the enrichment sums to the range [0, 1]
|
210
|
+
normalized_sums = enrichment_sums / np.max(enrichment_sums)
|
211
|
+
# Apply power scaling to dim lower values and emphasize higher values
|
212
|
+
scaled_sums = normalized_sums**scale_factor
|
213
|
+
# Linearly scale the normalized sums to the range [min_scale, max_scale]
|
214
|
+
scaled_sums = min_scale + (max_scale - min_scale) * scaled_sums
|
193
215
|
# Adjust RGB values based on scaled sums
|
194
216
|
for i in range(3): # Only adjust RGB values
|
195
217
|
colors[:, i] = scaled_sums * colors[:, i]
|
@@ -250,7 +272,10 @@ def _extract_node_coordinates(G: nx.Graph) -> np.ndarray:
|
|
250
272
|
|
251
273
|
|
252
274
|
def _get_colors(
|
253
|
-
num_colors_to_generate: int = 10,
|
275
|
+
num_colors_to_generate: int = 10,
|
276
|
+
cmap: str = "hsv",
|
277
|
+
random_seed: int = 888,
|
278
|
+
color: Union[str, None] = None,
|
254
279
|
) -> List[Tuple]:
|
255
280
|
"""Generate a list of RGBA colors from a specified colormap or use a direct color string.
|
256
281
|
|
@@ -258,19 +283,20 @@ def _get_colors(
|
|
258
283
|
num_colors_to_generate (int): The number of colors to generate. Defaults to 10.
|
259
284
|
cmap (str): The name of the colormap to use. Defaults to "hsv".
|
260
285
|
random_seed (int): Seed for random number generation. Defaults to 888.
|
261
|
-
|
286
|
+
color (str, optional): Specific color to use for all nodes. If specified, it will overwrite the colormap.
|
287
|
+
Defaults to None.
|
262
288
|
|
263
289
|
Returns:
|
264
290
|
list of tuple: List of RGBA colors.
|
265
291
|
"""
|
266
292
|
# Set random seed for reproducibility
|
267
293
|
random.seed(random_seed)
|
268
|
-
if
|
269
|
-
# If a direct color
|
270
|
-
rgba = matplotlib.colors.to_rgba(
|
294
|
+
if color:
|
295
|
+
# If a direct color is provided, generate a list with that color
|
296
|
+
rgba = matplotlib.colors.to_rgba(color)
|
271
297
|
rgbas = [rgba] * num_colors_to_generate
|
272
298
|
else:
|
273
|
-
colormap =
|
299
|
+
colormap = matplotlib.colormaps.get_cmap(cmap)
|
274
300
|
# Generate evenly distributed color positions
|
275
301
|
color_positions = np.linspace(0, 1, num_colors_to_generate)
|
276
302
|
random.shuffle(color_positions) # Shuffle the positions to randomize colors
|
risk/network/plot.py
CHANGED
@@ -33,6 +33,7 @@ class NetworkPlotter:
|
|
33
33
|
plot_outline: bool = True,
|
34
34
|
outline_color: str = "black",
|
35
35
|
outline_scale: float = 1.0,
|
36
|
+
linestyle: str = "dashed",
|
36
37
|
) -> None:
|
37
38
|
"""Initialize the NetworkPlotter with a NetworkGraph object and plotting parameters.
|
38
39
|
|
@@ -43,11 +44,18 @@ class NetworkPlotter:
|
|
43
44
|
plot_outline (bool, optional): Whether to plot the network perimeter circle. Defaults to True.
|
44
45
|
outline_color (str, optional): Color of the network perimeter circle. Defaults to "black".
|
45
46
|
outline_scale (float, optional): Outline scaling factor for the perimeter diameter. Defaults to 1.0.
|
47
|
+
linestyle (str): Line style for the network perimeter circle (e.g., dashed, solid). Defaults to "dashed".
|
46
48
|
"""
|
47
49
|
self.graph = graph
|
48
50
|
# Initialize the plot with the specified parameters
|
49
51
|
self.ax = self._initialize_plot(
|
50
|
-
graph,
|
52
|
+
graph,
|
53
|
+
figsize,
|
54
|
+
background_color,
|
55
|
+
plot_outline,
|
56
|
+
outline_color,
|
57
|
+
outline_scale,
|
58
|
+
linestyle,
|
51
59
|
)
|
52
60
|
|
53
61
|
def _initialize_plot(
|
@@ -58,6 +66,7 @@ class NetworkPlotter:
|
|
58
66
|
plot_outline: bool,
|
59
67
|
outline_color: str,
|
60
68
|
outline_scale: float,
|
69
|
+
linestyle: str,
|
61
70
|
) -> plt.Axes:
|
62
71
|
"""Set up the plot with figure size, optional circle perimeter, and background color.
|
63
72
|
|
@@ -68,6 +77,7 @@ class NetworkPlotter:
|
|
68
77
|
plot_outline (bool): Whether to plot the network perimeter circle.
|
69
78
|
outline_color (str): Color of the network perimeter circle.
|
70
79
|
outline_scale (float): Outline scaling factor for the perimeter diameter.
|
80
|
+
linestyle (str): Line style for the network perimeter circle (e.g., dashed, solid).
|
71
81
|
|
72
82
|
Returns:
|
73
83
|
plt.Axes: The axis object for the plot.
|
@@ -87,7 +97,7 @@ class NetworkPlotter:
|
|
87
97
|
circle = plt.Circle(
|
88
98
|
center,
|
89
99
|
scaled_radius,
|
90
|
-
linestyle=
|
100
|
+
linestyle=linestyle, # Use the linestyle argument here
|
91
101
|
color=outline_color,
|
92
102
|
fill=False,
|
93
103
|
linewidth=1.5,
|
@@ -403,6 +413,8 @@ class NetworkPlotter:
|
|
403
413
|
max_labels: Union[int, None] = None,
|
404
414
|
max_words: int = 10,
|
405
415
|
min_words: int = 1,
|
416
|
+
max_word_length: int = 20,
|
417
|
+
min_word_length: int = 1,
|
406
418
|
words_to_omit: Union[List[str], None] = None,
|
407
419
|
) -> None:
|
408
420
|
"""Annotate the network graph with labels for different domains, positioned around the network for clarity.
|
@@ -418,6 +430,8 @@ class NetworkPlotter:
|
|
418
430
|
max_labels (int, optional): Maximum number of labels to plot. Defaults to None (no limit).
|
419
431
|
max_words (int, optional): Maximum number of words in a label. Defaults to 10.
|
420
432
|
min_words (int, optional): Minimum number of words required to display a label. Defaults to 1.
|
433
|
+
max_word_length (int, optional): Maximum number of characters in a word to display. Defaults to 20.
|
434
|
+
min_word_length (int, optional): Minimum number of characters in a word to display. Defaults to 1.
|
421
435
|
words_to_omit (List[str], optional): List of words to omit from the labels. Defaults to None.
|
422
436
|
"""
|
423
437
|
# Log the plotting parameters
|
@@ -432,7 +446,9 @@ class NetworkPlotter:
|
|
432
446
|
label_max_labels=max_labels,
|
433
447
|
label_max_words=max_words,
|
434
448
|
label_min_words=min_words,
|
435
|
-
|
449
|
+
label_max_word_length=max_word_length,
|
450
|
+
label_min_word_length=min_word_length,
|
451
|
+
label_words_to_omit=words_to_omit,
|
436
452
|
)
|
437
453
|
|
438
454
|
# Convert color strings to RGBA arrays if necessary
|
@@ -461,21 +477,24 @@ class NetworkPlotter:
|
|
461
477
|
# Remove words_to_omit
|
462
478
|
if words_to_omit:
|
463
479
|
terms = [term for term in terms if term.lower() not in words_to_omit]
|
480
|
+
# Filter words based on length
|
481
|
+
terms = [term for term in terms if min_word_length <= len(term) <= max_word_length]
|
464
482
|
# Trim to max_words
|
465
483
|
terms = terms[:max_words]
|
466
484
|
# Check if the domain passes the word count condition
|
467
485
|
if len(terms) >= min_words:
|
468
486
|
# Add to filtered_domain_centroids
|
469
487
|
filtered_domain_centroids[domain] = centroid
|
470
|
-
# Store the trimmed terms
|
488
|
+
# Store the filtered and trimmed terms
|
471
489
|
filtered_domain_terms[domain] = " ".join(terms)
|
472
|
-
# Keep track of the valid index
|
490
|
+
# Keep track of the valid index - used for fontcolor and arrow_color
|
473
491
|
valid_indices.append(idx)
|
474
492
|
|
475
493
|
# If max_labels is specified and less than the available labels
|
476
494
|
if max_labels is not None and max_labels < len(filtered_domain_centroids):
|
477
495
|
step = len(filtered_domain_centroids) / max_labels
|
478
496
|
selected_indices = [int(i * step) for i in range(max_labels)]
|
497
|
+
# Filter the centroids, terms, and valid_indices to only use the selected indices
|
479
498
|
filtered_domain_centroids = {
|
480
499
|
k: v
|
481
500
|
for i, (k, v) in enumerate(filtered_domain_centroids.items())
|
@@ -486,25 +505,21 @@ class NetworkPlotter:
|
|
486
505
|
for i, (k, v) in enumerate(filtered_domain_terms.items())
|
487
506
|
if i in selected_indices
|
488
507
|
}
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
# Update the terms in the graph after omitting words and filtering
|
493
|
-
for domain, terms in filtered_domain_terms.items():
|
494
|
-
self.graph.trimmed_domain_to_term[domain] = terms
|
508
|
+
# Update valid_indices to match selected indices
|
509
|
+
valid_indices = [valid_indices[i] for i in selected_indices]
|
495
510
|
|
496
511
|
# Calculate the bounding box around the network
|
497
512
|
center, radius = _calculate_bounding_box(
|
498
513
|
self.graph.node_coordinates, radius_margin=perimeter_scale
|
499
514
|
)
|
500
515
|
# Calculate the best positions for labels around the perimeter
|
501
|
-
best_label_positions =
|
516
|
+
best_label_positions = _calculate_best_label_positions(
|
502
517
|
filtered_domain_centroids, center, radius, offset
|
503
518
|
)
|
504
|
-
# Annotate the network with labels
|
505
|
-
for idx, (domain, pos) in
|
519
|
+
# Annotate the network with labels - valid_indices is used for fontcolor and arrow_color
|
520
|
+
for idx, (domain, pos) in zip(valid_indices, best_label_positions.items()):
|
506
521
|
centroid = filtered_domain_centroids[domain]
|
507
|
-
annotations =
|
522
|
+
annotations = filtered_domain_terms[domain].split(" ")[:max_words]
|
508
523
|
self.ax.annotate(
|
509
524
|
"\n".join(annotations),
|
510
525
|
xy=centroid,
|
@@ -781,7 +796,7 @@ def _calculate_bounding_box(
|
|
781
796
|
return center, radius
|
782
797
|
|
783
798
|
|
784
|
-
def
|
799
|
+
def _calculate_best_label_positions(
|
785
800
|
filtered_domain_centroids: Dict[str, Any], center: np.ndarray, radius: float, offset: float
|
786
801
|
) -> Dict[str, Any]:
|
787
802
|
"""Calculate and optimize label positions for clarity.
|
@@ -797,7 +812,9 @@ def _best_label_positions(
|
|
797
812
|
"""
|
798
813
|
num_domains = len(filtered_domain_centroids)
|
799
814
|
# Calculate equidistant positions around the center for initial label placement
|
800
|
-
equidistant_positions =
|
815
|
+
equidistant_positions = _calculate_equidistant_positions_around_center(
|
816
|
+
center, radius, offset, num_domains
|
817
|
+
)
|
801
818
|
# Create a mapping of domains to their initial label positions
|
802
819
|
label_positions = {
|
803
820
|
domain: position
|
@@ -807,7 +824,7 @@ def _best_label_positions(
|
|
807
824
|
return _optimize_label_positions(label_positions, filtered_domain_centroids)
|
808
825
|
|
809
826
|
|
810
|
-
def
|
827
|
+
def _calculate_equidistant_positions_around_center(
|
811
828
|
center: np.ndarray, radius: float, label_offset: float, num_domains: int
|
812
829
|
) -> List[np.ndarray]:
|
813
830
|
"""Calculate positions around a center at equidistant angles.
|
risk/risk.py
CHANGED
@@ -352,6 +352,7 @@ class RISK(NetworkIO, AnnotationsIO):
|
|
352
352
|
plot_outline: bool = True,
|
353
353
|
outline_color: str = "black",
|
354
354
|
outline_scale: float = 1.00,
|
355
|
+
linestyle: str = "dashed",
|
355
356
|
) -> NetworkPlotter:
|
356
357
|
"""Get a NetworkPlotter object for plotting.
|
357
358
|
|
@@ -362,6 +363,7 @@ class RISK(NetworkIO, AnnotationsIO):
|
|
362
363
|
plot_outline (bool, optional): Whether to plot the network outline. Defaults to True.
|
363
364
|
outline_color (str, optional): Color of the outline. Defaults to "black".
|
364
365
|
outline_scale (float, optional): Scaling factor for the outline. Defaults to 1.00.
|
366
|
+
linestyle (str): Line style for the network perimeter circle (e.g., dashed, solid). Defaults to "dashed".
|
365
367
|
|
366
368
|
Returns:
|
367
369
|
NetworkPlotter: A NetworkPlotter object configured with the given parameters.
|
@@ -374,6 +376,7 @@ class RISK(NetworkIO, AnnotationsIO):
|
|
374
376
|
plot_outline=plot_outline,
|
375
377
|
outline_color=outline_color,
|
376
378
|
outline_scale=outline_scale,
|
379
|
+
linestyle=linestyle,
|
377
380
|
)
|
378
381
|
|
379
382
|
# Initialize and return a NetworkPlotter object
|
@@ -384,6 +387,7 @@ class RISK(NetworkIO, AnnotationsIO):
|
|
384
387
|
plot_outline=plot_outline,
|
385
388
|
outline_color=outline_color,
|
386
389
|
outline_scale=outline_scale,
|
390
|
+
linestyle=linestyle,
|
387
391
|
)
|
388
392
|
|
389
393
|
def _load_neighborhoods(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: risk-network
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.5
|
4
4
|
Summary: A Python package for biological network analysis
|
5
5
|
Author: Ira Horecka
|
6
6
|
Author-email: Ira Horecka <ira89@icloud.com>
|
@@ -710,8 +710,7 @@ Requires-Dist: threadpoolctl
|
|
710
710
|
Requires-Dist: tqdm
|
711
711
|
|
712
712
|
<p align="center">
|
713
|
-
<img src="
|
714
|
-
<img src="./docs/github/risk-logo-light.png#gh-light-mode-only" width="400" />
|
713
|
+
<img src="https://i.imgur.com/Fo9EmnK.png" width="400" />
|
715
714
|
</p>
|
716
715
|
|
717
716
|
<p align="center">
|
@@ -736,7 +735,7 @@ RISK is a software tool for visualizing spatial relationships in networks. It ai
|
|
736
735
|
|
737
736
|
*Saccharomyces cerevisiae* proteins oriented by physical interactions discovered through affinity enrichment and mass spectrometry (Michaelis et al., 2023).
|
738
737
|
|
739
|
-

|
740
739
|
|
741
740
|
## Installation
|
742
741
|
|
@@ -1,8 +1,8 @@
|
|
1
|
-
risk/__init__.py,sha256=
|
2
|
-
risk/constants.py,sha256=
|
3
|
-
risk/risk.py,sha256=
|
1
|
+
risk/__init__.py,sha256=aDf9yXugc9MCQ0suSd-wQbWwg4zF277wV0GOTV_ZK00,105
|
2
|
+
risk/constants.py,sha256=XInRaH78Slnw_sWgAsBFbUHkyA0h0jL0DKGuQNbOvjM,550
|
3
|
+
risk/risk.py,sha256=UYM_Pf2Db-lbf4O5T2v5zKutz_GLXK-f43PgYT6xRyY,21328
|
4
4
|
risk/annotations/__init__.py,sha256=vUpVvMRE5if01Ic8QY6M2Ae3EFGJHdugEe9PdEkAW4Y,138
|
5
|
-
risk/annotations/annotations.py,sha256=
|
5
|
+
risk/annotations/annotations.py,sha256=DRUTdGzMdqo62NWSapBUksbvPr9CrzD76qtOcxeNKmo,10554
|
6
6
|
risk/annotations/io.py,sha256=TMicRACfY8bNtmbvVrxHoh8zkOVLOIhZwWrpxUlR28Q,7988
|
7
7
|
risk/log/__init__.py,sha256=xuLImfxFlKpnVhzi_gDYlr2_c9cLkrw2c_3iEsXb1as,107
|
8
8
|
risk/log/console.py,sha256=im9DRExwf6wHlcn9fewoDcKIpo3vPcorZIaNAl-0csY,355
|
@@ -13,9 +13,9 @@ risk/neighborhoods/domains.py,sha256=HwuChmZH0RGD9eQOvk2-ezQDJRUHHn93vhVgHb-kX6I
|
|
13
13
|
risk/neighborhoods/neighborhoods.py,sha256=SqYJaT49rUj77ts0XsPXb9cURM11aGh2Teks0nBH_4s,13939
|
14
14
|
risk/network/__init__.py,sha256=iEPeJdZfqp0toxtbElryB8jbz9_t_k4QQ3iDvKE8C_0,126
|
15
15
|
risk/network/geometry.py,sha256=H1yGVVqgbfpzBzJwEheDLfvGLSA284jGQQTn612L4Vc,6759
|
16
|
-
risk/network/graph.py,sha256=
|
16
|
+
risk/network/graph.py,sha256=DTjNRQwgQbt6jJYDBHm7sgrdbZUDLL4HiZpdixkSI7Y,12433
|
17
17
|
risk/network/io.py,sha256=otiRG6uT6HLgbbJql7X2wjYxab8OFJSgRoWJlcDoyu4,20291
|
18
|
-
risk/network/plot.py,sha256=
|
18
|
+
risk/network/plot.py,sha256=XB-fH67SqIm3bonFj_UvbO85725Zp1z0Ug6LblDEUYo,41062
|
19
19
|
risk/stats/__init__.py,sha256=e-BE_Dr_jgiK6hKM-T-tlG4yvHnId8e5qjnM0pdwNVc,230
|
20
20
|
risk/stats/fisher_exact.py,sha256=-bPwzu76-ob0HzrTV20mXUTot7v-MLuqFaAoab-QxPg,4966
|
21
21
|
risk/stats/hypergeom.py,sha256=lrIFdhCWRjvM4apYw1MlOKqT_IY5OjtCwrjdtJdt6Tg,4954
|
@@ -23,8 +23,8 @@ risk/stats/stats.py,sha256=kvShov-94W6ffgDUTb522vB9hDJQSyTsYif_UIaFfSM,7059
|
|
23
23
|
risk/stats/permutation/__init__.py,sha256=neJp7FENC-zg_CGOXqv-iIvz1r5XUKI9Ruxhmq7kDOI,105
|
24
24
|
risk/stats/permutation/permutation.py,sha256=qLWdwxEY6nmkYPxpM8HLDcd2mbqYv9Qr7CKtJvhLqIM,9220
|
25
25
|
risk/stats/permutation/test_functions.py,sha256=HuDIM-V1jkkfE1rlaIqrWWBSKZt3dQ1f-YEDjWpnLSE,2343
|
26
|
-
risk_network-0.0.
|
27
|
-
risk_network-0.0.
|
28
|
-
risk_network-0.0.
|
29
|
-
risk_network-0.0.
|
30
|
-
risk_network-0.0.
|
26
|
+
risk_network-0.0.5.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
|
27
|
+
risk_network-0.0.5.dist-info/METADATA,sha256=zO98BlU9WGYF8d3UoRIrNirRKKn_LY9Axwhe72DD0IE,43140
|
28
|
+
risk_network-0.0.5.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
29
|
+
risk_network-0.0.5.dist-info/top_level.txt,sha256=NX7C2PFKTvC1JhVKv14DFlFAIFnKc6Lpsu1ZfxvQwVw,5
|
30
|
+
risk_network-0.0.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|