A command-line tool for microbiologists and biochemists working in GMP/pharma environments. Compute protein concentrations using the Beer-Lambert law from A280 absorbance readings, and predict molar extinction coefficients from amino acid sequences (Edelhoch method). Supports single-sample calculations and batch CSV processing.
- Molar Extinction Coefficient Prediction – from amino acid sequence (FASTA or raw string) using Trp/Tyr/Cys counts
- Single Concentration Calculation – provide absorbance, extinction coefficient (or sequence), dilution, and path length
- Batch Processing – input a CSV with sample info; output a CSV with concentrations appended
- GMP-Ready – clean error handling, clear output, consistent formatting suitable for regulated environments
- Cross-Platform – works anywhere Python runs
git clone https://github.com/collinsamatu/a280-protein-calc.git
cd a280-protein-calc
pip install -r requirements.txt # only pytest needed for testingNo additional dependencies required for runtime.
All commands are invoked via a280-calc. Run python main.py or set up an alias.
# from a FASTA file
python main.py extinction --file protein.fasta
# from a raw sequence
python main.py extinction --seq "WWYCDEFGH"Output:
11235.00 # M⁻¹cm⁻¹
# using a precomputed extinction coefficient
python main.py conc --absorbance 0.45 --extcoeff 12345 --dilution 10 --pathlength 1.0
# using a sequence to compute extinction coefficient first
python main.py conc --absorbance 0.45 --file protein.fasta --dilution 10Output:
0.000365 M
The input CSV must have at least columns: Sample, A280, ExtCoeff. Optional: DilutionFactor (default 1), PathLength (default 1.0).
python main.py batch --input samples.csv --output results.csvInput samples.csv:
Sample,A280,ExtCoeff,DilutionFactor,PathLength
BSA,0.52,43824,5,1.0
Lysozyme,0.38,38000,2,0.5
Output results.csv:
Sample,A280,ExtCoeff,DilutionFactor,PathLength,Concentration
BSA,0.52,43824,5,1.0,0.000059
Lysozyme,0.38,38000,2,0.5,0.000040
MIT License - see LICENSE file.
Author: Collins Amatu Gorgerat, 2026