This repository contains a Vue web interface and the Rust pep_selector engine for designing targeted LC-MS peptide panels for bacterial and fungal identification.
The application uses local, versioned indexes built from UniProt reference proteomes, complete UniProtKB, and an NCBI taxonomy snapshot. It does not send taxa or peptide sequences to an external analysis service.
The interface has one workflow: Design for a taxon. Search the local NCBI taxonomy by scientific name, ID, or rank, then design a species or broader-clade panel using the indexed Rust engine.
On first load, the main area shows the requested 100-assay panel as a preloaded example of the available output and validation views. It is not a separate analysis mode. Selecting a taxon replaces the example with the custom-design workspace.
The dashboard exposes the latest fixed-budget panel for:
- 10 requested species, with three strict peptide markers per species;
- 9 requested clades, with the remaining assays allocated to broad, repeated reference-proteome support;
- 100 distinct peptide assays in total;
- complete-UniProtKB outside-taxon exclusion; and
- lineage-aware hold-out validation where enough independent branches exist;
- generic HCD analytical annotations for every exact sequence at 2+ and 3+: DeepLC retention coordinates, Pfly detectability probabilities, MS2PIP transitions, and a downloadable MSP library.
The source files are under:
pep_selector/results/requested_hierarchical_panel_2026_02_adaptive_v2/final_100_assays
The hold-out results and presentation figures are under:
pep_selector/results/requested_holdout_validation_2026_02_v1
The analytical prediction profile and reproducible runner are documented in pep_selector/docs/ANALYTICAL_PREDICTIONS.md.
Browse any taxon with descendant reference proteomes in the local index, or enter its NCBI taxon ID directly. The Rust service then:
- finds descendant reference proteomes using the local NCBI taxonomy;
- digests phylogenetically distributed source proteomes;
- screens candidates across all indexed reference proteomes;
- rejects candidates with disallowed occurrences outside the target in complete UniProtKB;
- greedily selects complementary peptides to maximize repeated per-reference support; and
- adaptively adds under-covered reference proteomes as new candidate sources; and
- runs the same generic HCD analytical prediction profile used by the example panel.
The result uses the same tabbed interface as the example and includes selected peptides, per-reference marker counts, adaptive-discovery history, DeepLC retention predictions, Pfly detectability, clickable MS2PIP spectra, and downloadable TSV/MSP files.
The Rust server serves both the API and the compiled Vue application.
npm install
npm run build
cargo run --release --manifest-path pep_selector/Cargo.toml --bin pep_selector_serverOn Windows the server automatically uses
C:\pep_selector_pred_env\Scripts\python.exe when it exists. Otherwise pass
--prediction-python <path> or set PEP_SELECTOR_PREDICTION_PYTHON; setup is
described in the analytical-prediction documentation linked above.
Open http://127.0.0.1:8787.
For frontend development, run the API and Vite separately:
npm run dev:api
npm run devThe Vite development server proxies /api to http://127.0.0.1:8787.
npm run build
cargo test --manifest-path pep_selector/Cargo.toml
cargo clippy --manifest-path pep_selector/Cargo.toml --all-targets -- -D warningsThe software produces computational candidates, not a validated clinical or release assay. Database specificity does not establish LC-MS detectability. Transition selection, retention time, matrix interference, detection limits, reproducibility, and taxon-calling thresholds require empirical validation. Lineage hold-out testing estimates target-side sequence generalization; temporal validation against future database releases is needed to estimate database-drift risk.
More detailed Rust usage and data provenance are documented in pep_selector/README.md.