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.