Molecule fingerprint to string converter

Hi Mikhail & Dmitry,


I'm trying to store Indigo fingerprints in a MySQL database, so that I can recall and compare them with other fingerprints.


For various reasons I need to use an SQL UPDATE command to store the fingerprints into my database. This hasn't yet been implemented natively in KNIME, so I have written an external Python script to do this. I pass the data to the Python script with the 'External Tool (Labs)' node. This object writes the data table to a .csv file which is read by my Python script. The script parses the .csv file, creates the UPDATE command and updates the database.


Unfortunately the 'External Tool' object doesn't seem to write SparseBitVectorCell data to the .csv file, so I'm looking for a workaround. I have managed to convert the fingerprint into a string and store that in the database, but there seems to be no way to convert this string back to the SparseBitVectorCell data type that the Indigo fingerprint is stored as.


KNIME's 'Bitvector Generator' node produces a DenseBitVectorCell data type, which isn't compatible with the SparseBitVector data type, so I can't simply read the string back from the database and convert it back into the appropriate format.


Can you think of a method that might allow me to store Indigo fingerprints in my database? If not, could I request a pair of nodes that convert the fingerprint from SparseBitVectorCell to string, and from string to SparseBitVectorCell, so that I can store the fingerprint as a string?


Best wishes,


Hello Chris,

In the latest version we have added an option to the Indigo Fingerprint node to output values in the dense format. Does it help in your case?

With best regards,