Package schrodinger :: Package application :: Package matsci :: Package genetic_optimization :: Module genetic_optimization :: Class GeneticOptimization
[hide private]
[frames] | no frames]

Class GeneticOptimization

object --+
         |
        GeneticOptimization

Manage the genetic optimization.

Instance Methods [hide private]
 
__init__(self, initial_population, properties, structure_score_threshold=-50.0, eval_kwargs={}, crossovers=None, mutators=None, fragment_libs=['optoelectronics'], script_evaluator=None, generations=10, population=8, crossover_rate=90.0, mutation_rate=90.0, selection='roulette_wheel', tournament_size=2, terminators=['unproductive', 'all_properties'], num_unproductive=6, scaling='sigma_truncation', elitism=1, random_seed=None, no_minimize=False, file_base_name='genopt', tpp_ga=1, no_open_shell=False, props_to_remove=None, jobbe=None, conformational_search=False, freezers=['remainder', 'previous'], inoculate=['no_child', 'bad_structure'], class_evaluator=None, logger=None)
Create an instance.
 
setRootLoggerForPyEvolve(self)
Set up the root logger for PyEvolve.
 
setOperatorNames(self)
Set the operator names.
 
checkInputParams(self)
Check the input parameters.
 
printProperties(self)
Log the set of sought properties and their details.
 
printParams(self)
Log the parameters.
StructureGenome
initializeGenome(self)
Initialize a genome.
 
initializeGA(self, genome)
Initialize the genetic optimization.
 
runIt(self)
Run the components of the genetic optimization.

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  MSGWIDTH = 80
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, initial_population, properties, structure_score_threshold=-50.0, eval_kwargs={}, crossovers=None, mutators=None, fragment_libs=['optoelectronics'], script_evaluator=None, generations=10, population=8, crossover_rate=90.0, mutation_rate=90.0, selection='roulette_wheel', tournament_size=2, terminators=['unproductive', 'all_properties'], num_unproductive=6, scaling='sigma_truncation', elitism=1, random_seed=None, no_minimize=False, file_base_name='genopt', tpp_ga=1, no_open_shell=False, props_to_remove=None, jobbe=None, conformational_search=False, freezers=['remainder', 'previous'], inoculate=['no_child', 'bad_structure'], class_evaluator=None, logger=None)
(Constructor)

 

Create an instance.

Parameters:
  • initial_population (list) - the initial population of schrodinger.structure.Structure
  • properties (list of Property) - the properties to be optimized, including structural properties as well as more physical calculable observables
  • structure_score_threshold (float) - if structure-based properties are being sought and if the base evaluator will be used then subjobs on structures with structure scores below this value will not be launched but rather such structures treated as skips
  • eval_kwargs (dict) - a dictionary that will be available in all evaluator functions
  • crossovers (list) - contains two-element tuples each of which holds a crossover operator to be used in the optimization along with a weight
  • mutators (list) - contains two-element tuples each of which holds a mutation operator to be used in the optimization along with a weight
  • fragment_libs (list) - strings specifying fragment libraries to be used, can be either module constants from FRAGMENT_LIBS.keys() (or ALL if all of those are desired) or the names of Maestro files (including the file extensions) containing fragments collected by the user
  • script_evaluator (method) - the evaluator function to be called to score individuals during the optimization, takes a StructureGenome and returns a launcher.Launcher
  • generations (int) - the number of generations for which to run the optimization
  • population (int) - the population size to use in the optimization, can be less-than-or-equal-to the length of initial_population
  • crossover_rate (float) - the rate of crossover as a percentage
  • mutation_rate (float) - the rate of mutation as a percentage
  • selection (str) - the selection protocol used to select individuals to the gene pool for the upcoming generation
  • tournament_size (int) - the size of tournament to use if using tournament based selection, unused if a tournament based selection is not being used
  • terminators (list) - list of strings that specify the termination protocols to be used to terminate the optimization, typically more than one is specified only if the unproductive protocol is being used
  • num_unproductive (int) - if the unproductive protocol is being used to terminate the optimization then this integer specifies how many unproductive cycles are allowed before terminating, unused if a different termination protocol is used
  • scaling (str) - specifies the scaling protocol to use, scaling scales the raw scores of the individuals to produce fitness scores to ease selection in cases where raw scores are nearly equal
  • elitism (int) - specify the number of elite individuals guaranteed to be added to the gene pool for the upcoming generation, zero disables elitism
  • random_seed (None or int) - the random seed, if None then system time will be used
  • no_minimize (bool) - specify that the offspring structures generated by the crossover and mutation operators not be geometry optimized prior to selection
  • file_base_name (str) - base name to use for output and generation log files
  • tpp_ga (int) - a threads-per-processor value, used to parallelize the scoring of the individuals during the optimization, this option simply forks out tpp_ga simultaneous processes that reside on the same node, if your evaluation function supports parallelization and you wish to utilize a second level of parallelization of each individual evaluation then pass those arguments in eval_kwargs
  • no_open_shell (bool) - if True then do not allow the processing of open shell molecules, False otherwise
  • props_to_remove (list) - a list of structure property keys to be removed prior to the evaluation stage
  • jobbe (schrodinger.job.jobcontrol._Backend) - the jobcontrol backend of the driver job
  • conformational_search (bool or str) - specifies whether a Macromodel conformational search will be performed prior to evaluation, when a string it specifies a simplified Macromodel input file containing extra options
  • freezers (list) - a collection of freezers containing structures that are used to swap out individuals from the population
  • inoculate (list) - the list of circumstances under which to use the structure freezers
  • class_evaluator (class) - the evaluator class to be called to score individuals during the optimization, must inherit ClassEvaluator
  • logger (logging.Logger) - output logger
Overrides: object.__init__

initializeGenome(self)

 

Initialize a genome.

Returns: StructureGenome
a genome

initializeGA(self, genome)

 

Initialize the genetic optimization.

Parameters:
  • genome (StructureGenome) - a genome