ms2rescore/feature_generators/deeplc.py:197; ms2rescore/feature_generators/im2deep.py:135
With the default calibration_set_size=None, the calibration count is (target_df["qvalue"] <= 0.01).sum(). In a multi-run dataset, a run whose targets are all above 1% global q-value yields 0 → head(0) empty → raise ValueError("Run 'X' has no target PSMs available for calibration.") even though target PSMs exist, and core.py's broad handler re-raises, killing the whole dataset. The DeepLC len == 0 guard is also insufficient for small non-empty sets: SplineTransformerCalibration.fit needs ≥10 PSMs (finder reports empirical crash for 1-9). The message is also misleading.
Fix: skip/degrade a single weak run instead of aborting; raise a clear, accurate message; guard the small-but-nonzero calibration case.
ms2rescore/feature_generators/deeplc.py:197; ms2rescore/feature_generators/im2deep.py:135
With the default calibration_set_size=None, the calibration count is (target_df["qvalue"] <= 0.01).sum(). In a multi-run dataset, a run whose targets are all above 1% global q-value yields 0 → head(0) empty → raise ValueError("Run 'X' has no target PSMs available for calibration.") even though target PSMs exist, and core.py's broad handler re-raises, killing the whole dataset. The DeepLC len == 0 guard is also insufficient for small non-empty sets: SplineTransformerCalibration.fit needs ≥10 PSMs (finder reports empirical crash for 1-9). The message is also misleading.
Fix: skip/degrade a single weak run instead of aborting; raise a clear, accurate message; guard the small-but-nonzero calibration case.