Skip to content

Python optimisation of atomistic ligand charges to maximize receptor binding affinity

License

Notifications You must be signed in to change notification settings

adw62/Ligand-Optimiser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ligand Optimiser

Optimise the atomistic charges or van der Waals parameters of a ligand to maximize receptor binding affinity.

Installation

  • via conda:

    conda config --add channels omnia --add channels conda-forge

    conda install -c adw62 ligcharopt

Options

[--job_type=STRING] FEP jobs that can be performed,

default: 'F'
options:
        F  - Fluorine
        Cl - Chlorine
        N  - Nitrogen
        S  - Sulphur

[--output_folder=STRING] Directory for output,

default: './mol_name_job_type'

[--ligand_name=STRING] String ligand is adressed by in input mol2 file,

default: 'MOL'

[--mol_name=STRING] Name of input mol2 file containg ligand,

default: 'ligand'

[--complex_name=STRING] Name of input pdb file containg ligand,

default: 'complex'

[--solvent_name=STRING] Name of input pdb file containg ligand,

default: 'solvent'

[--yaml_path=STRING] Path to yaml file containg options for yank exsperiment builder,

default: './setup.yaml'

[--o_atom_list=LIST] List of indices of oxygen atoms in ligand.mol2 to be replaced with S,

default: None

[--c_atom_list=LIST] List of indices of carbon atoms in ligand.mol2 to be replaced with N,

default: None

[--h_atom_list=LIST] List of indices of hydrogen atoms in ligand.mol2 to be replaced with F or Cl

default: None

[--auto_select=STRING] Automatic selction of indicies for mutation based on input,

 default: None
 options:
         1  - for O.1 oxygens, C.1 carbons or their associated H
         2  - for O.2 oxygens, C.2 carbons or their associated H
         3  - for O.3 oxygens, C.2 carbons or their associated H
         ar - for O.ar oxygens, C.ar carbons or their associated H

[--num_frames=INT] Number of frames of trajectory to collect for objective, frames spaced by 5ps,

default: 500

[--net_charge=INT] Net charge of ligand to be passed to antechamber for paramterisation, net_charge should also be set in setup.yaml,

default: 0                   

[--gaff_ver=INT] Gaff version to use in paramterisation,

default: 2           
options: 1, 2

[--equi=INT] Number of steps of equilibriation, each step is 2fs,

default: 100

[--num_fep=INT] Number of repeates to do when testing the set of optimised charges with full FEP,

default: 1             

[--charge_only=BOOL] Boolean to determine if only charge parameters should be changed,

note: Should be True for optimisation          
default: False                    

[--vdw_only=BOOL] Boolean to determine if only van der Waals parameters should be changed,

default: False

[--optimize=BOOL] Boolean to determine if an optimisation is being performed,

default: False

[--opt_name=STRING] Name of optimisation being performed,

default: scipy              
options: scipy 

[--rmsd=FLOAT] RMSD limit placed on the original and optimised charges,

default: 0.03 q_e

[--opt_steps=INT] Number of optimisation steps to perform,

default: None

[--central_diff=BOOL] Boolean to deterimine if the optmiser will calculate the gradient with a central of forward difference,

default: True

[--num_gpu=INT] Number of GPU for the node where the calculation is run,

note: This software is not configured to use MPI and should only be run on one node, however this node may have multiple GPUs
default: 1

[--exclude_dualtopo=BOOL] Excludes any atoms in daul topology from seeing each other.

note: Fluorines are added to a dual topology as typically the hydrogens they are mutated from are constrained. It is not possiable to alchemically interpolate the hydrogen constraint into a C-F harmonic bond.
default: 1

Example usage

Optimise atomic charges of a ligand and verify the ddG of this optimisation with one full FEP calculation

LigCharOpt --optimize=1 --charge_only=1 --yaml_path='./setup.yaml'

Run a full FEP calculations on all mutants with 'O.3' oxygens swapped for S

LigCharOpt --job_type='S' --auto_select=3 --yaml_path='./setup.yaml'

About

Python optimisation of atomistic ligand charges to maximize receptor binding affinity

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages