Ludvig commited on
Commit
073e2cd
·
1 Parent(s): 9c2558f

Adds intensity settings

Browse files
Files changed (2) hide show
  1. design.py +55 -0
  2. plot.R +10 -0
design.py CHANGED
@@ -497,6 +497,51 @@ def design_section(
497
  help="How dark the darkest colors should be, between 0 and 1, where 1 is darkest.",
498
  )
499
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
500
  st.markdown("""---""")
501
 
502
  st.session_state["selected_design_settings"][
@@ -747,6 +792,16 @@ def design_section(
747
  "the sum tiles under **Tiles** >> *Sum tile settings*."
748
  )
749
  design_ready = False
 
 
 
 
 
 
 
 
 
 
750
  if len(selected_classes) < 2:
751
  st.error("At least 2 classes must be selected.")
752
  design_ready = False
 
497
  help="How dark the darkest colors should be, between 0 and 1, where 1 is darkest.",
498
  )
499
 
500
+ col1, col2, col3, col4 = st.columns([4, 5, 5, 6])
501
+ with col1:
502
+ st.session_state["selected_design_settings"][
503
+ "set_intensity_lims"
504
+ ] = add_toggle_vertical(
505
+ label="Set intensity range",
506
+ default=False,
507
+ key="set_intensity_lims",
508
+ cols=[5, 1],
509
+ )
510
+ with col2:
511
+ st.session_state["selected_design_settings"][
512
+ "intensity_min"
513
+ ] = st.number_input(
514
+ "Intensity min.",
515
+ value=get_uploaded_setting(
516
+ key="intensity_min", default=0.0, type_=float
517
+ ),
518
+ help="The value to consider the minimum intensity. "
519
+ "The values are based on the `Intensity based on` selection.",
520
+ )
521
+ with col3:
522
+ st.session_state["selected_design_settings"][
523
+ "intensity_max"
524
+ ] = st.number_input(
525
+ "Intensity max.",
526
+ value=get_uploaded_setting(
527
+ key="intensity_max", default=0.0, type_=float
528
+ ),
529
+ help="The value to consider the maximum intensity. "
530
+ "The values are based on the `Intensity based on` selection.",
531
+ )
532
+ with col4:
533
+ st.session_state["selected_design_settings"][
534
+ "intensity_beyond_lims"
535
+ ] = _add_select_box(
536
+ key="intensity_beyond_lims",
537
+ label="Out-of-range values",
538
+ default="truncate",
539
+ options=["truncate", "grey"],
540
+ get_setting_fn=get_uploaded_setting,
541
+ type_=str,
542
+ help="What to do with counts/percentages outside of the specified intensity range.",
543
+ )
544
+
545
  st.markdown("""---""")
546
 
547
  st.session_state["selected_design_settings"][
 
792
  "the sum tiles under **Tiles** >> *Sum tile settings*."
793
  )
794
  design_ready = False
795
+ if (
796
+ st.session_state["selected_design_settings"]["set_intensity_lims"]
797
+ and not st.session_state["selected_design_settings"]["intensity_max"]
798
+ > st.session_state["selected_design_settings"]["intensity_min"]
799
+ ):
800
+ st.error(
801
+ "When specifying an intensity range, "
802
+ "the maximum value must be greater than the minimum value."
803
+ )
804
+ design_ready = False
805
  if len(selected_classes) < 2:
806
  st.error("At least 2 classes must be selected.")
807
  design_ready = False
plot.R CHANGED
@@ -279,6 +279,14 @@ if (isTRUE(design_settings$show_tile_border)) {
279
  intensity_by <- tolower(design_settings$intensity_by)
280
  if (grepl("normalized", intensity_by)) intensity_by <- "normalized"
281
 
 
 
 
 
 
 
 
 
282
  palette <- design_settings$palette
283
  if (isTRUE(design_settings$palette_use_custom)) {
284
  palette <- list(
@@ -320,6 +328,8 @@ confusion_matrix_plot <- tryCatch(
320
  arrow_size = design_settings$arrow_size,
321
  arrow_nudge_from_text = design_settings$arrow_nudge_from_text,
322
  intensity_by = intensity_by,
 
 
323
  darkness = design_settings$darkness,
324
  counts_on_top = design_settings$counts_on_top,
325
  place_x_axis_above = design_settings$place_x_axis_above,
 
279
  intensity_by <- tolower(design_settings$intensity_by)
280
  if (grepl("normalized", intensity_by)) intensity_by <- "normalized"
281
 
282
+ intensity_lims <- NULL
283
+ if (isTRUE(design_settings$set_intensity_lims)) {
284
+ intensity_lims <- c(
285
+ design_settings$intensity_min,
286
+ design_settings$intensity_max
287
+ )
288
+ }
289
+
290
  palette <- design_settings$palette
291
  if (isTRUE(design_settings$palette_use_custom)) {
292
  palette <- list(
 
328
  arrow_size = design_settings$arrow_size,
329
  arrow_nudge_from_text = design_settings$arrow_nudge_from_text,
330
  intensity_by = intensity_by,
331
+ intensity_lims = intensity_lims,
332
+ intensity_beyond_lims = design_settings$intensity_beyond_lims,
333
  darkness = design_settings$darkness,
334
  counts_on_top = design_settings$counts_on_top,
335
  place_x_axis_above = design_settings$place_x_axis_above,