Reactants in various forms

26-01-2006 13:18:20

If I have a reaction such as:


Code:



[#8]-c1ccccc1>>[#8]Cc1ccccc1








And take two reactants such as


Code:



OC1=CC=C(CCCl)C=C1





and


Code:



Oc1ccc(CCCl)cc1





then both SMILES represent the same molecule but one is aromatised and the other is dearomatised.





If I then use the reactor class:


Code:



Reactor reactor = new Reactor();


reactor.setMappingStyle(2);


reactor.setReaction(rxn);


reactor.setReactants(reactants);


Molecule[] products = reactor.react();





then the aromatised SMILES successfully reacts, and the dearomatised fails and returns null, but I would assume that both would transform.





So, is this by design? If so, then what's the best way to handle this?

ChemAxon fb166edcbd

26-01-2006 13:56:07

This is what Standardizer is good for:


you can set a Standardizer object in Reactor by





Reactor.setStandardizer(Standardizer)
and you can create a


Standardizer object by setting its config in the constructor,


for example:


Code:



Standardizer standardizer = new Standardizer("aromatize");





will create a Standardizer object which standardizes the molecule.


After set in Reactor, this standardization is applied to both the


reaction and the reactants. You can also require the standardization


of the products, see Reactor.setStandarizationType(int).


I attach some sample code, run it by:





Code:



java ReactorTest1 "[#8]-c1ccccc1>>[#8]Cc1ccccc1" "Oc1ccc(CCCl)cc1"


OCc1cccc(CCCl)c1


java ReactorTest1 "[#8]-c1ccccc1>>[#8]Cc1ccccc1" "OC1=CC=C(CCCl)C=C1"


OCc1cccc(CCCl)c1








You can see that it returns the same product for both reactants.





Standardizer docs:


Standardizer User's Guide


Working examples


Simple examples





If you run Reactor from the command line (script 'react') then use parameter -S to set standardization and parameter -y to set the standardization type ('pre' is the default):





Code:



react -r "[#8]-c1ccccc1>>[#8]Cc1ccccc1" -S "aromatize" -y pre "OC1=CC=C(CCCl)C=C1"


OCc1cccc(CCCl)c1


User c23c5e9da4

04-05-2006 23:55:57

it would be helpful to be able to attach a different Standardizer to the reactants and the products. For instance I want my reactants Standardizer to be this new Standardizer("aromatize") and my products Standardizer to be new Standardizer("dearomatize..clean").

ChemAxon d76e6e95eb

05-05-2006 07:07:22

Can't you post standardize your products with Standardizer after the reaction?

User c23c5e9da4

05-05-2006 17:08:46

sure but it would be more convenient to have the reactor do it - after all you could also standardize your reagents first also.

ChemAxon d76e6e95eb

06-05-2006 17:29:01

Thanks for the idea, we will let you standardize the reactants and products differently. We are just discussing the alternative implementation possibilities.