Skip to content

Commit 466e1b4

Browse files
Fix calibration after TL
1 parent 8e7c4f8 commit 466e1b4

File tree

3 files changed

+37
-17
lines changed

3 files changed

+37
-17
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to
77
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
88

9+
## [3.1.1] - 2024-10-10
10+
11+
### Changed
12+
13+
- Revert to linear calibration after transfer learning only
14+
915
## [3.1.0] - 2024-08-31
1016

1117
### Changed

deeplc/deeplc.py

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,9 @@ def make_preds_core(
610610
try:
611611
X
612612
ret_preds = mod.predict(
613-
[X, X_sum, X_global, X_hc], batch_size=self.batch_num_tf, verbose=int(self.verbose)
613+
[X, X_sum, X_global, X_hc],
614+
batch_size=self.batch_num_tf,
615+
verbose=int(self.verbose),
614616
).flatten()
615617
except UnboundLocalError:
616618
logger.debug("X is empty, skipping...")
@@ -832,27 +834,39 @@ def calibrate_preds_func_pygam(
832834
# measured_tr = list(measured_tr)
833835

834836
# Fit a SplineTransformer model
835-
spline = SplineTransformer(degree=4, n_knots=int(len(measured_tr) / 100) + 5)
836-
spline_model = make_pipeline(spline, LinearRegression())
837-
spline_model.fit(predicted_tr.reshape(-1, 1), measured_tr)
837+
if self.deeplc_retrain:
838+
spline = SplineTransformer(degree=2, n_knots=10)
839+
linear_model = LinearRegression()
840+
linear_model.fit(predicted_tr.reshape(-1, 1), measured_tr)
838841

839-
# Determine the top 10% of data on either end
840-
n_top = int(len(predicted_tr) * 0.1)
842+
linear_model_left = linear_model
843+
spline_model = linear_model
844+
linear_model_right = linear_model
845+
else:
846+
spline = SplineTransformer(
847+
degree=4, n_knots=int(len(measured_tr) / 500) + 5
848+
)
849+
spline_model = make_pipeline(spline, LinearRegression())
850+
spline_model.fit(predicted_tr.reshape(-1, 1), measured_tr)
841851

842-
# Fit a linear model on the bottom 10% (left-side extrapolation)
843-
X_left = predicted_tr[:n_top]
844-
y_left = measured_tr[:n_top]
845-
linear_model_left = LinearRegression()
846-
linear_model_left.fit(X_left.reshape(-1, 1), y_left)
852+
# Determine the top 10% of data on either end
853+
n_top = int(len(predicted_tr) * 0.1)
847854

848-
# Fit a linear model on the top 10% (right-side extrapolation)
849-
X_right = predicted_tr[-n_top:]
850-
y_right = measured_tr[-n_top:]
851-
linear_model_right = LinearRegression()
852-
linear_model_right.fit(X_right.reshape(-1, 1), y_right)
855+
# Fit a linear model on the bottom 10% (left-side extrapolation)
856+
X_left = predicted_tr[:n_top]
857+
y_left = measured_tr[:n_top]
858+
linear_model_left = LinearRegression()
859+
linear_model_left.fit(X_left.reshape(-1, 1), y_left)
860+
861+
# Fit a linear model on the top 10% (right-side extrapolation)
862+
X_right = predicted_tr[-n_top:]
863+
y_right = measured_tr[-n_top:]
864+
linear_model_right = LinearRegression()
865+
linear_model_right.fit(X_right.reshape(-1, 1), y_right)
853866

854867
calibrate_min = min(predicted_tr)
855868
calibrate_max = max(predicted_tr)
869+
856870
return (
857871
calibrate_min,
858872
calibrate_max,

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "deeplc"
3-
version = "3.1.0"
3+
version = "3.1.1"
44
description = "DeepLC: Retention time prediction for (modified) peptides using Deep Learning."
55
readme = "README.md"
66
license = { file = "LICENSE" }

0 commit comments

Comments
 (0)