schrodinger.application.glide.ensemble_selection module

Classes for representing receptor ensembles and for choosing the best ensembles of a specified size from a cross-docking experiment.


from schrodinger.application.glide import ensemble_selection
es = ensemble_selection.EnsembleSelection(fname='xdock.csv',

# get the 10 best 3-member ensembles

print "Best by count"
for ens in es.best_ensembles_by_count(3, 10):
    print "%d\t%.3f\t%s" % (ens.count, ens.rmsd, ens)

print "\nBest by rmsd"
for ens in es.best_ensembles_by_rmsd(3, 10):
    print "%d\t%.3f\t%s" % (ens.count, ens.rmsd, ens)

For more details, see the documentation for the EnsembleSelection class.

schrodinger.application.glide.ensemble_selection.lignum_reader(reader, lignum_prop='i_i_glide_lignum', ligoffset=0, ignore_dups=False)

A generator that returns the structures in fname that have lignum_prop > ligoffset. ‘reader’ is an iterator that generates Structure objects (e.g., a StructureReader).


  1. This requires that the structures are sorted by lignum (as in a raw file from Glide), and that each lignum appears once at most. An exception will be raised otherwise. However, the no-duplicate requirement can be waived by passing a True value for ignore_dups.

  2. If a ligand is missing in the file, the generator returns None for that ligand. For example, if lig2 is not in the file, we get (lig1, None, lig3…)

class schrodinger.application.glide.ensemble_selection.Ensemble_Priority_Queue(nslots)

Bases: object

Class implementing a priority queue for the purpose of maintaining lists of ensembles in memory during ensemble selection

property length
property ensembles