A swiss-knife for PDB files.
Set of Python scripts designed to be a dependency-free cross-platform swiss-knife for 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.
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.
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
If you want to install the latest development version, which might give you new features but also some bugs, see here.
What can I do with them?
The names of the tools should be self-explanatory. Their usage is also pretty consistent. Therefore, here is a couple of examples to get you started:
Downloading a structure
./pdb_fetch.py 1ctf > 1ctf.pdb ./pdb_fetch.py -biounit 1brs > 1brs_biounit.pdb
Renumbering a structure
./pdb_reres.py -1 1ctf.pdb > 1ctf_renumbered.pdb
Extracting a particular chain
./pdb_selchain.py -A 1brs_biounit.pdb > 1brs_A.pdb
Downloading, extracting a chain, and extracting its aa sequence
./pdb_fetch.py 1brs | ./pdb_selchain.py -A | ./pdb_toseq.py > 1brs_A.fasta
What can't I do with them?
mmCIF files are not supported. There might be a sister repository
one day. Also, 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.
There is no publication (yet!) for pdb-tools, but if you use them and want to cite them use this DOI item.
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
approach since it makes updating the tools extremely simple.
# To download git clone https://github.com/JoaoRodrigues/pdb-tools cd pdb-tools # To update git pull origin master # To install python setup.py install
If you want to contribute to the development of
pdb-tools, provide a bug fix,
or a new tools, read our
CONTRIBUTING instructions here.
pdb-tools are open-source and licensed under the Apache License, version 2.0.
For details, see the LICENSE file.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size pdb_tools-2.0.0b1-py3-none-any.whl (79.8 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size pdb-tools-2.0.0b1.tar.gz (26.0 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for pdb_tools-2.0.0b1-py3-none-any.whl