diff --git a/mod/cyanide/cyanide.py b/mod/cyanide/cyanide.py index 5d99607..6b67cb4 100644 --- a/mod/cyanide/cyanide.py +++ b/mod/cyanide/cyanide.py @@ -8,7 +8,7 @@ cyanide = Graph.fromGMLString("""graph [ edge [ source 1 target 2 label "#" ] ]""", name="Cyanide") -#adenine = Graph.fromGMLString( +adenine = Graph.fromGMLString( """graph [ node [ id 1 label "C" ] node [ id 2 label "C" ] @@ -42,9 +42,9 @@ cyanide = Graph.fromGMLString("""graph [ edge [ source 7 target 14 label "-" ] edge [ source 15 target 3 label "-" ] ]""" -#, name="Adenine") +, name="Adenine") -chain = Rule.fromGMLString( +chainN = Rule.fromGMLString( """rule [ left [ edge [ source 1 target 2 label "-" ] @@ -67,7 +67,85 @@ chain = Rule.fromGMLString( ]""" ) +chainC = Rule.fromGMLString( +"""rule [ + left [ + edge [ source 1 target 2 label "-" ] + edge [ source 1 target 3 label "-" ] + edge [ source 3 target 4 label "#" ] + edge [ source 5 target 7 label "-" ] + ] + context [ + node [ id 1 label "C" ] + node [ id 2 label "H"] + node [ id 3 label "C"] + node [ id 4 label "N"] + node [ id 5 label "H"] + node [ id 6 label "H"] + node [ id 7 label "N"] + edge [ source 6 target 7 label "-" ] + ] + right [ + edge [ source 1 target 3 label "=" ] + edge [ source 3 target 4 label "-" ] + edge [ source 3 target 7 label "-" ] + edge [ source 4 target 2 label "-" ] + edge [ source 4 target 5 label "-" ] + ] +]""" +) + branchtriple = Rule.fromGMLString( +"""rule [ + left [ + edge [ source 2 target 3 label "#" ] + edge [ source 5 target 6 label "-" ] + ] + context [ + node [ id 1 label "_X" ] + node [ id 2 label "C"] + node [ id 3 label "N"] + node [ id 4 label "N"] + node [ id 5 label "C"] + node [ id 6 label "_X"] + edge [ source 1 target 2 label "-" ] + edge [ source 4 target 5 label "#" ] +] + right [ + edge [ source 2 target 3 label "=" ] + edge [ source 3 target 6 label "-" ] + edge [ source 2 target 5 label "-" ] + ] + constrainLabelAny [ label "_X" labels [ label "H" label "C" ] ] +]""" +) + +branchdouble = Rule.fromGMLString( +"""rule [ + left [ + edge [ source 2 target 3 label "=" ] + edge [ source 5 target 6 label "-" ] + ] + context [ + node [ id 1 label "_X" ] + node [ id 2 label "C"] + node [ id 3 label "N"] + node [ id 4 label "N"] + node [ id 5 label "C"] + node [ id 6 label "_X"] + edge [ source 1 target 2 label "-" ] + edge [ source 4 target 5 label "#" ] +] + right [ + edge [ source 2 target 3 label "-" ] + edge [ source 3 target 6 label "-" ] + edge [ source 2 target 5 label "-" ] + ] + constrainLabelAny [ label "_X" labels [ label "H" label "C" ] ] +]""" +) + +##branchtripleH = Rule.fromGMLString( """rule [ left [ edge [ source 2 target 3 label "#" ] @@ -89,9 +167,9 @@ branchtriple = Rule.fromGMLString( edge [ source 2 target 5 label "-" ] ] ]""" -) +#) -branchtriple = Rule.fromGMLString( +#branchdoubleH = Rule.fromGMLString( """rule [ left [ edge [ source 2 target 3 label "=" ] @@ -113,7 +191,56 @@ branchtriple = Rule.fromGMLString( edge [ source 2 target 5 label "-" ] ] ]""" -) +#) + +#branchtripleC = Rule.fromGMLString( +"""rule [ + left [ + edge [ source 2 target 3 label "#" ] + edge [ source 5 target 6 label "-" ] + ] + context [ + node [ id 1 label "H" ] + node [ id 2 label "C"] + node [ id 3 label "N"] + node [ id 4 label "N"] + node [ id 5 label "C"] + node [ id 6 label "C"] + edge [ source 1 target 2 label "-" ] + edge [ source 4 target 5 label "#" ] +] + right [ + edge [ source 2 target 3 label "=" ] + edge [ source 3 target 6 label "-" ] + edge [ source 2 target 5 label "-" ] + ] +]""" +#) + +#branchdoubleC = Rule.fromGMLString( +"""rule [ + left [ + edge [ source 2 target 3 label "=" ] + edge [ source 5 target 6 label "-" ] + ] + context [ + node [ id 1 label "H" ] + node [ id 2 label "C"] + node [ id 3 label "N"] + node [ id 4 label "N"] + node [ id 5 label "C"] + node [ id 6 label "C"] + edge [ source 1 target 2 label "-" ] + edge [ source 4 target 5 label "#" ] +] + right [ + edge [ source 2 target 3 label "-" ] + edge [ source 3 target 6 label "-" ] + edge [ source 2 target 5 label "-" ] + ] +]""" +#) + flowPrinter = FlowPrinter() flowPrinter.printUnfiltered = False @@ -141,8 +268,9 @@ for a in dg.vertices: flow = Flow(dg) flow.addSource(cyanide) -#flow.addSink(adenine) -flow.findSolutions() +flow.addSink(adenine) +flow.findSolutions(maxNumSolutions=2) +#flow.findSolutions() flow.solutions.list() flow.solutions.print(flowPrinter) diff --git a/mod/cyanide/summaryCyanideWildcard.pdf b/mod/cyanide/summaryCyanideWildcard.pdf new file mode 100644 index 0000000..e8f0433 Binary files /dev/null and b/mod/cyanide/summaryCyanideWildcard.pdf differ