Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: IEDB
  • License: other
  • Language: Python
  • Default Branch: master
  • Size: 72 MB
Statistics
  • Stars: 21
  • Watchers: 3
  • Forks: 1
  • Open Issues: 1
  • Releases: 2
Created almost 6 years ago · Last pushed 10 months ago
Metadata Files
Readme License

README.md


Unit Tests

Author: Daniel Marrama

Peptide search against a reference proteome, or sets of proteins, with residue subtitutions.

Two step process: preprocessing and matching.

Preprocessed data is stored in a SQLite or pickle format and only has to be performed once.

As a competition to improve tool performance, we created a benchmarking framework with instructions here.

Requirements

Installation

bash pip install pepmatch

Inputs

Preprocessor

proteome - Path to proteome file to search against.\ k - k-mer size to break up proteome into.\ preprocessed_format - SQLite ("sqlite") or "pickle".\ header_id - Default=False, extracts the full FASTA header ID for protein identification. Typically in this format: >XX|YYYYYY|ZZZZZZZ from UniProt and PEPMatch will extract YYYYYY. Pass -H flag in terminal to take the full header ID. ```preprocessedfilespath- (optional) Directory where you want preprocessed files to go. Default is current directory.\ genepriority_proteome- (optional) Subset ofproteome``` with prioritized protein IDs.\

Matcher

query - Query of peptides to search either in .fasta file or as a Python list.\ proteome_file - Name of preprocessed proteome to search against.\ max_mismatches - Maximum number of mismatches (substitutions) for query.\ k - (optional) k-mer size of the preprocessed proteome. If no k is selected, then a best k will be calculated and the proteome will be preprocessed\ preprocessed_files_path - (optional) Directory where preprocessed files are. Default is current directory.\ best_match - (optional) Returns only one match per query peptide. It will output the best match.\ output_format - (optional) Outputs results into a file (CSV, XLSX, JSON, HTML) or just as a dataframe.\ output_name - (optional) Specify name of file for output. Leaving blank will generate a name.

Note: For now, due to performance, SQLite is used for exact matching and pickle is used for mismatching.

Note: PEPMatch can also search for discontinuous epitopes in the residue:index format. Example:

"R377, Q408, Q432, H433, F436, V441, S442, S464, K467, K489, I491, S492, N497"

Command Line Example

```bash

exact matching example

pepmatch-preprocess -p human.fasta -k 5 -f sql pepmatch-match -q peptides.fasta -p human.fasta -m 0 -k 5

mismatching example

pepmatch-preprocess -p human.fasta -k 3 -f pickle pepmatch-match -q neoepitopes.fasta -p human.fasta -m 3 -k 3 ```

Exact Matching Example

```python from pepmatch import Preprocessor, Matcher

Preprocessor('proteomes/human.fasta').sql_proteome(k = 5)

Matcher( # 0 mismatches, k = 5 'queries/mhc-ligands-test.fasta', 'proteomes/human.fasta', 0, 5 ).match() ```

Mismatching Example

```python from pepmatch import Preprocessor, Matcher

Preprocessor('proteomes/human.fasta').pickle_proteome(k = 3)

Matcher( # 3 mismatches, k = 3 'queries/neoepitopes-test.fasta', 'proteomes/human.fasta', 3, 3 ).match() ```

Parallel Matcher Example

To run a job on multiple cores, use the ParallelMatcher class. The n_jobs parameter specifies the number of cores to use.

```python from pepmatch import Preprocessor, ParallelMatcher

Preprocessor('proteomes/betacoronaviruses.fasta').pickle_proteome(k = 3)

ParallelMatcher( query='queries/coronavirus-test.fasta', proteomefile='proteomes/betacoronaviruses.fasta', maxmismatches=3, k=3, n_jobs=2 ).match() ```

Best Match Example

python from pepmatch import Matcher Matcher( 'queries/milk-peptides-test.fasta', 'proteomes/human.fasta', best_match=True ).match()

The best match parameter without k or mismatch inputs will produce the best match for each peptide in the query, meaning the match with the least number of mismatches, the best protein existence level, and if the match exists in the gene priority proteome. No preprocessing beforehand is required, as the Matcher class will do this for you to find the best match.

Outputs

As mentioned above, outputs can be specified with the output_format parameter in the Matcher class. The following formats are allowed: dataframe, tsv, csv, xlsx, json, and html.

If specifying dataframe, the match() method will return a pandas dataframe which can be stored as a variable:

python df = Matcher( 'queries/neoepitopes-test.fasta', 'proteomes/human.fasta', 3, 3, output_format='dataframe' ).match()

Citation

If you use PEPMatch in your research, please cite the following paper:

Marrama D, Chronister WD, Westernberg L, et al. PEPMatch: a tool to identify short peptide sequence matches in large sets of proteins. BMC Bioinformatics. 2023;24(1):485. Published 2023 Dec 18. doi:10.1186/s12859-023-05606-4

Owner

  • Name: Immune Epitope Database and Analysis Resource
  • Login: IEDB
  • Kind: organization
  • Email: help@iedb.org
  • Location: La Jolla, CA

Public code repository for the IEDB and IEDB-AR

GitHub Events

Total
  • Issues event: 10
  • Watch event: 4
  • Issue comment event: 12
  • Push event: 17
  • Create event: 4
Last Year
  • Issues event: 10
  • Watch event: 4
  • Issue comment event: 12
  • Push event: 17
  • Create event: 4

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 322
  • Total Committers: 4
  • Avg Commits per committer: 80.5
  • Development Distribution Score (DDS): 0.224
Past Year
  • Commits: 153
  • Committers: 1
  • Avg Commits per committer: 153.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Daniel Marrama d****a@l****g 250
jgbaum j****m@g****m 69
dmarrama d****a@g****m 2
Jason Greenbaum j****m@l****g 1
Committer Domains (Top 20 + Academic)
lji.org: 2

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 20
  • Total pull requests: 1
  • Average time to close issues: 6 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 9
  • Total pull request authors: 1
  • Average comments per issue: 1.35
  • Average comments per pull request: 2.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 0
  • Average time to close issues: 27 days
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 2.25
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • danielmarrama (8)
  • dmx2 (3)
  • HA1-biocopy (3)
  • danpf (1)
  • Hayfabm (1)
  • ravinpoudel (1)
  • peomelo (1)
  • InfiniGeorges (1)
  • patrick-willems (1)
Pull Request Authors
  • gould-arthur (2)
Top Labels
Issue Labels
bug (4) enhancement (3) good first issue (2)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 264 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 55
  • Total maintainers: 1
pypi.org: pepmatch

Search tool for peptides and epitopes within a proteome, while considering potential residue substitutions.

  • Versions: 55
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 264 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 14.8%
Stargazers count: 18.5%
Average: 19.0%
Dependent repos count: 21.6%
Forks count: 29.8%
Maintainers (1)
Last synced: 10 months ago

Dependencies

requirements.txt pypi
  • biopython >=1.78
  • numpy >=1.21.0
  • openpyxl >=3.0.0
  • pandas >=1.3.0
  • python-Levenshtein >=0.12.1
  • scipy >=1.6.0
setup.py pypi
  • biopython >=1.5
  • numpy >=1.18
  • openpyxl >=3.0.0
  • pandas >=1.1
  • python-Levenshtein >=0.11