# haddock-restraints
[](https://doi.org/10.5281/zenodo.13362093)
[](https://crates.io/crates/haddock-restraints)
[](https://crates.io/crates/haddock-restraints)
[](https://fair-software.eu)
[](https://github.com/haddocking/haddock-restraints/actions/workflows/test.yml)

[](https://app.codacy.com/gh/haddocking/haddock-restraints/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[](https://crates.io/crates/haddock-restraints)
A standalone command-line application to generate restraints to be used in HADDOCK.
## Commands
- [`tbl`: Generates a TBL file](https://www.bonvinlab.org/haddock-restraints/tbl.html)
- [`ti`: Generate true-interface restraints from a PDB file](https://www.bonvinlab.org/haddock-restraints/ti.html)
- [`restraint`: Generate Unambiguous restraints to keep molecule (including heteroatoms) together during docking](https://www.bonvinlab.org/haddock-restraints/restraint.html)
- [`interface`: List residues in the interface](https://www.bonvinlab.org/haddock-restraints/interface.html)
- [`z`: Generate Z-restraints for a protein](https://www.bonvinlab.org/haddock-restraints/z.html)
- [`unambig-ti`: Generate unambiguous true-interface restraints from a PDB file](https://www.bonvinlab.org/haddock-restraints/unambig-ti.html)
## Usage
**(Coming soon!)** Go to _wenmr.science.uu.nl/haddock-restraints_ for a graphical user interface
Check [bonvinlab.org/haddock-restraints](https://bonvinlab.org/haddock-restraints) for a **user guide** on how to use the code as a command-line application.
Check [docs.rs/haddock-restraints](https://docs.rs/haddock-restraints/0.8.2/haddock_restraints/) for the **developer documentation**, and how to use it as a library in your code.
## Install
- Download the [latest binary in the release page](https://github.com/haddocking/haddock-restraints/releases/latest)
OR
- Install it with [`cargo`](https://www.rust-lang.org/tools/install)
```bash
cargo install haddock-restraints
```
## Execute
```bash
$ 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
unambig-ti Generate unambiguous true-interface restraints from a PDB file
restraint Generate unambiguous restraints to keep molecules together during docking
interface List residues in the interface
z Generate Z-restraints for a protein
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
```
## Planned features
- [x] Generate `.tbl` files from an input file (tbl command)
- [x] Define passive residues based on surface accessibility (tbl command - `surface_as_passive`)
- [x] Define passive residues around active ones (tbl command - `passive_from_active`)
- [x] Support for N interactors; 2-body, 3-body, 4-body, etc (tbl command)
- [x] Support for multiple interaction sites in the same interactor (tbl command)
- [x] Generate _true-interface_ restraints for benchmarking (ti command)
- [x] Create unambiguous restraints to keep molecules together during docking (restraint command)
- [x] Filter out buried residues (tbl command)
- [x] List residues in the interface (interface command)
- [x] Add Z-restraints to keep molecules aligned in the Z-axis (z command)
- [x] Specify atom subsets
- [ ] Template based restraints
- [ ] ~Generate random-restraints~ done via CNS
## Troubleshooting
### `Unable to find libclang`
```bash
sudo apt-get install libclang-dev
```