schrodinger.application.transforms.similarity module¶
Similarity scoring transforms for comparing query structures against reference molecules using fingerprint-based similarity metrics.
Copyright Schrodinger, LLC. All rights reserved.
- class schrodinger.application.transforms.similarity.Fingerprint¶
Bases:
StrEnum- ECFP4 = 'ECFP4'¶
- ECFP6 = 'ECFP6'¶
- FCFP4 = 'FCFP4'¶
- FCFP6 = 'FCFP6'¶
- property radius: int¶
- property is_feature: bool¶
- build_generator()¶
- class schrodinger.application.transforms.similarity.SimilarityMetric¶
Bases:
StrEnum- TANIMOTO = 'tanimoto'¶
- DICE = 'dice'¶
- COSINE = 'cosine'¶
- compute(fp1, fp2) float¶
- compute_fingerprint(fpgen, mol)¶
- class schrodinger.application.transforms.similarity.NeighborHit(name: str, smiles: str, score: float)¶
Bases:
objectA single reference neighbor match with its similarity score.
- Parameters:
name – Reference molecule title.
smiles – Reference molecule SMILES.
score – Similarity score.
- name: str¶
- smiles: str¶
- score: float¶
- __init__(name: str, smiles: str, score: float) None¶
- class schrodinger.application.transforms.similarity.SimilarityScoreResult(*, source_id: SourceID, structure: Structure, neighbors: list[NeighborHit])¶
Bases:
BaseModelResult of scoring a single structure against reference molecules.
Inputs that fail to score against any reference or fall below
min_similarityare routed todroppedinstead of yielding a result.- Parameters:
source_id – Source ID for tracking the input.
structure – The input structure, annotated with similarity properties.
neighbors – Top-k neighbor hits sorted by descending score.
- neighbors: list[NeighborHit]¶
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- class schrodinger.application.transforms.similarity.SimilarityScoreConfig(*, reference_file: str | None = None, reference_smiles: list[str] | None = None, fingerprint: Fingerprint = Fingerprint.ECFP4, metric: SimilarityMetric = SimilarityMetric.TANIMOTO, top_k: int = 1, min_similarity: float | None = None, error_handling: ErrorHandling | None = None)¶
Bases:
BaseModelConfiguration for similarity scoring transforms.
Exactly one of
reference_fileorreference_smilesmust be set.- Parameters:
reference_file – Path to a reference file (SDF, MAE, SMI, or CSV).
reference_smiles – Inline list of SMILES strings, each optionally followed by a name.
fingerprint – Type of Morgan fingerprint to generate.
metric – Similarity metric to use for scoring.
top_k – Number of nearest neighbors to return per query.
min_similarity – Minimum similarity threshold for filtering.
error_handling – Error handling configuration.
- reference_file: str | None¶
- reference_smiles: list[str] | None¶
- fingerprint: Fingerprint¶
- metric: SimilarityMetric¶
- top_k: int¶
- min_similarity: float | None¶
- error_handling: ErrorHandling | None¶
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [
ConfigDict][pydantic.config.ConfigDict].
- class schrodinger.application.transforms.similarity.RunSimilarityScore(*, _config: pydantic.main.BaseModel | None = None, **kwargs)¶
Bases:
PTransformWithConfigA PTransform that scores structures against reference molecules.
Returns an
OutcomePCollectionswith:main:
PCollection[SimilarityScoreResult]for successful inputsdropped:
PCollection[DroppedRecord]for inputs that failed to fingerprint, failed to score against any reference, or fell belowmin_similarity
See
SimilarityScoreConfigfor available configuration options.- config_class¶
alias of
SimilarityScoreConfig
- class schrodinger.application.transforms.similarity.SimilarityScore(*, _config: pydantic.main.BaseModel | None = None, **kwargs)¶
Bases:
PTransformWithConfigScore structures by similarity to reference molecules and yield the annotated structures directly.
Returns an
OutcomePCollectionswith:main:
PCollection[Structure]annotated with similarity propertiesdropped:
PCollection[DroppedRecord]for inputs routed to dropped byRunSimilarityScore(fingerprint failure, no references scored, or belowmin_similarity)
Example usage:
>>> with beam.Pipeline() as p: ... scored = (p ... | beam.Create([st1, st2]) ... | SimilarityScore(reference_file='refs.sdf'))
See
SimilarityScoreConfigfor available configuration options.- config_class¶
alias of
SimilarityScoreConfig