peptides.py 
Physicochemical properties, indices and descriptors for amino-acid sequences.
🗺️ Overview
peptides.py is a pure-Python package to compute common descriptors for
protein sequences. It started as a port of Peptides, the R package written by
Daniel Osorio, but now also provides
some additional features from EMBOSS,
ExPASy Protein Identification and Analysis Tools, and Rcpi.
This library has no external dependency and is available for all modern Python versions (3.6+).
📋 Features
A non-exhaustive list of available features:
- Peptide statistics: amino acid counts and frequencies.
- QSAR descriptors: BLOSUM indices, Cruciani properties, FASGAI vectors, Kidera factors, Atchley factors, MS-WHIM scores, PCP descriptors, ProtFP descriptors, Sneath vectors, ST-scales, T-scales, VHSE-scales, Z-scales.
- Sequence profiles: hydrophobicity, hydrophobic moment, membrane position.
- Physicochemical properties: aliphatic index, instability index, theoretical net charge, isoelectric point, molecular weight (with isotope labelling support).
- Biological properties: structural class prediction.
If this library is missing a useful statistic or descriptor, feel free to reach out and open a feature request on the issue tracker of the project repository.
🧊 Vectorization
Most of the descriptors for a protein sequence are simple averages of values
taken in a lookup table, so computing them can be done in a vectorized manner.
If numpy can be imported, relevant functions
(like numpy.sum or numpy.take) will be used, otherwise a fallback
implementation using array.array
from the standard library is available.
🔧 Installing
Install the peptides package directly from PyPi
which hosts universal wheels that can be installed with pip:
$ pip install peptides
Otherwise, peptides.py is also available as a Bioconda
package:
$ conda install -c bioconda peptides
📖 Documentation
A complete API reference
can be found in the online documentation,
or directly from the command line using
pydoc:
$ pydoc peptides.Peptide
💡 Example
Start by creating a Peptide object from a protein sequence:
>>> import peptides
>>> peptide = peptides.Peptide("MLKKRFLGALAVATLLTLSFGTPVMAQSGSAVFTNEGVTPFAISYPGGGT")
Then use the appropriate methods to compute the descriptors you want:
>>> peptide.aliphatic_index()
89.8...
>>> peptide.boman()
-0.2097...
>>> peptide.charge(pH=7.4)
1.99199...
>>> peptide.isoelectric_point()
10.2436...
Methods that return more than one scalar value (for instance, Peptide.blosum_indices)
will return a dedicated named tuple:
>>> peptide.ms_whim_scores()
MSWHIMScores(mswhim1=-0.436399..., mswhim2=0.4916..., mswhim3=-0.49200...)
Use the Peptide.descriptors method to get a dictionary with every available
descriptor. This makes it very easy to create a pandas.DataFrame with
descriptors for several protein sequences:
>>> seqs = ["SDKEVDEVDAALSDLEITLE", "ARQQNLFINFCLILIFLLLI", "EGVNDNECEGFFSAR"]
>>> df = pandas.DataFrame([ peptides.Peptide(s).descriptors() for s in seqs ])
>>> df
BLOSUM1 BLOSUM2 BLOSUM3 BLOSUM4 ... Z2 Z3 Z4 Z5
0 0.367000 -0.436000 -0.239 0.014500 ... -0.711000 -0.104500 -1.486500 0.429500
1 -0.697500 -0.372500 -0.493 0.157000 ... -0.307500 -0.627500 -0.450500 0.362000
2 0.479333 -0.001333 0.138 0.228667 ... -0.299333 0.465333 -0.976667 0.023333
[3 rows x 66 columns]
💭 Feedback
⚠️ Issue Tracker
Found a bug ? Have an enhancement request ? Head over to the GitHub issue tracker if you need to report or ask something. If you are filing in on a bug, please include as much information as you can about the issue, and try to recreate the same bug in a simple, easily reproducible situation.
🏗️ Contributing
Contributions are more than welcome! See
CONTRIBUTING.md
for more details.
⚖️ License
This library is provided under the GNU General Public License v3.0.
The original R Peptides package was written by Daniel Osorio,
Paola Rondón-Villarreal and
Rodrigo Torres, and is licensed under
the terms of the GNU General Public License v2.0.
The EMBOSS applications are
released under the GNU General Public License v1.0.
This project is in no way not affiliated, sponsored, or otherwise endorsed
by the original Peptides authors. It was developed
by Martin Larralde during his PhD project
at the European Molecular Biology Laboratory in
the Zeller team.
Metadata
Release files for peptides 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| peptides-0.5.0.tar.gz | 103.7 kB | With provenance | Details for peptides-0.5.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| peptides-0.5.0-py3-none-any.whl | Python 3 | none | any | Details for peptides-0.5.0-py3-none-any.whl |
Total release size: 175.0 kB
Release files / peptides-0.5.0.tar.gz
| Download URL | peptides-0.5.0.tar.gz |
|---|---|
| Size | 103.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
33fb37398e883765e10ed179a1c0d618bf2815a35bfe6d6368175c10d73650a4
|
|
BLAKE2b-256 checksum How to use checksums |
eedb27818c8a7917bb44c0f91df86ee95d9741502653da1c0fb68e260de8bc18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2025.
Transparency logRelease files / peptides-0.5.0-py3-none-any.whl
| Download URL | peptides-0.5.0-py3-none-any.whl |
|---|---|
| Size | 71.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f4d18e6b9c5b570f14d0d8812450e8a23dccd944588b13e34fe30192b2ab2051
|
|
BLAKE2b-256 checksum How to use checksums |
df8aa8657f7dd2a401718d81b815c6783fe7bdef34bb4b2013be6568bf2b5041
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2025.
Transparency logSecurity for peptides 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for peptides-0.5.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2025.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.