fluorination

User 6288f3e087

10-10-2013 14:40:05

Hello, 


Is there a SMARTS reaction that I can use, or maybe a REACT command so that I can exhaustively fluorinate the whole molecule?


I tried something simple like


[C,c:1]>>[C,c:1][F:2]


but I think this might be too simple


Thanks!

ChemAxon d76e6e95eb

10-10-2013 14:54:44

You will need a hydrogen to substitute:


[C,c:1][H:3]>>[C,c:1][F:2]


 


Regarding the exhaustive fluorination, you can use the runtime ratio setting to repeat the reaction (unimolecular in this scheme).


react -r '[C,c:1][H:3]>>[C,c:1][F:2]' benzene -X 10
FC1=C(F)C(F)=C(F)C(F)=C1F

react -r '[C,c:1][H:3]>>[C,c:1][F:2]' toluene -X 10
FC1=C(F)C(F)=C(C(F)=C1F)C(F)(F)F

User 6288f3e087

17-10-2013 19:17:27

Gyuri,


Thanks for the reply. I've been trying to do some 'reactions', but in one of them where I have to transform up to 9 H atoms to F atoms, I get an out of memory error (below). I'm pretty sure that my computer can handle more memory, and there must be some set limitation. Is there a key where I can override the memory limit? 


Thanks!


SEVERE: GC overhead limit exceeded  [main|chemaxon.reaction.ConcurrentReactorProcessor.main|10/17/2013 15:10:35] 

chemaxon.reaction.ReactionException: chemaxon.util.concurrent.processors.WorkUnitException: java.lang.OutOfMemoryError: GC overhead limit exceeded

Caused by:

java.lang.OutOfMemoryError: GC overhead limit exceeded

Caused by:

GC overhead limit exceeded

at chemaxon.reaction.ConcurrentReactorProcessor.react(ConcurrentReactorProcessor.java:556)

at chemaxon.reaction.ConcurrentReactorProcessor.run(ConcurrentReactorProcessor.java:696)

at chemaxon.reaction.ConcurrentReactorProcessor.main(ConcurrentReactorProcessor.java:1223)

Caused by: chemaxon.util.concurrent.processors.WorkUnitException: java.lang.OutOfMemoryError: GC overhead limit exceeded

at chemaxon.util.concurrent.processors.InputOrderedWorkUnitProcessor.process(InputOrderedWorkUnitProcessor.java:70)

at chemaxon.util.concurrent.processors.InputOrderedWorkUnitProcessor.processInput(InputOrderedWorkUnitProcessor.java:51)

at chemaxon.util.concurrent.processors.WorkUnitWorker.work0(WorkUnitWorker.java:51)

at chemaxon.util.concurrent.processors.WorkUnitWorker.work(WorkUnitWorker.java:36)

at chemaxon.util.concurrent.worker.Worker$1.call(Worker.java:45)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

at chemaxon.util.concurrent.worker.Worker.run(Worker.java:57)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:724)

Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded

at chemaxon.core.calculations.SSSR.networkInit(Unknown Source)

at chemaxon.core.calculations.SSSR.ringSearch(Unknown Source)

at chemaxon.core.calculations.SSSR.startRingSearch(Unknown Source)

at chemaxon.struc.gearch.SmoleculeGearch.regenSSSR(Unknown Source)

at chemaxon.struc.gearch.SmoleculeGearch.getSSSRCount(Unknown Source)

at chemaxon.core.calculations.GraphInvariants.generateSmallestRingToIdx(Unknown Source)

at chemaxon.core.calculations.GraphInvariants.getInitialInvariants(Unknown Source)

at chemaxon.core.calculations.GraphInvariants.makeInitial(Unknown Source)

at chemaxon.core.calculations.GraphInvariants.makeStereoRanks(Unknown Source)

at chemaxon.core.calculations.GraphInvariants.calculate(Unknown Source)

at chemaxon.struc.gearch.MoleculeGraphGearch.getGrinv(Unknown Source)

at chemaxon.struc.MoleculeGraph.getGrinv(Unknown Source)

at chemaxon.core.calculations.Parity.setMolecule(Unknown Source)

at chemaxon.struc.MoleculeGraph.getParity(Unknown Source)

at chemaxon.reaction.ReactionPerformer.setParities(ReactionPerformer.java:2047)

at chemaxon.reaction.ReactionPerformer.reactHit(ReactionPerformer.java:946)

at chemaxon.reaction.ReactionPerformer.reactOne(ReactionPerformer.java:705)

at chemaxon.reaction.ReactionPerformer.reactOneDuplicateFiltered(ReactionPerformer.java:668)

at chemaxon.reaction.ReactionPerformer.reactBase(ReactionPerformer.java:653)

at chemaxon.reaction.ReactionPerformer.react(ReactionPerformer.java:625)

at chemaxon.reaction.ReactionUtil.reactAll(ReactionUtil.java:136)

at chemaxon.reaction.ReactantRatioHandlerEnumerator.reactAll(ReactantRatioHandlerEnumerator.java:193)

at chemaxon.reaction.ReactantRatioHandlerEnumerator.reactRatio(ReactantRatioHandlerEnumerator.java:167)

at chemaxon.reaction.ReactantRatioHandlerEnumerator.react(ReactantRatioHandlerEnumerator.java:87)

at chemaxon.reaction.Reactor.react(Reactor.java:1329)

at chemaxon.reaction.ConcurrentReactorProcessor$ReactorWorkUnit.call(ConcurrentReactorProcessor.java:366)

at chemaxon.util.concurrent.processors.InputOrderedWorkUnitProcessor.process(InputOrderedWorkUnitProcessor.java:59)

at chemaxon.util.concurrent.processors.InputOrderedWorkUnitProcessor.processInput(InputOrderedWorkUnitProcessor.java:51)

at chemaxon.util.concurrent.processors.WorkUnitWorker.work0(WorkUnitWorker.java:51)

at chemaxon.util.concurrent.processors.WorkUnitWorker.work(WorkUnitWorker.java:36)

at chemaxon.util.concurrent.worker.Worker$1.call(Worker.java:45)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)




ERROR: An error occured, check the log for details. Use --ignore-error option to ignore errors during reaction processing.


ChemAxon e08c317633

22-10-2013 15:33:10

You can allocate more memory to Java by using the -Xmx switch.


Example:


$ react -Xmx1024M -r '[C,c:1][H:3]>>[C,c:1][F:2]' benzene -X 10
FC1=C(F)C(F)=C(F)C(F)=C1F

In the example 1024 MB (=1 GB)  memory is allocated.