Due in part to the increasing availability of crystallographic protein structures as well as rapid improvements in computer power, the past few decades have seen an explosion in the field of computer-based rational drug design. For an ever growing number of systems there are a large number of experimentally verified binders available. The novel drug-design algorithm described on this page, called LigMerge, combines structures of known binders to generate similar but structurally distinct compounds that can be tested for binding. The basic idea of the algorithm is that the largest common substructure between two ligands is identified, the ligands are superimposed so that the common substructures overlap and then a random combination of possible substituents from the two original structures is picked to form the merged compound. The user can choose an exhaustive sampling of substituent combinations. The user also has the option to output the largest common substructure.




LigMerge is a Python script, and so requires a Python interpreter The program has been tested on Linux. Download a copy of LigMerge here.




To use LigMerge two pdb structures (corresponding to the molecules that are to be merged) have to be provided. Alternatively a directory with serveral pdbs can be specified. LigMerge will merge every pair of structures in the directory.
Here is a sample commandline:
python -ligand1 ./ligands/compound1.pdb -ligand2 ./ligands/compound2.pdb -output_dir ./output/ -all_symmetry_relations true -all_substituent_combinations true -output_mcs true -max_runtime 60 -minsize_mcs 5


Command-line Parameters

parameter description
-ligand1 If a pair of PDB structures are to be merged, this flag specifies the filename of the first structure.
-ligand2 If a pair of PDB structures are to be merged, this flag specifies the filename of the second structure.
-output_dir The output directory to which all derivative compounds will be written.
-all_symmetry_relations Once the maximum common substructure is identified, there are frequently several symmetry related transformations to superimpose the common substructure. For instance, if the common substructure is a benzene ring there will be 12 unique superimpositions. If this flag is true all of them will be sampled. If the flag is false, one will be randomly choosen. Default is "true".
-all_substituent_combinations All the atoms of the common sustructure from which different fragments protrude are defined as handle atoms. In general there will be two different fragments per handle atom to pick from for the merged structure. If this flag is true, merged compounds with all possible combinations of fragments will be generated. If the flag is false, one random combinations will be picked and a single merged compound generated. Default is "true".
-output_mcs Flag to choose whether the maximum common substructure will be output. Default is "false".
-max_runtime Set the value of the maximum runtime (in seconds) of LigMerge in case the identification of the maximum common substructure requires too much time. Default is "3600".
-minsize_mcs Set the value of the minimum allowable size of the maximum common substructure. Default is "3".
-ligands_dir Specifies a directory containing PDB structures to be merged. This flag cannot be used together with -ligand1 and -ligand2.