Skip to content

Commit 0d9850c

Browse files
authored
Merge pull request #237 from MannLabs/update-adaptive-frag
Update adaptive frag types interfaces
2 parents c746c89 + 073461c commit 0d9850c

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

peptdeep/model/ms2.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -656,9 +656,30 @@ def predict(
656656
batch_size=1024,
657657
verbose=False,
658658
reference_frag_df=None,
659+
allow_unsafe_predictions=False,
659660
**kwargs,
660661
) -> pd.DataFrame:
661-
if not self._safe_to_predict:
662+
"""
663+
Predict MS2 fragment intensities
664+
665+
Parameters
666+
----------
667+
precursor_df : pd.DataFrame
668+
Precursor DataFrame
669+
batch_size : int, optional
670+
Batch size, by default 1024
671+
verbose : bool, optional
672+
Verbose, by default False
673+
reference_frag_df : pd.DataFrame, optional
674+
Reference fragment intensity DataFrame, by default None
675+
allow_unsafe_predictions : bool, optional
676+
Allow a newly a randomly initialized model to be used for prediction, by default False
677+
Returns
678+
-------
679+
pd.DataFrame
680+
Predicted fragment intensities
681+
"""
682+
if not self._safe_to_predict and not allow_unsafe_predictions:
662683
raise ValueError(
663684
f"The model is not safe to use for prediction. This might mean that the requested charged_frag_types {self.charged_frag_types} are not a subset of the charged_frag_types used to train the loaded pretrained model {self.model.supported_charged_frag_types}. Please choose a subset of the supported charged_frag_types or retrain the model with the requested charged_frag_types."
664685
)

peptdeep/pretrained_models.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,20 @@ def __init__(
321321

322322
self.reset_by_global_settings(reload_models=False)
323323

324+
def reinitialize_ms2_model(self, charged_frag_types: typing.List[str], **kwargs):
325+
"""
326+
Reinitialize the MS2 model with new charged fragment types.
327+
328+
Parameters
329+
----------
330+
charged_frag_types : List[str]
331+
Charged fragment types for the new MS2 model.
332+
333+
kwargs : dict
334+
Other keyword arguments for `pDeepModel`.
335+
"""
336+
self.ms2_model = pDeepModel(charged_frag_types=charged_frag_types, **kwargs)
337+
324338
def reset_by_global_settings(
325339
self,
326340
reload_models=True,
@@ -965,7 +979,7 @@ def mp_param_generator(df_groupby):
965979
fragment_mz_df_list = None
966980

967981
if self.verbose:
968-
logging.info(f'Predicting {",".join(predict_items)} ...')
982+
logging.info(f"Predicting {','.join(predict_items)} ...")
969983
verbose_bak = self.verbose
970984
self.verbose = False
971985

0 commit comments

Comments
 (0)