amitpande74 commited on
Commit
60537f6
·
1 Parent(s): 2ff3971

app: warn if input values are out of log2 range (guards against raw TPM/counts)

Browse files
Files changed (1) hide show
  1. app.py +15 -0
app.py CHANGED
@@ -96,6 +96,21 @@ if uploaded:
96
  if overlap < 1000:
97
  st.warning("Low gene overlap — results may be unreliable.")
98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  aligned = pd.DataFrame(0.0, index=df.index, columns=gene_list)
100
  common = [g for g in gene_list if g in df.columns]
101
  aligned[common] = df[common].values
 
96
  if overlap < 1000:
97
  st.warning("Low gene overlap — results may be unreliable.")
98
 
99
+ # --- Input scale check: model expects log2(TPM) ---
100
+ common_for_scale = [g for g in gene_list if g in df.columns]
101
+ if common_for_scale:
102
+ vals = df[common_for_scale].to_numpy(dtype=float)
103
+ vmax = float(np.nanmax(vals))
104
+ p99 = float(np.nanpercentile(vals, 99))
105
+ st.caption(f"Input value range: 99th pct = {p99:.1f}, max = {vmax:.1f} "
106
+ "(log2(TPM) is typically 0–20).")
107
+ if vmax > 30 or p99 > 25:
108
+ st.warning(
109
+ "⚠️ Input values look larger than expected for **log2 scale**. "
110
+ "This model expects **log2-transformed expression** (e.g. log2(TPM+1)). "
111
+ "Raw TPM/counts will give unreliable predictions — please log2-transform first."
112
+ )
113
+
114
  aligned = pd.DataFrame(0.0, index=df.index, columns=gene_list)
115
  common = [g for g in gene_list if g in df.columns]
116
  aligned[common] = df[common].values