Package: deeplc
DeepLC: Retention time prediction for (modified) peptides using Deep Learning.IntroductionCitationUsageWeb applicationGraphical user interfacePython packageInstallationCommand line interfacePython moduleInput filesPrediction modelsQ&AIntroductionDeepLC is a retention time predictor for (modified) peptides that employs Deep
Learning. Its strength lies in the fact that it can accurately predict
retention times for modified peptides, even if hasn't seen said modification
during training.DeepLC can be used through theweb application,
locally with a graphical user interface (GUI), or as a Python package. In the
latter case, DeepLC can be used from the command line, or as a Python module.CitationIf you use DeepLC for your research, please use the following citation:DeepLC can predict retention times for peptides that carry as-yet unseen modificationsRobbin Bouwmeester, Ralf Gabriels, Niels Hulstaert, Lennart Martens & Sven DegroeveNature Methods 18, 1363–1369 (2021)doi: 10.1038/s41592-021-01301-5UsageWeb applicationJust go toiomics.ugent.be/deeplcand get started!Graphical user interfaceIn an existing Python environment (cross-platform)In your terminal with Python (>=3.7) installed, runpip install deeplc[gui]Start the GUI with the commanddeeplc-guiorpython -m deeplc.guiStandalone installer (Windows)Download the DeepLC installer (DeepLC-...-Windows-64bit.exe) from thelatest releaseExecute the installerIf Windows Smartscreen shows a popup window with "Windows protected your PC",
click on "More info" and then on "Run anyway". You will have to trust us that
DeepLC does not contain any viruses, or you can check the source code 😉Go through the installation stepsStart DeepLC!Python packageInstallationInstall with conda, using the bioconda and conda-forge channels:conda install -c bioconda -c conda-forge deeplcOr install with pip:pip install deeplcCommand line interfaceTo use the DeepLC CLI, run:deeplc--file_pred<path/to/peptide_file.csv>We highly recommend to add a peptide file with known retention times for
calibration:deeplc--file_pred<path/to/peptide_file.csv>--file_cal<path/to/peptide_file_with_tr.csv>For an overview of all CLI arguments, rundeeplc --help.Python moduleMinimal example:importpandasaspdfromdeeplcimportDeepLCpeptide_file="datasets/test_pred.csv"calibration_file="datasets/test_train.csv"pep_df=pd.read_csv(peptide_file,sep=",")pep_df['modifications']=pep_df['modifications'].fillna("")cal_df=pd.read_csv(calibration_file,sep=",")cal_df['modifications']=cal_df['modifications'].fillna("")dlc=DeepLC()dlc.calibrate_preds(seq_df=cal_df)preds=dlc.make_preds(seq_df=pep_df)For a more elaborate example, seeexamples/deeplc_example.py.Input filesDeepLC expects comma-separated values (CSV) with the following columns:seq: unmodified peptide sequencesmodifications: MS2PIP-style formatted modifications: Every modification is
listed aslocation|name, separated by a pipe (|) between the location, the
name, and other modifications.locationis an integer counted starting at 1
for the first AA. 0 is reserved for N-terminal modifications, -1 for
C-terminal modifications.namehas to correspond to a Unimod (PSI-MS) name.tr: retention time (only required for calibration)For example:seq,modifications,tr
AAGPSLSHTSGGTQSK,,12.1645
AAINQKLIETGER,6|Acetyl,34.095
AANDAGYFNDEMAPIEVKTK,12|Oxidation|18|Acetyl,37.3765Seeexamples/datasetsfor more examples.Prediction modelsDeepLC comes with multiple CNN models trained on data from various experimental
settings:Model filenameExperimental settingsPublicationfull_hc_dia_fixed_mods.hdf5Reverse phaseRosenberger et al. 2014full_hc_LUNA_HILIC_fixed_mods.hdf5HILICSpicer et al. 2018full_hc_LUNA_SILICA_fixed_mods.hdf5HILICSpicer et al. 2018full_hc_PXD000954_fixed_mods.hdf5Reverse phaseRosenberger et al. 2014By default, DeepLC selects the best model based on the calibration dataset. If
no calibration is performed, the first default model is selected. Always keep
note of the used models and the DeepLC version.The table above is for an old version of DeepLC, the current version comes with:Model filenameExperimental settingsPublicationfull_hc_hela_hf_psms_aligned_1fd8363d9af9dcad3be7553c39396960.hdf5Reverse phaseKelstrup et al. 2018full_hc_hela_hf_psms_aligned_8c22d89667368f2f02ad996469ba157e.hdf5Reverse phaseKelstrup et al. 2018full_hc_hela_hf_psms_aligned_cb975cfdd4105f97efa0b3afffe075cc.hdf5Reverse phaseKelstrup et al. 2018full_hc_PXD005573_mcp_cb975cfdd4105f97efa0b3afffe075cc.hdf5Reverse phaseBruderer et al. 2017For all the full models that can be used in DeepLC (including some TMT models!) please see:https://github.com/RobbinBouwmeester/DeepLCModelsQ&AQ: Is it required to indicate fixed modifications in the input file?Yes, even modifications like carbamidomethyl should be in the input file.Q: So DeepLC is able to predict the retention time for any modification?Yes, DeepLC can predict the retention time of any modification. However, if the
modification isverydifferent from the peptides the model has seen during
training the accuracy might not be satisfactory for you. For example, if the model
has never seen a phosphor atom before, the accuracy of the prediction is going to
be low.Q: Installation fails. Why?Please make sure to install DeepLC in a path that does not contain spaces. Run
the latest LTS version of Ubuntu or Windows 10. Make sure you have enough disk
space available, surprisingly TensorFlow needs quite a bit of disk space. If
you are still not able to install DeepLC, please feel free to contact us:Robbin.Bouwmeester@ugent.beandRalf.Gabriels@ugent.beQ: I have a special usecase that is not supported. Can you help?Ofcourse, please feel free to contact us:Robbin.Bouwmeester@ugent.beandRalf.Gabriels@ugent.beQ: DeepLC runs out of memory. What can I do?You can try to reduce the batch size. DeepLC should be able to run if the batch size is low
enough, even on machines with only 4 GB of RAM.Q: I have a graphics card, but DeepLC is not using the GPU. Why?For now DeepLC defaults to the CPU instead of the GPU. Clearly, because you want
to use the GPU, you are a power user :-). If you want to make the most of that expensive
GPU, you need to change or remove the following line (at the top) indeeplc.py:# Set to force CPU calculations
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'Also change the same line in the functionreset_keras():# Set to force CPU calculations
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'Either remove the line or change to (where the number indicates the number of GPUs):# Set to force CPU calculations
os.environ['CUDA_VISIBLE_DEVICES'] = '1'Q: What modification name should I use?The names from unimod are used. The PSI-MS name is used by default, but the Interim name
is used as a fall-back if the PSI-MS name is not available. Please also seeunimod_to_formula.csvin the folderunimod/for the naming of specific modifications.Q: I have a modification that is not in unimod. How can I add the modification?In the folderunimod/there is the fileunimod_to_formula.csvthat can be used to
add modifications. In the CSV file add a name (that is unique and not present yet) and
the change in atomic composition. For example:Met->Hse,O,H(-2) C(-1) S(-1)Make sure to use negative signs for the atoms subtracted.Q: Help, all my predictions are between [0,10]. Why?It is likely you did not use calibration. No problem, but the retention times for training
purposes were normalized between [0,10]. This means that you probably need to adjust the
retention time yourselve after analysis or use a calibration set as the input.Q: What does the optiondict_dividerdo?This parameter defines the precision to use for fast-lookup of retention times
for calibration. A value of 10 means a precision of 0.1 (and 100 a precision of
0.01) between the calibration anchor points. This parameter does not influence
the precision of the calibration, but setting it too high might mean that there
is bad selection of the models between anchor points. A safe value is usually
higher than 10.Q: What does the optionsplit_caldo?The optionsplit_cal, or split calibration, sets number of divisions of the
chromatogram for piecewise linear calibration. If the value is set to 10 the
chromatogram is split up into 10 equidistant parts. For each part the median
value of the calibration peptides is selected. These are the anchor points.
Between each anchor point a linear fit is made. This option has no effect when
the pyGAM generalized additive models are used for calibration.Q: How does the ensemble part of DeepLC work?Models within the same directory are grouped if they overlap in their name. The overlap
has to be in their full name, except for the last part of the name after a "_"-character.The following models will be grouped:full_hc_dia_fixed_mods_a.hdf5
full_hc_dia_fixed_mods_b.hdf5None of the following models will not be grouped:full_hc_dia_fixed_mods2_a.hdf5
full_hc_dia_fixed_mods_b.hdf5
full_hc_dia_fixed_mods_2_b.hdf5Q: I would like to take the ensemble average of multiple models, even if they are trained on different datasets. How can I do this?Feel free to experiment! Models within the same directory are grouped if they overlap in
their name. The overlap has to be in their full name, except for the last part of the
name after a "_"-character.The following models will be grouped:model_dataset1.hdf5
model_dataset2.hdf5So you just need to rename your models.