The graph-based GA (GB-GA) algorithm combines ideas from the algorithm developed by Brown et al. and the ACSESS algorithm developed by Virshup et al. and is implemented using the open source RDKit package. In this context "graph-based" means that crossover and mutation is performed by altering a graph representation of the molecules as opposed to, say, a string based representation such as SMILES. The crossovers and mutations are defined using RDKit's reaction SMILES. Following Brown et al. a crossover can occur both at non-ring (Figure ) and ring bonds (Figure -f), with equal probability and the position of the cuts are chosen randomly. Molecules with macrocycles (seven atoms or more -Figure ), allene centers in rings, fewer than five heavy atoms (Figure ), incorrect valences as determined by RDKit, and more non-H atoms than the target size are discarded. The target size is a random number sampled from a distribution with a mean 39.15 non-H atoms and a standard deviation of 3.50 non-H atoms as discussed later in the paper. The mutation operations to those used by Virshup et al. (Figure ). The initial mating pool is drawn from a subset of the ZINC dataset used in previous studies, as described below and molecules are sampled from the mating pool based on their normalized logP scores. Overview of mutation operations and their associated probabilities, e.g. if an "append atom" mutation is chosen then a single bond is added 60% of the time. "∼" indicates an arbitrary bond order Table . Probability of the 15 most common 3-atom combination in rings in the first 1000 structures of the ZINC data set ("ZINC"), and in 1000 structures generate by the GB-GM method using the ZINC probabilities ("GB-GM(62%)" and a probability set where the probability of [*]=[*]-[*] type bonding is increased to 80% ("GB-GM(80%)") bonding ZINC GB-GM(62%) GB-GM(80%)