diff --git a/genomix/genomix-pregelix/graph/BridgePath b/genomix/genomix-pregelix/graph/BridgePath
index c10ea60..fd735ea 100644
--- a/genomix/genomix-pregelix/graph/BridgePath
+++ b/genomix/genomix-pregelix/graph/BridgePath
@@ -1,14 +1,2 @@
-ACCCC	C|G	1
-CCCCG	A|T	1
-CTCCG	A|T	1
-TTCCA	T|C	2
-ACTCC	C|G	1
-CCGTG	CT|	2
-TCCAC	T|CT	2
-CCACC	T|C	1
-CCACT	T|C	1
-CACCC	C|C	1
-TTTCC	|A	2
-CCCGT	C|G	1
-TCCGT	C|G	1
-CACTC	C|C	1
+AAATCGAAC
+AAATCTAAC
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/BridgePath_out.ps b/genomix/genomix-pregelix/graph/BridgePath_out.ps
deleted file mode 100644
index 9f66e44..0000000
--- a/genomix/genomix-pregelix/graph/BridgePath_out.ps
+++ /dev/null
@@ -1,603 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 248 674
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 212 638 boxprim clip newpath
-1 1 set_scale 0 rotate 40 41 translate
-% ACCCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 241 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 237.4 moveto 49 (ACCCC) alignedtext
-grestore
-% CCCCG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 167 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-21.5 163.4 moveto 51 (CCCCG) alignedtext
-grestore
-% ACCCC->CCCCG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 222.33 moveto
-47 214.26 47 204.65 47 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 195.67 moveto
-47 185.67 lineto
-43.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 195.67 moveto
-47 185.67 lineto
-43.5 195.67 lineto
-closepath stroke
-grestore
-% CCCGT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 93 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 89.4 moveto 49 (CCCGT) alignedtext
-grestore
-% CCCCG->CCCGT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47.25 148.33 moveto
-47.36 140.26 47.49 130.65 47.61 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.11 121.71 moveto
-47.75 111.67 lineto
-44.11 121.62 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.11 121.71 moveto
-47.75 111.67 lineto
-44.11 121.62 lineto
-closepath stroke
-grestore
-% CCGTG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-102 19 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-76.5 15.4 moveto 51 (CCGTG) alignedtext
-grestore
-% CCCGT->CCGTG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 61.07 75.09 moveto
-67.59 66.15 75.6 55.18 82.8 45.31 curveto
-stroke
-0 0 0 edgecolor
-newpath 85.79 47.15 moveto
-88.86 37 lineto
-80.14 43.02 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 85.79 47.15 moveto
-88.86 37 lineto
-80.14 43.02 lineto
-closepath stroke
-grestore
-% CTCCG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-158 167 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-133.5 163.4 moveto 49 (CTCCG) alignedtext
-grestore
-% TCCGT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-157 93 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-133 89.4 moveto 48 (TCCGT) alignedtext
-grestore
-% CTCCG->TCCGT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 157.75 148.33 moveto
-157.64 140.26 157.51 130.65 157.39 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 160.89 121.62 moveto
-157.25 111.67 lineto
-153.89 121.71 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 160.89 121.62 moveto
-157.25 111.67 lineto
-153.89 121.71 lineto
-closepath stroke
-grestore
-% TCCGT->CCGTG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 143.69 75.09 moveto
-137.05 66.15 128.89 55.18 121.56 45.31 curveto
-stroke
-0 0 0 edgecolor
-newpath 124.16 42.94 moveto
-115.38 37 lineto
-118.54 47.12 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 124.16 42.94 moveto
-115.38 37 lineto
-118.54 47.12 lineto
-closepath stroke
-grestore
-% TTCCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-102 537 44.05 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-78.5 533.4 moveto 47 (TTCCA) alignedtext
-grestore
-% TCCAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-102 463 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-78 459.4 moveto 48 (TCCAC) alignedtext
-grestore
-% TTCCA->TCCAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 102 518.33 moveto
-102 510.26 102 500.65 102 491.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 105.5 491.67 moveto
-102 481.67 lineto
-98.5 491.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 105.5 491.67 moveto
-102 481.67 lineto
-98.5 491.67 lineto
-closepath stroke
-grestore
-% CCACC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 389 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 385.4 moveto 49 (CCACC) alignedtext
-grestore
-% TCCAC->CCACC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 88.69 445.09 moveto
-81.93 436 73.6 424.79 66.17 414.79 curveto
-stroke
-0 0 0 edgecolor
-newpath 68.97 412.69 moveto
-60.19 406.75 lineto
-63.35 416.86 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 68.97 412.69 moveto
-60.19 406.75 lineto
-63.35 416.86 lineto
-closepath stroke
-grestore
-% CCACT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-157 389 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-132.5 385.4 moveto 49 (CCACT) alignedtext
-grestore
-% TCCAC->CCACT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 115.31 445.09 moveto
-122.07 436 130.4 424.79 137.83 414.79 curveto
-stroke
-0 0 0 edgecolor
-newpath 140.65 416.86 moveto
-143.81 406.75 lineto
-135.03 412.69 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 140.65 416.86 moveto
-143.81 406.75 lineto
-135.03 412.69 lineto
-closepath stroke
-grestore
-% ACTCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-157 241 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-133 237.4 moveto 48 (ACTCC) alignedtext
-grestore
-% ACTCC->CTCCG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 157.25 222.33 moveto
-157.36 214.26 157.49 204.65 157.61 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 161.11 195.71 moveto
-157.75 185.67 lineto
-154.11 195.62 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 161.11 195.71 moveto
-157.75 185.67 lineto
-154.11 195.62 lineto
-closepath stroke
-grestore
-% CACCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 315 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 311.4 moveto 49 (CACCC) alignedtext
-grestore
-% CCACC->CACCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 370.33 moveto
-47 362.26 47 352.65 47 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 343.67 moveto
-47 333.67 lineto
-43.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 343.67 moveto
-47 333.67 lineto
-43.5 343.67 lineto
-closepath stroke
-grestore
-% CACTC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-157 315 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-133 311.4 moveto 48 (CACTC) alignedtext
-grestore
-% CCACT->CACTC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 157 370.33 moveto
-157 362.26 157 352.65 157 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 160.5 343.67 moveto
-157 333.67 lineto
-153.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 160.5 343.67 moveto
-157 333.67 lineto
-153.5 343.67 lineto
-closepath stroke
-grestore
-% CACCC->ACCCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 296.33 moveto
-47 288.26 47 278.65 47 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 269.67 moveto
-47 259.67 lineto
-43.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 269.67 moveto
-47 259.67 lineto
-43.5 269.67 lineto
-closepath stroke
-grestore
-% CACTC->ACTCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 157 296.33 moveto
-157 288.26 157 278.65 157 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 160.5 269.67 moveto
-157 259.67 lineto
-153.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 160.5 269.67 moveto
-157 259.67 lineto
-153.5 269.67 lineto
-closepath stroke
-grestore
-% TTTCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-102 611 43.84 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-79 607.4 moveto 46 (TTTCC) alignedtext
-grestore
-% TTTCC->TTCCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 102 592.33 moveto
-102 584.26 102 574.65 102 565.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 105.5 565.67 moveto
-102 555.67 lineto
-98.5 565.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 105.5 565.67 moveto
-102 555.67 lineto
-98.5 565.67 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 36 36 248 674
-end
-restore
-%%EOF
diff --git a/genomix/genomix-pregelix/graph/CyclePath b/genomix/genomix-pregelix/graph/CyclePath
index db30e3a..a487e90 100644
--- a/genomix/genomix-pregelix/graph/CyclePath
+++ b/genomix/genomix-pregelix/graph/CyclePath
@@ -1,10 +1 @@
-GCAAC	|T	1
-CATCA	T|A	1
-CTTCA	A|T	1
-AACTT	C|C	1
-ACTTC	A|A	1
-TCAAC	A|T	1
-ATCAA	C|C	1
-TTCAT	C|C	1
-CAACT	GT|T	2
-TCATC	T|A	1
+TCTGGGCTCTG
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/CyclePath_out.ps b/genomix/genomix-pregelix/graph/CyclePath_out.ps
deleted file mode 100644
index 1b13ecb..0000000
--- a/genomix/genomix-pregelix/graph/CyclePath_out.ps
+++ /dev/null
@@ -1,489 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 175 748
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 139 712 boxprim clip newpath
-1 1 set_scale 0 rotate 40 41 translate
-% GCAAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-83 685 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-57 681.4 moveto 52 (GCAAC) alignedtext
-grestore
-% CAACT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-83 611 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-58.5 607.4 moveto 49 (CAACT) alignedtext
-grestore
-% GCAAC->CAACT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 83 666.33 moveto
-83 658.26 83 648.65 83 639.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 86.5 639.67 moveto
-83 629.67 lineto
-79.5 639.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 86.5 639.67 moveto
-83 629.67 lineto
-79.5 639.67 lineto
-closepath stroke
-grestore
-% AACTT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-46 537 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-21.5 533.4 moveto 49 (AACTT) alignedtext
-grestore
-% CAACT->AACTT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 73.85 592.71 moveto
-69.58 584.17 64.41 573.83 59.69 564.38 curveto
-stroke
-0 0 0 edgecolor
-newpath 62.77 562.72 moveto
-55.17 555.34 lineto
-56.51 565.85 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 62.77 562.72 moveto
-55.17 555.34 lineto
-56.51 565.85 lineto
-closepath stroke
-grestore
-% CATCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 167 44.05 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 163.4 moveto 47 (CATCA) alignedtext
-grestore
-% ATCAA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 93 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23 89.4 moveto 48 (ATCAA) alignedtext
-grestore
-% CATCA->ATCAA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 148.33 moveto
-47 140.26 47 130.65 47 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 121.67 moveto
-47 111.67 lineto
-43.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 121.67 moveto
-47 111.67 lineto
-43.5 121.67 lineto
-closepath stroke
-grestore
-% TCAAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-83 19 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-58.5 15.4 moveto 49 (TCAAC) alignedtext
-grestore
-% ATCAA->TCAAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 55.9 74.71 moveto
-60.05 66.17 65.08 55.83 69.68 46.38 curveto
-stroke
-0 0 0 edgecolor
-newpath 72.85 47.86 moveto
-74.08 37.34 lineto
-66.56 44.8 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 72.85 47.86 moveto
-74.08 37.34 lineto
-66.56 44.8 lineto
-closepath stroke
-grestore
-% CTTCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 389 44.05 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 385.4 moveto 47 (CTTCA) alignedtext
-grestore
-% TTCAT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 315 43.84 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-24 311.4 moveto 46 (TTCAT) alignedtext
-grestore
-% CTTCA->TTCAT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 370.33 moveto
-47 362.26 47 352.65 47 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 343.67 moveto
-47 333.67 lineto
-43.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 343.67 moveto
-47 333.67 lineto
-43.5 343.67 lineto
-closepath stroke
-grestore
-% TCATC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 241 43.84 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-24 237.4 moveto 46 (TCATC) alignedtext
-grestore
-% TTCAT->TCATC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 296.33 moveto
-47 288.26 47 278.65 47 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 269.67 moveto
-47 259.67 lineto
-43.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 269.67 moveto
-47 259.67 lineto
-43.5 269.67 lineto
-closepath stroke
-grestore
-% ACTTC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-47 463 44.05 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 459.4 moveto 47 (ACTTC) alignedtext
-grestore
-% AACTT->ACTTC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 46.25 518.33 moveto
-46.36 510.26 46.49 500.65 46.61 491.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.11 491.71 moveto
-46.75 481.67 lineto
-43.11 491.62 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.11 491.71 moveto
-46.75 481.67 lineto
-43.11 491.62 lineto
-closepath stroke
-grestore
-% ACTTC->CTTCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 444.33 moveto
-47 436.26 47 426.65 47 417.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 417.67 moveto
-47 407.67 lineto
-43.5 417.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 417.67 moveto
-47 407.67 lineto
-43.5 417.67 lineto
-closepath stroke
-grestore
-% TCAAC->CAACT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 90.67 37.32 moveto
-101.5 64.93 120 119.06 120 167 curveto
-120 463 120 463 120 463 curveto
-120 505.88 105.2 553.72 94.32 583.1 curveto
-stroke
-0 0 0 edgecolor
-newpath 90.96 582.09 moveto
-90.67 592.68 lineto
-97.5 584.58 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 90.96 582.09 moveto
-90.67 592.68 lineto
-97.5 584.58 lineto
-closepath stroke
-grestore
-% TCATC->CATCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 47 222.33 moveto
-47 214.26 47 204.65 47 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 50.5 195.67 moveto
-47 185.67 lineto
-43.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 50.5 195.67 moveto
-47 185.67 lineto
-43.5 195.67 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 36 36 175 748
-end
-restore
-%%EOF
diff --git a/genomix/genomix-pregelix/graph/LongPath b/genomix/genomix-pregelix/graph/LongPath
deleted file mode 100644
index 82c0298..0000000
--- a/genomix/genomix-pregelix/graph/LongPath
+++ /dev/null
@@ -1,13 +0,0 @@
-CTCAG	C|T	1
-AGTAC	C|G	1
-GGCCT	|C	1
-ACGCC	T|C	1
-CCTCA	G|G	1
-CCCGG	G|	1
-GCCTC	G|A	1
-CAGTA	T|C	1
-GTACG	A|C	1
-GCCCG	C|G	1
-CGCCC	A|G	1
-TCAGT	C|A	1
-TACGC	G|C	1
diff --git a/genomix/genomix-pregelix/graph/LongPath_out.ps b/genomix/genomix-pregelix/graph/LongPath_out.ps
deleted file mode 100644
index 1bef623..0000000
--- a/genomix/genomix-pregelix/graph/LongPath_out.ps
+++ /dev/null
@@ -1,554 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 140 970
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 104 934 boxprim clip newpath
-1 1 set_scale 0 rotate 40 41 translate
-% CTCAG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 685 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 681.4 moveto 49 (CTCAG) alignedtext
-grestore
-% TCAGT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 611 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-24 607.4 moveto 48 (TCAGT) alignedtext
-grestore
-% CTCAG->TCAGT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 666.33 moveto
-48 658.26 48 648.65 48 639.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 639.67 moveto
-48 629.67 lineto
-44.5 639.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 639.67 moveto
-48 629.67 lineto
-44.5 639.67 lineto
-closepath stroke
-grestore
-% CAGTA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 537 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 533.4 moveto 49 (CAGTA) alignedtext
-grestore
-% TCAGT->CAGTA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 592.33 moveto
-48 584.26 48 574.65 48 565.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 565.67 moveto
-48 555.67 lineto
-44.5 565.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 565.67 moveto
-48 555.67 lineto
-44.5 565.67 lineto
-closepath stroke
-grestore
-% AGTAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 463 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 459.4 moveto 49 (AGTAC) alignedtext
-grestore
-% GTACG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 389 46.17 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23 385.4 moveto 50 (GTACG) alignedtext
-grestore
-% AGTAC->GTACG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 444.33 moveto
-48 436.26 48 426.65 48 417.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 417.67 moveto
-48 407.67 lineto
-44.5 417.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 417.67 moveto
-48 407.67 lineto
-44.5 417.67 lineto
-closepath stroke
-grestore
-% TACGC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 315 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 311.4 moveto 49 (TACGC) alignedtext
-grestore
-% GTACG->TACGC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 370.33 moveto
-48 362.26 48 352.65 48 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath stroke
-grestore
-% GGCCT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 907 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 903.4 moveto 52 (GGCCT) alignedtext
-grestore
-% GCCTC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 833 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 829.4 moveto 49 (GCCTC) alignedtext
-grestore
-% GGCCT->GCCTC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 888.33 moveto
-48 880.26 48 870.65 48 861.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 861.67 moveto
-48 851.67 lineto
-44.5 861.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 861.67 moveto
-48 851.67 lineto
-44.5 861.67 lineto
-closepath stroke
-grestore
-% CCTCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 759 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-24 755.4 moveto 48 (CCTCA) alignedtext
-grestore
-% GCCTC->CCTCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 814.33 moveto
-48 806.26 48 796.65 48 787.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 787.67 moveto
-48 777.67 lineto
-44.5 787.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 787.67 moveto
-48 777.67 lineto
-44.5 787.67 lineto
-closepath stroke
-grestore
-% ACGCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 241 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 237.4 moveto 51 (ACGCC) alignedtext
-grestore
-% CGCCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 167 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 163.4 moveto 51 (CGCCC) alignedtext
-grestore
-% ACGCC->CGCCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 222.33 moveto
-48 214.26 48 204.65 48 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath stroke
-grestore
-% GCCCG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 93 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 89.4 moveto 52 (GCCCG) alignedtext
-grestore
-% CGCCC->GCCCG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 148.33 moveto
-48 140.26 48 130.65 48 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath stroke
-grestore
-% CCTCA->CTCAG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 740.33 moveto
-48 732.26 48 722.65 48 713.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 713.67 moveto
-48 703.67 lineto
-44.5 713.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 713.67 moveto
-48 703.67 lineto
-44.5 713.67 lineto
-closepath stroke
-grestore
-% CAGTA->AGTAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 518.33 moveto
-48 510.26 48 500.65 48 491.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 491.67 moveto
-48 481.67 lineto
-44.5 491.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 491.67 moveto
-48 481.67 lineto
-44.5 491.67 lineto
-closepath stroke
-grestore
-% TACGC->ACGCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 296.33 moveto
-48 288.26 48 278.65 48 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath stroke
-grestore
-% CCCGG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 19 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 15.4 moveto 52 (CCCGG) alignedtext
-grestore
-% GCCCG->CCCGG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 74.33 moveto
-48 66.26 48 56.65 48 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 36 36 140 970
-end
-restore
-%%EOF
diff --git a/genomix/genomix-pregelix/graph/Path b/genomix/genomix-pregelix/graph/Path
deleted file mode 100644
index 67d55ca..0000000
--- a/genomix/genomix-pregelix/graph/Path
+++ /dev/null
@@ -1,8 +0,0 @@
-CTCAG	C|T	1
-AGTAC	C|G	1
-GGCCT	|C	1
-CCTCA	G|G	1
-GCCTC	G|A	1
-CAGTA	T|C	1
-GTACG	A|	1
-TCAGT	C|A	1
diff --git a/genomix/genomix-pregelix/graph/Path_out.ps b/genomix/genomix-pregelix/graph/Path_out.ps
deleted file mode 100644
index 43f733f..0000000
--- a/genomix/genomix-pregelix/graph/Path_out.ps
+++ /dev/null
@@ -1,409 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 140 600
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 104 564 boxprim clip newpath
-1 1 set_scale 0 rotate 40 41 translate
-% CTCAG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 315 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 311.4 moveto 49 (CTCAG) alignedtext
-grestore
-% TCAGT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 241 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-24 237.4 moveto 48 (TCAGT) alignedtext
-grestore
-% CTCAG->TCAGT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 296.33 moveto
-48 288.26 48 278.65 48 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath stroke
-grestore
-% CAGTA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 167 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 163.4 moveto 49 (CAGTA) alignedtext
-grestore
-% TCAGT->CAGTA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 222.33 moveto
-48 214.26 48 204.65 48 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath stroke
-grestore
-% AGTAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 93 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 89.4 moveto 49 (AGTAC) alignedtext
-grestore
-% GTACG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 19 46.17 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23 15.4 moveto 50 (GTACG) alignedtext
-grestore
-% AGTAC->GTACG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 74.33 moveto
-48 66.26 48 56.65 48 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath stroke
-grestore
-% GGCCT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 537 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 533.4 moveto 52 (GGCCT) alignedtext
-grestore
-% GCCTC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 463 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 459.4 moveto 49 (GCCTC) alignedtext
-grestore
-% GGCCT->GCCTC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 518.33 moveto
-48 510.26 48 500.65 48 491.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 491.67 moveto
-48 481.67 lineto
-44.5 491.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 491.67 moveto
-48 481.67 lineto
-44.5 491.67 lineto
-closepath stroke
-grestore
-% CCTCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 389 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-24 385.4 moveto 48 (CCTCA) alignedtext
-grestore
-% GCCTC->CCTCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 444.33 moveto
-48 436.26 48 426.65 48 417.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 417.67 moveto
-48 407.67 lineto
-44.5 417.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 417.67 moveto
-48 407.67 lineto
-44.5 417.67 lineto
-closepath stroke
-grestore
-% CCTCA->CTCAG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 370.33 moveto
-48 362.26 48 352.65 48 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath stroke
-grestore
-% CAGTA->AGTAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 148.33 moveto
-48 140.26 48 130.65 48 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 36 36 140 600
-end
-restore
-%%EOF
diff --git a/genomix/genomix-pregelix/graph/RingPath b/genomix/genomix-pregelix/graph/RingPath
new file mode 100644
index 0000000..eb2ed5d
--- /dev/null
+++ b/genomix/genomix-pregelix/graph/RingPath
@@ -0,0 +1,2 @@
+TCTGGGCTCTG
+CCTGGGCTCTG
diff --git a/genomix/genomix-pregelix/graph/SimplePath b/genomix/genomix-pregelix/graph/SimplePath
index 2e0667e..67d4b62 100644
--- a/genomix/genomix-pregelix/graph/SimplePath
+++ b/genomix/genomix-pregelix/graph/SimplePath
@@ -1,18 +1,3 @@
-AGCAC	C|	1
-AAGAC	|A	1
-CAGCA	A|C	1
-TCGCA	A|T	1
-CGGCA	G|A	1
-TATCG	A|C	1
-CAAGA	G|A	1
-ACAGC	G|A	1
-ATCGC	T|A	1
-GCGGC	|A	1
-GCATC	C|	1
-ATATC	|G	1
-GCAAG	G|A	1
-GACAG	A|C	1
-CGCAT	T|C	1
-GGCAA	C|G	1
-AAGAA	C|	1
-AGACA	A|G	1
+CCGCATGAG
+TCTCAAATC
+TAACGGGAC
diff --git a/genomix/genomix-pregelix/graph/SimplePath_out.ps b/genomix/genomix-pregelix/graph/SimplePath_out.ps
deleted file mode 100644
index 3b3bf39..0000000
--- a/genomix/genomix-pregelix/graph/SimplePath_out.ps
+++ /dev/null
@@ -1,659 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 366 452
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 330 416 boxprim clip newpath
-1 1 set_scale 0 rotate 40 41 translate
-% AAGAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 389 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 385.4 moveto 52 (AAGAC) alignedtext
-grestore
-% AGACA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 315 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 311.4 moveto 51 (AGACA) alignedtext
-grestore
-% AAGAC->AGACA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 370.33 moveto
-48 362.26 48 352.65 48 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath stroke
-grestore
-% GACAG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 241 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 237.4 moveto 52 (GACAG) alignedtext
-grestore
-% AGACA->GACAG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 296.33 moveto
-48 288.26 48 278.65 48 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath stroke
-grestore
-% CAGCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 93 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 89.4 moveto 51 (CAGCA) alignedtext
-grestore
-% AGCAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 19 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 15.4 moveto 51 (AGCAC) alignedtext
-grestore
-% CAGCA->AGCAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 74.33 moveto
-48 66.26 48 56.65 48 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath stroke
-grestore
-% TCGCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 167 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-135.5 163.4 moveto 49 (TCGCA) alignedtext
-grestore
-% CGCAT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 93 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-135.5 89.4 moveto 49 (CGCAT) alignedtext
-grestore
-% TCGCA->CGCAT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 160 148.33 moveto
-160 140.26 160 130.65 160 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 163.5 121.67 moveto
-160 111.67 lineto
-156.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 163.5 121.67 moveto
-160 111.67 lineto
-156.5 121.67 lineto
-closepath stroke
-grestore
-% GCATC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 19 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-135.5 15.4 moveto 49 (GCATC) alignedtext
-grestore
-% CGCAT->GCATC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 160 74.33 moveto
-160 66.26 160 56.65 160 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 163.5 47.67 moveto
-160 37.67 lineto
-156.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 163.5 47.67 moveto
-160 37.67 lineto
-156.5 47.67 lineto
-closepath stroke
-grestore
-% CGGCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-273 315 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-247 311.4 moveto 52 (CGGCA) alignedtext
-grestore
-% GGCAA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-273 241 48.79 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-246.5 237.4 moveto 53 (GGCAA) alignedtext
-grestore
-% CGGCA->GGCAA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 273 296.33 moveto
-273 288.26 273 278.65 273 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 276.5 269.67 moveto
-273 259.67 lineto
-269.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 276.5 269.67 moveto
-273 259.67 lineto
-269.5 269.67 lineto
-closepath stroke
-grestore
-% GCAAG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-273 167 48.79 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-246.5 163.4 moveto 53 (GCAAG) alignedtext
-grestore
-% GGCAA->GCAAG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 273 222.33 moveto
-273 214.26 273 204.65 273 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 276.5 195.67 moveto
-273 185.67 lineto
-269.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 276.5 195.67 moveto
-273 185.67 lineto
-269.5 195.67 lineto
-closepath stroke
-grestore
-% TATCG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 315 44.05 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-136.5 311.4 moveto 47 (TATCG) alignedtext
-grestore
-% ATCGC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 241 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-135.5 237.4 moveto 49 (ATCGC) alignedtext
-grestore
-% TATCG->ATCGC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 160 296.33 moveto
-160 288.26 160 278.65 160 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 163.5 269.67 moveto
-160 259.67 lineto
-156.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 163.5 269.67 moveto
-160 259.67 lineto
-156.5 269.67 lineto
-closepath stroke
-grestore
-% ATCGC->TCGCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 160 222.33 moveto
-160 214.26 160 204.65 160 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 163.5 195.67 moveto
-160 185.67 lineto
-156.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 163.5 195.67 moveto
-160 185.67 lineto
-156.5 195.67 lineto
-closepath stroke
-grestore
-% CAAGA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-273 93 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-247 89.4 moveto 52 (CAAGA) alignedtext
-grestore
-% AAGAA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-273 19 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-247 15.4 moveto 52 (AAGAA) alignedtext
-grestore
-% CAAGA->AAGAA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 273 74.33 moveto
-273 66.26 273 56.65 273 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 276.5 47.67 moveto
-273 37.67 lineto
-269.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 276.5 47.67 moveto
-273 37.67 lineto
-269.5 47.67 lineto
-closepath stroke
-grestore
-% ACAGC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 167 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 163.4 moveto 51 (ACAGC) alignedtext
-grestore
-% ACAGC->CAGCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 148.33 moveto
-48 140.26 48 130.65 48 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath stroke
-grestore
-% GCGGC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-273 389 49 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-246 385.4 moveto 54 (GCGGC) alignedtext
-grestore
-% GCGGC->CGGCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 273 370.33 moveto
-273 362.26 273 352.65 273 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 276.5 343.67 moveto
-273 333.67 lineto
-269.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 276.5 343.67 moveto
-273 333.67 lineto
-269.5 343.67 lineto
-closepath stroke
-grestore
-% ATATC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 389 43.13 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-137.5 385.4 moveto 45 (ATATC) alignedtext
-grestore
-% ATATC->TATCG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 160 370.33 moveto
-160 362.26 160 352.65 160 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 163.5 343.67 moveto
-160 333.67 lineto
-156.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 163.5 343.67 moveto
-160 333.67 lineto
-156.5 343.67 lineto
-closepath stroke
-grestore
-% GCAAG->CAAGA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 273 148.33 moveto
-273 140.26 273 130.65 273 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 276.5 121.67 moveto
-273 111.67 lineto
-269.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 276.5 121.67 moveto
-273 111.67 lineto
-269.5 121.67 lineto
-closepath stroke
-grestore
-% GACAG->ACAGC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 222.33 moveto
-48 214.26 48 204.65 48 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 36 36 366 452
-end
-restore
-%%EOF
diff --git a/genomix/genomix-pregelix/graph/SinglePath b/genomix/genomix-pregelix/graph/SinglePath
deleted file mode 100644
index 02f42ba..0000000
--- a/genomix/genomix-pregelix/graph/SinglePath
+++ /dev/null
@@ -1,6 +0,0 @@
-ACAAC	G|A	1
-CAACA	A|G	1
-ACAGT	A|	1
-AACAG	C|T	1
-GACAA	A|C	1
-AGACA	|A	1
diff --git a/genomix/genomix-pregelix/graph/SinglePath_out.ps b/genomix/genomix-pregelix/graph/SinglePath_out.ps
deleted file mode 100644
index 8371636..0000000
--- a/genomix/genomix-pregelix/graph/SinglePath_out.ps
+++ /dev/null
@@ -1,351 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 140 452
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 104 416 boxprim clip newpath
-1 1 set_scale 0 rotate 40 41 translate
-% ACAAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 241 46.17 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23 237.4 moveto 50 (ACAAC) alignedtext
-grestore
-% CAACA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 167 46.17 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23 163.4 moveto 50 (CAACA) alignedtext
-grestore
-% ACAAC->CAACA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 222.33 moveto
-48 214.26 48 204.65 48 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath stroke
-grestore
-% AACAG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 93 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 89.4 moveto 52 (AACAG) alignedtext
-grestore
-% CAACA->AACAG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 148.33 moveto
-48 140.26 48 130.65 48 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath stroke
-grestore
-% ACAGT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 19 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 15.4 moveto 49 (ACAGT) alignedtext
-grestore
-% AACAG->ACAGT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 74.33 moveto
-48 66.26 48 56.65 48 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath stroke
-grestore
-% GACAA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 315 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 311.4 moveto 52 (GACAA) alignedtext
-grestore
-% GACAA->ACAAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 296.33 moveto
-48 288.26 48 278.65 48 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath stroke
-grestore
-% AGACA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 389 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 385.4 moveto 51 (AGACA) alignedtext
-grestore
-% AGACA->GACAA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 370.33 moveto
-48 362.26 48 352.65 48 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 36 36 140 452
-end
-restore
-%%EOF
diff --git a/genomix/genomix-pregelix/graph/ThreeKmer b/genomix/genomix-pregelix/graph/ThreeKmer
deleted file mode 100644
index 7ce9890..0000000
--- a/genomix/genomix-pregelix/graph/ThreeKmer
+++ /dev/null
@@ -1,3 +0,0 @@
-CTCGG	A|T	1
-ACTCG	|G	1
-TCGGT	C|	1
diff --git a/genomix/genomix-pregelix/graph/TreePath b/genomix/genomix-pregelix/graph/TreePath
index 0a3d5c6..a7627a8 100644
--- a/genomix/genomix-pregelix/graph/TreePath
+++ b/genomix/genomix-pregelix/graph/TreePath
@@ -1,29 +1,3 @@
-CTAAA	A|C	1
-GTAAC	A|T	1
-CTCAG	C|T	2
-GCTAT	G|C	1
-AGTAC	C|G	1
-GGCCT	|CG	3
-ATCCC	T|	1
-ACGCC	T|C	1
-CCTCA	G|G	2
-CCCGG	G|	1
-CCTGG	G|C	1
-GCCTC	G|A	2
-CAGTA	T|AC	2
-TAAAC	C|	1
-ACTAA	A|A	1
-AGTAA	C|C	1
-TAACT	G|A	1
-GTACG	A|C	1
-GCCCG	C|G	1
-CGCCC	A|G	1
-TGGCT	C|A	1
-TATCC	C|C	1
-TCAGT	C|A	2
-TACGC	G|C	1
-CTGGC	C|T	1
-CTATC	G|C	1
-AACTA	T|A	1
-GCCTG	G|G	1
-GGCTA	T|T	1
+CGTTACCCATGG
+CGTTAAGCACGGCCTGT
+CGTTAAGCACTAGTGAC
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/TreePath_out.ps b/genomix/genomix-pregelix/graph/TreePath_out.ps
deleted file mode 100644
index a1e7da1..0000000
--- a/genomix/genomix-pregelix/graph/TreePath_out.ps
+++ /dev/null
@@ -1,1018 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: graphviz version 2.26.3 (20100126.1600)
-%%Title: G
-%%Pages: (atend)
-%%BoundingBox: (atend)
-%%EndComments
-save
-%%BeginProlog
-/DotDict 200 dict def
-DotDict begin
-
-/setupLatin1 {
-mark
-/EncodingVector 256 array def
- EncodingVector 0
-
-ISOLatin1Encoding 0 255 getinterval putinterval
-EncodingVector 45 /hyphen put
-
-% Set up ISO Latin 1 character encoding
-/starnetISO {
-        dup dup findfont dup length dict begin
-        { 1 index /FID ne { def }{ pop pop } ifelse
-        } forall
-        /Encoding EncodingVector def
-        currentdict end definefont
-} def
-/Times-Roman starnetISO def
-/Times-Italic starnetISO def
-/Times-Bold starnetISO def
-/Times-BoldItalic starnetISO def
-/Helvetica starnetISO def
-/Helvetica-Oblique starnetISO def
-/Helvetica-Bold starnetISO def
-/Helvetica-BoldOblique starnetISO def
-/Courier starnetISO def
-/Courier-Oblique starnetISO def
-/Courier-Bold starnetISO def
-/Courier-BoldOblique starnetISO def
-cleartomark
-} bind def
-
-%%BeginResource: procset graphviz 0 0
-/coord-font-family /Times-Roman def
-/default-font-family /Times-Roman def
-/coordfont coord-font-family findfont 8 scalefont def
-
-/InvScaleFactor 1.0 def
-/set_scale {
-       dup 1 exch div /InvScaleFactor exch def
-       scale
-} bind def
-
-% styles
-/solid { [] 0 setdash } bind def
-/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
-/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
-/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
-/bold { 2 setlinewidth } bind def
-/filled { } bind def
-/unfilled { } bind def
-/rounded { } bind def
-/diagonals { } bind def
-
-% hooks for setting color 
-/nodecolor { sethsbcolor } bind def
-/edgecolor { sethsbcolor } bind def
-/graphcolor { sethsbcolor } bind def
-/nopcolor {pop pop pop} bind def
-
-/beginpage {	% i j npages
-	/npages exch def
-	/j exch def
-	/i exch def
-	/str 10 string def
-	npages 1 gt {
-		gsave
-			coordfont setfont
-			0 0 moveto
-			(\() show i str cvs show (,) show j str cvs show (\)) show
-		grestore
-	} if
-} bind def
-
-/set_font {
-	findfont exch
-	scalefont setfont
-} def
-
-% draw text fitted to its expected width
-/alignedtext {			% width text
-	/text exch def
-	/width exch def
-	gsave
-		width 0 gt {
-			[] 0 setdash
-			text stringwidth pop width exch sub text length div 0 text ashow
-		} if
-	grestore
-} def
-
-/boxprim {				% xcorner ycorner xsize ysize
-		4 2 roll
-		moveto
-		2 copy
-		exch 0 rlineto
-		0 exch rlineto
-		pop neg 0 rlineto
-		closepath
-} bind def
-
-/ellipse_path {
-	/ry exch def
-	/rx exch def
-	/y exch def
-	/x exch def
-	matrix currentmatrix
-	newpath
-	x y translate
-	rx ry scale
-	0 0 1 0 360 arc
-	setmatrix
-} bind def
-
-/endpage { showpage } bind def
-/showpage { } def
-
-/layercolorseq
-	[	% layer color sequence - darkest to lightest
-		[0 0 0]
-		[.2 .8 .8]
-		[.4 .8 .8]
-		[.6 .8 .8]
-		[.8 .8 .8]
-	]
-def
-
-/layerlen layercolorseq length def
-
-/setlayer {/maxlayer exch def /curlayer exch def
-	layercolorseq curlayer 1 sub layerlen mod get
-	aload pop sethsbcolor
-	/nodecolor {nopcolor} def
-	/edgecolor {nopcolor} def
-	/graphcolor {nopcolor} def
-} bind def
-
-/onlayer { curlayer ne {invis} if } def
-
-/onlayers {
-	/myupper exch def
-	/mylower exch def
-	curlayer mylower lt
-	curlayer myupper gt
-	or
-	{invis} if
-} def
-
-/curlayer 0 def
-
-%%EndResource
-%%EndProlog
-%%BeginSetup
-14 default-font-family set_font
-1 setmiterlimit
-% /arrowlength 10 def
-% /arrowwidth 5 def
-
-% make sure pdfmark is harmless for PS-interpreters other than Distiller
-/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
-% make '<<' and '>>' safe on PS Level 1 devices
-/languagelevel where {pop languagelevel}{1} ifelse
-2 lt {
-    userdict (<<) cvn ([) cvn load put
-    userdict (>>) cvn ([) cvn load put
-} if
-
-%%EndSetup
-setupLatin1
-%%Page: 1 1
-%%PageBoundingBox: 36 36 359 970
-%%PageOrientation: Portrait
-0 0 1 beginpage
-gsave
-36 36 323 934 boxprim clip newpath
-1 1 set_scale 0 rotate 40 41 translate
-% CTAAA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 93 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-135.5 89.4 moveto 49 (CTAAA) alignedtext
-grestore
-% TAAAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-160 19 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-135.5 15.4 moveto 49 (TAAAC) alignedtext
-grestore
-% CTAAA->TAAAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 160 74.33 moveto
-160 66.26 160 56.65 160 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 163.5 47.67 moveto
-160 37.67 lineto
-156.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 163.5 47.67 moveto
-160 37.67 lineto
-156.5 47.67 lineto
-closepath stroke
-grestore
-% GTAAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-158 389 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-133.5 385.4 moveto 49 (GTAAC) alignedtext
-grestore
-% TAACT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-158 315 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-134 311.4 moveto 48 (TAACT) alignedtext
-grestore
-% GTAAC->TAACT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 158 370.33 moveto
-158 362.26 158 352.65 158 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 161.5 343.67 moveto
-158 333.67 lineto
-154.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 161.5 343.67 moveto
-158 333.67 lineto
-154.5 343.67 lineto
-closepath stroke
-grestore
-% AACTA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-159 241 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-134.5 237.4 moveto 49 (AACTA) alignedtext
-grestore
-% TAACT->AACTA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 158.25 296.33 moveto
-158.36 288.26 158.49 278.65 158.61 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 162.11 269.71 moveto
-158.75 259.67 lineto
-155.11 269.62 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 162.11 269.71 moveto
-158.75 259.67 lineto
-155.11 269.62 lineto
-closepath stroke
-grestore
-% CTCAG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-155 685 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-130.5 681.4 moveto 49 (CTCAG) alignedtext
-grestore
-% TCAGT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-155 611 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-131 607.4 moveto 48 (TCAGT) alignedtext
-grestore
-% CTCAG->TCAGT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 155 666.33 moveto
-155 658.26 155 648.65 155 639.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 158.5 639.67 moveto
-155 629.67 lineto
-151.5 639.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 158.5 639.67 moveto
-155 629.67 lineto
-151.5 639.67 lineto
-closepath stroke
-grestore
-% CAGTA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-155 537 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-130.5 533.4 moveto 49 (CAGTA) alignedtext
-grestore
-% TCAGT->CAGTA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 155 592.33 moveto
-155 584.26 155 574.65 155 565.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 158.5 565.67 moveto
-155 555.67 lineto
-151.5 565.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 158.5 565.67 moveto
-155 555.67 lineto
-151.5 565.67 lineto
-closepath stroke
-grestore
-% GCTAT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 463 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-243 459.4 moveto 48 (GCTAT) alignedtext
-grestore
-% CTATC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 389 43.84 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-244 385.4 moveto 46 (CTATC) alignedtext
-grestore
-% GCTAT->CTATC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 444.33 moveto
-267 436.26 267 426.65 267 417.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 417.67 moveto
-267 407.67 lineto
-263.5 417.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 417.67 moveto
-267 407.67 lineto
-263.5 417.67 lineto
-closepath stroke
-grestore
-% TATCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 315 43.84 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-244 311.4 moveto 46 (TATCC) alignedtext
-grestore
-% CTATC->TATCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 370.33 moveto
-267 362.26 267 352.65 267 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 343.67 moveto
-267 333.67 lineto
-263.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 343.67 moveto
-267 333.67 lineto
-263.5 343.67 lineto
-closepath stroke
-grestore
-% AGTAC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 463 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 459.4 moveto 49 (AGTAC) alignedtext
-grestore
-% GTACG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 389 46.17 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23 385.4 moveto 50 (GTACG) alignedtext
-grestore
-% AGTAC->GTACG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 444.33 moveto
-48 436.26 48 426.65 48 417.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 417.67 moveto
-48 407.67 lineto
-44.5 417.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 417.67 moveto
-48 407.67 lineto
-44.5 417.67 lineto
-closepath stroke
-grestore
-% TACGC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 315 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-23.5 311.4 moveto 49 (TACGC) alignedtext
-grestore
-% GTACG->TACGC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 370.33 moveto
-48 362.26 48 352.65 48 343.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 343.67 moveto
-48 333.67 lineto
-44.5 343.67 lineto
-closepath stroke
-grestore
-% GGCCT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-211 907 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-185 903.4 moveto 52 (GGCCT) alignedtext
-grestore
-% GCCTC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-155 833 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-130.5 829.4 moveto 49 (GCCTC) alignedtext
-grestore
-% GGCCT->GCCTC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 197.44 889.09 moveto
-190.57 880 182.09 868.79 174.52 858.79 curveto
-stroke
-0 0 0 edgecolor
-newpath 177.26 856.61 moveto
-168.43 850.75 lineto
-171.67 860.83 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 177.26 856.61 moveto
-168.43 850.75 lineto
-171.67 860.83 lineto
-closepath stroke
-grestore
-% GCCTG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 833 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-241 829.4 moveto 52 (GCCTG) alignedtext
-grestore
-% GGCCT->GCCTG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 224.56 889.09 moveto
-231.38 880.06 239.79 868.96 247.32 859.01 curveto
-stroke
-0 0 0 edgecolor
-newpath 250.13 861.09 moveto
-253.37 851 lineto
-244.55 856.87 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 250.13 861.09 moveto
-253.37 851 lineto
-244.55 856.87 lineto
-closepath stroke
-grestore
-% CCTCA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-155 759 44.76 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-131 755.4 moveto 48 (CCTCA) alignedtext
-grestore
-% GCCTC->CCTCA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 155 814.33 moveto
-155 806.26 155 796.65 155 787.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 158.5 787.67 moveto
-155 777.67 lineto
-151.5 787.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 158.5 787.67 moveto
-155 777.67 lineto
-151.5 787.67 lineto
-closepath stroke
-grestore
-% CCTGG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 759 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-241 755.4 moveto 52 (CCTGG) alignedtext
-grestore
-% GCCTG->CCTGG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 814.33 moveto
-267 806.26 267 796.65 267 787.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 787.67 moveto
-267 777.67 lineto
-263.5 787.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 787.67 moveto
-267 777.67 lineto
-263.5 787.67 lineto
-closepath stroke
-grestore
-% ACGCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 241 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 237.4 moveto 51 (ACGCC) alignedtext
-grestore
-% CGCCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 167 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22.5 163.4 moveto 51 (CGCCC) alignedtext
-grestore
-% ACGCC->CGCCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 222.33 moveto
-48 214.26 48 204.65 48 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 195.67 moveto
-48 185.67 lineto
-44.5 195.67 lineto
-closepath stroke
-grestore
-% GCCCG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 93 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 89.4 moveto 52 (GCCCG) alignedtext
-grestore
-% CGCCC->GCCCG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 148.33 moveto
-48 140.26 48 130.65 48 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 121.67 moveto
-48 111.67 lineto
-44.5 121.67 lineto
-closepath stroke
-grestore
-% CCTCA->CTCAG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 155 740.33 moveto
-155 732.26 155 722.65 155 713.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 158.5 713.67 moveto
-155 703.67 lineto
-151.5 713.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 158.5 713.67 moveto
-155 703.67 lineto
-151.5 713.67 lineto
-closepath stroke
-grestore
-% CTGGC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 685 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-241 681.4 moveto 52 (CTGGC) alignedtext
-grestore
-% CCTGG->CTGGC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 740.33 moveto
-267 732.26 267 722.65 267 713.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 713.67 moveto
-267 703.67 lineto
-263.5 713.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 713.67 moveto
-267 703.67 lineto
-263.5 713.67 lineto
-closepath stroke
-grestore
-% TGGCT
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 611 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-241.5 607.4 moveto 51 (TGGCT) alignedtext
-grestore
-% CTGGC->TGGCT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 666.33 moveto
-267 658.26 267 648.65 267 639.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 639.67 moveto
-267 629.67 lineto
-263.5 639.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 639.67 moveto
-267 629.67 lineto
-263.5 639.67 lineto
-closepath stroke
-grestore
-% CAGTA->AGTAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 131.78 520.94 moveto
-116.5 510.37 96.3 496.4 79.56 484.83 curveto
-stroke
-0 0 0 edgecolor
-newpath 81.39 481.84 moveto
-71.17 479.03 lineto
-77.41 487.59 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 81.39 481.84 moveto
-71.17 479.03 lineto
-77.41 487.59 lineto
-closepath stroke
-grestore
-% AGTAA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-158 463 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-133.5 459.4 moveto 49 (AGTAA) alignedtext
-grestore
-% CAGTA->AGTAA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 155.76 518.33 moveto
-156.08 510.26 156.47 500.65 156.84 491.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 160.34 491.8 moveto
-157.24 481.67 lineto
-153.34 491.52 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 160.34 491.8 moveto
-157.24 481.67 lineto
-153.34 491.52 lineto
-closepath stroke
-grestore
-% AGTAA->GTAAC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 158 444.33 moveto
-158 436.26 158 426.65 158 417.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 161.5 417.67 moveto
-158 407.67 lineto
-154.5 417.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 161.5 417.67 moveto
-158 407.67 lineto
-154.5 417.67 lineto
-closepath stroke
-grestore
-% ACTAA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-159 167 45.96 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-134.5 163.4 moveto 49 (ACTAA) alignedtext
-grestore
-% ACTAA->CTAAA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 159.25 148.33 moveto
-159.36 140.26 159.49 130.65 159.61 121.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 163.11 121.71 moveto
-159.75 111.67 lineto
-156.11 121.62 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 163.11 121.71 moveto
-159.75 111.67 lineto
-156.11 121.62 lineto
-closepath stroke
-grestore
-% AACTA->ACTAA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 159 222.33 moveto
-159 214.26 159 204.65 159 195.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 162.5 195.67 moveto
-159 185.67 lineto
-155.5 195.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 162.5 195.67 moveto
-159 185.67 lineto
-155.5 195.67 lineto
-closepath stroke
-grestore
-% TACGC->ACGCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 296.33 moveto
-48 288.26 48 278.65 48 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 269.67 moveto
-48 259.67 lineto
-44.5 269.67 lineto
-closepath stroke
-grestore
-% CCCGG
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-48 19 48.08 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-22 15.4 moveto 52 (CCCGG) alignedtext
-grestore
-% GCCCG->CCCGG
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 48 74.33 moveto
-48 66.26 48 56.65 48 47.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 51.5 47.67 moveto
-48 37.67 lineto
-44.5 47.67 lineto
-closepath stroke
-grestore
-% GGCTA
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 537 46.88 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-241.5 533.4 moveto 51 (GGCTA) alignedtext
-grestore
-% TGGCT->GGCTA
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 592.33 moveto
-267 584.26 267 574.65 267 565.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 565.67 moveto
-267 555.67 lineto
-263.5 565.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 565.67 moveto
-267 555.67 lineto
-263.5 565.67 lineto
-closepath stroke
-grestore
-% GGCTA->GCTAT
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 518.33 moveto
-267 510.26 267 500.65 267 491.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 491.67 moveto
-267 481.67 lineto
-263.5 491.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 491.67 moveto
-267 481.67 lineto
-263.5 491.67 lineto
-closepath stroke
-grestore
-% ATCCC
-gsave
-1 setlinewidth
-0 0 0 nodecolor
-267 241 44.05 18.38 ellipse_path stroke
-0 0 0 nodecolor
-14 /Times-Roman set_font
-243.5 237.4 moveto 47 (ATCCC) alignedtext
-grestore
-% TATCC->ATCCC
-gsave
-1 setlinewidth
-0 0 0 edgecolor
-newpath 267 296.33 moveto
-267 288.26 267 278.65 267 269.71 curveto
-stroke
-0 0 0 edgecolor
-newpath 270.5 269.67 moveto
-267 259.67 lineto
-263.5 269.67 lineto
-closepath fill
-1 setlinewidth
-solid
-0 0 0 edgecolor
-newpath 270.5 269.67 moveto
-267 259.67 lineto
-263.5 269.67 lineto
-closepath stroke
-grestore
-endpage
-showpage
-grestore
-%%PageTrailer
-%%EndPage: 1
-%%Trailer
-%%Pages: 1
-%%BoundingBox: 36 36 359 970
-end
-restore
-%%EOF
diff --git a/genomix/genomix-pregelix/graph/mergeTest/BridgePath b/genomix/genomix-pregelix/graph/mergeTest/BridgePath
deleted file mode 100644
index 0717611..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/BridgePath
+++ /dev/null
@@ -1,2 +0,0 @@
-TTTCCACTCCGTG
-TTTCCACCCCGTG
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/mergeTest/CyclePath b/genomix/genomix-pregelix/graph/mergeTest/CyclePath
deleted file mode 100644
index 04080f4..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/CyclePath
+++ /dev/null
@@ -1 +0,0 @@
-GCAACTTCATCAACT
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/mergeTest/LongPath b/genomix/genomix-pregelix/graph/mergeTest/LongPath
deleted file mode 100644
index acd3c1a..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/LongPath
+++ /dev/null
@@ -1 +0,0 @@
-GGCCTCAGTACGCCCGG
diff --git a/genomix/genomix-pregelix/graph/mergeTest/Path b/genomix/genomix-pregelix/graph/mergeTest/Path
deleted file mode 100644
index f63bbcf..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/Path
+++ /dev/null
@@ -1 +0,0 @@
-GGCCTCAGTACG
diff --git a/genomix/genomix-pregelix/graph/mergeTest/SimplePath b/genomix/genomix-pregelix/graph/mergeTest/SimplePath
deleted file mode 100644
index 80c03af..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/SimplePath
+++ /dev/null
@@ -1,3 +0,0 @@
-ATATCGCATC
-AAGACAGCAC
-GCGGCAAGAA
diff --git a/genomix/genomix-pregelix/graph/mergeTest/SinglePath b/genomix/genomix-pregelix/graph/mergeTest/SinglePath
deleted file mode 100644
index 56ef5f8..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/SinglePath
+++ /dev/null
@@ -1 +0,0 @@
-AGACAACAGT
diff --git a/genomix/genomix-pregelix/graph/mergeTest/ThreeKmer b/genomix/genomix-pregelix/graph/mergeTest/ThreeKmer
deleted file mode 100644
index ec004fa..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/ThreeKmer
+++ /dev/null
@@ -1 +0,0 @@
-ACTCGGT
diff --git a/genomix/genomix-pregelix/graph/mergeTest/TreePath b/genomix/genomix-pregelix/graph/mergeTest/TreePath
deleted file mode 100644
index f3c13ce..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/TreePath
+++ /dev/null
@@ -1,3 +0,0 @@
-GGCCTGGCTATCCC
-GGCCTCAGTAACTAAAC
-GGCCTCAGTACGCCCGG
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/graph/mergeTest/TwoKmer b/genomix/genomix-pregelix/graph/mergeTest/TwoKmer
deleted file mode 100644
index 8c2a74b..0000000
--- a/genomix/genomix-pregelix/graph/mergeTest/TwoKmer
+++ /dev/null
@@ -1 +0,0 @@
-ACACTG
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
index cd2425b..c686d0c 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
@@ -32,6 +32,8 @@
     private boolean updateMsg = false;
     private VKmerBytesWritable startVertexId;
     private VKmerListWritable pathList;
+    private boolean srcFlip = false;
+    private boolean destFlip = false;
     
     private byte checkMessage;
 
@@ -264,6 +266,22 @@
         }
     }
 
