but if you pass your XLS file to a Reaction to Indigo, then Indigo to Reaction, and then Query Reaction to Indigo, the subsequent Reaction Automapper then accepts the input.
Dont understand why this should now be accepted. It still doesnt allow the Molecule Transformation node to work. I dont think R/A atoms are mapped to one another in the Reaction Automapper.
Thank you for the examples, and conversion! We were waiting some feedback in order to find weak parts of the Transformation Node.
The transformation rules can be specified in two ways:
1. with R-groups
If R-groups are specified that it means that only they can be attached. And this mean that the untransformed part of the molecule is specified with R-groups.
2. without R-groups
In this case the pattern is matched as substructure. In order to transform the molecule correctly we need to now atom-to-atom mapping to restore bonds between transformed and untransformed part.
All the atoms with undefined properties should have atom-to-atom mapping in order to tell the transfomration node where to get unspecified information. This mean that if you have any atoms in both parts of the reaction then you should provide atom-to-atom mapping between them.
To convert any atoms into R-rgoups I have loaded them as ordinary reaction, replaced any atoms with R-rgoups, and saved them again in RXN format. If is also possible to specify R-groups in SMILES format directy, but such extension is now well human-readable.
The fixed workflow is attached. Currect version cannot do 1000x1000 = 1 million transformations very fast, and I have selected only first 30 transformation. I now to do it faster, so in some next version it might handle such size of an input.
I tried to use this workflow with the transformation node. Clearly it is very usefull!!
But I have some errors with somes transformations. Based on rxn files I try to do the followinf transformations:
C-Ac >> C-C(=O)-C
O-Ac >> O-C(=O)-C
O-Li >> OH
S-Na >> SH etc for O-Na; O-K; S-Li; S-K
I obtain empty transformations for the metal covalent bond
I obtain the input molecule for the Ac transformation. I think here the Ac group is expended with the MoltoIndigo node, thus no tranformations can be done, and then collapse with the IndigotoMol node.
I think that the problem is not in the number of transformations, but in some specific transformation. For debugging purpose I have added printing of the target molecule rowid and the transformation rowid. And I found that everything gets stuck on the transformation Row303. The transformations are applied one-by-one, and on the previous steps a lot of Cl atoms were added, and this transformation Row303 tries to replace all of them… Was this supposed?
To Lionel:
Could you give the exact reaction that you are passing into the Transformation node? Or maybe even the whole workflow if possible. This would help us to identify the problem faster.
The CL atom addition is clearly undesirable, but may happen due to the replacement specified in the reaction. Further discussion below may have pointers on whether this behaviour in the node is correct. It all depends on the order and number of times transformations are fired.
I was interested in comparing what happens when we apply all transformations at once to a molecule VS looping and applying them. I get 1 molecule in the output in all at once [obvisouly] and many by looping. But the loop output also shows many molecules with no change at all i.e where the transform was not applicable. I wonder if these should go to port 1 as we are interested only in those molecules that ARE transformed?
The situation reminds me of applying business rules in a rule engine where the consequence/result of a rule firing in turn leads to activation of other rules, that have the result of the previous rule in their if part . I guess this type of rule engine behaviour does not apply here? Or does it? The node probably just fires all rules 1 by 1 in serial order.
For my purpose what worked better was the Combinatorial node. I could get many outputs as desired . I wonder how the combinatorial node differs exactly from the transformer node, since one can do some post-processing /substructre matching etc to get what's necessary, rather than using the transformer node?