Learn R Programming

Rcpi (version 1.8.0)

calcDrugFPSim: Calculate Drug Molecule Similarity Derived by Molecular Fingerprints

Description

Calculate Drug Molecule Similarity Derived by Molecular Fingerprints

Usage

calcDrugFPSim(fp1, fp2, fptype = c("compact", "complete"), metric = c("tanimoto", "euclidean", "cosine", "dice", "hamming"))

Arguments

fp1
The first molecule's fingerprints, could be extracted by extractDrugMACCS(), extractDrugMACCSComplete() etc.
fp2
The second molecule's fingerprints.
fptype
The fingerprint type, must be one of "compact" or "complete".
metric
The similarity metric, one of "tanimoto", "euclidean", "cosine", "dice" and "hamming".

Value

The numeric similarity value.

Details

This function calculate drug molecule fingerprints similarity. Define a as the features of object A, b is the features of object B, c is the number of common features to A and B:
  • Tanimoto: aka Jaccard - $c/a+b+c$
  • Euclidean: $\sqrt(a + b)$
  • Dice: aka Sorensen, Czekanowski, Hodgkin-Richards - $c/0.5[(a+c) + (b+c)]$
  • Cosine: aka Ochiai, Carbo - $c/\sqrt((a + c)(b + c))$
  • Hamming: aka Manhattan, taxi-cab, city-block distance - $(a + b)$

References

Gasteiger, Johann, and Thomas Engel, eds. Chemoinformatics. Wiley.com, 2006.

Examples

Run this code

mols = readMolFromSDF(system.file('compseq/tyrphostin.sdf', package = 'Rcpi'))

fp1 = extractDrugEstate(mols[[1]])
fp2 = extractDrugEstate(mols[[2]])
calcDrugFPSim(fp1, fp2, fptype = 'compact', metric = 'tanimoto')
calcDrugFPSim(fp1, fp2, fptype = 'compact', metric = 'euclidean')
calcDrugFPSim(fp1, fp2, fptype = 'compact', metric = 'cosine')
calcDrugFPSim(fp1, fp2, fptype = 'compact', metric = 'dice')
calcDrugFPSim(fp1, fp2, fptype = 'compact', metric = 'hamming')

fp3 = extractDrugEstateComplete(mols[[1]])
fp4 = extractDrugEstateComplete(mols[[2]])
calcDrugFPSim(fp3, fp4, fptype = 'complete', metric = 'tanimoto')
calcDrugFPSim(fp3, fp4, fptype = 'complete', metric = 'euclidean')
calcDrugFPSim(fp3, fp4, fptype = 'complete', metric = 'cosine')
calcDrugFPSim(fp3, fp4, fptype = 'complete', metric = 'dice')
calcDrugFPSim(fp3, fp4, fptype = 'complete', metric = 'hamming')

Run the code above in your browser using DataLab