Skip to content

Novel peptide output

ATPs edited this page Jul 17, 2026 · 1 revision

Novel peptide output (--peptide)

--peptide reports digestion products from altered proteins that are absent from the complete canonical proteome under the same digestion profile. A peptide is therefore not reported merely because it differs from the canonical version of the same protein: it must also be absent from the canonical peptide SQLite index built from all proteins in the annotation SQLite.

Peptide mode is disabled by default. It adds peptide files to the usual PrecisionProDB outputs and does not change the protein or mutation-annotation files.

Requirements and quick start

Peptide mode requires SQLite annotation mode. Provide a real annotation SQLite path with -S/--sqlite, or omit -S and let PrecisionProDB create <outprefix>.sqlite. --sqlite NONE is not supported with --peptide.

The following source-checkout example uses the bundled GENCODE files and celline.vcf.gz. Run it from the PrecisionProDB repository root.

# Build the reusable annotation SQLite once.
python src/precisionprodb/buildSqlite.py \
  -S examples/GENCODE/GENCODE.peptide.sqlite \
  -g examples/GENCODE/GENCODE.genome.fa.gz \
  -p examples/GENCODE/GENCODE.protein.fa.gz \
  -f examples/GENCODE/GENCODE.gtf.gz \
  -a GENCODE_GTF \
  -o examples/GENCODE/GENCODE.peptide.build \
  -t 2

# Enable peptide output. The missing canonical peptide index is built automatically.
python src/precisionprodb/PrecisionProDB.py \
  -m examples/celline.vcf.gz \
  -S examples/GENCODE/GENCODE.peptide.sqlite \
  -o examples/GENCODE/GENCODE.peptide \
  -a GENCODE_GTF \
  --peptide \
  -t 2

With the default profile, the automatic index is created beside the annotation SQLite as GENCODE.peptide.trypsin_mc2_len7-35_full_im-both_exact.peptides.sqlite. Later runs that use the same annotation SQLite and profile reuse this index.

Reusable canonical peptide indexes

Use buildPeptideSqlite after installing the package, or run python src/precisionprodb/peptideSqlite.py from a source checkout, to build an index explicitly. This is useful when several samples share one annotation SQLite.

python src/precisionprodb/peptideSqlite.py \
  -S GENCODE.sqlite \
  -o GENCODE.trypsin_mc2_len7-35.peptides.sqlite \
  --enzyme Trypsin \
  --missed-cleavages 2 \
  --min-peptide-length 7 \
  --max-peptide-length 35

python src/precisionprodb/PrecisionProDB.py \
  -m variants.vcf.gz \
  -S GENCODE.sqlite \
  -o sample \
  -a GENCODE_GTF \
  --peptide \
  --peptide-sqlite GENCODE.trypsin_mc2_len7-35.peptides.sqlite

The index profile must exactly match the peptide options used for the analysis. The profile includes --peptide-enzyme, --peptide-missed-cleavages, --peptide-min-length, --peptide-max-length, --peptide-specificity, --peptide-initiator-methionine, and --peptide-isobaric. Their defaults are Trypsin, 2, 7, 35, full, both, and exact I/L comparison, respectively. --peptide-isobaric normalizes I to L before both comparison and output.

An existing index is validated against both the requested profile and its source annotation SQLite. If either differs, PrecisionProDB stops instead of mixing incompatible peptide sets. Add --rebuild-peptide-sqlite to a peptide-mode run to atomically replace the selected index.

To exclude peptides found in additional known proteins, provide one or more --known-fasta files while building an explicit index:

buildPeptideSqlite -S GENCODE.sqlite -o GENCODE.with-known.peptides.sqlite \
  --known-fasta contaminants.fa --known-fasta additional-proteins.fa

Each additional FASTA is digested with the same profile and contributes its peptides to the canonical membership index.

Outputs

Peptide mode adds these files to the selected output prefix:

  • PREFIX.pergeno.peptide_novel.tsv contains one row for every peptide-to-altered-protein mapping.
  • PREFIX.pergeno.peptide_novel.fa contains each peptide sequence once.

The TSV header is:

peptide_id	peptide_sequence	protein_id_fasta	protein_id	individual	seqname	peptide_start_alt	peptide_end_alt	variant_AA	insertion_AA	deletion_AA	frameChange	stopGain	AA_stopGain	stopLoss	stopLoss_pos	enzyme	max_missed_cleavages	min_peptide_length	max_peptide_length	specificity	initiator_methionine	isobaric	peptide_config_hash

For the GENCODE example above, one mapping is:

PPDBpep_000978	VSELTFSLSPDDLGTSSIMK	ENSP00000011700.6|ENST00000011700.10|ENSG00000048707.15|OTTHUMG00000013155|OTTHUMT00000354898.1|VPS13D-201|VPS13D|3210__1	ENST00000011700.10	HEK293__2	chr1	328	347	E328V(chr1-12279562-A-T)							Trypsin	2	7	35	full	both	False	953ded04677ee128a1b1c5fe2311740c3be823e82c453ef9401067f06497c7ad
  • peptide_id identifies the nonredundant peptide in both output files. IDs are assigned deterministically after sorting peptide sequences.
  • peptide_sequence is the altered peptide sequence used for canonical-index comparison.
  • protein_id_fasta, protein_id, individual, and seqname identify the altered protein, transcript, sample or allele, and chromosome.
  • peptide_start_alt and peptide_end_alt are 1-based inclusive coordinates in the altered protein sequence.
  • variant_AA through stopLoss_pos retain the altered-protein mutation annotations.
  • The remaining columns record the complete digestion profile and its peptide_config_hash.

The FASTA is nonredundant even when a peptide maps to more than one altered protein. For example:

>PPDBpep_000001|n_mappings=2
AAAQGHLLAVQLLVTQGAEVDAR

n_mappings is the number of corresponding rows in the TSV. The peptide IDs and FASTA order are deterministic for a given peptide set.

Clone this wiki locally