@@ -857,10 +857,35 @@ def draw_identi_num(
857857
858858def draw_modifications (sub_section , modified_data ):
859859
860- if isinstance (modified_data ["plot_data" ], list ):
860+ plot_data = modified_data .get ("plot_data" , None )
861+ if not plot_data :
862+ return
863+
864+ if isinstance (plot_data , dict ):
865+ iterable = [plot_data ]
866+ plot_label = ["by Run" ]
867+ elif isinstance (plot_data , list ):
868+ iterable = plot_data
861869 plot_label = ["by Run" , "by Sample" ]
862870 else :
863- plot_label = ["by Run" ]
871+ log .warning (
872+ f"draw_modifications: Unsupported plot_data type: { type (plot_data )} , skipping plot."
873+ )
874+ return
875+
876+ modified_values = [
877+ value
878+ for item in iterable
879+ if isinstance (item , dict )
880+ for subdict in item .values ()
881+ if isinstance (subdict , dict )
882+ for value in subdict .values ()
883+ if isinstance (value , (int , float ))
884+ ]
885+
886+ if not any (modified_values ):
887+ log .warning ("draw_modifications: All plot_data values are zero, skipping plot." )
888+ return
864889
865890 draw_config = {
866891 "id" : "modifications" ,
@@ -875,7 +900,7 @@ def draw_modifications(sub_section, modified_data):
875900 }
876901
877902 bar_html = bargraph .plot (
878- data = modified_data [ " plot_data" ] , cats = modified_data ["cats" ], pconfig = draw_config
903+ data = plot_data , cats = modified_data ["cats" ], pconfig = draw_config
879904 )
880905 bar_html = plot_html_check (bar_html )
881906
0 commit comments