Hello,
I've several questions regarding Indigo toolkit (JAVA wrapper 1.1.7) :
- Is there a way to remove several bonds from a molecule ? It is possible to remove several atoms, to remove bonds one by one, but it seems that there is no method to remove several bonds with a single call. As a consequence, one has to loop over each bond and call remove(), which is quite slow, at least compared to removeAtoms(int [] indices)
- Is there a hidden method / property that could be used to retrieve the Hybridization of a particular atom ?
- When atoms / bonds are removed from a molecule, indices are kept as they were defined, i.e. an atom with index() == 14 will remain with the same index even if only 10 atoms remain in the molecule. Is there a way to reset indices so they range from 0 to N-1 atoms / bonds, or is it something expected and necessary ?
- A side note: I performed some basic performance profiling on various processes involving the manipulation of molecules with indigo (JAVA), and I was surprised to see that IndigoObject.hasNext() is quite time consuming (pretty much the same amount of time is spent in hasNext and next(), even for simple iteration over atom and bonds of a molecule. Some methods that seem quite simple as well (index, atomicNumber, isRSite) also take a significant amount of time, while others (e.g. symbol()) are much faster. Any clue on that ? Just to be sure that there is no hope for optimization (i.e. JNA overhead only).
Cheers :)
Vincent