A genetic algorithm (GA) for structure prediction of molecular crystals

A genetic algorithm performs global optimization by mimicking an evolutionary process. The property being optimized is mapped onto a fitness function and structures with a higher fitness are assigned a higher probability for mating. Crossover and mutation operators generate offspring by combining or altering the structural genes of parent structures, such that structural features associated with a high fitness are propagated in the population. GAtor performs structure prediction for crystals of (semi-)rigid molecules with no internal rotational degrees of freedom. It is written in Python and distributed under a BSD-3 license. GAtor interfaces with the FHI-aims electronic structure package for energy evaluations and geometry relaxations with dispersion-inclusive density functional theory (DFT). It is recommended to start GAtor from a diverse initial pool of structures generated by Genarris.


  • A variety of breeding operators (crossover and mutation) tailored for molecular crystals provide a balance between exploration and exploitation.
  • Evolutionary niching, performed by using machine learning for dynamic clustering and then using a cluster-based fitness function, helps overcome initial pool biases and selection biases by steering the GA to under-explored regions of the configuration space.
  • A massive parallelization scheme, tested on up to 10^5 CPU cores, enables effective utilization of high performance computing resources.


  • F. Curtis, X. Li, T. Rose, A. Vazquez-Mayagoitia, S. Bhattacharya, L. M. Ghiringhelli, and N. Marom “GAtor: A First-Principles Genetic Algorithm for Molecular Crystal Structure Prediction”J. Chem. Theory Comput., 14, 2246 (2018)
  • F. Curtis, T. Rose, and N. Marom “Evolutionary Niching in the GAtor Genetic Algorithm for Molecular Crystal Structure Prediction”, Faraday Discuss. 211, 61 (2018)