• Stars
    star
    388
  • Rank 110,734 (Top 3 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created almost 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A dependency-free cross-platform swiss army knife for PDB files.

pdb-tools

PyPI version PyPi Downloads tests 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 JPGLM, Teixeira JMC, Trellet M and Bonvin AMJJ.
pdb-tools: a swiss army knife for molecular structures. 
F1000Research 2018, 7:1961 (https://doi.org/10.12688/f1000research.17456.1) 

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

@Article{ 10.12688/f1000research.17456.1,
AUTHOR = { Rodrigues, JPGLM and Teixeira, JMC and Trellet, M and Bonvin, AMJJ},
TITLE = {pdb-tools: a swiss army knife for molecular structures [version 1; peer review: 2 approved]
},
JOURNAL = {F1000Research},
VOLUME = {7},
YEAR = {2018},
NUMBER = {1961},
DOI = {10.12688/f1000research.17456.1}
}

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.

More Repositories

1

prodigy

Predict the binding affinity of protein-protein complexes from structural data
Python
110
star
2

haddock3

Official repo of the modular BioExcel version of HADDOCK
Python
103
star
3

haddock-tools

Set of useful HADDOCK utility scripts
Python
46
star
4

arctic3d

Automatic Retrieval and ClusTering of Interfaces in Complexes from 3D structural information
Python
26
star
5

fcc

Fraction of Common Contacts Clustering Algorithm for Protein Structures
Python
26
star
6

HADDOCK-antibody-antigen

Material to run the HADDOCK antibody-antigen modelling protocol
Python
20
star
7

powerfit

Rigid body fitting of atomic strucures in cryo-electron microscopy density maps
Python
20
star
8

prodigy-lig

Prediction of Protein-Small molecule binding affinities
Python
14
star
9

haddocking.github.io

Webpage of the Bonvinlab @ Utrecht University and HADDOCK software
HTML
13
star
10

binding-affinity-benchmark

Protein-protein binding affinity benchmark
12
star
11

BM5-clean

Docking benchmark 5 - cleaned and ready to use for HADDOCK
Roff
12
star
12

protein-peptide-docking_1CZY

Python
10
star
13

disvis

Visualisation of conformational space restriction by distance restraints
Python
9
star
14

prodigy-cryst

Contacts-based classifier of biological and crystallographic interfaces
Python
7
star
15

MemCplxDB

Membrane protein complexes docking benchmark
6
star
16

cyclic-peptides

Cyclic-peptide - protein complexes benchmark and associated scripts and data
Shell
6
star
17

3D-DART-server

3D-DART web server repository
Python
6
star
18

iSee

R
6
star
19

DACUM

The Database of binding Affinity Change Upon Mutations in protein complexes
4
star
20

HADDOCK-binding-sites-tutorial

Shell
4
star
21

Prot-DNABenchmark

Protein-DNA docking benchmark
4
star
22

EDES

Shell
4
star
23

shape-restrained-haddocking

Python
4
star
24

ai-antibodies

Jupyter Notebook
4
star
25

3D-DART

Standalone code for 3D-DART (originally developed by Marc van Dijk)
Python
3
star
26

protein-glycans

Python
3
star
27

whiscy

Bioinformatic tool to predict structural protein-protein interfaces
R
3
star
28

haddock-mmcif

Encode information from a HADDOCK run to a cif file to be deposited in PDB-Dev.
Python
3
star
29

haddock-runner

Run large scale HADDOCK simulations using multiple input molecules in different scenarios
Go
3
star
30

cport

CPORT is a Consensus Prediction Of interface Residues in Transient complexes used to predict protein-protein interface residues.
Python
2
star
31

CASP-CAPRI-T70-tutorial

Shell
2
star
32

powerfit-tutorial

Simple tutorial to showcase the use of PowerFit.
Shell
2
star
33

D3R-tools

A collection of scripts of data relating to the D3R Grand Challenge competitons
MATLAB
2
star
34

haddock_param_tools

Python scripts to manipulate HADDOCK2.4 parameter files (*.json)
Python
2
star
35

fandas

Repository of the FANDAS code for prediction ssNMR spectra from structure
Python
2
star
36

samplex

Python
2
star
37

MD-scoring

Script and associated data for MD-based scoring of HADDOCK clusters
Jupyter Notebook
2
star
38

protein-peptide

Protein-peptide HADDOCK-ready docking benchmark
2
star
39

contact-filtering

DisVis-based filtering of contacts from co-evolution data (or other sources)
Shell
1
star
40

physiological_homodimers_benchmark

Python
1
star
41

vmbuilder

VM Appliance Developer Environment
Shell
1
star
42

SARS-COV2-NTD-SIA-modelling

Modelling of the binding of various sialic acid-containing oligosaccharides to the NTD domain of the spike protein of SARS-CoV2
1
star
43

refine-EM-complexes

Repository containing the data set, analysis results and scripts associated with our manuscript on "Interface Refinement of Low-to-Medium Resolution Cryo-EM Complexes using HADDOCK2.4"
Jupyter Notebook
1
star
44

proABC-2

Deep learning framework to predict antibody paratope residues
Python
1
star
45

haddock24-protocol

Data for performing HADDOCK2.4 protocols
1
star
46

haddock-restraints

Generate restraints to be used in HADDOCK
Rust
1
star