A framework for site-level confidence assessment in proteomics, with workflows for amino-acid site scoring and modification-site localization.
This repository distributes Windows executables, example inputs and results, and the optional pPred prediction package. Some configuration comments, messages, and output columns retain the earlier name pSite2.
Install Git and Git LFS, then run the following in PowerShell:
git lfs install
git clone https://github.com/pFindStudio/pReLoc.git
cd pReLoc
git lfs pullThe executables, model weights, and large spectrum files are stored with Git LFS. A file containing version https://git-lfs.github.com/spec/v1 is a pointer, not the actual executable or data; run git lfs pull to retrieve its contents. Access to the repository is required if it is private.
The full distribution contains approximately 9.5 GiB of files. Allow additional disk space for the Git LFS cache, executable extraction, and analysis outputs.
| Path | Purpose |
|---|---|
pReLoc_XGB.exe |
XGBoost scoring executable; supports the optional pPred workflow. |
pReLoc_CL.exe |
CL scoring executable; use with ispPred=false. |
examples/data_input.tsv |
Small custom identification table used by the basic examples. |
examples/dataMGF.mgf |
Matching spectra for the basic examples. |
examples/pReLocparam_*.txt |
Editable parameter templates. |
examples/mod_*, examples/site_* |
Example outputs and, for the pPred example, supporting data/models. |
examples/pChem/pChem_preparedata/ |
pChem summary, pFind results, and MGF input. |
pPred-20241111/ |
Optional prediction executables, DLLs, model weights, and working data. |
Use Windows for the supplied .exe programs. No source-build or Linux/macOS execution workflow is provided in this distribution. Keep the pPred directory and its bundled dependencies together when using pPred.
This example uses the small bundled dataset, without pPred.
-
Open PowerShell in the repository root. Copy the template and create an output directory:
Copy-Item .\examples\pReLocparam_mod_xgb.txt .\examples\my_mod_xgb.txt New-Item -ItemType Directory -Force .\results\mod_xgb notepad .\examples\my_mod_xgb.txt
-
Update the paths in the copied file. For example, if the repository is at
C:\tools\pReLoc, use the following values in their existing sections:[path_info] isMGFfolder=false MGFPath=C:\tools\pReLoc\examples\dataMGF.mgf ispfind=false Input=C:\tools\pReLoc\examples\data_input.tsv ispChem=false [score] isSite=false isMod=true [pPred] ispPred=false [FLR] isFLR=2 FLR=0.01 [output_info] OutputFolderPath=C:\tools\pReLoc\results\mod_xgb
This is an excerpt, not a complete parameter file. Retain the other template settings, including the modification sections. Replace
C:\tools\pReLocwith your actual installation path. Use absolute paths, and create the output directory before running. -
Start the executable:
.\pReLoc_XGB.exe -
When the program displays
Input the path of the parameter file:, enter the full path to your edited file, for example:C:\tools\pReLoc\examples\my_mod_xgb.txtThe supplied executables read the parameter path interactively. Passing it as a command-line argument does not replace this prompt. At completion, press Enter when prompted to exit.
-
Inspect
pSiteRes.tsv,pSiteRes-filtered.tsv, andTime.txtin your output directory. Check the console for errors as well as checking that the result files were produced.
The XGBoost modification workflow above was checked with the bundled 100-row input and isFLR=2, FLR=0.01: it produced 100 result rows and 11 filtered rows. These counts describe this example, not a general expected result for other datasets. Floating-point scores can vary across environments.
Copy the corresponding template, update its paths, create a separate output directory, and supply the edited configuration at the executable's prompt.
| Workflow | Executable | Template in examples/ |
Key settings |
|---|---|---|---|
| Modification localization, XGBoost | pReLoc_XGB.exe |
pReLocparam_mod_xgb.txt |
isMod=true, isSite=false, ispPred=false |
| Modification localization, CL | pReLoc_CL.exe |
pReLocparam_mod_cl.txt |
isMod=true, isSite=false, ispPred=false |
| Site scoring, XGBoost | pReLoc_XGB.exe |
pReLocparam_site_xgb.txt |
isSite=true, isMod=false |
| Site scoring, CL | pReLoc_CL.exe |
pReLocparam_site_cl.txt |
isSite=true, isMod=false |
| pChem localization, XGBoost | pReLoc_XGB.exe |
pReLocparam_pChem.txt |
ispChem=true, ispfind=true, isFLR=0 |
| pChem localization, CL | pReLoc_CL.exe |
pReLocparam_pChem_cl.txt |
ispChem=true, ispfind=true, isFLR=0 |
| Localization with pPred features | pReLoc_XGB.exe |
pReLocparam_mod_xgbpPred.txt |
ispPred=true; additional pFind/raw-data inputs required |
Enable one scoring mode at a time. Existing example output folders are reference results; use a new output folder for your own runs.
Set MGFPath to an MGF file with isMGFfolder=false, or to a directory containing MGF files with isMGFfolder=true. The scoring input uses MGF spectra; the additional pPred raw-data inputs are configured separately.
Spectrum identifiers in the identification table must match the MGF TITLE values. For example, identifiers in the bundled data look like:
20150615_HepG2_Phos_control_70ug_1.10493.10493.2.3.dta
Use ispfind=false and set Input to a tab-delimited file. Follow examples/data_input.tsv. The fields read by the custom-input workflow are:
| Column | Meaning |
|---|---|
spec_name |
Spectrum identifier matching an MGF title. |
seq |
Peptide amino-acid sequence. |
mod |
Modification annotations such as 3,Oxidation[M];6,Phospho[S];. |
score |
Original identification score. |
The bundled table also includes raw_name and phospho_count; retain its structure when adapting the example. Residue positions in the examples are 1-based. A protein N-terminal acetylation is represented as 0,Acetyl[ProteinN-term];. Match modification names exactly to the configured names.
For example, peptide YGMGTSVER has the modification string 3,Oxidation[M];6,Phospho[S]; in the example input.
Set ispfind=true and point Input to the pFind result file, such as pFind-Filtered.spectra. Provide its corresponding MGF spectra through MGFPath.
List residue modifications under [mods], terminal modifications under [NTerm_mods] and [CTerm_mods], and modifications to localize under [scoreModName]. For ordinary modification localization, the target modifications must also appear in [mods].
For the phosphorylation example:
[mods]
mod1=Carbamidomethyl[C]
mod2=Oxidation[M]
mod3=Phospho[S]
mod4=Phospho[T]
mod5=Phospho[Y]
[NTerm_mods]
Nmod1=Acetyl[ProteinN-term]
[CTerm_mods]
[scoreModName]
scoremod1=Phospho[S]
scoremod2=Phospho[T]
scoremod3=Phospho[Y]Some shipped templates repeat the mod3 key for S/T/Y. The example above uses distinct keys and was used in the quick-start check.
The [FLR] section controls false localization rate filtering for modification localization (isMod=true):
| Parameter | Meaning |
|---|---|
isFLR=0 |
Disable FLR filtering. |
isFLR=1 |
Use the amino-acid relocation decoy strategy described in the template. |
isFLR=2 |
Use the modification-mass relocation decoy strategy recommended by the template. |
FLR=0.01 |
Set the filtering threshold to 0.01 (1%). |
The supplied pChem workflow does not support isFLR=1 or 2; keep isFLR=0. The site-scoring templates also use isFLR=0.
Start from a pChem template and update these paths:
[path_info]
isMGFfolder=true
MGFPath=C:\tools\pReLoc\examples\pChem\pChem_preparedata
ispfind=true
Input=C:\tools\pReLoc\examples\pChem\pChem_preparedata\pFind-Filtered.spectra
ispChem=true
pChemmodnum=1
InputSummary=C:\tools\pReLoc\examples\pChem\pChem_preparedata\pChem.summaryKeep ispPred=false and isFLR=0, set your output directory, and run the matching executable. The example uses pChemmodnum=1; its summary's first modification is PFIND_DELTA_334. Use the summary and identification files from the same pChem analysis when working with your own data.
pPred features are supported by the XGBoost executable. The template states that this workflow requires pFind results and does not support pChem. The main scoring table can still be the custom table used by the shipped example: pFindResfp separately supplies the pFind results needed by pPred.
Use pReLocparam_mod_xgbpPred.txt and update all of the following:
Setting in [pPred] |
Purpose |
|---|---|
ispPred=true |
Enable prediction-derived features. |
pFindResfp |
pFind result file used by pPred. |
rawfolder |
Matching parsed MS data directory (ms1/ms2 or pf1/pf2, with accompanying index files where present). |
modelfolder |
Directory for the fine-tuned model files. |
modelname |
Model basename; the supplied example uses demofinetune. |
instrument |
0: QE; 1: Astral; 2: QE HF; 3: Lumos; 4: Exploris; 5: Thermo-others; 6: TIMS. |
nce |
Normalized collision energy; example: 30. |
rtparam |
Retention-time range in minutes, minRT_maxRT; example: 10_130. |
ms2param |
Format documented by the template: 0_nce_nce_nce_minCharge_maxCharge; example: 0_30_30_30_2_4. |
The example data and fine-tuned models are under examples/mod_xgbpPred/. Run from the repository root so the adjacent pPred-20241111 directory is available. Ensure the model and output directories exist and are writable. Use model names/directories appropriate to your dataset; the bundled fine-tuned models belong to the supplied example.
The pPred package includes CUDA 11/cuDNN 8 libraries. A supported GPU/driver matrix and a CPU-only pPred procedure are not specified in the repository. The basic XGBoost quick-start check did not exercise pPred. Also, the checked-in examples/mod_xgbpPred/pSiteRes.tsv contains candidate-feature columns, and its Time.txt records candidate generation only; treat these as intermediate example artifacts, not evidence of a completed pPred run.
| Output | Contents |
|---|---|
pSiteRes.tsv |
Main scoring/localization result; schema depends on the workflow and completion stage. |
pSiteRes-filtered.tsv |
FLR-filtered localization results when filtering is enabled and completes. |
Time.txt |
Timing records for processing stages. A completed basic run includes Full Process. |
Completed site-scoring examples contain spec_name, seq, mod, and pSite2_score. The last field is a comma-separated list of site scores in peptide sequence order.
Completed modification-localization examples contain the following columns:
| Column(s) | Description |
|---|---|
spec_name, seq |
Spectrum identifier and peptide sequence. |
scoremodsite_num |
Number of target modification sites. |
ori_mod, mod |
Original and selected modification assignments. |
ori_pepScore, pepScore |
Peptide scores for the original and selected assignments. |
ori_pSite2siteScore, pSite2siteScore |
Site scores for the original and selected assignments. |
ori_pSite2Score, pSite2Score |
Localization scores for the original and selected assignments. |
Preserve these original column names when parsing results. An individual score is not the same field as the dataset-level FLR filtering threshold.
- The parameter file or data cannot be found: replace the original author's absolute paths in the template with your own. Check
Input,MGFPath,OutputFolderPath, and all paths for enabled optional workflows. AutoCustomInput.tsvcannot be created: create the configured output directory first and confirm that it is writable.- The executable is only a few hundred bytes or contains LFS pointer text: run
git lfs pullfrom the clone and resolve any download/authentication error before launching it. - The process waits at startup or exit: enter the parameter-file path at the first prompt and press Enter at the final prompt. A
--helpargument does not bypass interactive input in this build. - Results are missing or still contain candidate-feature columns: inspect the console error and
Time.txt; candidate generation alone does not mean scoring completed. The program may catch an error and still reach its final exit prompt, so an exit code alone is insufficient. - pPred fails to load dependencies or run predictions: check the complete
pPred-20241111package, matching pFind/raw-data inputs, model paths, and the reported CUDA/DLL error. UseispPred=falsewhen following the basic non-pPred example.
For reproducible reports, include the executable used, your parameter file with private paths redacted if necessary, the console error, and a small representative input when opening an issue.