I want to build a Molecular Fingerprint-Based Neural network QSAR.
The first step is to have/build a node which can read Molecular Fingerprints as input layer. Then to have a few hidden layers and output layer at the end.
I am trying to reproduce the work in the following paper. The authors used MATLAB. I want to do it in KNIME.
(I contacted the authors but haven’t heard back yet. Besides the software, I am trying to use is different than what they have used.)
Does anyone know if there is a node that can read fingerprints as input layer?
The workaround I was thinking is to use nodes similar to image processing. An image is a 2D matrix of pixel’s RGB values. In the image processing operations within the neural network, the RGB values of each pixel are read in input later and a 1D matrix is formed representing each image.
Similarly, bit vector representation of the fingerprint for each molecule could be read in as an input layer.
Any thoughts or guidance is highly welcome.
this is a nice use-case for our Keras integration (https://www.knime.com/deeplearning), which allows you to build neural networks with KNIME nodes and train them using the Keras Learner node.
Judging from a quick scan of the paper it should be easy to build the network using the Keras nodes and reading fingerprints should also be possible e.g. with the RDKit Fingerprint Reader node.
I hope these pointers help you out, and please feel free to ask if they don’t.
With the RDKit Nodes you can create Fingerprints within KNIME itself. No need to read them in. Fingerprints in KNIME are stored as BitVectors so there are nodes to work with bitvectors and convert fro example string like 1100010101 to fingerprints. Depends on what format the fingerprints exist.
And BTW Random Forest and Gradient boosting usually work just as good if not better for fingerprint based qsar while being much simpler and faster to run and optimize. So i would probably first look into that. Don’t buy too much into the Deep learning hype. it mostly works for images.