Welcome to the Utrecht Biomolecular Interaction Web Portal >>

Manual

Introduction

Welcome to the PDB-Tools Web manual. Here you will find information about:

The main entry point is the Submit page. This page offers in a single interface all the necessary actions in order to upload input and adding tool blocks to your pipeline.

Input

There are two possible ways to add data to your pipeline (Figure 1):

  1. Fetching structural data from Protein Data Bank.
  2. Uploading your data.
Input
Figure 1: PDB-Tools Web input

Fetching structural data from Protein Data Bank

If you use the Fetch interface, you need to provide a valid PDB code in the corresponding field. It is possible to download the first active biological assembly in the Protein Data Bank if you check the biounit option. In case a different biological assembly is required, it should be provided as a PDB file via the action. Once you click on the button and after waiting for a few seconds, the structure will be available (Figure 2).

Fetch
Figure 2: Structure 2OOB is available after fetch action

In this example, PDB structure 2OOB has been parsed and it appears with the name parsed_1.pdb. The chains found on parsing are shown (A and B) and there is a button for visualizing the structure in a 3D representation using NGL viewer.

In case you require to use a different input, you may clear using the .

Uploading your data

It is possible to upload your data in different formats. The following extensions (and formats) are supported: pdb, ent, cif, tar, tgz, bz2, tar.gz and zip.

Some of these file extensions correspond to compressed formats. In case a compressed format is detected, the service will unpack its content as different structures available as input. Take into account that the pdb-tools pipeline will be applied to each of the found structures.

Save and load pipelines

It is possible to save the current pipeline. To do it so, it is as simple as clicking on the and saving the generated JSON file to your disk. Then, it is possible to load this pipeline at any point by using the .

Manage pipelines
Figure 3: Load and save pipelines

Customizing your pipeline with tools

Adding tools to the current pipeline is as simple as selecting the desired tool from the different block selectors and clicking on the button.

Add tool
Figure 4: the tools selector

Depending on the nature of the tool, the name will be coloured in main, pre-tool or post-tool.

  • pre-tool are blocks which only might be added at the beginning of the pipeline, before any other regular or merge-tool block. Only one of each type of pre-tools block is allowed at a time.
  • post-tool are blocks which only might be added to the pipeline if there is already a pre-tool assigned. Its position is always to the right of any other pre-tool. Only 1 block of this is allowed.
  • main blocks might be added at your convenience, in any (semantically correct) order of your choice.
Figure 5 shows a possible example of pipeline combining the three types of blocks:

Example
Figure 5: a pipeline example

Blocks might be removed (if you click on the X) and sorted if you drag and drop them.

If you click on the button, an example pipeline with different blocks and a sample input will be loaded.

If you check the option, it will add to the end of the current pipeline the tool pdb_tidy to all generated outputs, which will modify the output to adhere (as much as possible) to the PDB format specifications.

Tidy option
Figure 6: Tidy option is enabled.

Available PDB-Tools

pdb_b

Modifies the temperature factor column of a PDB file (default 10.0).

Usage
python pdb_b.py -<bfactor> <pdb file>

Example
python pdb_b.py -10.0 1CTF.pdb

pdb_chain

Modifies the chain identifier column of a PDB file (default is an empty chain).

Usage
python pdb_chain.py -<chain id> <pdb file>

Example
python pdb_chain.py -C 1CTF.pdb

pdb_chainbows

Renames chain identifiers sequentially, based on TER records

Usage
python pdb_chainbows.py <pdb file>

Example
python pdb_chainbows.py 1CTF.pdb

pdb_chainxseg

Replaces the segment identifier column by the value in the chain identifier column of the PDB file.

Usage
python pdb_chainxseg.py <pdb file>

Example
python pdb_chainxseg.py 1CTF.pdb

pdb_chkensemble

Performs a basic check on a multi-model PDB file (ensemble) to ensure all models are have exactly the same atoms (as they should).

Usage
python pdb_chkensemble.py <pdb file>

Example
python pdb_chkensemble.py 1CTF.pdb

pdb_delchain

Deletes all atoms matching specific chains in the PDB file.

Usage
python pdb_delchain.py -<option> <pdb file>

Example
python pdb_delchain.py -A 1CTF.pdb # removes chain A from PDB file

pdb_delelem

Deletes all atoms matching the given element in the PDB file. Elements are read from the element column.

Usage
python pdb_delelem.py -<option> <pdb file>

Example
python pdb_delelem.py -H,N 1CTF.pdb # deletes all protons and nitrogens

pdb_delhetatm

Removes all HETATM records in the PDB file.

Usage
python pdb_delhetatm.py <pdb file>

