From 72000b329c54fbed64bd4c5b18ffa00738ec99be Mon Sep 17 00:00:00 2001
From: Yassin <aliyassin4@hotmail.com>
Date: Tue, 9 May 2023 22:53:59 +0200
Subject: [PATCH] Updating modularity

---
 netbone/structural/modulairy_backbone.py | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/netbone/structural/modulairy_backbone.py b/netbone/structural/modulairy_backbone.py
index c0a7228..4c2ccbd 100644
--- a/netbone/structural/modulairy_backbone.py
+++ b/netbone/structural/modulairy_backbone.py
@@ -1,6 +1,7 @@
 import community.community_louvain as community
 import heapq
 import operator
+import math
 import networkx as nx
 import numpy as np
 from scipy.sparse import csr_matrix
@@ -29,7 +30,6 @@ def orderCommunities(c):
 
     return partition
 
-
 def communityInfo(c, partition):
     print('Number of partitions: ', len(partition))
     l = list()
@@ -43,9 +43,6 @@ def communityInfo(c, partition):
     print()
     print()
 
-
-
-
 def getSparseA(g):
     return nx.to_scipy_sparse_matrix(g)
     # return  nx.to_scipy_sparse_array(g)
@@ -163,18 +160,16 @@ def get_top_k_best_nodes(dict_centrality, k):
     return top_k, first_nodes
 
 def modularity_backbone(data, node_fraction):
-    is_graph=False
 
     if isinstance(data, pd.DataFrame):
         g = nx.from_pandas_edgelist(data, edge_attr='weight', create_using=nx.Graph())
     elif isinstance(data, nx.Graph):
         g = data.copy()
-        is_graph=True
     else:
         print("data should be a panads dataframe or nx graph")
         return
     g1 = g.copy()
-    k = len(g1)-round(len(g1)*node_fraction)
+    k = len(g1)-math.ceil(len(g1)*node_fraction)
     communities = community.best_partition(g1, random_state=123)
 
     modularity_value = community.modularity(communities, g1)
-- 
GitLab