2
$\begingroup$

I am looking for a way to calculate the MorganConnectivity finger print for molecule object in Mathematica. v12.1 seemed to have an undocumented function MoleculeFingerprint

 Chemistry`MoleculeFingerprint[mol, FingerprintType -> "MorganConnectivity"]

where, mol is some Molecule object. However, when I try this on v13.0.1,the function returns without any output. MoleculeSimilarityFunction in function repository computes this fingerprint to compare two molecules. Is there a way to extract that fingerprint using some other function?

Thank you,

$\endgroup$
2
  • 3
    $\begingroup$ See the discussion here - in version 13 you can use Chemistry`ExtendedConnectivityFingerprint to obtain the fingerprint directly $\endgroup$
    – Jason B.
    Mar 25, 2022 at 2:22
  • $\begingroup$ Thank you! I notice that on the linked question you mentioned a cloud notebook documenting some of these functions and use cases. I guess I would like to send a gentle reminder and much appreciation for that effort. Thank you so much! $\endgroup$
    – bhopshang
    Mar 25, 2022 at 8:50

1 Answer 1

2
$\begingroup$

The molecule fingerprint functions have been compiled into a paclet and placed in the new Wolfram Paclet Repository, with extensive documentation. In the Molecule Fingerprints paclet there are functions for creating atom pair fingerprints, topological fingerprints (a.k.a. RDKit fingprints or Daylight fingerprints), extended connectivity fingerprints, and more.

In Mathematica version 13 or greater you can run

PacletInstall["WolframChemistry/MoleculeFingerprints"]

which should return a PacletObject to indicate successful installation. To see the available functions use

Needs["WolframChemistry`MoleculeFingerprints`"]

?WolframChemistry`MoleculeFingerprints`*

enter image description here

Clicking any of the symbols brings up the documentation page. To get a fingerprint using non-default options use something like

m = Molecule["CCC(=O)Oc1ccc2c(c1)CC[C@@H]1[C@@H]2CC[C@]2([C@H]1C[C@H]([C@@H]2OC(=O)CC)O)C"];
In[9]:= TopologicalFingerprint[m, "SparseArray", 
  "CountSimulation" -> True] // OutputForm

Out[9]//OutputForm= SparseArray[<886>, {2048}]
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.