Skip to main content

A swiss army knife for PDB files.

Project description

pdb-tools

PyPI version Travis (.org) branch AppVeyor branch codecov DOI

A swiss army knife for manipulating and editing PDB files.

Looking for the other pdb-tools?

The Harms lab maintains a set of tools also called pdbtools, which perform a slightly different set of functions. You can find them here.

About

Manipulating PDB files is often painful. Extracting a particular chain or set of residues, renumbering residues, splitting or merging models and chains, or just ensuring the file is conforming to the PDB specifications are examples of tasks that can be done using any decent parsing library or graphical interface. These, however, almost always require 1) scripting knowledge, 2) time, and 3) installing one or more programs.

pdb-tools were designed to be a swiss-knife for the PDB format. They have no external dependencies, besides obviously the Python programming language. They are the descendant of a set of old FORTRAN77 programs that had the particular advantage of working with streams, i.e. the output of one script could be piped into another. Since FORTRAN77 is a pain too, I rewrote them in Python and added a few more utilities.

The philosophy of the scripts is simple: one script, one task. If you want to do two things, pipe the scripts together. Requests for new scripts will be taken into consideration - use the Issues button or write them yourself and create a Pull Request.

Installation Instructions

pdb-tools are available on PyPi and can be installed though pip. This is the recommended way as it makes updating/uninstalling rather simple:

pip install pdb-tools

Because we use semantic versioning in the development of pdb-tools, every bugfix or new feature results in a new version of the software that is automatically published on PyPI. As such, there is no difference between the code on github and the latest version you can install with pip. To update your installation to the latest version of the code run:

pip install --upgrade pdb-tools

What can I do with them?

The names of the tools should be self-explanatory. Their command-line interface is also pretty consistent. Therefore, here is a couple of examples to get you started:

  • Downloading a structure

    pdb_fetch 1brs > 1brs.pdb  # 6 chains
    pdb_fetch -biounit 1brs > 1brs.pdb  # 2 chains
    
  • Renumbering a structure

    pdb_reres -1 1ctf.pdb > 1ctf_renumbered.pdb
    
  • Selecting chain(s)

    pdb_selchain -A 1brs.pdb > 1brs_A.pdb
    pdb_selchain -A,D 1brs.pdb > 1brs_AD.pdb
    
  • Deleting hydrogens

    pdb_delelem -H 1brs.pdb > 1brs_noH.pdb
    
  • Selecting backbone atoms

    pdb_selatom -CA,C,N,O 1brs.pdb > 1brs_bb.pdb
    
  • Selecting chains, removing HETATM, and producing a valid PDB file

    pdb_selchain -A,D 1brs.pdb | pdb_delhetatm | pdb_tidy > 1brs_AD_noHET.pdb
    

Note: On Windows the tools will have the .exe extension.

What can't I do with them?

Operations that involve coordinates or numerical calculations are usually not in the scope of pdb-tools. Use a proper library for that, it will be much faster and scalable. Also, although we provide mmCIF<->PDB converters, we do not support large mmCIF files with more than 99999 atoms, or 9999 residues in a single chain. Our tools will complain if you try using them on such a molecule.

Citation

We finally decided to write up a small publication describing the tools. If you used them in a project that is going to be published, please cite us:

Rodrigues, J. P. G. L. M., Teixeira, J. M. C., Trellet, M. & Bonvin, A. M. J. J.
pdb-tools: a swiss army knife for molecular structures. bioRxiv (2018). 
doi:10.1101/483305

If you use a reference manager that supports BibTex, use this record:

@article {Rodrigues483305,
  author = {Rodrigues, Jo{\~a}o P.G.L.M. and Teixeira, Jo{\~a}o M.C. and Trellet, Mika{\"e}l and Bonvin, Alexandre M.J.J.},
  title = {pdb-tools: a swiss army knife for molecular structures},
  elocation-id = {483305},
  year = {2018},
  doi = {10.1101/483305},
  publisher = {Cold Spring Harbor Laboratory},
  abstract = {The pdb-tools are a collection of Python scripts for working with molecular structure data in the PDB format. They allow users to edit, convert, and validate PDB files, from the command-line, in a simple but efficient manner. The pdb-tools are implemented in Python, without any external dependencies, and are freely available under the open-source Apache License at https://github.com/haddocking/pdb-tools/ and on PyPI (https://pypi-hypernode.com/project/pdb-tools/).},
  URL = {https://www.biorxiv.org/content/early/2018/12/04/483305},
  eprint = {https://www.biorxiv.org/content/early/2018/12/04/483305.full.pdf},
  journal = {bioRxiv}
}

Requirements

pdb-tools should run on Python 2.7+ and Python 3.x. We test on Python 2.7, 3.6, and 3.7. There are no dependencies.

Installing from Source

Download the zip archive or clone the repository with git. We recommend the git approach since it makes updating the tools extremely simple.

# To download
git clone https://github.com/haddocking/pdb-tools
cd pdb-tools

# To update
git pull origin master

# To install
python setup.py install

Contributing

If you want to contribute to the development of pdb-tools, provide a bug fix, or a new tools, read our CONTRIBUTING instructions here.

License

pdb-tools are open-source and licensed under the Apache License, version 2.0. For details, see the LICENSE file.

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

pdb-tools-2.1.0.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

pdb_tools-2.1.0-py3-none-any.whl (179.7 kB view details)

Uploaded Python 3

File details

Details for the file pdb-tools-2.1.0.tar.gz.

File metadata

  • Download URL: pdb-tools-2.1.0.tar.gz
  • Upload date:
  • Size: 47.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for pdb-tools-2.1.0.tar.gz
Algorithm Hash digest
SHA256 1dcb49441fdd8b650c7f62f47d01165e5db36cec1cdae9e8c6c54483a872a470
MD5 ceda09c7374cf939d64a7c6fca88bc56
BLAKE2b-256 e489fe7149697a3c9c29029bd33d32a73f2cbbea744d50f7606a8f9d930d2440

See more details on using hashes here.

File details

Details for the file pdb_tools-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: pdb_tools-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 179.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for pdb_tools-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f568f1cd5ecf8343619f4b56c540c2b934c864a5aa293c4b408c880117713fd
MD5 bb8c6c3f8d82f163cbb38d9ddbd7a6ad
BLAKE2b-256 e05a1ea7d412d4f13d02a65a0ca3dd0daf450ea844954aa02fac6851626af5be

See more details on using hashes here.

Supported by

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