nettracer3d 0.7.4__py3-none-any.whl → 0.7.6__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.
@@ -119,109 +119,6 @@ def geometric_positions(centroids, shape):
119
119
  return xy_pos, z_pos
120
120
 
121
121
 
122
- def show_community_network(excel_file_path, geometric = False, geo_info = None, directory = None):
123
-
124
- if type(excel_file_path) == str:
125
- master_list = read_excel_to_lists(excel_file_path)
126
- else:
127
- master_list = excel_file_path
128
-
129
- edges = list(zip(master_list[0], master_list[1]))
130
-
131
- # Create a graph
132
- G = nx.Graph()
133
-
134
- # Add edges from the DataFrame
135
- G.add_edges_from(edges)
136
-
137
- # Print basic information about the graph
138
- num_nodes = G.number_of_nodes()
139
- num_edges = G.number_of_edges()
140
-
141
- print("Number of nodes:", num_nodes)
142
- print("Number of edges:", num_edges)
143
-
144
- # Calculate the average degree connectivity
145
- average_degree_connectivity = nx.average_degree_connectivity(G)
146
- print("Average degree connectivity:", average_degree_connectivity)
147
-
148
- # Calculate the average number of edges attached to a node
149
- average_edges_per_node = num_nodes/num_edges
150
- print("Average edges per node:", average_edges_per_node)
151
-
152
- # Calculate and display modularity for each connected component
153
- connected_components = list(nx.connected_components(G))
154
- for i, component in enumerate(connected_components):
155
- subgraph = G.subgraph(component)
156
- component_communities = list(community.label_propagation_communities(subgraph))
157
- modularity = community.modularity(subgraph, component_communities)
158
- print(f"Label propogation modularity for component with {len(component)} nodes: {modularity}")
159
-
160
- # Visualize the graph with nodes colored by community
161
- pos = nx.spring_layout(G)
162
-
163
- # Detect communities using label propagation
164
- communities = list(community.label_propagation_communities(G))
165
-
166
- print(f"label prop communities: {communities}")
167
-
168
- # Assign a color to each node based on its community
169
- node_colors = {}
170
- for i, community_nodes in enumerate(communities):
171
- color = mcolors.to_hex(plt.cm.tab10(i / len(communities))[:3])
172
- for node in community_nodes:
173
- node_colors[node] = color
174
-
175
- if geometric:
176
- for node in list(G.nodes()):
177
- if node not in geo_info[0]:
178
- G.remove_node(node)
179
- print(f"Removing node {node} from network visualization (no centroid - likely due to downsampling when finding centroids)")
180
-
181
- pos, z_pos = geometric_positions(geo_info[0], geo_info[1])
182
- node_sizes_list = [z_pos[node] for node in G.nodes()]
183
- node_color_list = [node_colors[node] for node in G.nodes()]
184
- nx.draw(G, pos, with_labels=True, font_color='black', font_weight='bold', node_size = node_sizes_list, node_color = node_color_list, alpha=0.8, font_size = 12)
185
- else:
186
- # Get color list for nodes
187
- node_color_list = [node_colors[node] for node in G.nodes()]
188
- # Draw the graph with node colors
189
- nx.draw(G, pos, with_labels=True, font_color='black', font_weight='bold', node_size=100, node_color = node_color_list, alpha = 0.8)
190
-
191
- if directory is not None:
192
- plt.savefig(f'{directory}/community_label_propogation_network_plot.png')
193
-
194
- plt.show()
195
-
196
-
197
- def modularity(G, solo_mod):
198
-
199
- if not solo_mod:
200
-
201
- # Calculate and display modularity for each connected component
202
- return_dict = {}
203
- connected_components = list(nx.connected_components(G))
204
- for i, component in enumerate(connected_components):
205
- subgraph = G.subgraph(component)
206
- component_communities = list(community.label_propagation_communities(subgraph))
207
- modularity = community.modularity(subgraph, component_communities)
208
- print(f"Label propogation modularity for component with {len(component)} nodes: {modularity}")
209
- return_dict[len(component)] = modularity
210
-
211
- return return_dict
212
-
213
- else:
214
- # Step 1: Detect communities using label propagation
215
- communities = list(community.label_propagation_communities(G))
216
-
217
- # Step 2: Calculate modularity
218
- modularity = community.modularity(G, communities)
219
-
220
- print(f"Modularity of network is {modularity}")
221
-
222
- return modularity
223
-
224
-
225
122
  def show_simple_network(excel_file_path, geometric = False, geo_info = None, directory = None):
