Skip to content

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.