pepmatch
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
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
Metadata Files
README.md
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
- Website: www.iedb.org
- Repositories: 15
- Profile: https://github.com/IEDB
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
Top Committers
| Name | 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)
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
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.
- Homepage: https://github.com/IEDB/PEPMatch
- Documentation: https://pepmatch.readthedocs.io/
- License: other
-
Latest release: 1.3.1
published 11 months ago
Rankings
Maintainers (1)
Dependencies
- biopython >=1.78
- numpy >=1.21.0
- openpyxl >=3.0.0
- pandas >=1.3.0
- python-Levenshtein >=0.12.1
- scipy >=1.6.0
- biopython >=1.5
- numpy >=1.18
- openpyxl >=3.0.0
- pandas >=1.1
- python-Levenshtein >=0.11