Similarity & Distance¶
molfp.similarity
¶
Similarity diagnostics: characterize how fingerprints distribute similarity scores.
similarity_matrix(smiles_list, fp_type='ecfp4', metric='tanimoto')
¶
Compute pairwise similarity matrix for a list of molecules.
Uses vectorized computation from the distance module.
Returns (N, N) numpy array of float32.
similarity_profile(smiles_list, fp_type='ecfp4', metric='tanimoto')
¶
Characterize the similarity distribution for a fingerprint on a dataset.
Returns dict with statistical summary of pairwise similarities.
compare_fps(smiles_list, fp_types=None, metric='tanimoto')
¶
Compare similarity distributions across multiple fingerprint types.
Returns list of profile dicts, sorted by mean similarity.
molfp.distance
¶
Distance and similarity functions for molecular fingerprints.
Provides vectorized Tanimoto, Dice, Cosine, and Sokal-Michener metrics for both binary and count fingerprints, operating on single pairs or full pairwise matrices.
tanimoto(a, b)
¶
Tanimoto similarity between two fingerprint vectors.
Works for both binary (Jaccard) and count vectors.
dice(a, b)
¶
Dice similarity between two fingerprint vectors.
cosine(a, b)
¶
Cosine similarity between two fingerprint vectors.
sokal_michener(a, b)
¶
Sokal-Michener (simple matching) similarity for binary vectors.
russel_rao(a, b)
¶
Russel-Rao similarity for binary vectors (shared ON bits / total bits).
pairwise(X, metric='tanimoto')
¶
Compute pairwise similarity matrix for a fingerprint matrix.
Uses vectorized computation for Tanimoto; falls back to pairwise loop for other metrics.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
X
|
ndarray
|
(n_samples, n_bits) fingerprint matrix |
required |
metric
|
str
|
"tanimoto", "dice", "cosine", "sokal_michener", "russel_rao" |
'tanimoto'
|
Returns:
| Type | Description |
|---|---|
ndarray
|
(n_samples, n_samples) symmetric similarity matrix |
distance(a, b, metric='tanimoto')
¶
Distance (1 - similarity) between two fingerprint vectors.
pairwise_distance(X, metric='tanimoto')
¶
Compute pairwise distance matrix (1 - similarity).
available_metrics()
¶
Return list of available similarity/distance metric names.