By using the Atom Replacer node right after the SDF Reader you’re telling KNIME to replace every F with O, and since atom labels don’t include charges, it’ll understand to use OH.
My suggestion would be to use the RDKit One Component Reaction node, using the following Reaction SMARTS (or something similar):
This node carries out a chemical reaction on a single molecule. The SMARTS Reaction string tells KNIME to
- look for an aromatic carbon and label it as atom 1
- look for a sulfur atom bound to that aromatic carbon and also to 2 oxygen atoms (with double bonds) and an F atom, and label it as atom 2
- replace the F with O-
Follow this up with the RDKit Generate Coords node and you get something that looks like this:
The SMARTS I used is quite basic, and may fail if you have more complicated molecules. To help come up with your own, you can read more about SMILES and SMARTS molecular representation here: https://www.daylight.com/dayhtml/doc/theory/theory.smarts.html. They’re quite useful for things like this.