Welcome to the Protein Contaminants Repository of the Max Perutz Labs MS Facility. In mass spectrometry experiments, it's crucial to account for potential contaminants that may interfere with accurate protein identification. This repository is dedicated to managing and versioning our custom FASTA contaminants file that we use in our facility service.
If you're looking for a previous version of the contaminants file, you can find a downloadable version in the GitHub Releases section.
Note
All legacy versions not tracked on GitHub have been bundled into the Release 2023_03. For any version history prior to the GitHub migration, please refer to that specific release.
To ensure compatibility with a wide range of bioinformatics software, the contaminants FASTA file should only contain UniProtKB entries or entries have to adhere to the UniProtKB format, which is outlined in detail on uniprot.org.
The UniProtKB format is specified as follows:
>db|UniqueIdentifier|EntryName ProteinName OS=OrganismName OX=OrganismIdentifier GN=GeneName PE=ProteinExistence SV=SequenceVersion
For custom protein entries not present in the UniProt database, such as protein tags, engineered proteins, or synthetic constructs, a specific convention is followed. The db field is set as "xx," OrganismName is designated as "Synthetic," and OrganismIdentifier is specified as "0000." Moreover, special care should be taken to ensure that the UniqueIdentifier does not overlap with any existing UniProt Accession number.
- contaminants_YYYY_NN.fasta: The main contaminants file used in current projects of the MS facility. The file is named according to the convention
contaminants_YEAR_NUMBER.fasta, where YEAR represents the current year, and NUMBER is a running index with two digits reset to 1 each year. The UniProtUniqueIdentifiersof FASTA entries are prefixed with contam_ to indicate that they originate from a contaminants FASTA file.- For example,
>sp|P13646|K1C13_HUMANbecomes>sp|contam_P13646|K1C13_HUMAN.
- For example,
- contaminants_notag_YYYY_NN.fasta: Identical to the main contaminants file, with the sole distinction that the
UniqueIdentifierof each entry is not prefixed with the contam_ tag.
All updates to the contaminants FASTA files should be made on the wip (work-in-progress) branch. These changes are only merged into the main branch when a new version is ready to be released. File names are updated to reflect the new release version in the main branch before releasing.
To update the contaminants FASTA file with new entries, follow these steps:
-
Add entries: Add your new protein entries to the
contaminants_notag_YYYY_NN.fastafile on thewipbranch. Entries must have a valid UniProtKB header format and preferably be sourced from SwissProt or TrEMBL. -
Validate and format: Run the validation and formatting script:
uv run scripts/validate_and_format_fasta.py contaminants_notag_YYYY_NN.fasta
This script validates that all headers follow the UniProtKB format, checks for duplicate identifiers and non-ASCII characters, and reformats sequences to have line breaks after 60 characters. If errors are detected, fix them and re-run the script.
-
Generate the tagged version: Once the notag file is validated, generate the version with contaminant tags by running:
uv run scripts/add_contam_tag_to_fasta.py contaminants_notag_YYYY_NN.fasta contaminants_YYYY_NN.fasta
-
Changelog: Add the changes to the CHANGELOG.md file, under a new
## Pending releasesection. -
Release: When ready to release, merge the
wipbranch intomain, update the file names to the new version number, and create a release with the updated files.
For a detailed list of changes made to the contaminants FASTA file in each release, please refer to the CHANGELOG.md file.
If you have any questions or inquiries regarding this repository, please feel free to reach out to Markus Hartl at the Mass Spectrometry Facility of the Max Perutz Labs.
This repository is licensed under the MIT License