Skip to content

Molecule generation code, related to OMG, but using a slightly different algorithm

Notifications You must be signed in to change notification settings

gilleain/moleculegen

Repository files navigation

Building and running

Use maven to build a jar with dependencies:

mvn package -DskipTests

and then run :

java -cp target/moleculegen-1.0-jar-with-dependencies.jar app.AMG -e "C4H11N" -O SMI
NC(C)(C)C
NCC(C)C
NC(C)CC
NCCCC
N(C)C(C)C
N(C)CCC
N(CC)CC
N(C)(C)CC

For a full list of commands, run with -h or no arguments:

java -cp target/moleculegen-1.0-jar-with-dependencies.jar app.AMG
Usage: java -jar AMG.jar -e <formula>

Basic options :
-c              Compare the output to the input file
-e <formula>    Elemental Formula
-h              Print help
-i <path>       Input Filepath
-I <format>     Input Format (SMI, SIG, SDF, MOL)
-n              Number output lines
-o <path>       Output Filepath
-O <format>     Output Format (SMI, SIG, SDF, MOL)
-p              Show parent of each molecule
-r <min:max>    Range of input file to use
-t              Time the run
-z              Compress (zip) the output

Advanced options :
--augmentation=<method>  Augmentation method (ATOM, BOND)

Background

An implementation of a molecule generation algorithm similar to that of the Open Molecule Generator (OMG) Source here. There are a couple of differences:

  • OMG uses nauty (a fast c-library for graph automorphism and canonical labelling computation), this uses signatures.
  • OMG augments by bond while this augments by vertex.
  • There is an alterntative listing method for candidate children of a parent molecule, that uses the automorphism group of the parent to eliminate symmetric duplicates.

It is, however, slower than OMG - which is slower than molgen. So it should be considered as a proof-of-concept rather than a useable tool (for now...). Comments and suggestions are welcome.

About

Molecule generation code, related to OMG, but using a slightly different algorithm

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published