A lightweight C++ implementation of the ExPASy ProtParam web tool for analyzing protein sequences. This project calculates several important physicochemical properties of proteins using only their amino acid sequence.
ProtParam is a popular bioinformatics tool used to estimate various biochemical properties of proteins. This project recreates some of its core functionalities in C++, allowing offline analysis without requiring access to the ExPASy web server.
- Molecular Weight calculation
- Amino Acid Composition
- Count of Acidic and Basic Amino Acids
- Theoretical Isoelectric Point (pI) (simplified implementation)
- Extinction Coefficient estimation
- Fast execution with minimal dependencies
- Console-based interface
| Property | Status |
|---|---|
| Molecular Weight | ✅ |
| Amino Acid Composition | ✅ |
| Acidic/Basic Residue Count | ✅ |
| Theoretical pI | ✅ (Simplified) |
| Extinction Coefficient | ✅ |
| Instability Index | ❌ |
| Aliphatic Index | ❌ |
| GRAVY | ❌ |
| Estimated Half-life | ❌ |
Protparam-project/
│
├── main.cpp # Main program
├── Protparam.cpp # Property calculation functions
└── README.md
- C++11 or newer
- GCC / Clang / MSVC
Using g++:
g++ main.cpp Protparam.cpp -o protparamor
g++ *.cpp -o protparamRun the executable:
./protparamExample input:
Enter the protein sequence:
MKWVTFISLLFLFSSAYSRGVFRRDTHKSEIAHRFKDLGE
Example output:
Molecular Weight: 5123.54 Da
Amino Acid Composition
A: 2
D: 1
F: 5
...
Number of acidic amino acids: 3
Number of basic amino acids: 8
Theoretical pI: 8.67
Extinction Coefficient: 12480
- Amino acid molecular weight lookup table
- Frequency counting using
std::unordered_map - Simplified pKa-based pI estimation
- Extinction coefficient calculation based on:
- Tryptophan (W)
- Tyrosine (Y)
- Cysteine (C)
This project is intended for educational and learning purposes.
Current limitations include:
- Simplified pI calculation
- No support for FASTA files
- No batch sequence processing
- Missing Instability Index
- Missing Aliphatic Index
- Missing GRAVY calculation
- No graphical interface
- Add FASTA file support
- Implement the complete ProtParam algorithm
- Add Instability Index
- Add Aliphatic Index
- Add GRAVY calculation
- Improve theoretical pI accuracy
- Export results to CSV
- Unit testing
- CMake support
This project is an independent implementation inspired by the ExPASy ProtParam web application. It is intended for educational and research purposes only and is not affiliated with or endorsed by ExPASy.
Praveen Gautam
GitHub: https://github.com/Praveengautam759
This project is released under the MIT License.