4 releases (breaking)

0.4.0 Jun 12, 2024
0.3.0 Jun 12, 2024
0.2.0 Jun 7, 2024
0.1.0 Jun 3, 2024

#9 in Biology

Download history 259/week @ 2024-06-03 256/week @ 2024-06-10

515 downloads per month

MIT license

75KB
1K SLoC

haddock-restraints

Crates.io Version Crates.io Total Downloads Crates.io License

tests Codacy Badge

A standalone command-line application to generate restraints to be used in HADDOCK.

Commands

Planned features

  • Generate .tbl files from an input file
  • Define passive residues based on surface accessibility (surface_as_passive)
  • Define passive residues around active ones (passive_from_active)
  • Support for N interactors; 2-body, 3-body, 4-body, etc
  • Support for multiple interaction sites in the same interactor
  • Generate true-interface restraints for benchmarking
  • Create unambiguous restraints to keep molecules together during docking
  • Filter out buried residues
  • List residues in the interface
  • Specify atom subsets
  • Generate random-restraints done via CNS

Usage

Install

cargo install haddock-restraints

Execute

$ haddock-restraints -h
Generate restraints to be used in HADDOCK

Usage: haddock-restraints <COMMAND>

Commands:
  tbl        Generate TBL file from input file
  ti         Generate true-interface restraints from a PDB file
  restraint  Generate Unambiguous restraints to keep molecules together during docking
  interface  List residues in the interface
  help       Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

ti command

$ ./haddock-restraints ti -h
Generate true-interface restraints from a PDB file

Usage: haddock-restraints ti <INPUT> <CUTOFF>

Arguments:
  <INPUT>   PDB file
  <CUTOFF>  Cutoff distance for interface residues

Options:
  -h, --help  Print help

Example:

./haddock-restraints ti examples/2oob.pdb 5.0 > ti.tbl

tbl command

$ ./haddock-restraints tbl -h
Generate TBL file from input file

Usage: haddock-restraints tbl <INPUT>

Arguments:
  <INPUT>  Input file

Options:
  -h, --help  Print help

Example:

./haddock-restraints tbl examples/restraints.json > ambig.tbl

Check the examples folder for examples of restraint files.

The mandatory fields are:

  • id: an integer that identifies the interactor
  • chain: the chain of the interactor
  • active: a list of residues that are active in the interaction
  • passive: a list of residues that are passive in the interaction
  • target: a list of integers that identifies the interactors that the current interactor interacts with

Optional fields are:

  • structure: the PDB file that contains the structure of the interactor
  • passive_from_active: if true, the passive residues are defined based on the active residues (requires structure)
  • surface_as_passive: if true, the passive residues are defined based on the surface accessibility of the residues (requires structure)
  • filter_buried: if true, the buried residues are filtered out (requires structure)
  • filter_buried_cutoff: the cutoff to consider a residue as buried, default = 0.7 (requires structure)
[
  {
    "id": 1,
    "chain": "A",
    "active": [
      934,
      939
    ],
    "passive": [],
    "structure": "2oob.pdb",
    "target": [
      2
    ],
    "passive_from_active": true,
    "filter_buried": true
  },
  {
    "id": 2,
    "chain": "B",
    "active": [
      68
    ],
    "passive": [],
    "target": [
      1
    ]
  },
  {
    "id": 3,
    "chain": "B",
    "active": [],
    "passive": [],
    "target": [
      1
    ],
    "structure": "2oob.pdb",
    "surface_as_passive": true
  }
]

restraint command

$ ./haddock-restraints restraint -h
Generate Unambiguous restraints to keep molecules together during docking

Usage: haddock-restraints restraint <INPUT>

Arguments:
  <INPUT>  PDB file

Options:
  -h, --help  Print help

Example:

./haddock-restraints restraint examples/2oob_w_gaps.pdb > unambiguous.tbl

interface command

$ ./haddock-restraints interface -h
List residues in the interface

Usage: haddock-restraints interface <INPUT> <CUTOFF>

Arguments:
  <INPUT>   PDB file
  <CUTOFF>  Cutoff distance for interface residues

Options:
  -h, --help  Print help

Example:

./haddock-restraints interface examples/2oob.pdb 5.0

Chain A: [931, 933, 934, 936, 937, 938, 940, 941, 946, 950]
Chain B: [6, 8, 42, 44, 45, 46, 47, 48, 49, 66, 68, 69, 70]

Troubleshooting

/usr/bin/ld: cannot find -lc++: No such file or directory

sudo apt-get install libc++-dev libc++abi-dev

Unable to find libclang

sudo apt-get install libclang-dev

Dependencies

~20MB
~293K SLoC