diff --git a/CaffeineSynthesis.pdf b/CaffeineSynthesis.pdf new file mode 100644 index 0000000..b544b55 Binary files /dev/null and b/CaffeineSynthesis.pdf differ diff --git a/N-SelectivityEnzymes.pdf b/N-SelectivityEnzymes.pdf new file mode 100644 index 0000000..7d6ae11 Binary files /dev/null and b/N-SelectivityEnzymes.pdf differ diff --git a/n-methylation.py b/n-methylation.py new file mode 100644 index 0000000..04beeb7 --- /dev/null +++ b/n-methylation.py @@ -0,0 +1,191 @@ +config.ilp.solver="CPLEX" + +xanthine = Graph.fromGMLString("""graph [ + node [ id 0 label "N" ] + node [ id 1 label "C" ] + node [ id 2 label "N" ] + node [ id 3 label "C" ] + node [ id 4 label "C" ] + node [ id 5 label "C" ] + node [ id 6 label "N" ] + node [ id 7 label "C" ] + node [ id 8 label "N" ] + node [ id 9 label "O" ] + node [ id 10 label "O" ] + node [ id 11 label "H" ] + node [ id 12 label "H" ] + node [ id 13 label "H" ] + node [ id 14 label "H" ] + edge [ source 1 target 0 label "-" ] + edge [ source 2 target 1 label "-" ] + edge [ source 3 target 2 label "-" ] + edge [ source 4 target 3 label "=" ] + edge [ source 5 target 4 label "-" ] + edge [ source 0 target 5 label "-" ] + edge [ source 8 target 3 label "-" ] + edge [ source 7 target 8 label "=" ] + edge [ source 6 target 7 label "-" ] + edge [ source 4 target 6 label "-" ] + edge [ source 9 target 1 label "=" ] + edge [ source 10 target 5 label "=" ] + edge [ source 11 target 0 label "-" ] + edge [ source 12 target 2 label "-" ] + edge [ source 13 target 6 label "-" ] + edge [ source 14 target 7 label "-" ] +]""", name="Xanthine") + +caffeine = Graph.fromGMLString("""graph [ + node [ id 0 label "N" ] + node [ id 1 label "C" ] + node [ id 2 label "N" ] + node [ id 3 label "C" ] + node [ id 4 label "C" ] + node [ id 5 label "C" ] + node [ id 6 label "N" ] + node [ id 7 label "C" ] + node [ id 8 label "N" ] + node [ id 9 label "O" ] + node [ id 10 label "O" ] + node [ id 11 label "C" ] + node [ id 12 label "C" ] + node [ id 13 label "C" ] + node [ id 14 label "H" ] + node [ id 15 label "H" ] + node [ id 16 label "H" ] + node [ id 17 label "H" ] + node [ id 18 label "H" ] + node [ id 19 label "H" ] + node [ id 20 label "H" ] + node [ id 21 label "H" ] + node [ id 22 label "H" ] + node [ id 23 label "H" ] + edge [ source 1 target 0 label "-" ] + edge [ source 2 target 1 label "-" ] + edge [ source 3 target 2 label "-" ] + edge [ source 4 target 3 label "=" ] + edge [ source 5 target 4 label "-" ] + edge [ source 0 target 5 label "-" ] + edge [ source 8 target 3 label "-" ] + edge [ source 7 target 8 label "=" ] + edge [ source 6 target 7 label "-" ] + edge [ source 4 target 6 label "-" ] + edge [ source 9 target 1 label "=" ] + edge [ source 10 target 5 label "=" ] + edge [ source 11 target 0 label "-" ] + edge [ source 12 target 2 label "-" ] + edge [ source 13 target 6 label "-" ] + edge [ source 14 target 7 label "-" ] + edge [ source 11 target 15 label "-" ] + edge [ source 11 target 16 label "-" ] + edge [ source 11 target 17 label "-" ] + edge [ source 12 target 18 label "-" ] + edge [ source 12 target 19 label "-" ] + edge [ source 12 target 20 label "-" ] + edge [ source 13 target 21 label "-" ] + edge [ source 13 target 22 label "-" ] + edge [ source 13 target 23 label "-" ] +]""", name="Caffeine") + + + +nmethylation = Rule.fromGMLString( +"""rule [ + left [ + node [ id 1 label "H" ] + edge [ source 1 target 2 label "-" ] + ] + context [ + node [ id 2 label "N" ] + node [ id 3 label "C"] + node [ id 4 label "C"] + edge [ source 3 target 2 label "-" ] + edge [ source 4 target 2 label "-" ] + ] + right [ + node [ id 5 label "C" ] + node [ id 6 label "H" ] + node [ id 7 label "H" ] + node [ id 8 label "H" ] + edge [ source 2 target 5 label "-" ] + edge [ source 5 target 6 label "-" ] + edge [ source 5 target 7 label "-" ] + edge [ source 5 target 8 label "-" ] + ] +]""" +) + +ndemethylation = Rule.fromGMLString("""rule [ + left [ + node [ id 5 label "C" ] + node [ id 6 label "H" ] + node [ id 7 label "H" ] + node [ id 8 label "H" ] + edge [ source 2 target 5 label "-" ] + edge [ source 5 target 6 label "-" ] + edge [ source 5 target 7 label "-" ] + edge [ source 5 target 8 label "-" ] + ] + context [ + node [ id 2 label "N" ] + node [ id 3 label "C"] + node [ id 4 label "C"] + edge [ source 3 target 2 label "-" ] + edge [ source 4 target 2 label "-" ] + ] + right [ + node [ id 1 label "H" ] + edge [ source 1 target 2 label "-" ] + ] +]""") + +flowPrinter = FlowPrinter() +flowPrinter.printUnfiltered = False + +postSection("Loaded Graphs") +for a in inputGraphs: + a.print() +postSection("Loaded Rules") +for a in inputRules: + a.print() + +dg = DG(graphDatabase=inputGraphs) +dg.build().execute( + addSubset(inputGraphs) + >> rightPredicate[ + lambda d: all(g.vLabelCount("C") <= 10 for g in d.right) + ]( + repeat(inputRules) + ) +) +dg.print() +postSection("Product Graphs") +for a in dg.vertices: + a.graph.print() + +flowAutocata = Flow(dg) +flowAutocata.overallAutocatalysis.enable() +for a in {xanthine}: + flowAutocata.addSource(a) +flowAutocata.addSink(caffeine) +flowAutocata.findSolutions() +flowAutocata.solutions.list() +flowAutocata.solutions.print(flowPrinter) + + +sys.exit(0) + +rc = rcEvaluator(inputRules) +for dRef in dg.derivations: + der = dRef.derivation + educt = rcId(der.left[0]) + for i in range(1, len(der.left)): + educt = educt *rcParallel* rcId(der.left[i]) + product = rcId(der.right[0]) + for i in range(1, len(der.right)): + product = product *rcParallel* rcId(der.right[i]) + rcExp = educt *rcSuper(allowPartial=False)* der.rule *rcSuper(allowPartial=False)* product + res = rc.eval(rcExp) + dRef.print() + for a in res: + a.print() + a.printGML() \ No newline at end of file diff --git a/nucleotides.jpg b/nucleotides.jpg new file mode 100644 index 0000000..7c71066 Binary files /dev/null and b/nucleotides.jpg differ diff --git a/summary.pdf b/summary.pdf new file mode 100644 index 0000000..67a6bf8 Binary files /dev/null and b/summary.pdf differ