Skip to main content

Physicochemical properties, indices and descriptors for amino-acid sequences.

Project description

peptides.py Stars

Physicochemical properties, indices and descriptors for amino-acid sequences.

Actions Coverage License PyPI Bioconda Wheel Python Versions Python Implementations Source Mirror GitHub issues Docs Changelog Downloads

🗺️ 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

peptides-0.5.0.tar.gz (103.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

peptides-0.5.0-py3-none-any.whl (71.3 kB view details)

Uploaded Python 3

File details

Details for the file peptides-0.5.0.tar.gz.

File metadata

  • Download URL: peptides-0.5.0.tar.gz
  • Upload date:
  • Size: 103.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for peptides-0.5.0.tar.gz
Algorithm Hash digest
SHA256 33fb37398e883765e10ed179a1c0d618bf2815a35bfe6d6368175c10d73650a4
MD5 b33463fc6016a178c390fc9cdc7aab4a
BLAKE2b-256 eedb27818c8a7917bb44c0f91df86ee95d9741502653da1c0fb68e260de8bc18

See more details on using hashes here.

Provenance

The following attestation bundles were made for peptides-0.5.0.tar.gz:

Publisher: test.yml on althonos/peptides.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file peptides-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: peptides-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 71.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for peptides-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f4d18e6b9c5b570f14d0d8812450e8a23dccd944588b13e34fe30192b2ab2051
MD5 50dae3280d49eb27bbc0b8353debf504
BLAKE2b-256 df8aa8657f7dd2a401718d81b815c6783fe7bdef34bb4b2013be6568bf2b5041

See more details on using hashes here.

Provenance

The following attestation bundles were made for peptides-0.5.0-py3-none-any.whl:

Publisher: test.yml on althonos/peptides.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page