@@ -6,6 +6,7 @@ from ruamel.yaml import YAML
66import sys
77import pandas as pd
88import warnings
9+ from itertools import chain
910
1011### Functions ##################################################################
1112
@@ -230,6 +231,7 @@ if sampleSheet:
230231 filtered_dict = filter_dict (sampleSheet ,dict (zip (chip_samples_w_ctrl , [ get_control_name (x ) for x in chip_samples_w_ctrl ])))
231232 else :
232233 filtered_dict = filter_dict (sampleSheet ,dict (zip (chip_samples_wo_ctrl , [None ]* len (chip_samples_wo_ctrl ))))
234+ print (filtered_dict )
233235 genrichDict = cf .sampleSheetGroups (sampleSheet ,isMultipleComparison )
234236 if not isMultipleComparison :
235237 for k in genrichDict .keys ():
@@ -238,10 +240,18 @@ if sampleSheet:
238240 else :
239241 print (genrichDict )
240242 reordered_dict = {}
241- for g in genrichDict .keys ():
242- for k in genrichDict [g ].keys ():
243- genrichDict [g ][k ]= [item for item in genrichDict [g ][k ] if item in chip_samples ]
244- reordered_dict [g ] = {k : filtered_dict [k ] for k in [item for sublist in genrichDict [g ].values () for item in sublist ]}
243+ #for g in genrichDict.keys():
244+ # for k in genrichDict[g].keys():
245+ # genrichDict[g][k]=[item for item in genrichDict[g][k] if item in chip_samples]
246+ # reordered_dict[g] = {k: filtered_dict[k] for k in [item for sublist in genrichDict[g].values() for item in sublist]}
247+ for g in genrichDict :
248+ # filter each condition list to only chip samples
249+ for k in genrichDict [g ]:
250+ genrichDict [g ][k ] = [item for item in genrichDict [g ][k ] if item in chip_samples ]
251+
252+ # flatten the lists and build mapping, skipping missing keys just in case
253+ flattened = chain .from_iterable (genrichDict [g ].values ())
254+ reordered_dict [g ] = {fk : filtered_dict [fk ] for fk in flattened if fk in filtered_dict }
245255else :
246256 genrichDict = {"all_samples" : chip_samples }
247257
0 commit comments