226
123
 
227
124
  if type(excel_file_path) == str:
@@ -248,7 +145,7 @@ def show_simple_network(excel_file_path, geometric = False, geo_info = None, dir
248
145
  nx.draw(G, pos, with_labels=True, font_color='black', font_weight='bold', node_size= node_sizes_list, alpha=0.8, font_size = 12)
249
146
  else:
250
147
  # Visualize the graph with different edge colors for each community
251
- pos = nx.spring_layout(G)
148
+ pos = nx.spring_layout(G, iterations = 15)
252
149
  nx.draw(G, pos, with_labels=True, font_color='red', font_weight='bold', node_size=10)
253
150
 
254
151
  if directory is not None:
@@ -372,49 +269,4 @@ def show_identity_network(excel_file_path, node_identities, geometric=False, geo
372
269
 
373
270
  if __name__ == "__main__":
374
271
 
375
- # Read the Excel file into a pandas DataFrame
376
- excel_file_path = input("Excel file?: ")
377
-
378
- master_list = read_excel_to_lists(excel_file_path)
379
-
380
- edges = zip(master_list[0], master_list[1])
381
-
382
- #df = pd.read_excel(excel_file_path)
383
-
384
- # Create a graph
385
- G = nx.Graph()
386
-
387
- # Add edges from the DataFrame
388
- #edges = df.values # Assuming the columns are named "Node1" and "Node2"
389
- G.add_edges_from(edges)
390
-
391
- # Print basic information about the graph
392
- print("Number of nodes:", G.number_of_nodes())
393
- print("Number of edges:", G.number_of_edges())
394
-
395
- # Calculate the average degree connectivity
396
- #average_degree_connectivity = nx.average_degree_connectivity(G)
397
- #print("Average degree connectivity:", average_degree_connectivity)
398
-
399
- # Calculate the average number of edges attached to a node
400
- #average_edges_per_node = sum(k * v for k, v in average_degree_connectivity.items()) / G.number_of_nodes()
401
- #print("Average edges per node:", average_edges_per_node)
402
-
403
- # Visualize the graph with different edge colors for each community
404
- pos = nx.spring_layout(G)
405
- nx.draw(G, pos, with_labels=True, font_color='red', font_weight='bold', node_size=10)
406
-
407
- #connected_components = list(nx.connected_components(G))
408
- #for i, component in enumerate(connected_components):
409
- #communities = community.label_propagation_communities(G.subgraph(component))
410
-
411
- # Assign a different color to each community
412
- #colors = [mcolors.to_hex(plt.cm.tab10(i / len(connected_components))[:3]) for _ in range(len(component))]
413
-
414
- #nx.draw_networkx_edges(G, pos, edgelist=G.subgraph(component).edges(), edge_color=colors)
415
-
416
- #num_nodes = len(component)
417
- #modularity = community.modularity(G.subgraph(component), communities)
418
- #print(f"Modularity for component with {num_nodes} nodes:", modularity)
419
-
420
- plt.show()
272
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nettracer3d
3
- Version: 0.7.4
3
+ Version: 0.7.6
4
4
  Summary: Scripts for intializing and analyzing networks from segmentations of three dimensional images.
5
5
  Author-email: Liam McLaughlin <liamm@wustl.edu>
6
6
  Project-URL: Documentation, https://nettracer3d.readthedocs.io/en/latest/
@@ -22,7 +22,6 @@ Requires-Dist: opencv-python-headless
22
22
  Requires-Dist: openpyxl
23
23
  Requires-Dist: pandas
24
24
  Requires-Dist: napari
25
- Requires-Dist: python-louvain
26
25
  Requires-Dist: tifffile
27
26
  Requires-Dist: qtrangeslider
28
27
  Requires-Dist: PyQt6
@@ -73,8 +72,6 @@ NetTracer3D is free to use/fork for academic/nonprofit use so long as citation i
73
72
 
74
73
  NetTracer3D was developed by Liam McLaughlin while working under Dr. Sanjay Jain at Washington University School of Medicine.
75
74
 
76
- -- Version 0.7.4 Updates --
75
+ -- Version 0.7.6 Updates --
77
76
 
78
- * Bug fixes
79
- * The segmenter now has a GPU option that actually works quite a bit faster! Only available with CUDA toolkit and cupy.
80
- * The segmenter also now no longer leaks any memory.
77
+ * Bug Fixes
@@ -0,0 +1,21 @@
1
+ nettracer3d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ nettracer3d/community_extractor.py,sha256=vzckLJfubplcQUAIr4UNgezxUJIdeFmH6CTWk8jYjOw,23739
3
+ nettracer3d/modularity.py,sha256=1Qg8Vc7Cl8nkkJxz_Z8tNR8hK1b-ZrFrMVUl4SKGLY8,21825
4
+ nettracer3d/morphology.py,sha256=jyDjYzrZ4LvI5jOyw8DLsxmo-i5lpqHsejYpW7Tq7Mo,19786
5
+ nettracer3d/nettracer.py,sha256=2xAImidzKkYEA_5Ja18v9vMUYgFUEwJB8v8-QCKfi8A,213593
6
+ nettracer3d/nettracer_gui.py,sha256=7L0xeR4aENPppT9YQcc7U8EPYUQMq3pfREP_iWEzawk,436234
7
+ nettracer3d/network_analysis.py,sha256=h-5yzUWdE0hcWYy8wcBA5LV1bRhdqiMnKbQLrRzb1Sw,41443
8
+ nettracer3d/network_draw.py,sha256=F7fw6Pcf4qWOhdKwLmhwqWdschbDlHzwCVolQC9imeU,14117
9
+ nettracer3d/node_draw.py,sha256=k3sCTfUCJs3aH1C1q1gTNxDz9EAQbBd1hsUIJajxRx8,9823
10
+ nettracer3d/proximity.py,sha256=nlVBXzJ6r84TlP8UaLcdamWifYn-jfVIF0uB-56k_Js,24752
11
+ nettracer3d/run.py,sha256=xYeaAc8FCx8MuzTGyL3NR3mK7WZzffAYAH23bNRZYO4,127
12
+ nettracer3d/segmenter.py,sha256=BD9vxnblDKXfmR8hLP_iVqqfVngH6opz4Q7V6sxc2KM,60062
13
+ nettracer3d/segmenter_GPU.py,sha256=Fqr0Za6X2ss4rfaziqOhvhBfbGDPHkHw6fVxs39lZaU,53862
14
+ nettracer3d/simple_network.py,sha256=Ft_81VhVQ3rqoXvuYnsckXuxCcQSJfakhOfkFaclxZY,9340
15
+ nettracer3d/smart_dilate.py,sha256=69z9Bn8xtA7rkhcVpqd1PxRSxxRFnIQse9lc2-LU4TU,25879
16
+ nettracer3d-0.7.6.dist-info/licenses/LICENSE,sha256=gM207DhJjWrxLuEWXl0Qz5ISbtWDmADfjHp3yC2XISs,888
17
+ nettracer3d-0.7.6.dist-info/METADATA,sha256=YO0kmThsnywdo9NJhnGxQFvmAkUdhMlEKHS-gFgCRvY,4093
18
+ nettracer3d-0.7.6.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
19
+ nettracer3d-0.7.6.dist-info/entry_points.txt,sha256=Nx1rr_0QhJXDBHAQg2vcqCzLMKBzSHfwy3xwGkueVyc,53
20
+ nettracer3d-0.7.6.dist-info/top_level.txt,sha256=zsYy9rZwirfCEOubolhee4TyzqBAL5gSUeFMzhFTX8c,12
21
+ nettracer3d-0.7.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.7.0)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5