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

Uploaded
author francesco_lapi
date Thu, 22 May 2025 16:03:37 +0000
parents 24783af8a2f9
children e796d29076be
comparison
equal deleted inserted replaced
308:797d0e002934 309:38c9a958ea78
566 for i in range(len(classes)): 566 for i in range(len(classes)):
567 classe :str = classes.iloc[i, 1] 567 classe :str = classes.iloc[i, 1]
568 if pd.isnull(classe): continue 568 if pd.isnull(classe): continue
569 569
570 l :List[List[float]] = [] 570 l :List[List[float]] = []
571 sample_ids: List[str] = []
572
571 for j in range(i, len(classes)): 573 for j in range(i, len(classes)):
572 if classes.iloc[j, 1] == classe: 574 if classes.iloc[j, 1] == classe:
573 pat_id :str = classes.iloc[j, 0] # sample name 575 pat_id :str = classes.iloc[j, 0] # sample name
574 values = dataset_values.get(pat_id, None) # the column of values for that sample 576 values = dataset_values.get(pat_id, None) # the column of values for that sample
575 if values != None: 577 if values != None:
576 l.append(values) 578 l.append(values)
579 sample_ids.append(pat_id)
577 classes.iloc[j, 1] = None # TODO: problems? 580 classes.iloc[j, 1] = None # TODO: problems?
578 581
579 if l: 582 if l:
580 class_pat[classe] = list(map(list, zip(*l))) 583 class_pat[classe] = {
584 "values": list(map(list, zip(*l))), # trasposta
585 "samples": sample_ids
586 }
581 continue 587 continue
582 588
583 utils.logWarning( 589 utils.logWarning(
584 f"Warning: no sample found in class \"{classe}\", the class has been disregarded", ARGS.out_log) 590 f"Warning: no sample found in class \"{classe}\", the class has been disregarded", ARGS.out_log)
585 591
955 classes = read_dataset(classPath, "class") 961 classes = read_dataset(classPath, "class")
956 classes = classes.astype(str) 962 classes = classes.astype(str)
957 963
958 values, ids = getDatasetValues(datasetPath, "Dataset Class (not actual name)") 964 values, ids = getDatasetValues(datasetPath, "Dataset Class (not actual name)")
959 if values != None: 965 if values != None:
960 # TODO: add the columnNames thing, I didn't because I don't understand the whole "dataset classes" thing 966 class_pat_with_samples_id = split_class(classes, values)
961 class_pat = split_class(classes, values) 967
968 for clas, values_and_samples_id in class_pat_with_samples_id.items():
969 class_pat[clas] = values_and_samples_id["values"]
970 columnNames[clas] = values_and_samples_id["samples"]
962 971
963 return ids, class_pat, columnNames 972 return ids, class_pat, columnNames
964 #^^^ 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) 973 #^^^ 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)
965 974
966 #TODO: create these damn args as FilePath objects 975 #TODO: create these damn args as FilePath objects