@@ -167,7 +167,7 @@ def train_models(max_gpus=None, no_confirm=False, resume=False, variant=None):
167167
168168
169169def generate_figure (figure_name , data_path = 'data/model_results.pkl' , output_dir = 'paper/figs/source' , variant = None ):
170- """Generate a specific figure."""
170+ """Generate a specific figure (main or supplemental) ."""
171171 from llm_stylometry .visualization import (
172172 generate_all_losses_figure ,
173173 generate_stripplot_figure ,
@@ -178,6 +178,7 @@ def generate_figure(figure_name, data_path='data/model_results.pkl', output_dir=
178178 generate_oz_losses_figure
179179 )
180180
181+ # Main figures (baseline)
181182 figure_map = {
182183 '1a' : ('all_losses' , generate_all_losses_figure , 'all_losses.pdf' ),
183184 '1b' : ('stripplot' , generate_stripplot_figure , 'stripplot.pdf' ),
@@ -188,9 +189,30 @@ def generate_figure(figure_name, data_path='data/model_results.pkl', output_dir=
188189 '5' : ('oz' , generate_oz_losses_figure , 'oz_losses.pdf' ),
189190 }
190191
192+ # Supplemental figures (variants)
193+ # S1-S3: Figure 1 variants, S4-S6: Figure 2 variants, S7-S8: Figures 3-4 variants
194+ supplemental_map = {
195+ 's1a' : ('1a' , 'content' ), 's1b' : ('1b' , 'content' ),
196+ 's2a' : ('1a' , 'function' ), 's2b' : ('1b' , 'function' ),
197+ 's3a' : ('1a' , 'pos' ), 's3b' : ('1b' , 'pos' ),
198+ 's4a' : ('2a' , 'content' ), 's4b' : ('2b' , 'content' ),
199+ 's5a' : ('2a' , 'function' ), 's5b' : ('2b' , 'function' ),
200+ 's6a' : ('2a' , 'pos' ), 's6b' : ('2b' , 'pos' ),
201+ 's7a' : ('3' , 'content' ), 's7b' : ('3' , 'function' ), 's7c' : ('3' , 'pos' ),
202+ 's8a' : ('4' , 'content' ), 's8b' : ('4' , 'function' ), 's8c' : ('4' , 'pos' ),
203+ }
204+
205+ # Check if it's a supplemental figure
206+ if figure_name .lower () in supplemental_map :
207+ main_fig , supp_variant = supplemental_map [figure_name .lower ()]
208+ # Override variant parameter
209+ variant = supp_variant
210+ figure_name = main_fig
211+ safe_print (f"Supplemental Figure { figure_name .upper ()} : { supp_variant } variant" )
212+
191213 if figure_name not in figure_map :
192214 safe_print (f"Unknown figure: { figure_name } " )
193- safe_print (f"Available figures : { ', ' .join (figure_map .keys ())} " )
215+ safe_print (f"Available: { ', ' .join (figure_map . keys ()) } or supplemental: { ', ' . join ( supplemental_map .keys ())} " )
194216 return False
195217
196218 # Skip Figure 5 for variants with clear message
@@ -377,14 +399,23 @@ def main():
377399 args = parser .parse_args ()
378400
379401 if args .list :
380- safe_print ("\n Available figures:" )
381- safe_print (" 1a - Figure 1A: Training curves (all_losses.pdf)" )
382- safe_print (" 1b - Figure 1B: Strip plot (stripplot.pdf)" )
383- safe_print (" 2a - Figure 2A: Individual t-tests (t_test.pdf)" )
384- safe_print (" 2b - Figure 2B: Average t-test (t_test_avg.pdf)" )
385- safe_print (" 3 - Figure 3: Confusion matrix heatmap (average_loss_heatmap.pdf)" )
386- safe_print (" 4 - Figure 4: 3D MDS plot (3d_MDS_plot.pdf)" )
387- safe_print (" 5 - Figure 5: Oz authorship analysis (oz_losses.pdf) [baseline only]" )
402+ safe_print ("\n Main Figures (baseline):" )
403+ safe_print (" 1a - Figure 1A: Training curves" )
404+ safe_print (" 1b - Figure 1B: Strip plot" )
405+ safe_print (" 2a - Figure 2A: Individual t-tests" )
406+ safe_print (" 2b - Figure 2B: Average t-test" )
407+ safe_print (" 3 - Figure 3: Confusion matrix heatmap" )
408+ safe_print (" 4 - Figure 4: 3D MDS plot" )
409+ safe_print (" 5 - Figure 5: Oz authorship analysis" )
410+ safe_print ("\n Supplemental Figures (variants):" )
411+ safe_print (" s1a, s1b - Supp. Fig. 1: Content-only (Figs 1A, 1B)" )
412+ safe_print (" s2a, s2b - Supp. Fig. 2: Function-only (Figs 1A, 1B)" )
413+ safe_print (" s3a, s3b - Supp. Fig. 3: POS (Figs 1A, 1B)" )
414+ safe_print (" s4a, s4b - Supp. Fig. 4: Content-only (Figs 2A, 2B)" )
415+ safe_print (" s5a, s5b - Supp. Fig. 5: Function-only (Figs 2A, 2B)" )
416+ safe_print (" s6a, s6b - Supp. Fig. 6: POS (Figs 2A, 2B)" )
417+ safe_print (" s7a-c - Supp. Fig. 7: Confusion matrices (all variants)" )
418+ safe_print (" s8a-c - Supp. Fig. 8: MDS plots (all variants)" )
388419 return 0
389420
390421 safe_print (format_header ("LLM Stylometry CLI" , 60 ))
0 commit comments