Graphviz expects into of the form x -> y
MkPedigree converts a pedigree diagram for Graphviz as follows:
digraph aGraph { size="7.5,10"; center=true; concentrate=true; fontname="SSERIFF"; fontsize=20; edge [dir=none]; /* normal male */ node[fontsize=20,shape=box]; "1"; "6"; "8"; /* normal female */ node [shape=ellipse]; "5"; "7"; "10"; "11"; "15"; "17"; "18"; /* normal unspecified */ node [shape=diamond]; "14"; /* afflicted male */ node [shape=box,style=filled,color=palevioletred]; "3"; "9"; "12"; "16"; /* afflicted female */ node [shape=ellipse,style=filled,color=palevioletred]; "2"; "4"; "13"; /* internal nodes */ node [style=invis,fontsize=0,height=0,width=0,shape=plainte xt]; "1_X_2"; "X_4"; "X_5"; "X_6"; "X_8"; "X_9"; "3_X_4"; "X_11"; "X_12"; "X_13"; "6_X_7"; "X_14"; "9_X_10"; "X_15"; "X_16"; "X_17"; "X_18"; /* spouses */ {rank=same;"1";"1_X_2";"2"} "1"->"1_X_2"->"2"; {rank=same;"3";"3_X_4";"4"} "3"->"3_X_4"->"4"; {rank=same;"6";"6_X_7";"7"} "6"->"6_X_7"->"7"; {rank=same;"9";"9_X_10";"10"} "9"->"9_X_10"->"10"; /* parent-child */ "1_X_2"->"X_4"; "X_4"->"4"; "X_5"->"5"; "X_6"->"6"; "X_8"->"8"; "X_9"->"9"; "3_X_4"->"X_11"; "X_11"->"11"; "X_12"->"12"; "X_13"->"13"; "6_X_7"->"X_14"; "X_14"->"14"; "9_X_10"->"X_15"; "X_15"->"15"; "X_16"->"16"; "X_17"->"17"; "X_18"->"18"; /* siblings */ {rank=same;"X_4";"X_5";"X_6";"X_8";"X_9";} "X_4"->"X_5"->"X_6"->"X_8"->"X_9"; {rank=same;"X_11";"X_12";"X_13";} "X_11"->"X_12"->"X_13"; {rank=same;"X_15";"X_16";"X_17";"X_18";} "X_15"->"X_16"->"X_17"->"X_18"; }