diff COBRAxy/marea.py @ 309:38c9a958ea78 draft

Uploaded
author francesco_lapi
date Thu, 22 May 2025 16:03:37 +0000
parents 24783af8a2f9
children e796d29076be
line wrap: on
line diff
--- a/COBRAxy/marea.py	Tue May 20 16:01:21 2025 +0000
+++ b/COBRAxy/marea.py	Thu May 22 16:03:37 2025 +0000
@@ -568,16 +568,22 @@
         if pd.isnull(classe): continue
 
         l :List[List[float]] = []
+        sample_ids: List[str] = []
+
         for j in range(i, len(classes)):
             if classes.iloc[j, 1] == classe:
                 pat_id :str = classes.iloc[j, 0] # sample name
                 values = dataset_values.get(pat_id, None) # the column of values for that sample
                 if values != None:
                     l.append(values)
+                    sample_ids.append(pat_id)
                 classes.iloc[j, 1] = None # TODO: problems?
         
         if l:
-            class_pat[classe] = list(map(list, zip(*l)))
+            class_pat[classe] = {
+                "values": list(map(list, zip(*l))),  # trasposta
+                "samples": sample_ids
+            }
             continue
         
         utils.logWarning(
@@ -957,8 +963,11 @@
 
         values, ids = getDatasetValues(datasetPath, "Dataset Class (not actual name)")
         if values != None:
-            # TODO: add the columnNames thing, I didn't because I don't understand the whole "dataset classes" thing
-            class_pat = split_class(classes, values)
+            class_pat_with_samples_id = split_class(classes, values)
+
+            for clas, values_and_samples_id in class_pat_with_samples_id.items():
+                class_pat[clas] = values_and_samples_id["values"]
+                columnNames[clas] = values_and_samples_id["samples"]
     
     return ids, class_pat, columnNames
     #^^^ TODO: this could be a match statement over an enum, make it happen future marea dev with python 3.12! (it's why I kept the ifs)
@@ -1064,4 +1073,4 @@
     print('Execution succeeded')
 ###############################################################################
 if __name__ == "__main__":
-    main()
\ No newline at end of file
+    main()