public void TestRawTanimotoBetween0and1() { var smilesParser = CDK.SmilesParser; var mol1 = smilesParser.ParseSmiles("Cc1nc(C(=O)NC23CC4CC(CC(C4)C2)C3)c(C)n1C5CCCCC5"); var mol2 = smilesParser.ParseSmiles("CS(=O)(=O)Nc1ccc(Cc2onc(n2)c3ccc(cc3)S(=O)(=O)Nc4ccc(CCNC[C@H](O)c5cccnc5)cc4)cc1"); var fingerprinter = new SignatureFingerprinter(0); var fp1 = fingerprinter.GetRawFingerprint(mol1); var fp2 = fingerprinter.GetRawFingerprint(mol2); var tanimoto = Tanimoto.Calculate(fp1, fp2); Assert.IsTrue(tanimoto > 0 && tanimoto < 1, $"Tanimoto expected to be between 0 and 1, was:{tanimoto}"); }
public void CompareCountFingerprintAndRawFingerprintTanimoto() { var mol1 = TestMoleculeFactory.Make123Triazole(); var mol2 = TestMoleculeFactory.MakeImidazole(); var fingerprinter = new SignatureFingerprinter(1); var countFp1 = fingerprinter.GetCountFingerprint(mol1); var countFp2 = fingerprinter.GetCountFingerprint(mol2); var feat1 = fingerprinter.GetRawFingerprint(mol1); var feat2 = fingerprinter.GetRawFingerprint(mol2); var rawTanimoto = Tanimoto.Calculate(feat1, feat2); var countTanimoto = Tanimoto.Method1(countFp1, countFp2); Assert.AreEqual(rawTanimoto, countTanimoto, 0.001); }