napistu 0.3.3__tar.gz → 0.3.5__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.
- {napistu-0.3.3 → napistu-0.3.5}/PKG-INFO +2 -2
- {napistu-0.3.3 → napistu-0.3.5}/setup.cfg +2 -2
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/constants.py +4 -10
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/ig_utils.py +35 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/precompute.py +11 -4
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/sbml_dfs_core.py +748 -543
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/source.py +1 -1
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu.egg-info/PKG-INFO +2 -2
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu.egg-info/requires.txt +1 -1
- napistu-0.3.5/src/tests/test_network_ig_utils.py +59 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_network_precompute.py +4 -1
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_sbml_dfs_core.py +220 -1
- napistu-0.3.5/src/tests/test_sbml_dfs_utils.py +63 -0
- napistu-0.3.3/src/tests/test_network_ig_utils.py +0 -23
- napistu-0.3.3/src/tests/test_sbml_dfs_utils.py +0 -22
- {napistu-0.3.3 → napistu-0.3.5}/LICENSE +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/README.md +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/pyproject.toml +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/setup.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/__main__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/consensus.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/context/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/context/discretize.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/context/filtering.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/gcs/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/gcs/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/gcs/downloads.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/gcs/utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/identifiers.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/indices.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/bigg.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/gtex.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/hpa.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/identifiers_etl.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/napistu_edgelist.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/obo.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/psi_mi.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/reactome.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/sbml.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/string.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/trrust.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ingestion/yeast.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/matching/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/matching/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/matching/interactions.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/matching/mount.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/matching/species.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/__main__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/client.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/codebase.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/codebase_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/component_base.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/config.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/documentation.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/documentation_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/execution.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/health.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/profiles.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/server.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/tutorials.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/tutorials_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/mcp/utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/modify/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/modify/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/modify/curation.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/modify/gaps.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/modify/pathwayannot.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/modify/uncompartmentalize.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/data_handling.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/napistu_graph_core.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/neighborhoods.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/net_create.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/net_propagation.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/ng_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/network/paths.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ontologies/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ontologies/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ontologies/dogma.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ontologies/genodexito.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ontologies/mygene.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/ontologies/renaming.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/rpy2/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/rpy2/callr.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/rpy2/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/rpy2/rids.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/sbml_dfs_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/scverse/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/scverse/constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/scverse/loading.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu/utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu.egg-info/SOURCES.txt +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu.egg-info/dependency_links.txt +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu.egg-info/entry_points.txt +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/napistu.egg-info/top_level.txt +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/conftest.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_consensus.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_constants.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_context_discretize.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_context_filtering.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_curation.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_data/__init__.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_gaps.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_gcs.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_identifiers.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_indices.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_ingestion_napistu_edgelist.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_ingestion_obo.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_matching_interactions.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_matching_mount.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_matching_species.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_mcp_config.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_mcp_documentation_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_mcp_server.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_network_data_handling.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_network_neighborhoods.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_network_net_create.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_network_net_propagation.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_network_ng_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_network_paths.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_ontologies_genodexito.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_ontologies_mygene.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_ontologies_renaming.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_pathwayannot.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_rpy2_callr.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_rpy2_init.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_sbml.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_sbo.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_scverse_loading.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_set_coverage.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_source.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_uncompartmentalize.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/test_utils.py +0 -0
- {napistu-0.3.3 → napistu-0.3.5}/src/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: napistu
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.5
|
4
4
|
Summary: Connecting high-dimensional data to curated pathways
|
5
5
|
Home-page: https://github.com/napistu/napistu-py
|
6
6
|
Author: Sean Hackett
|
@@ -19,7 +19,7 @@ Requires-Dist: Jinja2
|
|
19
19
|
Requires-Dist: PyYAML<7.0.0,>=6.0.0
|
20
20
|
Requires-Dist: click<9.0.0,>=8.0.0
|
21
21
|
Requires-Dist: click-logging
|
22
|
-
Requires-Dist: fs<3.0.0,>=2.4.
|
22
|
+
Requires-Dist: fs<3.0.0,>=2.4.16
|
23
23
|
Requires-Dist: fs-gcsfs<2.0.0,>=1.5.0
|
24
24
|
Requires-Dist: igraph
|
25
25
|
Requires-Dist: matplotlib<4.0.0,>=3.5.0
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[metadata]
|
2
2
|
name = napistu
|
3
|
-
version = 0.3.
|
3
|
+
version = 0.3.5
|
4
4
|
description = Connecting high-dimensional data to curated pathways
|
5
5
|
long_description = file: README.md
|
6
6
|
long_description_content_type = text/markdown
|
@@ -25,7 +25,7 @@ install_requires =
|
|
25
25
|
PyYAML>=6.0.0,<7.0.0
|
26
26
|
click>=8.0.0,<9.0.0
|
27
27
|
click-logging
|
28
|
-
fs>=2.4.
|
28
|
+
fs>=2.4.16,<3.0.0
|
29
29
|
fs-gcsfs>=1.5.0,<2.0.0
|
30
30
|
igraph
|
31
31
|
matplotlib>=3.5.0,<4.0.0
|
@@ -149,10 +149,10 @@ INTERACTION_EDGELIST_EXPECTED_VARS = {
|
|
149
149
|
"downstream_name",
|
150
150
|
"upstream_compartment",
|
151
151
|
"downstream_compartment",
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
152
|
+
SBML_DFS.R_NAME,
|
153
|
+
SBML_DFS.SBO_TERM,
|
154
|
+
SBML_DFS.R_IDENTIFIERS,
|
155
|
+
SBML_DFS.R_ISREVERSIBLE,
|
156
156
|
}
|
157
157
|
|
158
158
|
BQB_PRIORITIES = pd.DataFrame(
|
@@ -403,12 +403,6 @@ ONTOLOGIES = SimpleNamespace(
|
|
403
403
|
|
404
404
|
ONTOLOGIES_LIST = list(ONTOLOGIES.__dict__.values())
|
405
405
|
|
406
|
-
CHARACTERISTIC_COMPLEX_ONTOLOGIES = [
|
407
|
-
ONTOLOGIES.ENSEMBL_GENE,
|
408
|
-
ONTOLOGIES.NCBI_ENTREZ_GENE,
|
409
|
-
ONTOLOGIES.MIRBASE,
|
410
|
-
]
|
411
|
-
|
412
406
|
ONTOLOGY_SPECIES_ALIASES = {
|
413
407
|
ONTOLOGIES.NCBI_ENTREZ_GENE: {"ncbigene", "ncbi_gene"},
|
414
408
|
ONTOLOGIES.ENSEMBL_GENE: {"ensembl_gene_id"},
|
@@ -99,6 +99,41 @@ def filter_to_largest_subgraph(graph: ig.Graph) -> ig.Graph:
|
|
99
99
|
return largest_subgraph
|
100
100
|
|
101
101
|
|
102
|
+
def filter_to_largest_subgraphs(graph: ig.Graph, top_k: int) -> list[ig.Graph]:
|
103
|
+
"""
|
104
|
+
Filter an igraph to its largest weakly connected components.
|
105
|
+
|
106
|
+
Parameters
|
107
|
+
----------
|
108
|
+
graph : ig.Graph
|
109
|
+
The input network.
|
110
|
+
top_k : int
|
111
|
+
The number of largest components to return.
|
112
|
+
|
113
|
+
Returns
|
114
|
+
-------
|
115
|
+
list[ig.Graph]
|
116
|
+
A list of the top K largest components as graphs.
|
117
|
+
"""
|
118
|
+
if top_k < 1:
|
119
|
+
raise ValueError("top_k must be 1 or greater.")
|
120
|
+
|
121
|
+
component_members = graph.components(mode="weak")
|
122
|
+
if not component_members:
|
123
|
+
return []
|
124
|
+
|
125
|
+
component_sizes = [len(x) for x in component_members]
|
126
|
+
|
127
|
+
# Sort components by size in descending order
|
128
|
+
sorted_components = sorted(
|
129
|
+
zip(component_sizes, component_members), key=lambda x: x[0], reverse=True
|
130
|
+
)
|
131
|
+
|
132
|
+
# Return a list of the top K subgraphs
|
133
|
+
top_k_components = sorted_components[:top_k]
|
134
|
+
return [graph.induced_subgraph(members) for _, members in top_k_components]
|
135
|
+
|
136
|
+
|
102
137
|
def graph_to_pandas_dfs(graph: ig.Graph) -> tuple[pd.DataFrame, pd.DataFrame]:
|
103
138
|
"""
|
104
139
|
Convert an igraph to Pandas DataFrames for vertices and edges.
|
@@ -4,6 +4,7 @@ import logging
|
|
4
4
|
import math
|
5
5
|
from pathlib import Path
|
6
6
|
from typing import Union
|
7
|
+
import io
|
7
8
|
|
8
9
|
import numpy as np
|
9
10
|
import pandas as pd
|
@@ -120,7 +121,7 @@ def save_precomputed_distances(
|
|
120
121
|
OSError
|
121
122
|
If the file cannot be written to (permission issues, etc.)
|
122
123
|
"""
|
123
|
-
save_json(str(uri), precomputed_distances.
|
124
|
+
save_json(str(uri), precomputed_distances.to_json())
|
124
125
|
|
125
126
|
|
126
127
|
def load_precomputed_distances(uri: Union[str, Path]) -> pd.DataFrame:
|
@@ -143,12 +144,18 @@ def load_precomputed_distances(uri: Union[str, Path]) -> pd.DataFrame:
|
|
143
144
|
If the specified file does not exist
|
144
145
|
"""
|
145
146
|
try:
|
146
|
-
|
147
|
+
json_string = load_json(str(uri))
|
148
|
+
df = pd.read_json(io.StringIO(json_string))
|
149
|
+
|
150
|
+
# Convert integer columns to float
|
151
|
+
for col in df.columns:
|
152
|
+
if df[col].dtype in ["int64", "int32", "int16", "int8"]:
|
153
|
+
df[col] = df[col].astype(float)
|
154
|
+
|
155
|
+
return df
|
147
156
|
except ResourceNotFound as e:
|
148
157
|
raise FileNotFoundError(f"File not found: {uri}") from e
|
149
158
|
|
150
|
-
return pd.DataFrame.from_dict(data_dict, orient="index").rename(index=int)
|
151
|
-
|
152
159
|
|
153
160
|
def _calculate_distances_subset(
|
154
161
|
napistu_graph: NapistuGraph,
|