rdkit-js icon indicating copy to clipboard operation
rdkit-js copied to clipboard

Request for access to atoms and atom properties

Open baoilleach opened this issue 2 years ago • 3 comments

Hi @ptosco. Any chance of access to the atoms and their properties? Specifically, I am developing an application that does a SMARTS match and then looks at the matching atoms. This works so far, in that I have the atom indices, but I need to be able to access the corresponding atoms, and then the ability to access degree, valence, charge, implicit H count, and whether in a ring. Actually, to be exact, I am implementing the same application across several JS cheminf toolkits, so would like to include RDKit of course!

baoilleach avatar Feb 01 '23 18:02 baoilleach

@baoilleach Hi Noel, currently getters/setters for atom and bond properties are not exposed. I agree they would be useful and it would be good to expose them to JS, together with other bits that several others have asked for (e.g., MCS, R group decomposition). However, as discussed with @greglandrum, before exposing all of that we need to do some work on the CMake build system in order to allow opting in/out different sets of features, otherwise we keep bloating a library which was meant to be lightweight, as the MinimalLib name suggests, with functionality that not everyone would need. Unfortunately at this time I do not have time to work on that, but it is definitely on my radar.

ptosco avatar Feb 02 '23 08:02 ptosco

Understood. I'll keep an eye on the project.

baoilleach avatar Feb 02 '23 09:02 baoilleach

@baoilleach with the mol.get_json() method you have access to an object containing a molecules property with a vector of atoms containing the following (optional) properties:

{
  chg: number;
  /** Implicit Hydrogens count */
  impHs: number;
  isotope: number;
  nRad: number;
  stereo: 'unspecified' | 'cw' | 'ccw' | 'other';
  z: number;
}

So, you could map the atom indices to this vector and get some of the information you are looking for.

papillot avatar Apr 01 '23 16:04 papillot