+    public boolean isSrcFlip() {
+        return srcFlip;
+    }
+
+    public void setSrcFlip(boolean srcFlip) {
+        this.srcFlip = srcFlip;
+    }
+
+    public boolean isDestFlip() {
+        return destFlip;
+    }
+
+    public void setDestFlip(boolean destFlip) {
+        this.destFlip = destFlip;
+    }
+
     @Override
     public void write(DataOutput out) throws IOException {
         out.writeInt(kmerlength);
@@ -284,6 +302,8 @@
         out.writeBoolean(isFlip);
         out.writeByte(flag); 
         out.writeBoolean(updateMsg);
+        out.writeBoolean(srcFlip);
+        out.writeBoolean(destFlip);
     }
 
     @Override
@@ -307,6 +327,8 @@
         isFlip = in.readBoolean();
         flag = in.readByte();
         updateMsg = in.readBoolean();
+        srcFlip = in.readBoolean();
+        destFlip = in.readBoolean();
     }
 
     @Override
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/BFSTraverseVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/BFSTraverseVertex.java
index f3abaed..ee42dee 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/BFSTraverseVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/BFSTraverseVertex.java
@@ -6,11 +6,18 @@
 import java.util.List;
 import java.util.Map;
 
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
 import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
 import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
 import edu.uci.ics.genomix.pregelix.operator.pathmerge.MapReduceVertex;
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
 import edu.uci.ics.genomix.type.VKmerBytesWritable;
 import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
 
 public class BFSTraverseVertex extends
     MapReduceVertex {
@@ -63,11 +70,11 @@
         if (maxIteration < 0)
             maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
         if(incomingMsg == null)
-            incomingMsg = new MessageWritable(kmerSize);
+            incomingMsg = new MessageWritable();
         if(outgoingMsg == null)
-            outgoingMsg = new MessageWritable(kmerSize);
+            outgoingMsg = new MessageWritable();
         else
-            outgoingMsg.reset(kmerSize);
+            outgoingMsg.reset();
         if(reverseKmer == null)
             reverseKmer = new VKmerBytesWritable();
         if(kmerList == null)
@@ -82,6 +89,8 @@
         if(destVertexId == null)
             destVertexId = new VKmerBytesWritable(kmerSize);
         isFakeVertex = ((byte)getVertexValue().getState() & State.FAKEFLAG_MASK) > 0 ? true : false;
+        if(tmpKmer == null)
+            tmpKmer = new VKmerBytesWritable();
     }
     
     public void aggregateMsgAndGroupedByReadIdInReachedNode(Iterator<MessageWritable> msgIterator){
@@ -124,6 +133,7 @@
     }
     
     public void initialBroadcaseBFSTraverse(){
+        outgoingMsg.reset();
         outgoingMsg.setSourceVertexId(getVertexId());
         outgoingMsg.setSeekedVertexId(incomingMsg.getSeekedVertexId());
         outgoingMsg.getPathList().append(getVertexId());
@@ -135,6 +145,7 @@
     }
     
     public void broadcastBFSTraverse(){
+        outgoingMsg.reset();
         outgoingMsg.setSourceVertexId(incomingMsg.getSourceVertexId());
         outgoingMsg.setSeekedVertexId(incomingMsg.getSeekedVertexId());
         outgoingMsg.getPathList().append(getVertexId());
@@ -153,12 +164,19 @@
             voteToHalt();
         }
         else if(getSuperstep() == 2){
-            kmerList.append(new VKmerBytesWritable("Kmer1"));
-            kmerList.append(new VKmerBytesWritable("Kmer2"));
+            tmpKmer.setByRead(kmerSize, "AAT".getBytes(), 0);
+            kmerList.append(tmpKmer);
+            tmpKmer.setByRead(kmerSize, "CTA".getBytes(), 0);
+            kmerList.append(tmpKmer);
             /** initiate two nodes -- srcNode and destNode **/
             srcNode.setAsCopy(kmerList.getPosition(0));
             destNode.setAsCopy(kmerList.getPosition(1));
             // outgoingMsg.setNodeIdList(); set as common readId
+            PositionWritable nodeId = new PositionWritable();
+            nodeId.set((byte) 0, 1, 0);
+            PositionListWritable nodeIdList = new PositionListWritable();
+            nodeIdList.append(nodeId);
+            outgoingMsg.setNodeIdList(nodeIdList);
             outgoingMsg.setSeekedVertexId(destNode);
             sendMsg(srcNode, outgoingMsg);
             outgoingMsg.setSeekedVertexId(srcNode);
@@ -203,4 +221,17 @@
         
     }
     
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(BFSTraverseVertex.class.getSimpleName());
+        job.setVertexClass(BFSTraverseVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
 }
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/NaiveBFSTraverseVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/NaiveBFSTraverseVertex.java
new file mode 100644
index 0000000..d5b8301
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/NaiveBFSTraverseVertex.java
@@ -0,0 +1,189 @@
+package edu.uci.ics.genomix.pregelix.operator.scaffolding;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import edu.uci.ics.genomix.pregelix.client.Client;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanInputFormat;
+import edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat;
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.MapReduceVertex;
+import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerListWritable;
+import edu.uci.ics.pregelix.api.job.PregelixJob;
+
+public class NaiveBFSTraverseVertex extends
+    MapReduceVertex {
+    
+    protected VKmerBytesWritable srcNode = new VKmerBytesWritable();
+    protected VKmerBytesWritable destNode = new VKmerBytesWritable();
+    Map<Long, List<MessageWritable>> receivedMsg = new HashMap<Long, List<MessageWritable>>();
+
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable();
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable();
+        else
+            outgoingMsg.reset();
+        if(reverseKmer == null)
+            reverseKmer = new VKmerBytesWritable();
+        if(kmerList == null)
+            kmerList = new VKmerListWritable();
+        else
+            kmerList.reset();
+        if(fakeVertex == null){
+            fakeVertex = new VKmerBytesWritable();
+            String random = generaterRandomString(kmerSize + 1);
+            fakeVertex.setByRead(kmerSize + 1, random.getBytes(), 0); 
+        }
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+        if(tmpKmer == null)
+            tmpKmer = new VKmerBytesWritable();
+    }
+    
+    public void initialBroadcaseBFSTraverse(){
+        outgoingMsg.reset();
+        outgoingMsg.setSourceVertexId(getVertexId());
+        outgoingMsg.setSeekedVertexId(incomingMsg.getSeekedVertexId());
+        outgoingMsg.setSrcFlip(incomingMsg.isSrcFlip());
+        outgoingMsg.setDestFlip(incomingMsg.isDestFlip());
+        kmerList.append(getVertexId());
+        outgoingMsg.setPathList(kmerList);
+        outgoingMsg.setNodeIdList(incomingMsg.getNodeIdList()); //only one readId
+        if(incomingMsg.isSrcFlip())
+            sendSettledMsgToAllPreviousNodes(getVertexValue());
+        else
+            sendSettledMsgToAllNextNodes(getVertexValue());
+    }
+    
+    public void broadcaseBFSTraverse(){
+        outgoingMsg.reset();
+        outgoingMsg.setSourceVertexId(incomingMsg.getSourceVertexId());
+        outgoingMsg.setSeekedVertexId(incomingMsg.getSeekedVertexId());
+        outgoingMsg.setSrcFlip(incomingMsg.isSrcFlip());
+        outgoingMsg.setDestFlip(incomingMsg.isDestFlip());
+        kmerList.setCopy(incomingMsg.getPathList());
+        kmerList.append(getVertexId());
+        outgoingMsg.setPathList(kmerList);
+        outgoingMsg.setNodeIdList(incomingMsg.getNodeIdList()); //only one readId
+        byte meToNeighborDir = (byte) (incomingMsg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        switch(neighborToMeDir){
+            case MessageFlag.DIR_FF:
+            case MessageFlag.DIR_FR:
+                sendSettledMsgToAllPreviousNodes(getVertexValue());
+                break;
+            case MessageFlag.DIR_RF:
+            case MessageFlag.DIR_RR:
+                sendSettledMsgToAllNextNodes(getVertexValue());
+                break;
+        }
+    }
+    
+    public boolean isValidDestination(){
+        byte meToNeighborDir = (byte) (incomingMsg.getFlag() & MessageFlag.DIR_MASK);
+        byte neighborToMeDir = mirrorDirection(meToNeighborDir);
+        if(incomingMsg.isDestFlip())
+            return neighborToMeDir == MessageFlag.DIR_RF || neighborToMeDir == MessageFlag.DIR_RR;
+        else
+            return neighborToMeDir == MessageFlag.DIR_FF || neighborToMeDir == MessageFlag.DIR_FR;
+    }
+  
+    public void initiateSrcAndDestNode(VKmerListWritable pairKmerList, ArrayList<Boolean> flagList, 
+            PositionListWritable nodeIdList){
+        initiateSrcAndDestNode(pairKmerList, flagList.get(0), flagList.get(1), nodeIdList);
+    }
+    
+    public void initiateSrcAndDestNode(VKmerListWritable pairKmerList, boolean srcFlip, boolean destFlip, 
+            PositionListWritable nodeIdList){
+        srcNode.setAsCopy(pairKmerList.getPosition(0));
+        destNode.setAsCopy(pairKmerList.getPosition(1));
+        outgoingMsg.setNodeIdList(nodeIdList);
+        outgoingMsg.setSeekedVertexId(destNode);
+        outgoingMsg.setSrcFlip(srcFlip);
+        outgoingMsg.setDestFlip(destFlip);
+    }
+    
+    @Override
+    public void compute(Iterator<MessageWritable> msgIterator) {
+        initVertex();
+        if(getSuperstep() == 1){
+            addFakeVertex();
+            voteToHalt();
+        }
+        else if(getSuperstep() == 2){
+            tmpKmer.setByRead(kmerSize, "AAT".getBytes(), 0);
+            kmerList.append(tmpKmer);
+            tmpKmer.setByRead(kmerSize, "AGA".getBytes(), 0);
+            kmerList.append(tmpKmer);
+            // outgoingMsg.setNodeIdList(); set as common readId
+            PositionWritable nodeId = new PositionWritable();
+            nodeId.set((byte) 0, 1, 0);
+            PositionListWritable nodeIdList = new PositionListWritable();
+            nodeIdList.append(nodeId);
+            /** initiate two nodes -- srcNode and destNode **/
+            initiateSrcAndDestNode(kmerList, true, false, nodeIdList);
+            sendMsg(srcNode, outgoingMsg);
+            
+            deleteVertex(getVertexId());
+        } else if(getSuperstep() == 3){
+            while(msgIterator.hasNext()){
+                incomingMsg = msgIterator.next();
+                /** begin to BFS **/
+                initialBroadcaseBFSTraverse();
+            }
+            voteToHalt();
+        } else if(getSuperstep() > 3){
+            while(msgIterator.hasNext()){
+                incomingMsg = msgIterator.next();
+                /** check if find destination **/
+                if(incomingMsg.getSeekedVertexId().equals(getVertexId())){
+                    if(isValidDestination()){
+                        kmerList.setCopy(incomingMsg.getPathList());
+                        kmerList.append(getVertexId());
+                        //TODO do some process after finding a path
+                    }
+                    else{
+                        //keep BFS
+                        broadcaseBFSTraverse();
+                    }
+                } else {
+                    //keep BFS
+                    broadcaseBFSTraverse();
+                }
+            }
+            voteToHalt();
+        }
+        
+    }
+    
+    public static void main(String[] args) throws Exception {
+        PregelixJob job = new PregelixJob(NaiveBFSTraverseVertex.class.getSimpleName());
+        job.setVertexClass(NaiveBFSTraverseVertex.class);
+        /**
+         * BinaryInput and BinaryOutput
+         */
+        job.setVertexInputFormatClass(GraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        Client.run(args, job);
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
index 782ed70..bf55cb1 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
@@ -1,19 +1,60 @@
 package edu.uci.ics.genomix.pregelix.operator.scaffolding;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
 import edu.uci.ics.genomix.pregelix.io.HashMapWritable;
 import edu.uci.ics.genomix.pregelix.io.MessageWritable;
-import edu.uci.ics.genomix.pregelix.operator.pathmerge.MapReduceVertex;
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
 import edu.uci.ics.genomix.type.VKmerBytesWritable;
 import edu.uci.ics.genomix.type.VKmerListWritable;
 
 public class ScaffoldingVertex extends 
-    MapReduceVertex{
+    NaiveBFSTraverseVertex{
 
-    public static Map<Long, VKmerListWritable> scaffoldingMap = new HashMap<Long, VKmerListWritable>();
+    public class KmerListAndFlagList{
+        private ArrayList<Boolean> flagList;
+        private VKmerListWritable kmerList;
+        
+        public KmerListAndFlagList(){
+            flagList = new ArrayList<Boolean>();
+            kmerList = new VKmerListWritable();
+        }
+        
+        public void set(KmerListAndFlagList kmerAndflag){
+            flagList.clear();
+            kmerList.reset();
+            flagList.addAll(kmerAndflag.getFlagList());
+            kmerList.appendList(kmerAndflag.getKmerList());
+        }
+        
+        public int size(){
+            return flagList.size();
+        }
+        
+        public ArrayList<Boolean> getFlagList() {
+            return flagList;
+        }
+
+        public void setFlagList(ArrayList<Boolean> flagList) {
+            this.flagList = flagList;
+        }
+
+        public VKmerListWritable getKmerList() {
+            return kmerList;
+        }
+
+        public void setKmerList(VKmerListWritable kmerList) {
+            this.kmerList = kmerList;
+        }
+        
+    }
+    private ArrayList<Boolean> flagList = new ArrayList<Boolean>();
+    private KmerListAndFlagList kmerListAndflagList = new KmerListAndFlagList();
+    public static Map<Long, KmerListAndFlagList> scaffoldingMap = new HashMap<Long, KmerListAndFlagList>();
     
     private HashMapWritable<VKmerBytesWritable, VKmerListWritable> traverseMap = new HashMapWritable<VKmerBytesWritable, VKmerListWritable>();
     
@@ -39,34 +80,74 @@
             kmerList = new VKmerListWritable();
     }
     
+    public void addStartReadsToScaffoldingMap(){
+        boolean isflip = false;
+        for(PositionWritable pos : getVertexValue().getStartReads()){
+            long readId = pos.getReadId();
+            if(scaffoldingMap.containsKey(readId)){
+                kmerList.setCopy(scaffoldingMap.get(readId).getKmerList());
+                kmerList.append(getVertexId());
+                flagList.clear();
+                flagList.addAll(scaffoldingMap.get(readId).getFlagList());
+                flagList.add(isflip);
+            } else{
+                kmerList.reset();
+                kmerList.append(getVertexId());
+                flagList.clear();
+                flagList.add(isflip);
+            }
+            kmerListAndflagList.setKmerList(kmerList);
+            kmerListAndflagList.setFlagList(flagList);
+            scaffoldingMap.put(readId, kmerListAndflagList);
+        }
+    }
+    
+    public void addEndReadsToScaffoldingMap(){
+        boolean isflip = true;
+        for(PositionWritable pos : getVertexValue().getEndReads()){
+            long readId = pos.getReadId();
+            if(scaffoldingMap.containsKey(readId)){
+                kmerList.setCopy(scaffoldingMap.get(readId).getKmerList());
+                kmerList.append(getVertexId());
+                flagList.clear();
+                flagList.addAll(scaffoldingMap.get(readId).getFlagList());
+                flagList.add(isflip);
+            } else{
+                kmerList.reset();
+                kmerList.append(getVertexId());
+                flagList.clear();
+                flagList.add(isflip);
+            }
+            kmerListAndflagList.setKmerList(kmerList);
+            kmerListAndflagList.setFlagList(flagList);
+            scaffoldingMap.put(readId, kmerListAndflagList);
+        }
+    }
+    
     @Override
     public void compute(Iterator<MessageWritable> msgIterator) {
         initVertex();
         if(getSuperstep() == 1){
             /** add a fake vertex **/
             addFakeVertex();
-            /** grouped by 5' readId **/ //TODO
-            long mainReadId = getVertexValue().getStartReads().getPosition(0).getReadId();
-            if(mainReadId != 0){ //empty or not
-                if(scaffoldingMap.containsKey(mainReadId)){
-                    kmerList.setCopy(scaffoldingMap.get(mainReadId));
-                    kmerList.append(getVertexId());
-                } else{
-                    kmerList.reset();
-                    kmerList.append(getVertexId());
-                }
-                scaffoldingMap.put(mainReadId, kmerList);
-            }
+            /** grouped by 5' readId **/
+            addStartReadsToScaffoldingMap();
+            addEndReadsToScaffoldingMap();
+            
             voteToHalt();
         } else if(getSuperstep() == 2){
             /** process scaffoldingMap **/
             for(Long readId : scaffoldingMap.keySet()){
-                kmerList.setCopy(scaffoldingMap.get(readId));
-                if(kmerList.getCountOfPosition() == 2){
-                    outgoingMsg.setSeekedVertexId(kmerList.getPosition(1));
-                    sendMsg(kmerList.getPosition(0), outgoingMsg);
-                    outgoingMsg.setSeekedVertexId(kmerList.getPosition(0));
-                    sendMsg(kmerList.getPosition(1), outgoingMsg);
+                ////////////
+                PositionWritable nodeId = new PositionWritable();
+                nodeId.set((byte) 0, 1, 0);
+                PositionListWritable nodeIdList = new PositionListWritable();
+                nodeIdList.append(nodeId);
+                ////////////
+                kmerListAndflagList.set(scaffoldingMap.get(readId));
+                if(kmerListAndflagList.size() == 2){
+                    initiateSrcAndDestNode(kmerListAndflagList.kmerList, kmerListAndflagList.flagList, nodeIdList);
+                    sendMsg(srcNode, outgoingMsg);
                 }
             }
             deleteVertex(getVertexId());
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SimpleSplitRepeatVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SimpleSplitRepeatVertex.java
new file mode 100644
index 0000000..3ab95b9
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SimpleSplitRepeatVertex.java
@@ -0,0 +1,29 @@
+package edu.uci.ics.genomix.pregelix.operator.splitrepeat;
+
+import edu.uci.ics.genomix.pregelix.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.operator.pathmerge.BasicGraphCleanVertex;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
+
+public class SimpleSplitRepeatVertex extends 
+    BasicGraphCleanVertex{
+    
+    /**
+     * initiate kmerSize, maxIteration
+     */
+    public void initVertex() {
+        if (kmerSize == -1)
+            kmerSize = getContext().getConfiguration().getInt(KMER_SIZE, 5);
+        if (maxIteration < 0)
+            maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
+        if(incomingMsg == null)
+            incomingMsg = new MessageWritable(kmerSize);
+        if(outgoingMsg == null)
+            outgoingMsg = new MessageWritable(kmerSize);
+        else
+            outgoingMsg.reset(kmerSize);
+        if(destVertexId == null)
+            destVertexId = new VKmerBytesWritable(kmerSize);
+        if(tmpKmer == null)
+            tmpKmer = new VKmerBytesWritable();
+    }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java
index f30512c..f73a5de 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java
@@ -9,24 +9,38 @@
     /**
      * Simple Path
      */
-    public static String simplePath(int k, int length, int numLines) {
-        RandomString rs = new RandomString(k, length);
+    public static String simplePath(int kmerSize, int readLength, int numLines) {
+        RandomString rs = new RandomString(kmerSize, readLength);
         String output = "";
         for (int i = 0; i < numLines; i++)
             output += rs.nextString(0) + "\r\n";
         return output;
+        
     }
 
     /**
+     * Bridge Path
+     */
+    public static String bridgePath(int kmerSize, int headLength, int bridgeLength, int readLength) {
+        RandomString rs = new RandomString(kmerSize, readLength);
+        String s1 = rs.nextString(0);
+        rs.setLength(headLength + bridgeLength);
+        int startBridge = kmerSize + headLength;
+        rs.addString(s1.substring(0, startBridge));
+        String s2 = rs.nextString(startBridge) + s1.substring(bridgeLength + startBridge - kmerSize);
+        return s1 + "\r\n" + s2;
+    }
+    
+    /**
      * Tree Path
      */
-    public static String treePath(int k, int x, int y, int z) {
-        RandomString rs = new RandomString(k, x + y + k - 1);
+    public static String treePath(int kmerSize, int x, int y, int z) {
+        RandomString rs = new RandomString(kmerSize, x + y + kmerSize - 1);
         String s1 = rs.nextString(0);
-        rs.setLength(x + y + z + k - 1);
+        rs.setLength(x + y + z + kmerSize - 1);
         rs.addString(s1.substring(0, x));
         String s2 = rs.nextString(x);
-        rs.setLength(x + y + z + k - 1);
+        rs.setLength(x + y + z + kmerSize - 1);
         rs.addString(s2.substring(0, x + y));
         String s3 = rs.nextString(x + y);
         return s1 + "\r\n" + s2 + "\r\n" + s3;
@@ -35,46 +49,74 @@
     /**
      * Cycle Path
      */
-    public static String cyclePath(int k, int length) {
-        RandomString rs = new RandomString(k, length);
+    public static String cyclePath(int kmerSize, int length) {
+        RandomString rs = new RandomString(kmerSize, length);
         String s1 = rs.nextString(0);
-        String s2 = s1 + s1.substring(1, k + 1);
+        String s2 = s1 + s1.substring(1, kmerSize + 1);
         return s2;
     }
-
-    /**
-     * Bridge Path
-     */
-    public static String bridgePath(int k, int x) {
-        RandomString rs = new RandomString(k, x + k + 2 + k - 1);
-        String s1 = rs.nextString(0);
-        rs.setLength(x + k + 2);
-        rs.addString(s1.substring(0, k + 2));
-        String s2 = rs.nextString(k + 2) + s1.substring(x + k + 2, x + k + 2 + k - 1);
-        return s1 + "\r\n" + s2;
-    }
-
-    public static void main(String[] args) {
-        // TODO Auto-generated method stub
+    
+    public static void generateSimplePath(String destDir, int kmerSize, int readLength, int numLines){
         OutputStreamWriter writer;
         try {
-            writer = new OutputStreamWriter(new FileOutputStream("graph/7/SinglePath"));
-            writer.write(simplePath(7, 10, 1));
-            writer.close();
-            writer = new OutputStreamWriter(new FileOutputStream("graph/7/SimplePath"));
-            writer.write(simplePath(7, 10, 3));
-            writer.close();
-            writer = new OutputStreamWriter(new FileOutputStream("graph/7/TreePath"));
-            writer.write(treePath(7, 7, 7, 7));
-            writer.close();
-            writer = new OutputStreamWriter(new FileOutputStream("graph/7/CyclePath"));
-            writer.write(cyclePath(7, 10));
-            writer.close();
-            writer = new OutputStreamWriter(new FileOutputStream("graph/7/BridgePath"));
-            writer.write(bridgePath(7, 2));
+            writer = new OutputStreamWriter(new FileOutputStream(destDir));
+            writer.write(simplePath(kmerSize, readLength, numLines));
             writer.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
+    
+    public static void generateBridgePath(String destDir, int kmerSize, int headLength, int bridgeLength, int readLength){
+        OutputStreamWriter writer;
+        try {
+            writer = new OutputStreamWriter(new FileOutputStream(destDir));
+            writer.write(bridgePath(kmerSize, headLength, bridgeLength, readLength));
+            writer.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+    
+    public static void generateTreePath(String destDir, int kmerSize, int x, int y, int z){
+        OutputStreamWriter writer;
+        try {
+            writer = new OutputStreamWriter(new FileOutputStream(destDir));
+            writer.write(treePath(kmerSize, x, y, z));
+            writer.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+    
+    public static void generateCyclePath(String destDir, int kmerSize, int cycleLength){
+        OutputStreamWriter writer;
+        try {
+            writer = new OutputStreamWriter(new FileOutputStream(destDir));
+            writer.write(cyclePath(kmerSize, cycleLength));
+            writer.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+    
+    public static void main(String[] args) {
+        int kmerSize = 3; 
+        /** SimplePath **/
+        int readLength = 9;
+        int numLines = 3;
+        generateSimplePath("graph/SimplePath", kmerSize, readLength, numLines);
+        /** BridgePath **/
+        int headLength = 2;
+        int bridgeLength = 4; 
+        generateBridgePath("graph/BridgePath", kmerSize, headLength, bridgeLength, readLength);
+        /** TreePath **/
+        int x = 5;
+        int y = 5;
+        int z = 5;
+        generateTreePath("graph/TreePath", kmerSize, x, y, z);
+        /** CyclePath **/
+        int cycleLength = 8;
+        generateCyclePath("graph/CyclePath", kmerSize, cycleLength);
+    }
 }
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
index 98219d7..be6885b 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
@@ -17,6 +17,7 @@
 import edu.uci.ics.genomix.pregelix.operator.pathmerge.MapReduceVertex;
 import edu.uci.ics.genomix.pregelix.operator.pathmerge.P4ForPathMergeVertex;
 import edu.uci.ics.genomix.pregelix.operator.removelowcoverage.RemoveLowCoverageVertex;
+import edu.uci.ics.genomix.pregelix.operator.scaffolding.NaiveBFSTraverseVertex;
 import edu.uci.ics.genomix.pregelix.operator.scaffolding.ScaffoldingVertex;
 import edu.uci.ics.genomix.pregelix.operator.splitrepeat.SplitRepeatVertex;
 import edu.uci.ics.genomix.pregelix.operator.tipremove.TipAddVertex;
@@ -249,6 +250,23 @@
                 + "BubbleMergeGraph.xml");
     }
     
+    private static void generateNaiveBFSTraverseGraphJob(String jobName, String outputPath) throws IOException {
+        PregelixJob job = new PregelixJob(jobName);
+        job.setVertexClass(NaiveBFSTraverseVertex.class);
+        job.setVertexInputFormatClass(InitialGraphCleanInputFormat.class);
+        job.setVertexOutputFormatClass(GraphCleanOutputFormat.class);
+        job.setDynamicVertexValueSize(true);
+        job.setOutputKeyClass(VKmerBytesWritable.class);
+        job.setOutputValueClass(VertexValueWritable.class);
+        job.getConfiguration().setInt(ScaffoldingVertex.KMER_SIZE, 3);
+        job.getConfiguration().writeXml(new FileOutputStream(new File(outputPath)));
+    }
+
+    private static void genNaiveBFSTraverseGraph() throws IOException {
+        generateNaiveBFSTraverseGraphJob("NaiveBFSTraversegGraph", outputBase
+                + "NaiveBFSTraverseGraph.xml");
+    }
+    
     private static void generateScaffoldingGraphJob(String jobName, String outputPath) throws IOException {
         PregelixJob job = new PregelixJob(jobName);
         job.setVertexClass(ScaffoldingVertex.class);
@@ -278,6 +296,7 @@
         genBubbleAddGraph();
         genBubbleMergeGraph();
         genSplitRepeatGraph();
+        genNaiveBFSTraverseGraph();
         genScaffoldingGraph();
     }
 
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BFSTraverseSmallTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BFSTraverseSmallTestSuite.java
new file mode 100644
index 0000000..41b0d8b
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/BFSTraverseSmallTestSuite.java
@@ -0,0 +1,201 @@
+/*
+ * Copyright 2009-2010 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package edu.uci.ics.genomix.pregelix.JobRun;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import junit.framework.Test;
+import junit.framework.TestResult;
+import junit.framework.TestSuite;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.hadoop.mapred.JobConf;
+
+import edu.uci.ics.pregelix.core.jobgen.clusterconfig.ClusterConfig;
+import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
+
+@SuppressWarnings("deprecation")
+public class BFSTraverseSmallTestSuite extends TestSuite {
+    private static final Logger LOGGER = Logger.getLogger(BFSTraverseSmallTestSuite.class.getName());
+    //P4ForMergeGraph/bin/read
+    public static final String PreFix = "data/PathMergeTestSet"; 
+    public static final String[] TestDir = { PreFix + File.separator
+    + "4"};
+    private static final String ACTUAL_RESULT_DIR = "data/actual/BTSTraverse";
+    private static final String PATH_TO_HADOOP_CONF = "src/test/resources/hadoop/conf";
+    private static final String PATH_TO_CLUSTER_STORE = "src/test/resources/cluster/stores.properties";
+    private static final String PATH_TO_CLUSTER_PROPERTIES = "src/test/resources/cluster/cluster.properties";
+    private static final String PATH_TO_JOBS = "src/test/resources/jobs/";
+    private static final String PATH_TO_ONLY = "src/test/resources/only_BFSTraverse.txt";
+
+    public static final String HDFS_INPUTPATH = "/PathTestSet";
+
+    private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
+    private MiniDFSCluster dfsCluster;
+
+    private JobConf conf = new JobConf();
+    private int numberOfNC = 1;
+
+    public void setUp() throws Exception {
+        ClusterConfig.setStorePath(PATH_TO_CLUSTER_STORE);
+        ClusterConfig.setClusterPropertiesPath(PATH_TO_CLUSTER_PROPERTIES);
+        cleanupStores();
+        PregelixHyracksIntegrationUtil.init();
+        LOGGER.info("Hyracks mini-cluster started");
+        FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
+        FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
+        startHDFS();
+    }
+
+    private void startHDFS() throws IOException {
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/core-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/mapred-site.xml"));
+        conf.addResource(new Path(PATH_TO_HADOOP_CONF + "/hdfs-site.xml"));
+        FileSystem lfs = FileSystem.getLocal(new Configuration());
+        lfs.delete(new Path("build"), true);
+        System.setProperty("hadoop.log.dir", "logs");
+        dfsCluster = new MiniDFSCluster(conf, numberOfNC, true, null);
+        FileSystem dfs = FileSystem.get(conf);
+
+        for (String testDir : TestDir) {
+            File src = new File(testDir);
+            Path dest = new Path(HDFS_INPUTPATH + File.separator + src.getName());
+            dfs.mkdirs(dest);
+            //src.listFiles()
+            //src.listFiles((FilenameFilter)(new WildcardFileFilter("part*")))
+            for (File f : src.listFiles()) {
+                dfs.copyFromLocalFile(new Path(f.getAbsolutePath()), dest);
+            }
+        }
+
+        DataOutputStream confOutput = new DataOutputStream(new FileOutputStream(new File(HADOOP_CONF_PATH)));
+        conf.writeXml(confOutput);
+        confOutput.flush();
+        confOutput.close();
+    }
+
+    private void cleanupStores() throws IOException {
+        FileUtils.forceMkdir(new File("teststore"));
+        FileUtils.forceMkdir(new File("build"));
+        FileUtils.cleanDirectory(new File("teststore"));
+        FileUtils.cleanDirectory(new File("build"));
+    }
+
+    /**
+     * cleanup hdfs cluster
+     */
+    private void cleanupHDFS() throws Exception {
+        dfsCluster.shutdown();
+    }
+
+    public void tearDown() throws Exception {
+        PregelixHyracksIntegrationUtil.deinit();
+        LOGGER.info("Hyracks mini-cluster shut down");
+        cleanupHDFS();
+    }
+
+    public static Test suite() throws Exception {
+        List<String> onlys = getFileList(PATH_TO_ONLY);
+        File testData = new File(PATH_TO_JOBS);
+        File[] queries = testData.listFiles();
+        BFSTraverseSmallTestSuite testSuite = new BFSTraverseSmallTestSuite();
+        testSuite.setUp();
+        boolean onlyEnabled = false;
+        FileSystem dfs = FileSystem.get(testSuite.conf);
+
+        if (onlys.size() > 0) {
+            onlyEnabled = true;
+        }
+
+        for (File qFile : queries) {
+            if (qFile.isFile()) {
+                if (onlyEnabled && !isInList(onlys, qFile.getName())) {
+                    continue;
+                } else {
+                    for (String testPathStr : TestDir) {
+                        File testDir = new File(testPathStr);
+                        String resultFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "bin" + File.separator + testDir.getName();
+                        String textFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "txt" + File.separator + testDir.getName();
+                        String graphvizFileName = ACTUAL_RESULT_DIR + File.separator + jobExtToResExt(qFile.getName())
+                                + File.separator + "graphviz" + File.separator + testDir.getName();
+                        testSuite.addTest(new BasicSmallTestCase(HADOOP_CONF_PATH, qFile.getName(), qFile
+                                .getAbsolutePath().toString(), dfs,
+                                HDFS_INPUTPATH + File.separator + testDir.getName(), resultFileName, textFileName, graphvizFileName));
+                    }
+                }
+            }
+        }
+        return testSuite;
+    }
+
+    /**
+     * Runs the tests and collects their result in a TestResult.
+     */
+    @Override
+    public void run(TestResult result) {
+        try {
+            int testCount = countTestCases();
+            for (int i = 0; i < testCount; i++) {
+                // cleanupStores();
+                Test each = this.testAt(i);
+                if (result.shouldStop())
+                    break;
+                runTest(each, result);
+            }
+            tearDown();
+        } catch (Exception e) {
+            throw new IllegalStateException(e);
+        }
+    }
+
+    protected static List<String> getFileList(String ignorePath) throws FileNotFoundException, IOException {
+        BufferedReader reader = new BufferedReader(new FileReader(ignorePath));
+        String s = null;
+        List<String> ignores = new ArrayList<String>();
+        while ((s = reader.readLine()) != null) {
+            ignores.add(s);
+        }
+        reader.close();
+        return ignores;
+    }
+
+    private static String jobExtToResExt(String fname) {
+        int dot = fname.lastIndexOf('.');
+        return fname.substring(0, dot);
+    }
+
+    private static boolean isInList(List<String> onlys, String name) {
+        for (String only : onlys)
+            if (name.indexOf(only) >= 0)
+                return true;
+        return false;
+    }
+
+}
diff --git a/genomix/genomix-pregelix/src/test/resources/jobs/NaiveBFSTraverseGraph.xml b/genomix/genomix-pregelix/src/test/resources/jobs/NaiveBFSTraverseGraph.xml
new file mode 100644
index 0000000..a412b2b
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/jobs/NaiveBFSTraverseGraph.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><configuration>
+<property><name>mapred.tasktracker.dns.nameserver</name><value>default</value></property>
+<property><name>mapred.queue.default.acl-administer-jobs</name><value>*</value></property>
+<property><name>mapred.skip.map.auto.incr.proc.count</name><value>true</value></property>
+<property><name>mapred.jobtracker.instrumentation</name><value>org.apache.hadoop.mapred.JobTrackerMetricsInst</value></property>
+<property><name>mapred.skip.reduce.auto.incr.proc.count</name><value>true</value></property>
+<property><name>fs.hsftp.impl</name><value>org.apache.hadoop.hdfs.HsftpFileSystem</value></property>
+<property><name>mapred.submit.replication</name><value>10</value></property>
+<property><name>ipc.server.tcpnodelay</name><value>false</value></property>
+<property><name>fs.checkpoint.dir</name><value>${hadoop.tmp.dir}/dfs/namesecondary</value></property>
+<property><name>mapred.output.compression.type</name><value>RECORD</value></property>
+<property><name>mapred.job.shuffle.merge.percent</name><value>0.66</value></property>
+<property><name>mapred.child.java.opts</name><value>-Xmx200m</value></property>
+<property><name>mapred.queue.default.acl-submit-job</name><value>*</value></property>
+<property><name>keep.failed.task.files</name><value>false</value></property>
+<property><name>mapred.jobtracker.job.history.block.size</name><value>3145728</value></property>
+<property><name>mapred.output.value.class</name><value>edu.uci.ics.genomix.pregelix.io.VertexValueWritable</value></property>
+<property><name>io.bytes.per.checksum</name><value>512</value></property>
+<property><name>mapred.task.tracker.report.address</name><value>127.0.0.1:0</value></property>
+<property><name>hadoop.util.hash.type</name><value>murmur</value></property>
+<property><name>fs.hdfs.impl</name><value>org.apache.hadoop.hdfs.DistributedFileSystem</value></property>
+<property><name>fs.ramfs.impl</name><value>org.apache.hadoop.fs.InMemoryFileSystem</value></property>
+<property><name>mapred.jobtracker.restart.recover</name><value>false</value></property>
+<property><name>fs.hftp.impl</name><value>org.apache.hadoop.hdfs.HftpFileSystem</value></property>
+<property><name>fs.checkpoint.period</name><value>3600</value></property>
+<property><name>mapred.child.tmp</name><value>./tmp</value></property>
+<property><name>mapred.local.dir.minspacekill</name><value>0</value></property>
+<property><name>map.sort.class</name><value>org.apache.hadoop.util.QuickSort</value></property>
+<property><name>hadoop.logfile.count</name><value>10</value></property>
+<property><name>ipc.client.connection.maxidletime</name><value>10000</value></property>
+<property><name>io.map.index.skip</name><value>0</value></property>
+<property><name>mapred.tasktracker.expiry.interval</name><value>600000</value></property>
+<property><name>mapred.output.compress</name><value>false</value></property>
+<property><name>io.seqfile.lazydecompress</name><value>true</value></property>
+<property><name>mapred.reduce.parallel.copies</name><value>5</value></property>
+<property><name>fs.checkpoint.size</name><value>67108864</value></property>
+<property><name>mapred.job.reduce.input.buffer.percent</name><value>0.0</value></property>
+<property><name>mapred.job.name</name><value>NaiveBFSTraversegGraph</value></property>
+<property><name>local.cache.size</name><value>10737418240</value></property>
+<property><name>fs.s3n.impl</name><value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value></property>
+<property><name>mapred.userlog.limit.kb</name><value>0</value></property>
+<property><name>fs.file.impl</name><value>org.apache.hadoop.fs.LocalFileSystem</value></property>
+<property><name>mapred.task.tracker.http.address</name><value>0.0.0.0:50060</value></property>
+<property><name>mapred.task.timeout</name><value>600000</value></property>
+<property><name>fs.kfs.impl</name><value>org.apache.hadoop.fs.kfs.KosmosFileSystem</value></property>
+<property><name>mapred.max.tracker.blacklists</name><value>4</value></property>
+<property><name>fs.s3.buffer.dir</name><value>${hadoop.tmp.dir}/s3</value></property>
+<property><name>mapred.job.tracker.persist.jobstatus.dir</name><value>/jobtracker/jobsInfo</value></property>
+<property><name>ipc.client.kill.max</name><value>10</value></property>
+<property><name>mapred.tasktracker.instrumentation</name><value>org.apache.hadoop.mapred.TaskTrackerMetricsInst</value></property>
+<property><name>mapred.reduce.tasks.speculative.execution</name><value>true</value></property>
+<property><name>io.sort.record.percent</name><value>0.05</value></property>
+<property><name>hadoop.security.authorization</name><value>false</value></property>
+<property><name>mapred.max.tracker.failures</name><value>4</value></property>
+<property><name>mapred.jobtracker.taskScheduler</name><value>org.apache.hadoop.mapred.JobQueueTaskScheduler</value></property>
+<property><name>mapred.tasktracker.dns.interface</name><value>default</value></property>
+<property><name>mapred.map.tasks</name><value>2</value></property>
+<property><name>mapred.job.tracker.persist.jobstatus.hours</name><value>0</value></property>
+<property><name>fs.s3.sleepTimeSeconds</name><value>10</value></property>
+<property><name>fs.default.name</name><value>file:///</value></property>
+<property><name>mapred.output.key.class</name><value>edu.uci.ics.genomix.type.VKmerBytesWritable</value></property>
+<property><name>tasktracker.http.threads</name><value>40</value></property>
+<property><name>mapred.tasktracker.taskmemorymanager.monitoring-interval</name><value>5000</value></property>
+<property><name>hadoop.rpc.socket.factory.class.default</name><value>org.apache.hadoop.net.StandardSocketFactory</value></property>
+<property><name>mapred.reduce.tasks</name><value>1</value></property>
+<property><name>topology.node.switch.mapping.impl</name><value>org.apache.hadoop.net.ScriptBasedMapping</value></property>
+<property><name>pregelix.vertexClass</name><value>edu.uci.ics.genomix.pregelix.operator.scaffolding.NaiveBFSTraverseVertex</value></property>
+<property><name>mapred.skip.reduce.max.skip.groups</name><value>0</value></property>
+<property><name>io.file.buffer.size</name><value>4096</value></property>
+<property><name>mapred.jobtracker.maxtasks.per.job</name><value>-1</value></property>
+<property><name>mapred.tasktracker.indexcache.mb</name><value>10</value></property>
+<property><name>mapred.tasktracker.map.tasks.maximum</name><value>2</value></property>
+<property><name>fs.har.impl.disable.cache</name><value>true</value></property>
+<property><name>mapred.task.profile.maps</name><value>0-2</value></property>
+<property><name>hadoop.native.lib</name><value>true</value></property>
+<property><name>fs.s3.block.size</name><value>67108864</value></property>
+<property><name>mapred.job.reuse.jvm.num.tasks</name><value>1</value></property>
+<property><name>mapred.job.tracker.http.address</name><value>0.0.0.0:50030</value></property>
+<property><name>mapred.tasktracker.reduce.tasks.maximum</name><value>2</value></property>
+<property><name>io.compression.codecs</name><value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Codec</value></property>
+<property><name>mapred.job.shuffle.input.buffer.percent</name><value>0.70</value></property>
+<property><name>io.seqfile.compress.blocksize</name><value>1000000</value></property>
+<property><name>mapred.queue.names</name><value>default</value></property>
+<property><name>fs.har.impl</name><value>org.apache.hadoop.fs.HarFileSystem</value></property>
+<property><name>io.mapfile.bloom.error.rate</name><value>0.005</value></property>
+<property><name>mapred.job.tracker</name><value>local</value></property>
+<property><name>BasicGraphCleanVertex.kmerSize</name><value>3</value></property>
+<property><name>io.skip.checksum.errors</name><value>false</value></property>
+<property><name>mapred.reduce.max.attempts</name><value>4</value></property>
+<property><name>fs.s3.maxRetries</name><value>4</value></property>
+<property><name>ipc.server.listen.queue.size</name><value>128</value></property>
+<property><name>fs.trash.interval</name><value>0</value></property>
+<property><name>mapred.local.dir.minspacestart</name><value>0</value></property>
+<property><name>fs.s3.impl</name><value>org.apache.hadoop.fs.s3.S3FileSystem</value></property>
+<property><name>io.seqfile.sorter.recordlimit</name><value>1000000</value></property>
+<property><name>io.mapfile.bloom.size</name><value>1048576</value></property>
+<property><name>io.sort.mb</name><value>100</value></property>
+<property><name>mapred.local.dir</name><value>${hadoop.tmp.dir}/mapred/local</value></property>
+<property><name>io.sort.factor</name><value>10</value></property>
+<property><name>mapred.task.profile</name><value>false</value></property>
+<property><name>job.end.retry.interval</name><value>30000</value></property>
+<property><name>mapred.tasktracker.procfsbasedprocesstree.sleeptime-before-sigkill</name><value>5000</value></property>
+<property><name>mapred.jobtracker.completeuserjobs.maximum</name><value>100</value></property>
+<property><name>mapred.task.profile.reduces</name><value>0-2</value></property>
+<property><name>webinterface.private.actions</name><value>false</value></property>
+<property><name>hadoop.tmp.dir</name><value>/tmp/hadoop-${user.name}</value></property>
+<property><name>mapred.output.compression.codec</name><value>org.apache.hadoop.io.compress.DefaultCodec</value></property>
+<property><name>mapred.skip.attempts.to.start.skipping</name><value>2</value></property>
+<property><name>mapred.temp.dir</name><value>${hadoop.tmp.dir}/mapred/temp</value></property>
+<property><name>mapred.merge.recordsBeforeProgress</name><value>10000</value></property>
+<property><name>mapred.map.output.compression.codec</name><value>org.apache.hadoop.io.compress.DefaultCodec</value></property>
+<property><name>mapred.compress.map.output</name><value>false</value></property>
+<property><name>io.sort.spill.percent</name><value>0.80</value></property>
+<property><name>fs.checkpoint.edits.dir</name><value>${fs.checkpoint.dir}</value></property>
+<property><name>mapred.userlog.retain.hours</name><value>24</value></property>
+<property><name>mapred.system.dir</name><value>${hadoop.tmp.dir}/mapred/system</value></property>
+<property><name>mapred.line.input.format.linespermap</name><value>1</value></property>
+<property><name>job.end.retry.attempts</name><value>0</value></property>
+<property><name>ipc.client.idlethreshold</name><value>4000</value></property>
+<property><name>pregelix.vertexOutputFormatClass</name><value>edu.uci.ics.genomix.pregelix.format.GraphCleanOutputFormat</value></property>
+<property><name>mapred.reduce.copy.backoff</name><value>300</value></property>
+<property><name>mapred.map.tasks.speculative.execution</name><value>true</value></property>
+<property><name>mapred.inmem.merge.threshold</name><value>1000</value></property>
+<property><name>hadoop.logfile.size</name><value>10000000</value></property>
+<property><name>pregelix.vertexInputFormatClass</name><value>edu.uci.ics.genomix.pregelix.format.InitialGraphCleanInputFormat</value></property>
+<property><name>mapred.job.queue.name</name><value>default</value></property>
+<property><name>mapred.job.tracker.persist.jobstatus.active</name><value>false</value></property>
+<property><name>pregelix.incStateLength</name><value>true</value></property>
+<property><name>mapred.reduce.slowstart.completed.maps</name><value>0.05</value></property>
+<property><name>topology.script.number.args</name><value>100</value></property>
+<property><name>mapred.skip.map.max.skip.records</name><value>0</value></property>
+<property><name>fs.ftp.impl</name><value>org.apache.hadoop.fs.ftp.FTPFileSystem</value></property>
+<property><name>mapred.task.cache.levels</name><value>2</value></property>
+<property><name>mapred.job.tracker.handler.count</name><value>10</value></property>
+<property><name>io.serializations</name><value>org.apache.hadoop.io.serializer.WritableSerialization</value></property>
+<property><name>ipc.client.connect.max.retries</name><value>10</value></property>
+<property><name>mapred.min.split.size</name><value>0</value></property>
+<property><name>mapred.map.max.attempts</name><value>4</value></property>
+<property><name>jobclient.output.filter</name><value>FAILED</value></property>
+<property><name>ipc.client.tcpnodelay</name><value>false</value></property>
+<property><name>mapred.acls.enabled</name><value>false</value></property>
+</configuration>
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/test/resources/only_BFSTraverse.txt b/genomix/genomix-pregelix/src/test/resources/only_BFSTraverse.txt
new file mode 100644
index 0000000..92aae74
--- /dev/null
+++ b/genomix/genomix-pregelix/src/test/resources/only_BFSTraverse.txt
@@ -0,0 +1 @@
+NaiveBFSTraverseGraph.xml
