napistu 0.3.4__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.4 → napistu-0.3.5}/PKG-INFO +1 -1
- {napistu-0.3.4 → napistu-0.3.5}/setup.cfg +1 -1
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/constants.py +4 -4
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/ig_utils.py +35 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/precompute.py +2 -1
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/sbml_dfs_core.py +702 -501
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/source.py +1 -1
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu.egg-info/PKG-INFO +1 -1
- napistu-0.3.5/src/tests/test_network_ig_utils.py +59 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_sbml_dfs_core.py +131 -0
- napistu-0.3.4/src/tests/test_network_ig_utils.py +0 -23
- {napistu-0.3.4 → napistu-0.3.5}/LICENSE +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/README.md +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/pyproject.toml +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/setup.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/__main__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/consensus.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/context/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/context/discretize.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/context/filtering.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/gcs/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/gcs/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/gcs/downloads.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/gcs/utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/identifiers.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/indices.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/bigg.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/gtex.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/hpa.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/identifiers_etl.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/napistu_edgelist.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/obo.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/psi_mi.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/reactome.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/sbml.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/string.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/trrust.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ingestion/yeast.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/matching/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/matching/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/matching/interactions.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/matching/mount.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/matching/species.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/__main__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/client.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/codebase.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/codebase_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/component_base.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/config.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/documentation.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/documentation_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/execution.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/health.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/profiles.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/server.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/tutorials.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/tutorials_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/mcp/utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/modify/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/modify/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/modify/curation.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/modify/gaps.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/modify/pathwayannot.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/modify/uncompartmentalize.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/data_handling.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/napistu_graph_core.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/neighborhoods.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/net_create.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/net_propagation.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/ng_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/network/paths.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ontologies/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ontologies/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ontologies/dogma.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ontologies/genodexito.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ontologies/mygene.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/ontologies/renaming.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/rpy2/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/rpy2/callr.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/rpy2/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/rpy2/rids.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/sbml_dfs_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/scverse/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/scverse/constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/scverse/loading.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu/utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu.egg-info/SOURCES.txt +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu.egg-info/dependency_links.txt +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu.egg-info/entry_points.txt +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu.egg-info/requires.txt +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/napistu.egg-info/top_level.txt +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/conftest.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_consensus.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_constants.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_context_discretize.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_context_filtering.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_curation.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_data/__init__.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_gaps.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_gcs.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_identifiers.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_indices.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_ingestion_napistu_edgelist.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_ingestion_obo.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_matching_interactions.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_matching_mount.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_matching_species.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_mcp_config.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_mcp_documentation_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_mcp_server.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_network_data_handling.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_network_neighborhoods.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_network_net_create.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_network_net_propagation.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_network_ng_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_network_paths.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_network_precompute.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_ontologies_genodexito.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_ontologies_mygene.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_ontologies_renaming.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_pathwayannot.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_rpy2_callr.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_rpy2_init.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_sbml.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_sbml_dfs_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_sbo.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_scverse_loading.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_set_coverage.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_source.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_uncompartmentalize.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/test_utils.py +0 -0
- {napistu-0.3.4 → napistu-0.3.5}/src/tests/utils.py +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(
|
@@ -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
|
@@ -144,7 +145,7 @@ def load_precomputed_distances(uri: Union[str, Path]) -> pd.DataFrame:
|
|
144
145
|
"""
|
145
146
|
try:
|
146
147
|
json_string = load_json(str(uri))
|
147
|
-
df = pd.read_json(json_string)
|
148
|
+
df = pd.read_json(io.StringIO(json_string))
|
148
149
|
|
149
150
|
# Convert integer columns to float
|
150
151
|
for col in df.columns:
|