ProteoDisco
Workflows
Standard Workflow
Generate a customized protein database incorporating genomic variants (SNVs, MNVs, InDels) from VCF/MAF files.
library(ProteoDisco)
# Generate the ProteoDiscography
ProteoDiscography.hg19 <- ProteoDisco::generateProteoDiscography(
TxDb = TxDb.Hsapiens.UCSC.hg19.knownGene::TxDb.Hsapiens.UCSC.hg19.knownGene,
genomeSeqs = BSgenome.Hsapiens.UCSC.hg19::BSgenome.Hsapiens.UCSC.hg19
)
# Import genomic variants
ProteoDiscography.hg19 <- ProteoDisco::importGenomicVariants(
ProteoDiscography = ProteoDiscography.hg19,
files = system.file('extdata', 'validationSet_hg19.vcf', package = 'ProteoDisco'),
samplenames = 'Validation Set (GRCh37)',
threads = 1,
performAnchorCheck = FALSE
)
# Incorporate genomic variants into transcripts
ProteoDiscography.hg19 <- ProteoDisco::incorporateGenomicVariants(
ProteoDiscography = ProteoDiscography.hg19,
aggregateSamples = FALSE,
aggregateWithinExon = TRUE,
aggregateWithinTranscript = TRUE,
ignoreOverlappingMutations = TRUE,
threads = 1
)
# Export to FASTA
ProteoDisco::exportProteoDiscography(
ProteoDiscography = ProteoDiscography.hg19,
outFile = 'example.fasta',
aggregateSamples = TRUE
)
Note: Inputs are a TxDb object, genome sequences, and VCF/MAF files; the output is a customized protein database in FASTA format.
Splice Junctions Workflow
Generate a customized protein database incorporating alternative splicing events from BED or custom splice junction files.
library(ProteoDisco)
# Initialize ProteoDiscography
ProteoDiscography.hg19 <- ProteoDisco::generateProteoDiscography(
TxDb = TxDb.Hsapiens.UCSC.hg19.knownGene::TxDb.Hsapiens.UCSC.hg19.knownGene,
genomeSeqs = BSgenome.Hsapiens.UCSC.hg19::BSgenome.Hsapiens.UCSC.hg19
)
# Import splice junctions
ProteoDiscography.hg19 <- ProteoDisco::importSpliceJunctions(
ProteoDiscography = ProteoDiscography.hg19,
inputSpliceJunctions = system.file('extdata', 'spliceJunctions_pyQUILTS_chr22.bed', package = 'ProteoDisco'),
samples = c('pyQUILTS'),
isTopHat = TRUE,
aggregateSamples = FALSE,
removeExisting = TRUE
)
# Generate junction models
ProteoDiscography.hg19 <- ProteoDisco::generateJunctionModels(
ProteoDiscography = ProteoDiscography.hg19,
maxDistance = 150,
skipCanonical = TRUE,
threads = 1
)
Note: Inputs are splice junction BED files or custom tables; the output is putative splice-isoform fragments added to the ProteoDiscography.
Manual Transcripts Workflow
Import manually-curated or long-read transcript sequences to check for proteotypic peptides and export to a customized protein database.
library(ProteoDisco)
# Initialize ProteoDiscography
ProteoDiscography.hg19 <- ProteoDisco::generateProteoDiscography(
TxDb = TxDb.Hsapiens.UCSC.hg19.knownGene::TxDb.Hsapiens.UCSC.hg19.knownGene,
genomeSeqs = BSgenome.Hsapiens.UCSC.hg19::BSgenome.Hsapiens.UCSC.hg19
)
# Create manual sequences DataFrame
testSeq1 <- Biostrings::DNAString('ATGACCGCGTCCTCCTCCAGCGACTATGGACAGACTTCCAAGATGAGCCCACGCGTCCCTCAGCAGGATTGGCTGTCTCAACCCCCAGCCAGGGTCACCATCAAAATGGAATGTAACCCTAGCCAGGTGAATGGCTCAAGGAACTCTCCTGATGAATGCAGTGTGGCCAAAGGCGGGAAGATGGTGGGCAGCCCAGACACCGTTGGGATGAACTACGGCAGCTACATGGAGGAGAAGCACATGCCACCCCCAAACATGACCACGAACGAGCGCAGAGTTATCGTGCCAGCAGATCCTACGCTATGGAGTACAGACCATGTGCGGCAGTGGCTGGAGTGGGCGGTGAAAGAATATGGCCTTCCAGACGTCAACATCTTGTTATTCCAGAACATCGATGGGAAGGAACTGTGCAAGATGACCAAGGACGACTTCCAGAGGCTCACCCCCAGCTACAACGCCGACATCCTTCTCTCACATCTCCACTACCTCAGAGAGACTCCTCTTCCACATTTGACTTCAGATGATGTTGATAAAGCCTTACAAAACTCTCCACGGTTAATGCATGCTAGAAACACAGGGGGTGCAGCTTTTATTTTCCCAAATACTTCAGTATATCCTGAAGCTACGCAAAGAATTACAACTAGGCCAGTCTCTTACAGATAA')
manualSeq <- S4Vectors::DataFrame(
sample = 'Validation Set (GRCh37)',
identifier = 'TMPRSS2-ERG prostate cancer specific isoform 1',
gene = 'TMPRSS2-ERG',
Tx.SequenceMut = Biostrings::DNAStringSet(base::list(testSeq1))
)
# Import manual transcripts
ProteoDiscography.hg19 <- ProteoDisco::importTranscriptSequences(
ProteoDiscography.hg19,
transcripts = manualSeq,
removeExisting = TRUE
)
Note: Inputs are a DataFrame containing manually-curated or long-read transcript sequences; the output is imported transcript sequences added to the ProteoDiscography.
When to Use
- To generate customized protein databases (FASTA) incorporating genomic variants (SNVs, MNVs, InDels) from VCF or MAF files using
importGenomicVariants()andincorporateGenomicVariants(). - To model alternative splicing events and novel exon-exon junctions from BED or custom splice junction files using
importSpliceJunctions()andgenerateJunctionModels(). - To integrate manually-curated or long-read transcript sequences (e.g., from Nanopore sequencing) using
importTranscriptSequences(). - To identify unique proteotypic peptides by comparing cleaved variant sequences against wild-type databases using
checkProteotypicFragments().
When NOT to Use
- For general mass spectrometry data preprocessing, normalization, or statistical analysis of protein abundance; use
MSnbaseorMSstatsinstead. - For general peptide-spectrum matching or raw spectra visualization; use
Spectrainstead.
Data Requirements
- Reference genome sequences (e.g.,
BSgenomeobject or FASTA file read viareadDNAStringSet()). - Transcript annotations (e.g.,
TxDbobject containing 'EXONID', 'TXID', and 'GENEID' columns, or GTF/GFF file parsed viamakeTxDbFromGFF()). - Genomic variants in VCF or MAF format, or as
VRangesobjects. - Splice junctions in BED, TopHat, or custom tabular format.
Key Parameters
- performAnchorCheck (
TRUE): Validates whether reference alleles in VCF/MAF correspond to nucleotides on the reference genome. - ignoreNonMatch (
FALSE): IfTRUE, removes non-matching reference anchor records instead of throwing an error. - aggregateSamples (
FALSE): Determines whether to aggregate samples or generate mutant transcripts per sample. - aggregateWithinExon (
TRUE): IfTRUE, multiple mutations within the same exon (CDS) are placed on the same mutant CDS sequence. - aggregateWithinTranscript (
TRUE): IfTRUE, aggregates multiple mutant exons within the same transcript. - ignoreOverlappingMutations (
TRUE): IfTRUE, retains only the first of overlapping mutations on the same coding position. - maxDistance (
150): Maximum distance from a known exon boundary before introducing a novel exon in junction modeling. - skipCanonical (
TRUE): IfTRUE, skips known canonical exon-exon junctions in junction modeling.
Best Practices
- Perform a sanity check on reference anchors during variant import to ensure concordance between the reference genome and the variant caller.
- Use
summary()orprint()on theProteoDiscographyobject to inspect imported variants, mutational types, and sample counts. - Convert transcript identifiers (e.g., ENTREZ IDs) to gene symbols using
AnnotationDbi::select()andorg.Hs.eg.dbto ease downstream interpretation. - Use
clearLoggers()andregisterLogger()fromParallelLoggerto configure logging thresholds (e.g., 'TRACE' or 'INFO') for detailed execution tracking.
Common Pitfalls
- Mismatches between the reference genome used for variant calling and the one supplied to
generateProteoDiscography()will cause anchor check failures. Fix by ensuring identical reference versions or settingperformAnchorCheck = FALSE(not recommended). - Missing 'EXONID', 'TXID', or 'GENEID' columns in the custom
TxDbobject. Fix by using standard Bioconductor annotation packages or correctly formatted GTF files withmakeTxDbFromGFF(). - Overlapping mutations on the same coding position causing errors. Fix by setting
ignoreOverlappingMutations = TRUEto retain only the first mutation.
Alternatives
MSstatsfor statistical relative quantification of proteins and peptides.MSnbasefor mass spectrometry data container and processing.Spectrafor low-level mass spectrometry raw data representation and handling.
Citations
- van Riet et al. (2026), ProteoDisco: Generation of customized protein databases.
References
- Homepage: bioconductor.org/packages/proteodisco
- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/proteodisco/inst/doc/Overview_of_Proteodisco.html