Example
python pdb_delhetatm.py 1CTF.pdb

pdb_delres

Deletes a range of residues from a PDB file. The range option has three components: start, end, and step. Start and end are optional and if ommitted the range will start at the first residue or end at the last, respectively. The step option can only be used if both start and end are provided. Note that the start and end values of the range are purely numerical, while the range actually refers to every N-th residue, regardless of their sequence number.

Usage
python pdb_delres.py -[resid]:[resid]:[step] <pdb file>

Example
python pdb_delres.py -1:10 1CTF.pdb # Deletes residues 1 to 10

pdb_delresname

Removes all residues matching the given name in the PDB file. Residues names are matched *without* taking into consideration spaces.

Usage
python pdb_delresname.py -<option> <pdb file>

Example
python pdb_delresname.py -ALA 1CTF.pdb # removes only Alanines

pdb_element

Assigns the element column to the PDB file, guessing the element from the atom

Usage
python pdb_element.py <pdb file>

Example
python pdb_element.py 1CTF.pdb

pdb_fixinsert

Fixes insertion codes in a PDB file.

Usage
python pdb_fixinsert.py [-<option>] <pdb file>

Example
python pdb_fixinsert.py -A9,B12 1CTF.pdb # deletes ins. codes for residue 9 of chain A and 12 of chain B.

pdb_gap

Detects gaps between consecutive residues in the sequence, both by a distance criterion or discontinuous residue numbering. Only applies for protein residues.

Usage
python pdb_gap.py <pdb file>

Example
python pdb_gap.py 1CTF.pdb

pdb_head

Returns the first N coordinate (ATOM/HETATM) lines of the file.

Usage
python pdb_head.py -<num> <pdb file>

Example
python pdb_head.py -100 1CTF.pdb # first 100 ATOM/HETATM lines of the file

pdb_keepcoord

Removes all non-coordinate records from the file. Keeps only MODEL, ENDMDL, END, ATOM, HETATM, and CONECT.

Usage
python pdb_keepcoord.py <pdb file>

Example
python pdb_keepcoord.py 1CTF.pdb

pdb_occ

Modifies the occupancy column of a PDB file (default 1.0).

Usage
python pdb_occ.py -<occupancy> <pdb file>

Example
python pdb_occ.py -1.0 1CTF.pdb

pdb_reatom

Renumbers atom serial numbers of the PDB file starting from a given value (default 1).

Usage
python pdb_reatom.py -<number> <pdb file>

Example
python pdb_reatom.py -10 1CTF.pdb # renumbers from 10

pdb_reres

Renumbers the residues of the PDB file starting from a given number (default 1).

Usage
python pdb_reres.py -<number> <pdb file>

Example
python pdb_reres.py -10 1CTF.pdb # renumbers from 10

pdb_rplchain

Performs in-place replacement of a chain identifier by another.

Usage
python pdb_rplchain.py -<from>:<to> <pdb file>

Example
python pdb_rplchain.py -A:B 1CTF.pdb # Replaces chain A for chain B

pdb_rplresname

Performs in-place replacement of a residue name by another. Affects all residues with that name.

Usage
python pdb_rplresname.py -<from>:<to> <pdb file>

Example
python pdb_rplresname.py -HIP:HIS 1CTF.pdb # changes all HIP residues to HIS

pdb_seg

Modifies the segment identifier column of a PDB file (default is an empty segment).

Usage
python pdb_seg.py -<segment id> <pdb file>

Example
python pdb_seg.py -C 1CTF.pdb

pdb_segxchain

Replaces the chain identifier column by the value in the segment identifier column of the PDB file. Truncates the segment identifier if longer than one character.

Usage
python pdb_segxchain.py <pdb file>

Example
python pdb_segxchain.py 1CTF.pdb

pdb_selaltloc

Selects one location for each atom with fractional occupancy values. By default, selects the label with the highest occupancy value for each atom, but the user can define a specific altloc label to select.

Usage
python pdb_selaltloc.py [-<option>] <pdb file>

Example
python pdb_selaltloc.py 1CTF.pdb # picks locations with highest occupancy

pdb_selatom

Selects all atoms matching the given name in the PDB file. Atom names are matched without taking into consideration spaces, so ' CA ' (alpha carbon) and 'CA ' (calcium) will both be kept if -CA is passed.

Usage
python pdb_selatom.py -<option> <pdb file>

Example
python pdb_selatom.py -CA 1CTF.pdb # keeps only alpha-carbon atoms

pdb_selchain

Extracts one or more chains from a PDB file.

Usage
python pdb_selchain.py -<chain id> <pdb file>

Example
python pdb_selchain.py -C 1CTF.pdb # selects chain C

