lightdock 0.3.2

Macromolecular docking software based on the GSO algorithm
Documentation
# LightDock-Rust

A Rust implementation of the [LightDock](https://lightdock.org) macromolecular software with the DFIRE and DNA scoring functions.

## Installation
1. Clone this repository:

 ```
 git clone https://github.com/lightdock/lightdock-rust.git
 ```

2. Compile it with Rust (you may install Rust using [rustup]https://rustup.rs/):

 ```
 cd lightdock-rust
 cargo build --release
 ```
 
## Examples

Several examples can be found in the `example` folder.

| Setting required Data Path |
|:---------------------------|
| You may set an environment variable `LIGHTDOCK_DATA` to point to the data folder included in this repository to avoid copying it: `export LIGHTDOCK_DATA=/path/to/lightdock-rust/data`  |

Recorded times on MacBook Pro M3 Pro.

### 1k4c (Membrane docking)

```bash
cd example/1k4c
time ../../target/release/lightdock-rust setup.json initial_positions_0.dat 100 dfire
```

Output:

```
Reading starting positions from "initial_positions_0.dat"
Swarm ID 0
Writing to swarm dir "swarm_0"
Reading receptor input structure: lightdock_receptor_membrane.pdb
Reading ligand input structure: lightdock_ligand.pdb
Loading DFIRE scoring function
Creating GSO with 200 glowworms
Starting optimization (100 steps)

real    1m52,132s
user    1m51,808s
sys     0m0,150s
```

### 1ppe (protein docking)

```bash
cd example/1ppe
time ../../target/release/lightdock-rust setup.json initial_positions_0.dat 100 dfire
```

Output:

```
Reading starting positions from "initial_positions_0.dat"
Swarm ID 0
Writing to swarm dir "swarm_0"
Reading receptor input structure: lightdock_1ppe_e.pdb
Reading ligand input structure: lightdock_1ppe_i.pdb
Loading DFIRE scoring function
Creating GSO with 200 glowworms
Starting optimization (100 steps)

real    0m4,252s
user    0m4,142s
sys     0m0,092s
```

### 2uuy (protein docking)

```bash
cd example/2uuy
time ../../target/release/lightdock-rust setup.json initial_positions_0.dat 100 dfire
```

Output:

```
Reading starting positions from "initial_positions_0.dat"
Swarm ID 0
Output directory does not exist for swarm 0, creating it...
Writing to swarm dir "swarm_0"
Reading receptor input structure: lightdock_2UUY_rec.pdb
Reading ligand input structure: lightdock_2UUY_lig.pdb
Loading DFIRE scoring function
Creating GSO with 200 glowworms
Starting optimization (100 steps)

real    0m8,108s
user    0m7,834s
sys	    0m0,261s
```

### 1czy (protein-peptide docking)

```bash
cd example/1czy
time ../../target/release/lightdock-rust setup.json init/initial_positions_0.dat 100 dfire
```

Output:

```
Reading starting positions from "init/initial_positions_0.dat"
Swarm ID 0
Writing to swarm dir "swarm_0"
Reading receptor input structure: lightdock_1czy_protein.pdb
Reading ligand input structure: lightdock_1czy_peptide.pdb
Loading DFIRE scoring function
Creating GSO with 200 glowworms
Starting optimization (100 steps)

real    0m1,580s
user    0m1,312s
sys	    0m0,248s
```

### 1azp (protein-nucleic docking)

```bash
cd example/1azp
time ../../target/release/lightdock-rust setup.json initial_positions_0.dat 100 dna
```

Output:

```
Reading starting positions from "initial_positions_0.dat"
Swarm ID 0
Output directory does not exist for swarm 0, creating it...
Writing to swarm dir "swarm_0"
Reading receptor input structure: lightdock_protein.pdb
Reading ligand input structure: lightdock_dna.pdb
Loading DNA scoring function
Creating GSO with 200 glowworms
Starting optimization (100 steps)

real    0m14,228s
user    0m13,932s
sys     0m0,281s
```