diff Marea/marea_cluster.py @ 12:3d77287caf22 draft

Uploaded
author bimib
date Wed, 13 Feb 2019 05:08:25 -0500
parents 2405255d6a09
children e96f3b85e5a0
line wrap: on
line diff
--- a/Marea/marea_cluster.py	Wed Feb 13 05:06:53 2019 -0500
+++ b/Marea/marea_cluster.py	Wed Feb 13 05:08:25 2019 -0500
@@ -540,22 +540,13 @@
 def f_cluster(resolve_rules):
     os.makedirs('cluster_out')
     args = process_args(sys.argv)
-    k_min = args.k_min
-    k_max = args.k_max
-    if k_min > k_max:
-         warning('k range boundaries inverted.\n')
-         tmp = k_min
-         k_min = k_max
-         k_max = tmp
-    else: 
-        warning('k range correct.\n')
     cluster_data = pd.DataFrame.from_dict(resolve_rules, orient = 'index')
     for i in cluster_data.columns:
         tmp = cluster_data[i][0]
         if tmp == None:
             cluster_data = cluster_data.drop(columns=[i])
     distorsion = []
-    for i in range(k_min, k_max+1):
+    for i in range(args.k_min, args.k_max+1):
         tmp_kmeans = KMeans(n_clusters = i,
                             n_init = 100, 
                             max_iter = 300,
@@ -568,7 +559,7 @@
         classe.to_csv(dest, sep = '\t', index = False,
                       header = ['Patient_ID', 'Class'])
     plt.figure(0)
-    plt.plot(range(k_min, k_max+1), distorsion, marker = 'o')
+    plt.plot(range(args.k_min, args.k_max+1), distorsion, marker = 'o')
     plt.xlabel('Number of cluster')
     plt.ylabel('Distorsion')
     plt.savefig(args.elbow, dpi = 240, format = 'pdf')
@@ -585,6 +576,8 @@
 
 def main():
     args = process_args(sys.argv)
+    if args.k_min > args.k_max:
+        sys.exit('Execution aborted: max cluster > min cluster')
     if args.rules_selector == 'HMRcore':
         recon = pk.load(open(args.tool_dir + '/local/HMRcore_rules.p', 'rb'))
     elif args.rules_selector == 'Recon':