schrodinger.application.vss.dise module

DIrected Sphere Exclusion - like selection of ordered compounds. Typically used to enhance diversity in virtual screen results. An initial list of the top cpds is elected without respect to diversity, then subsequent members are compared, in input order, against the members in the list. If the subsequent cpd is distinct with respect to fingerprint similarity, it is added to the list. The ordered input is traversed until the desired number of cpds is reached or the input is exhausted.

Generally speaking, virtual screen scoring functions are aimed at enrichment, and don’t accurately rank order activies. Thus, a modest difference in score values may not be meaningful. Furthermore, the input cpds to a virtual screen often contain congeneric series with relatively low diversity. The aim of this tool is to balance the tension between ‘best scores’ and ‘chemical diversity’. The premise is that a ‘novel’ candidate cpd is potentially more valuable than a ‘degenerate’ candidate of roughly equal score.

In practice, 2-4 seed/threshold parameter sets are explored in independent exercises. The result sets are compared with respect to score distributions and similarity of nearest neighbor metrics. Leading to the selection of the set that presents an acceptable balance of score and diversity.

schrodinger.application.vss.dise.get_dise(num_seeds, *, similarity_threshold=0.6, fingerprint_type='MolPrint2D', similarity_metric='Tanimoto')

Returns a closure that implements DiSE filtering.

>>> selector = get_dise(
...     1, similarity_threshold=0.1, fingerprint_type='Radial')
>>> selector(ChmMol.fromSMILES('C'))
True, None, None
>>> selector(ChmMol.fromSMILES('CC'))
True, 0.0, 1
>>> selector(ChmMol.fromSMILES('CCC'))
False, 0.2, 2
  • num_seeds (int) – Number of “seed” compounds.

  • similarity_threshold (float) – Similarity threshold.

  • fingerprint_type (str) – (Canvas) fingerprint type. See schrodinger.application.canvas.fingerprint.CanvasFingerprintGenerator for possible values.

  • fingerprint_type – (Canvas) similarity metric. See schrodinger.application.canvas.fingerprint.CanvasFingerprintSimilarity for possible values.


Callable that accepts schrodinger.structure.Structure or schrodinger.canvas.ChmMol and returns (distinct, similarity, index) tuple, where distinct is of type bool, similarity and index are of type float and int respectivelly (or None for the first num_seeds structures). The index is the index of a most similar distinct structure already seen.

Return type