pdb_selelem

Selects all atoms that match the given element(s) in the PDB file. Elements are read from the element column.

Usage
python pdb_selelem.py -<option> <pdb file>

Example
python pdb_selelem.py -H 1CTF.pdb # selects all protons

pdb_selhetatm

Selects all HETATM records in the PDB file.

Usage
python pdb_selhetatm.py <pdb file>

Example
python pdb_selhetatm.py 1CTF.pdb

pdb_selres

Extracts residues from a PDB file, either arbitrarily or in a range. The range option has three components: start, end, and step. Start and end are optional and if ommitted the range will start at the first residue or end at the last, respectively.

Usage
python pdb_selres.py -[resid]:[resid]:[step] <pdb file>

Example
python pdb_selres.py -1,2,4,6 1CTF.pdb # Extracts residues 1, 2, 4 and 6

pdb_selresname

Selects all residues matching the given name in the PDB file. Residues names are matched *without* taking into consideration spaces.

Usage
python pdb_selresname.py -<option> <pdb file>

Example
python pdb_selresname.py -ALA 1CTF.pdb # keeps only Alanines

pdb_selseg

Extracts one or more segments from a PDB file based on their segment identifiers.

Usage
python pdb_selseg.py -<segment id> <pdb file>

Example
python pdb_selseg.py -C,D 1CTF.pdb # selects segment C

pdb_shiftres

Renumbers the residues of the PDB file by adding/subtracting a given number from the original numbering.

Usage
python pdb_shiftres.py -<number> <pdb file>

Example
python pdb_shiftres.py -10 1CTF.pdb # adds 10 to the original numbering

pdb_sort

Sorts the ATOM/HETATM/ANISOU/CONECT records in a PDB file.

Usage
python pdb_sort.py -<option> <pdb file>

Example
python pdb_sort.py 1CTF.pdb # sorts by chain and residues

pdb_tocif

Converts a PDB file to the mmCIF format. Will convert only the coordinate

Usage
python pdb_tocif.py <pdb file>

Example
python pdb_tocif.py 1CTF.pdb

pdb_tofasta

Extracts the residue sequence in a PDB file to FASTA format. Canonical amino acids and nucleotides are represented by their one-letter code while all others are represented by 'X'. The -multi option splits the different chains into different records in the FASTA file.

Usage
python pdb_tofasta.py [-multi] <pdb file>

Example
python pdb_tofasta.py 1CTF.pdb

pdb_uniqname

Renames atoms sequentially (C1, C2, O1, ...) for each HETATM residue. Relies on an element column being present (see pdb_element).

Usage
python pdb_pdb_uniqname.py <pdb file>

Example
python pdb_pdb_uniqname.py 1CTF.pdb

pdb_validate

Validates the PDB file ATOM/HETATM lines according to the format specifications.

Usage
python pdb_validate.py <pdb file>

Example
python pdb_validate.py 1CTF.pdb

pdb_wc

Summarizes the contents of a PDB file, like the wc command in UNIX.

Usage
python pdb_wc.py <pdb file>

Example
python pdb_wc.py 1CTF.pdb

pdb_splitchain

Splits a PDB file into several, each containing one chain.

Usage
python pdb_splitchain.py <pdb file>

Example
python pdb_splitchain.py 1CTF.pdb

pdb_splitmodel

Splits a PDB file into several, each containing one MODEL.

Usage
python pdb_splitmodel.py <pdb file>

Example
python pdb_splitmodel.py 1CTF.pdb

pdb_splitseg

Splits a PDB file into several, each containing one segment.

Usage
python pdb_splitseg.py <pdb file>

Example
python pdb_splitseg.py 1CTF.pdb

pdb_merge

Merges several PDB files into one. The contents are not sorted and no lines are deleted (e.g. END, TER statements) so we recommend to enable the Tidy option

Usage
python pdb_merge.py <pdb file> <pdb file>

Example
python pdb_merge.py 1ABC.pdb 1XYZ.pdb

pdb_mkensemble

Merges several PDB files into one multi-model (ensemble) file. Strips all HEADER information and adds REMARK statements with the provenance of each conformer.

Usage
python pdb_mkensemble.py <pdb file> <pdb file>

Example
python pdb_mkensemble.py 1ABC.pdb 1XYZ.pdb

Proudly powered by:
EOSC-hub
EOSC
BioExcel
EGI
EGI-ACE
NWO
This work is co-funded by the Horizon 2020 projects EOSC-hub and EGI-ACE (grant numbers 777536 and 101017567), BioExcel (grant numbers 823830, 675728 and 101093290)
and by a computing grant from NWO-ENW (project number 2019.053).