pdb-tools

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

https://github.com/haddocking/pdb-tools

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.2%) to scientific vocabulary

Keywords

bioinformatics pdb protein python rcsb structural-bioinformatics structural-biology utrecht-university
Last synced: 6 months ago · JSON representation ·

Repository

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

Basic Info
Statistics
  • Stars: 426
  • Watchers: 13
  • Forks: 117
  • Open Issues: 26
  • Releases: 13
Topics
bioinformatics pdb protein python rcsb structural-bioinformatics structural-biology utrecht-university
Created about 11 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

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: bash 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: bash 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 bash pdb_fetch 1brs > 1brs.pdb # 6 chains pdb_fetch -biounit 1brs > 1brs.pdb # 2 chains

  • Renumbering a structure bash pdb_reres -1 1ctf.pdb > 1ctf_renumbered.pdb

  • Selecting chain(s) bash pdb_selchain -A 1brs.pdb > 1brs_A.pdb pdb_selchain -A,D 1brs.pdb > 1brs_AD.pdb

  • Deleting hydrogens bash pdb_delelem -H 1brs.pdb > 1brs_noH.pdb

  • Selecting backbone atoms bash pdb_selatom -CA,C,N,O 1brs.pdb > 1brs_bb.pdb

  • Selecting chains, removing HETATM, and producing a valid PDB file bash 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.

```bash

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.

Owner

  • Name: HADDOCK
  • Login: haddocking
  • Kind: organization
  • Location: Utrecht, The Netherlands

Computational Structural Biology Group @ Utrecht University

Citation (citation.tex)

@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.org/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}
}

GitHub Events

Total
  • Issues event: 5
  • Watch event: 35
  • Delete event: 1
  • Issue comment event: 15
  • Push event: 21
  • Pull request review event: 2
  • Fork event: 6
  • Create event: 2
Last Year
  • Issues event: 5
  • Watch event: 35
  • Delete event: 1
  • Issue comment event: 15
  • Push event: 21
  • Pull request review event: 2
  • Fork event: 6
  • Create event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 436
  • Total Committers: 10
  • Avg Commits per committer: 43.6
  • Development Distribution Score (DDS): 0.358
Past Year
  • Commits: 4
  • Committers: 3
  • Avg Commits per committer: 1.333
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
João Rodrigues j****s@g****m 280
joaomcteixeira j****a@g****m 115
JoaoRodrigues j****s 30
Mikael Trellet m****t@g****m 4
Ryan Vandersmith r****h@g****m 2
Joao Rodrigues a****n@g****m 1
cunlianggeng c****g@a****r 1
Alexandre Bonvin a****n@g****m 1
CunliangGeng C****g 1
Rodrigo V Honorato r****o@u****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 56
  • Total pull requests: 60
  • Average time to close issues: 3 months
  • Average time to close pull requests: 27 days
  • Total issue authors: 29
  • Total pull request authors: 9
  • Average comments per issue: 3.16
  • Average comments per pull request: 2.78
  • Merged pull requests: 44
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 6
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 6
  • Pull request authors: 2
  • Average comments per issue: 1.17
  • Average comments per pull request: 0.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • joaomcteixeira (17)
  • amjjbonvin (8)
  • rvhonorato (4)
  • JoaoRodrigues (2)
  • jbibbe4 (1)
  • mgiulini (1)
  • KasperBuskPedersen (1)
  • Danielle-314 (1)
  • LilySnow (1)
  • sbliven (1)
  • Mr-MOPAC (1)
  • jyesselm (1)
  • hw-protein (1)
  • PhilippJunk (1)
  • andrewsb8 (1)
Pull Request Authors
  • joaomcteixeira (29)
  • JoaoRodrigues (24)
  • dependabot[bot] (2)
  • ahmedselim2017 (2)
  • rvhonorato (1)
  • andrewsb8 (1)
  • ntxxt (1)
  • ShintaroMinami (1)
  • mgiulini (1)
Top Labels
Issue Labels
enhancement (22) bug (19) users (9) Tool Request (9) help wanted (4) question (3) v3 (2)
Pull Request Labels
enhancement (21) bug (14) Tool Request (4) dependencies (2) v3 (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 15,970 last-month
  • Total docker downloads: 9
  • Total dependent packages: 5
    (may contain duplicates)
  • Total dependent repositories: 14
    (may contain duplicates)
  • Total versions: 69
  • Total maintainers: 2
pypi.org: pdb-tools

A swiss army knife for PDB files.

  • Versions: 38
  • Dependent Packages: 5
  • Dependent Repositories: 14
  • Downloads: 15,970 Last month
  • Docker Downloads: 9
Rankings
Dependent packages count: 3.1%
Stargazers count: 3.6%
Dependent repos count: 3.9%
Docker downloads count: 3.9%
Average: 4.0%
Forks count: 4.4%
Downloads: 4.9%
Maintainers (2)
Last synced: 6 months ago
proxy.golang.org: github.com/haddocking/pdb-tools
  • Versions: 31
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 9.0%
Average: 9.6%
Dependent repos count: 10.2%
Last synced: 6 months ago

Dependencies

.github/workflows/build_and_test.yml actions
  • actions/checkout v2 composite
  • actions/download-artifact v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v3 composite
  • actions/upload-artifact v2 composite
.github/workflows/bump-version-on-push.yml actions
  • actions/checkout v1 composite
  • actions/setup-python v1 composite
.github/workflows/yaml_linter.yml actions
  • actions/checkout v2 composite
  • ibiqlik/action-yamllint v3 composite