@@ -104,8 +104,11 @@ def parseArgs():
104104
105105if enr_stats .empty :
106106 empty_table = pd .DataFrame (["### This dataset did not yield any motif enrichment" ])
107- with pd .ExcelWriter (output_file ) as writer :
108- empty_table .to_excel (writer , index = False , header = False )
107+ if (output_file .endswith ('.csv' )):
108+ empty_table .to_csv (output_file , index = False , header = False )
109+ else :
110+ with pd .ExcelWriter (output_file ) as writer :
111+ empty_table .to_excel (writer , index = False , header = False )
109112 sys .exit ()
110113
111114for col in enr_stats .select_dtypes (include = ['float' ]).columns :
@@ -122,11 +125,11 @@ def parseArgs():
122125if expressed_genes_file :
123126 enr_stats ['Any expressed gene' ] = enr_stats .gene_id .isin (exp_genes )
124127
125- enr_stats = enr_stats .groupby (['dataset' , 'input_total_peaks' , 'peaks_in_promoter' , 'motif' ,'real_int' , 'shuffled_int' , 'p_val' , 'enr_fold' , 'adj_pval' , 'pi_value' , 'rank_pi_val' ]).agg ({'gene_id' : ',' .join , 'family' : lambda x : ',' .join (list (set (x ))), 'Any expressed gene' : any }).reset_index ().sort_values (by = 'rank_pi_val' ).drop ('gene_id' , axis = 1 )
128+ enr_stats = enr_stats .groupby (['dataset' , 'input_total_peaks' , 'peaks_in_promoter' , 'motif' ,'real_int' , 'shuffled_int' , 'p_val' , 'enr_fold' , 'adj_pval' , 'pi_value' , 'rank_pi_val' ]).agg ({'gene_id' : ',' .join , 'family' : lambda x : ',' .join (sorted (set (x ))), 'Any expressed gene' : any }).reset_index ().sort_values (by = 'rank_pi_val' ).drop ('gene_id' , axis = 1 )
126129
127130if not expressed_genes_file :
128131
129- enr_stats = enr_stats .groupby (['dataset' , 'input_total_peaks' , 'peaks_in_promoter' , 'motif' , 'real_int' , 'shuffled_int' , 'p_val' , 'enr_fold' , 'adj_pval' , 'pi_value' , 'rank_pi_val' ]).agg ({'gene_id' : ',' .join , 'family' : lambda x : ',' .join (list (set (x )))}).reset_index ().sort_values (by = 'rank_pi_val' ).drop ('gene_id' , axis = 1 )
132+ enr_stats = enr_stats .groupby (['dataset' , 'input_total_peaks' , 'peaks_in_promoter' , 'motif' , 'real_int' , 'shuffled_int' , 'p_val' , 'enr_fold' , 'adj_pval' , 'pi_value' , 'rank_pi_val' ]).agg ({'gene_id' : ',' .join , 'family' : lambda x : ',' .join (sorted (set (x )))}).reset_index ().sort_values (by = 'rank_pi_val' ).drop ('gene_id' , axis = 1 )
130133
131134enr_stats = enr_stats .merge (mot_tf , how = 'right' , left_on = 'motif' , right_on = 'motif_id' ).drop ('motif_id' , axis = 1 )
132135
@@ -146,5 +149,8 @@ def parseArgs():
146149
147150### Writing output file ###
148151
149- with pd .ExcelWriter (output_file ) as writer :
150- enr_stats .to_excel (writer , index = False )
152+ if (output_file .endswith ('.csv' )):
153+ enr_stats .to_csv (output_file , index = False )
154+ else :
155+ with pd .ExcelWriter (output_file ) as writer :
156+ enr_stats .to_excel (writer , index = False )
0 commit comments