Add testcases for SplitRepeat
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeListWritable.java
index 0954cde..7a81d89 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeListWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeListWritable.java
@@ -298,6 +298,16 @@
     public void remove(EdgeWritable toRemove) {
         remove(toRemove, false);
     }
+    
+    public void removeSubEdge(EdgeWritable toRemove){
+        Iterator<Long> it = toRemove.readIDIter();
+        while(it.hasNext()){
+            long readId = it.next();
+            this.getReadIDs(toRemove.getKey()).removeReadId(readId);
+        }
+        if(this.getReadIDs(toRemove.getKey()).isEmpty())
+            this.remove(toRemove);
+    }
 
     /**
      * Adds all edges in edgeList to me.  If I have the same edge as `other`, that entry will be the union of both sets of readIDs.
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeWritable.java
index 1334472..1c9fd8f 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/EdgeWritable.java
@@ -23,6 +23,7 @@
 import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Iterator;
+import java.util.Set;
 
 import org.apache.hadoop.io.WritableComparable;
 
@@ -84,6 +85,13 @@
             appendReadID(p);
         }
     }
+    
+    public void setReadIDs(Set<Long> readIdSet) {
+        readIDs.reset();
+        for (long p : readIdSet) {
+            appendReadID(p);
+        }
+    }
 
     public void reset() {
         key.reset(0);
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
index 6ec053c..1f34e47 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/PositionListWritable.java
@@ -275,6 +275,12 @@
     public void remove(PositionWritable toRemove) {
         remove(toRemove, false);
     }
+    
+    public void removeReadId(long readId){
+        PositionWritable toRemove = new PositionWritable();
+        toRemove.set((byte)0, readId, 0);
+        remove(toRemove);
+    }
 
     @Override
     public void write(DataOutput out) throws IOException {
@@ -363,4 +369,8 @@
         }
         return true;
     }
+    
+    public boolean isEmpty(){
+        return this.getCountOfPosition() == 0;
+    }
 }
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/PairedEndFastqTest/2_1.fastq b/genomix/genomix-hadoop/data/webmap/PathMerge_TestSet/PairedEndFastqTest/2_1.fastq
similarity index 100%
rename from genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/PairedEndFastqTest/2_1.fastq
rename to genomix/genomix-hadoop/data/webmap/PathMerge_TestSet/PairedEndFastqTest/2_1.fastq
diff --git a/genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/PairedEndFastqTest/2_2.fq b/genomix/genomix-hadoop/data/webmap/PathMerge_TestSet/PairedEndFastqTest/2_2.fq
similarity index 100%
rename from genomix/genomix-hadoop/data/webmap/pathmerge_TestSet/PairedEndFastqTest/2_2.fq
rename to genomix/genomix-hadoop/data/webmap/PathMerge_TestSet/PairedEndFastqTest/2_2.fq
diff --git a/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/2to1/2to1 b/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/2to1/2to1
new file mode 100644
index 0000000..82542e2
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/2to1/2to1
@@ -0,0 +1,2 @@
+1	TAAAT
+2	GAAAT
diff --git a/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/ComplexSplitManyTimes/ComplexMany b/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/ComplexSplitManyTimes/ComplexMany
new file mode 100644
index 0000000..015c73d
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/ComplexSplitManyTimes/ComplexMany
@@ -0,0 +1,7 @@
+1	TAAAT
+2	GAAAG
+3	CAAAC
+4	TAAAG
+5	GAAAC
+6	CAAAT
+7	TAAAC
diff --git a/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/SimpleSplitManyTimes/simpleMany b/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/SimpleSplitManyTimes/simpleMany
new file mode 100644
index 0000000..519e098
--- /dev/null
+++ b/genomix/genomix-hadoop/data/webmap/SplitRepeat_TestSet/SimpleSplitManyTimes/simpleMany
@@ -0,0 +1,3 @@
+1	TAAAT
+2	GAAAG
+3	CAAAC
diff --git a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestSuite.java b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestSuite.java
index b49dc4f..74de1a8 100644
--- a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestSuite.java
+++ b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTestSuite.java
@@ -22,10 +22,12 @@
 public class GraphBuildingTestSuite extends TestSuite{
 
     private static int SIZE_KMER = 3;
-    public static final String PreFix = "data/webmap/PathMerge_TestSet"; 
+    public static final String PreFix = "data/webmap/SplitRepeat_TestSet"; 
     public static final String[] TestDir = { PreFix + File.separator
 //        + "LeftAdj", PreFix + File.separator
-        + "RingPath"};
+        + "2to1"};
+//        + "SimpleSplitManyTimes", PreFix + File.separator
+//        + "ComplexSplitManyTimes"};
 //        + "TandemRepeatWithMergeEdge", PreFix + File.separator
 //        + "TandemRepeatWithUnmergeEdge"};
 //        + "FR", PreFix + File.separator
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/bin/.part-00000.crc b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/bin/.part-00000.crc
new file mode 100644
index 0000000..8102184
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/bin/.part-00000.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/bin/part-00000 b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/bin/part-00000
new file mode 100755
index 0000000..b1950dc
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/bin/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/data b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/data
new file mode 100644
index 0000000..ebba2b5
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/data
@@ -0,0 +1,4 @@
+AAA	{[{AAT:[1,2]}]	[]	[]	[{TAA:[1]}, {GAA:[2]}]	{5':[], ~5':[]}	2.0x}
+GAA	{[{AAA:[2]}]	[]	[]	[]	{5':[(2-0_0)], ~5':[]}	1.0x}
+TAA	{[{AAA:[1]}]	[]	[]	[]	{5':[(1-0_0)], ~5':[]}	1.0x}
+AAT	{[]	[]	[]	[{AAA:[1,2]}]	{5':[], ~5':[]}	2.0x}
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/graphviz/result.ps b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/graphviz/result.ps
new file mode 100644
index 0000000..7f8c756
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/2to1/graphviz/result.ps
@@ -0,0 +1,510 @@
+%!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 254 392
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 218 356 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 136 moveto
+0 240 lineto
+56 240 lineto
+56 136 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+12.5 223.4 moveto 31 (AAA) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 214 moveto
+56 214 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+14 197.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 188 moveto
+56 188 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+8 171.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 162 moveto
+56 162 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+16.5 145.4 moveto 23 (2.0) alignedtext
+grestore
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 154 244 moveto
+154 348 lineto
+210 348 lineto
+210 244 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+167.5 331.4 moveto 29 (AAT) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 154 322 moveto
+210 322 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+168 305.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 154 296 moveto
+210 296 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+162 279.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 154 270 moveto
+210 270 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+170.5 253.4 moveto 23 (2.0) alignedtext
+grestore
+% AAA->AAT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 47.76 240.32 moveto
+54.46 252.25 63.1 263.81 74 272 curveto
+93.89 286.94 121.29 292.9 143.51 295.15 curveto
+stroke
+0 0 0 edgecolor
+newpath 143.39 298.65 moveto
+153.63 295.96 lineto
+143.94 291.68 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 143.39 298.65 moveto
+153.63 295.96 lineto
+143.94 291.68 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+76 299.4 moveto 58 (FF: [1,2]) alignedtext
+grestore
+% TAA
+gsave
+0 0 0.75294 nodecolor
+newpath 154 122 moveto
+154 226 lineto
+210 226 lineto
+210 122 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 122 moveto
+154 226 lineto
+210 226 lineto
+210 122 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+167.5 209.4 moveto 29 (TAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 200 moveto
+210 200 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+163.5 183.4 moveto 37 (5':[1]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 174 moveto
+210 174 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+162 157.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 148 moveto
+210 148 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+170.5 131.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->TAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 56.13 189.77 moveto
+78.01 190.67 109.09 190.86 136 187 curveto
+138.52 186.64 141.09 186.18 143.67 185.65 curveto
+stroke
+0 1 1 edgecolor
+newpath 144.62 189.02 moveto
+153.54 183.31 lineto
+143.01 182.21 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 144.62 189.02 moveto
+153.54 183.31 lineto
+143.01 182.21 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+81 195.4 moveto 48 (RR: [1]) alignedtext
+grestore
+% GAA
+gsave
+0 0 0.75294 nodecolor
+newpath 154 0 moveto
+154 104 lineto
+210 104 lineto
+210 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 0 moveto
+154 104 lineto
+210 104 lineto
+210 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+166 87.4 moveto 32 (GAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 78 moveto
+210 78 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+163.5 61.4 moveto 37 (5':[2]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 52 moveto
+210 52 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+162 35.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 154 26 moveto
+210 26 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+170.5 9.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->GAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 56.15 156.33 moveto
+61.87 150.38 67.99 144.35 74 139 curveto
+99.62 116.18 109.39 114.66 136 93 curveto
+139.27 90.34 142.62 87.53 145.95 84.68 curveto
+stroke
+0 1 1 edgecolor
+newpath 148.38 87.2 moveto
+153.64 77.99 lineto
+143.79 81.91 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 148.38 87.2 moveto
+153.64 77.99 lineto
+143.79 81.91 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+81 144.4 moveto 48 (RR: [2]) alignedtext
+grestore
+% AAT->AAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 153.88 265.56 moveto
+148.2 260.1 142.1 254.67 136 250 curveto
+123.68 240.57 91.21 222.21 65.06 207.91 curveto
+stroke
+0 1 1 edgecolor
+newpath 66.58 204.75 moveto
+56.12 203.04 lineto
+63.23 210.9 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 66.58 204.75 moveto
+56.12 203.04 lineto
+63.23 210.9 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74.5 255.4 moveto 61 (RR: [1,2]) alignedtext
+grestore
+% TAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 153.67 166.86 moveto
+131.67 162.45 100.55 158.73 74 165 curveto
+71.32 165.63 68.62 166.45 65.95 167.39 curveto
+stroke
+0 0 0 edgecolor
+newpath 64.37 164.25 moveto
+56.43 171.26 lineto
+67.01 170.73 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 64.37 164.25 moveto
+56.43 171.26 lineto
+67.01 170.73 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+82.5 170.4 moveto 45 (FF: [1]) alignedtext
+grestore
+% GAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 153.63 49.79 moveto
+129.83 49.47 96.26 52.81 74 71 curveto
+57 84.89 46.26 105.92 39.48 126.35 curveto
+stroke
+0 0 0 edgecolor
+newpath 36.12 125.39 moveto
+36.55 135.97 lineto
+42.81 127.42 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 36.12 125.39 moveto
+36.55 135.97 lineto
+42.81 127.42 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+82.5 76.4 moveto 45 (FF: [2]) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 254 392
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/bin/.part-00000.crc b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/bin/.part-00000.crc
new file mode 100644
index 0000000..1eb0304
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/bin/.part-00000.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/bin/part-00000 b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/bin/part-00000
new file mode 100755
index 0000000..af2c113
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/bin/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/data b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/data
new file mode 100644
index 0000000..9988a8f
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/data
@@ -0,0 +1,7 @@
+AAA	{[{AAT:[1,6]}, {AAG:[2,4]}, {AAC:[3,5,7]}]	[]	[]	[{TAA:[1,4,7]}, {GAA:[2,5]}, {CAA:[3,6]}]	{5':[], ~5':[]}	7.0x}
+CAA	{[{AAA:[3,6]}]	[]	[]	[]	{5':[(3-0_0),(6-0_0)], ~5':[]}	2.0x}
+GAA	{[{AAA:[2,5]}]	[]	[]	[]	{5':[(2-0_0),(5-0_0)], ~5':[]}	2.0x}
+TAA	{[{AAA:[1,4,7]}]	[]	[]	[]	{5':[(7-0_0),(4-0_0),(1-0_0)], ~5':[]}	3.0x}
+AAC	{[]	[]	[]	[{AAA:[3,5,7]}]	{5':[], ~5':[]}	3.0x}
+AAG	{[]	[]	[]	[{AAA:[2,4]}]	{5':[], ~5':[]}	2.0x}
+AAT	{[]	[]	[]	[{AAA:[1,6]}]	{5':[], ~5':[]}	2.0x}
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/graphviz/result.ps b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/graphviz/result.ps
new file mode 100644
index 0000000..1393cca
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/ComplexSplitManyTimes/graphviz/result.ps
@@ -0,0 +1,778 @@
+%!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 292 758
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 256 722 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 304 moveto
+0 408 lineto
+56 408 lineto
+56 304 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+12.5 391.4 moveto 31 (AAA) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 382 moveto
+56 382 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+14 365.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 356 moveto
+56 356 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+8 339.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 330 moveto
+56 330 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+16.5 313.4 moveto 23 (7.0) alignedtext
+grestore
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 610 moveto
+180 714 lineto
+236 714 lineto
+236 610 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+193.5 697.4 moveto 29 (AAT) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 688 moveto
+236 688 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+194 671.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 662 moveto
+236 662 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+188 645.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 636 moveto
+236 636 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+196.5 619.4 moveto 23 (2.0) alignedtext
+grestore
+% AAA->AAT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 30.9 408.05 moveto
+35.66 475.28 47.43 587.32 74 618 curveto
+97.8 645.49 139.08 655.89 169.54 659.78 curveto
+stroke
+0 0 0 edgecolor
+newpath 169.5 663.3 moveto
+179.83 660.9 lineto
+170.26 656.34 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 169.5 663.3 moveto
+179.83 660.9 lineto
+170.26 656.34 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+83 661.4 moveto 58 (FF: [1,6]) alignedtext
+grestore
+% AAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 488 moveto
+180 592 lineto
+236 592 lineto
+236 488 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+192 575.4 moveto 32 (AAG) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 566 moveto
+236 566 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+194 549.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 540 moveto
+236 540 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+188 523.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 514 moveto
+236 514 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+196.5 497.4 moveto 23 (2.0) alignedtext
+grestore
+% AAA->AAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 39.08 408.1 moveto
+47.72 444.11 60.49 487.81 74 501 curveto
+99.51 525.91 139.97 535.07 169.76 538.35 curveto
+stroke
+0 0 0 edgecolor
+newpath 169.53 541.85 moveto
+179.81 539.29 lineto
+170.18 534.88 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 169.53 541.85 moveto
+179.81 539.29 lineto
+170.18 534.88 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+83 539.4 moveto 58 (FF: [2,4]) alignedtext
+grestore
+% AAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 366 moveto
+180 470 lineto
+236 470 lineto
+236 366 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+192.5 453.4 moveto 31 (AAC) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 444 moveto
+236 444 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+194 427.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 418 moveto
+236 418 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+188 401.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 180 392 moveto
+236 392 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+196.5 375.4 moveto 23 (3.0) alignedtext
+grestore
+% AAA->AAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 56.21 384.69 moveto
+61.74 389.06 67.77 393.07 74 396 curveto
+104.18 410.18 141.91 415.41 169.64 417.24 curveto
+stroke
+0 0 0 edgecolor
+newpath 169.57 420.75 moveto
+179.74 417.79 lineto
+169.95 413.76 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 169.57 420.75 moveto
+179.74 417.79 lineto
+169.95 413.76 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+76 420.4 moveto 72 (FF: [3,5,7]) alignedtext
+grestore
+% TAA
+gsave
+0 0 0.75294 nodecolor
+newpath 168 244 moveto
+168 348 lineto
+248 348 lineto
+248 244 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 168 244 moveto
+168 348 lineto
+248 348 lineto
+248 244 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+193.5 331.4 moveto 29 (TAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 168 322 moveto
+248 322 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+176 305.4 moveto 64 (5':[7,4,1]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 168 296 moveto
+248 296 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+188 279.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 168 270 moveto
+248 270 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+196.5 253.4 moveto 23 (3.0) alignedtext
+grestore
+% AAA->TAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 56.05 343.9 moveto
+61.94 341.51 68.14 339.09 74 337 curveto
+107.24 325.14 116.26 324.34 150 314 curveto
+152.6 313.2 155.27 312.38 157.97 311.55 curveto
+stroke
+0 1 1 edgecolor
+newpath 159.24 314.82 moveto
+167.76 308.53 lineto
+157.17 308.13 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 159.24 314.82 moveto
+167.76 308.53 lineto
+157.17 308.13 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74.5 342.4 moveto 75 (RR: [1,4,7]) alignedtext
+grestore
+% GAA
+gsave
+0 0 0.75294 nodecolor
+newpath 175 122 moveto
+175 226 lineto
+241 226 lineto
+241 122 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 122 moveto
+175 226 lineto
+241 226 lineto
+241 122 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+192 209.4 moveto 32 (GAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 200 moveto
+241 200 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+183 183.4 moveto 50 (5':[2,5]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 174 moveto
+241 174 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+188 157.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 148 moveto
+241 148 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+196.5 131.4 moveto 23 (2.0) alignedtext
+grestore
+% AAA->GAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 45.88 303.82 moveto
+52.97 287.95 62.29 271.23 74 258 curveto
+87.79 242.43 132.17 215.88 166.11 196.79 curveto
+stroke
+0 1 1 edgecolor
+newpath 167.91 199.8 moveto
+174.93 191.87 lineto
+164.5 193.69 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 167.91 199.8 moveto
+174.93 191.87 lineto
+164.5 193.69 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+81.5 263.4 moveto 61 (RR: [2,5]) alignedtext
+grestore
+% CAA
+gsave
+0 0 0.75294 nodecolor
+newpath 175 0 moveto
+175 104 lineto
+241 104 lineto
+241 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 0 moveto
+175 104 lineto
+241 104 lineto
+241 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+192.5 87.4 moveto 31 (CAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 78 moveto
+241 78 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+183 61.4 moveto 50 (5':[3,6]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 52 moveto
+241 52 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+188 35.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 175 26 moveto
+241 26 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+196.5 9.4 moveto 23 (2.0) alignedtext
+grestore
+% AAA->CAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 34.5 303.85 moveto
+42.13 249.17 56.05 167.7 74 142 curveto
+96.87 109.25 116.92 116.39 150 94 curveto
+155.34 90.39 160.89 86.52 166.36 82.64 curveto
+stroke
+0 1 1 edgecolor
+newpath 168.73 85.24 moveto
+174.83 76.57 lineto
+164.66 79.55 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 168.73 85.24 moveto
+174.83 76.57 lineto
+164.66 79.55 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+81.5 147.4 moveto 61 (RR: [3,6]) alignedtext
+grestore
+% AAT->AAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 179.77 625.11 moveto
+170.92 614.94 160.67 604.4 150 596 curveto
+120.01 572.38 97.29 586.24 74 556 curveto
+57.58 534.67 44.52 468.85 36.57 418.49 curveto
+stroke
+0 1 1 edgecolor
+newpath 39.99 417.67 moveto
+35 408.32 lineto
+33.07 418.74 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 39.99 417.67 moveto
+35 408.32 lineto
+33.07 418.74 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+81.5 601.4 moveto 61 (RR: [1,6]) alignedtext
+grestore
+% AAG->AAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 179.89 506.78 moveto
+170.89 497.19 160.52 487.13 150 479 curveto
+119.46 455.41 101.45 464.13 74 437 curveto
+67.97 431.04 62.47 424.11 57.55 416.88 curveto
+stroke
+0 1 1 edgecolor
+newpath 60.38 414.81 moveto
+52.04 408.27 lineto
+54.49 418.58 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 60.38 414.81 moveto
+52.04 408.27 lineto
+54.49 418.58 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+81.5 484.4 moveto 61 (RR: [2,4]) alignedtext
+grestore
+% AAC->AAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 179.99 392.28 moveto
+171 385.3 160.6 378.45 150 374 curveto
+123.4 362.83 91 358.43 66.28 356.77 curveto
+stroke
+0 1 1 edgecolor
+newpath 66.37 353.27 moveto
+56.19 356.21 lineto
+65.99 360.26 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 66.37 353.27 moveto
+56.19 356.21 lineto
+65.99 360.26 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74.5 379.4 moveto 75 (RR: [3,5,7]) alignedtext
+grestore
+% TAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 167.95 285.07 moveto
+140.09 279.7 102.89 277.19 74 292 curveto
+70.23 293.93 66.7 296.33 63.41 299.06 curveto
+stroke
+0 0 0 edgecolor
+newpath 61 296.52 moveto
+56.16 305.94 lineto
+65.82 301.6 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 61 296.52 moveto
+56.16 305.94 lineto
+65.82 301.6 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+76 297.4 moveto 72 (FF: [1,4,7]) alignedtext
+grestore
+% GAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 174.89 166.67 moveto
+145.09 162.13 101.84 160.93 74 184 curveto
+56.89 198.18 44.49 250.7 36.9 294.01 curveto
+stroke
+0 0 0 edgecolor
+newpath 33.44 293.5 moveto
+35.22 303.95 lineto
+40.34 294.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 33.44 293.5 moveto
+35.22 303.95 lineto
+40.34 294.67 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+83 189.4 moveto 58 (FF: [2,5]) alignedtext
+grestore
+% CAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 174.88 46.99 moveto
+144.44 44.42 100.19 46.13 74 72 curveto
+43.5 102.13 33.22 219.57 29.76 293.66 curveto
+stroke
+0 0 0 edgecolor
+newpath 26.25 293.68 moveto
+29.31 303.82 lineto
+33.25 293.98 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 26.25 293.68 moveto
+29.31 303.82 lineto
+33.25 293.98 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+83 77.4 moveto 58 (FF: [3,6]) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 292 758
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/bin/.part-00000.crc b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/bin/.part-00000.crc
new file mode 100644
index 0000000..96fd8c5
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/bin/.part-00000.crc
Binary files differ
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/bin/part-00000 b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/bin/part-00000
new file mode 100755
index 0000000..ba717cf
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/bin/part-00000
Binary files differ
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/data b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/data
new file mode 100644
index 0000000..505f643
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/data
@@ -0,0 +1,7 @@
+AAA	{[{AAT:[1]}, {AAG:[2]}, {AAC:[3]}]	[]	[]	[{TAA:[1]}, {GAA:[2]}, {CAA:[3]}]	{5':[], ~5':[]}	3.0x}
+CAA	{[{AAA:[3]}]	[]	[]	[]	{5':[(3-0_0)], ~5':[]}	1.0x}
+GAA	{[{AAA:[2]}]	[]	[]	[]	{5':[(2-0_0)], ~5':[]}	1.0x}
+TAA	{[{AAA:[1]}]	[]	[]	[]	{5':[(1-0_0)], ~5':[]}	1.0x}
+AAC	{[]	[]	[]	[{AAA:[3]}]	{5':[], ~5':[]}	1.0x}
+AAG	{[]	[]	[]	[{AAA:[2]}]	{5':[], ~5':[]}	1.0x}
+AAT	{[]	[]	[]	[{AAA:[1]}]	{5':[], ~5':[]}	1.0x}
diff --git a/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/graphviz/result.ps b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/graphviz/result.ps
new file mode 100644
index 0000000..6c17ffd
--- /dev/null
+++ b/genomix/genomix-pregelix/data/TestSet/SplitRepeat/SimpleSplitManyTimes/graphviz/result.ps
@@ -0,0 +1,775 @@
+%!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 240 758
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 204 722 boxprim clip newpath
+1 1 set_scale 0 rotate 40 41 translate
+% AAA
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 304 moveto
+0 408 lineto
+56 408 lineto
+56 304 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+12.5 391.4 moveto 31 (AAA) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 382 moveto
+56 382 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+14 365.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 356 moveto
+56 356 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+8 339.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 0 330 moveto
+56 330 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+16.5 313.4 moveto 23 (3.0) alignedtext
+grestore
+% AAT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 610 moveto
+140 714 lineto
+196 714 lineto
+196 610 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+153.5 697.4 moveto 29 (AAT) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 688 moveto
+196 688 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+154 671.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 662 moveto
+196 662 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+148 645.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 636 moveto
+196 636 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+156.5 619.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->AAT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 31.5 408.17 moveto
+36.92 474.95 49.4 585.87 74 618 curveto
+87.68 635.87 110.39 646.78 130.06 653.26 curveto
+stroke
+0 0 0 edgecolor
+newpath 129.12 656.63 moveto
+139.71 656.18 lineto
+131.15 649.93 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 129.12 656.63 moveto
+139.71 656.18 lineto
+131.15 649.93 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+75.5 655.4 moveto 45 (FF: [1]) alignedtext
+grestore
+% AAG
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 488 moveto
+140 592 lineto
+196 592 lineto
+196 488 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+152 575.4 moveto 32 (AAG) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 566 moveto
+196 566 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+154 549.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 540 moveto
+196 540 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+148 523.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 514 moveto
+196 514 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+156.5 497.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->AAG
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 33.53 408.07 moveto
+39.2 438.42 50.7 475.6 74 501 curveto
+88.65 516.96 110.83 526.58 129.97 532.27 curveto
+stroke
+0 0 0 edgecolor
+newpath 129.08 535.66 moveto
+139.64 534.9 lineto
+130.91 528.9 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 129.08 535.66 moveto
+139.64 534.9 lineto
+130.91 528.9 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+75.5 534.4 moveto 45 (FF: [2]) alignedtext
+grestore
+% AAC
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 366 moveto
+140 470 lineto
+196 470 lineto
+196 366 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+152.5 453.4 moveto 31 (AAC) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 444 moveto
+196 444 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+154 427.4 moveto 28 (5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 418 moveto
+196 418 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+148 401.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+0 0 0 nodecolor
+newpath 140 392 moveto
+196 392 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+156.5 375.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->AAC
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 56.13 384.14 moveto
+61.71 388.62 67.78 392.82 74 396 curveto
+91.21 404.81 112 410.14 129.65 413.35 curveto
+stroke
+0 0 0 edgecolor
+newpath 129.18 416.82 moveto
+139.62 415 lineto
+130.33 409.91 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 129.18 416.82 moveto
+139.62 415 lineto
+130.33 409.91 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+75.5 416.4 moveto 45 (FF: [3]) alignedtext
+grestore
+% TAA
+gsave
+0 0 0.75294 nodecolor
+newpath 140 244 moveto
+140 348 lineto
+196 348 lineto
+196 244 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 244 moveto
+140 348 lineto
+196 348 lineto
+196 244 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+153.5 331.4 moveto 29 (TAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 322 moveto
+196 322 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+149.5 305.4 moveto 37 (5':[1]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 296 moveto
+196 296 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+148 279.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 270 moveto
+196 270 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+156.5 253.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->TAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 56.33 343.86 moveto
+77.68 334.71 107.16 322.08 130.47 312.09 curveto
+stroke
+0 1 1 edgecolor
+newpath 131.9 315.28 moveto
+139.71 308.12 lineto
+129.14 308.85 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 131.9 315.28 moveto
+139.71 308.12 lineto
+129.14 308.85 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74 339.4 moveto 48 (RR: [1]) alignedtext
+grestore
+% GAA
+gsave
+0 0 0.75294 nodecolor
+newpath 140 122 moveto
+140 226 lineto
+196 226 lineto
+196 122 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 122 moveto
+140 226 lineto
+196 226 lineto
+196 122 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+152 209.4 moveto 32 (GAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 200 moveto
+196 200 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+149.5 183.4 moveto 37 (5':[2]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 174 moveto
+196 174 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+148 157.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 148 moveto
+196 148 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+156.5 131.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->GAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 50.34 303.57 moveto
+57.08 290.13 65.1 276.07 74 264 curveto
+90.54 241.57 112.97 219.85 131.77 203.37 curveto
+stroke
+0 1 1 edgecolor
+newpath 134.29 205.83 moveto
+139.58 196.65 lineto
+129.72 200.52 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 134.29 205.83 moveto
+139.58 196.65 lineto
+129.72 200.52 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74 269.4 moveto 48 (RR: [2]) alignedtext
+grestore
+% CAA
+gsave
+0 0 0.75294 nodecolor
+newpath 140 0 moveto
+140 104 lineto
+196 104 lineto
+196 0 lineto
+closepath fill
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 0 moveto
+140 104 lineto
+196 104 lineto
+196 0 lineto
+closepath stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+152.5 87.4 moveto 31 (CAA) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 78 moveto
+196 78 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+149.5 61.4 moveto 37 (5':[3]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 52 moveto
+196 52 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+148 35.4 moveto 40 (~5':[]) alignedtext
+1 setlinewidth
+filled
+0 0 0 nodecolor
+newpath 140 26 moveto
+196 26 lineto
+stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+156.5 9.4 moveto 23 (1.0) alignedtext
+grestore
+% AAA->CAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 31.82 303.78 moveto
+36.77 260.43 48.11 198.28 74 150 curveto
+81.79 135.47 109.13 107.56 132.33 85.24 curveto
+stroke
+0 1 1 edgecolor
+newpath 134.87 87.65 moveto
+139.68 78.21 lineto
+130.03 82.58 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 134.87 87.65 moveto
+139.68 78.21 lineto
+130.03 82.58 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74 155.4 moveto 48 (RR: [3]) alignedtext
+grestore
+% AAT->AAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 139.81 618.77 moveto
+134.19 610.97 128.12 603.08 122 596 curveto
+102.87 573.88 88.65 576.31 74 551 curveto
+50.47 510.34 38.96 458.31 33.34 418.22 curveto
+stroke
+0 1 1 edgecolor
+newpath 36.81 417.76 moveto
+32.04 408.3 lineto
+29.87 418.67 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 36.81 417.76 moveto
+32.04 408.3 lineto
+29.87 418.67 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74 601.4 moveto 48 (RR: [1]) alignedtext
+grestore
+% AAG->AAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 139.95 500.86 moveto
+134.22 493.43 128.08 485.84 122 479 curveto
+102.37 456.91 92.41 456.11 74 433 curveto
+69.76 427.68 65.63 421.94 61.7 416.06 curveto
+stroke
+0 1 1 edgecolor
+newpath 64.46 413.89 moveto
+56.08 407.41 lineto
+58.59 417.7 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 64.46 413.89 moveto
+56.08 407.41 lineto
+58.59 417.7 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74 484.4 moveto 48 (RR: [2]) alignedtext
+grestore
+% AAC->AAA
+gsave
+1 setlinewidth
+0 1 1 edgecolor
+newpath 139.8 386.35 moveto
+134.3 381.61 128.29 377.24 122 374 curveto
+104.84 365.15 83.89 360.63 66.13 358.32 curveto
+stroke
+0 1 1 edgecolor
+newpath 66.42 354.83 moveto
+56.09 357.21 lineto
+65.65 361.79 lineto
+closepath fill
+1 setlinewidth
+solid
+0 1 1 edgecolor
+newpath 66.42 354.83 moveto
+56.09 357.21 lineto
+65.65 361.79 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+74 379.4 moveto 48 (RR: [3]) alignedtext
+grestore
+% TAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 139.77 289.22 moveto
+120.27 286.05 94.3 284.88 74 295 curveto
+70.36 296.81 66.94 299.06 63.73 301.62 curveto
+stroke
+0 0 0 edgecolor
+newpath 61.19 299.21 moveto
+56.19 308.55 lineto
+65.92 304.36 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 61.19 299.21 moveto
+56.19 308.55 lineto
+65.92 304.36 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+75.5 300.4 moveto 45 (FF: [1]) alignedtext
+grestore
+% GAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 139.93 171.33 moveto
+119.22 170.96 91.69 174.02 74 190 curveto
+58.42 204.07 46.09 252.65 38.13 293.65 curveto
+stroke
+0 0 0 edgecolor
+newpath 34.67 293.14 moveto
+36.26 303.61 lineto
+41.55 294.43 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 34.67 293.14 moveto
+36.26 303.61 lineto
+41.55 294.43 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+75.5 195.4 moveto 45 (FF: [2]) alignedtext
+grestore
+% CAA->AAA
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 139.66 50.8 moveto
+118.54 51.54 90.59 56.24 74 74 curveto
+45.02 105.03 34.23 220.67 30.26 293.88 curveto
+stroke
+0 0 0 edgecolor
+newpath 26.76 293.75 moveto
+29.74 303.92 lineto
+33.75 294.11 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 26.76 293.75 moveto
+29.74 303.92 lineto
+33.75 294.11 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+75.5 79.4 moveto 45 (FF: [3]) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+%%Pages: 1
+%%BoundingBox: 36 36 240 758
+end
+restore
+%%EOF
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/SplitRepeatMessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/SplitRepeatMessageWritable.java
index 890a6ed..bff2ff1 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/SplitRepeatMessageWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/SplitRepeatMessageWritable.java
@@ -9,15 +9,18 @@
 public class SplitRepeatMessageWritable extends MessageWritable {
     
     private EdgeWritable createdEdge;
+    private EdgeWritable deletedEdge;
     
     public SplitRepeatMessageWritable(){
         super();
         createdEdge = new EdgeWritable();
+        deletedEdge = new EdgeWritable();
     }
     
     public void reset(){
         super.reset();
         createdEdge.reset();
+        deletedEdge.reset();
     }
 
     public EdgeWritable getCreatedEdge() {
@@ -25,7 +28,15 @@
     }
 
     public void setCreatedEdge(EdgeWritable createdEdge) {
-        this.createdEdge = createdEdge;
+        this.createdEdge.setAsCopy(createdEdge);
+    }
+    
+    public EdgeWritable getDeletedEdge() {
+        return deletedEdge;
+    }
+
+    public void setDeletedEdge(EdgeWritable deletedEdge) {
+        this.deletedEdge.setAsCopy(deletedEdge);
     }
 
     @Override
@@ -33,11 +44,13 @@
         reset();
         super.readFields(in);
         createdEdge.readFields(in);
+        deletedEdge.readFields(in);
     }
     
     @Override
     public void write(DataOutput out) throws IOException {
         super.write(out);
         createdEdge.write(out);
+        deletedEdge.write(out);
     }
 }
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
index 02dbd5b..eef5ea3 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
@@ -42,6 +42,7 @@
         public void setEdge(EdgeWritable edge) {
             this.edge.setAsCopy(edge);
         }
+
     }
     
     private byte[][] connectedTable = new byte[][]{
@@ -61,6 +62,9 @@
     private byte incomingEdgeDir = 0;
     private byte outgoingEdgeDir = 0;
     
+    private EdgeWritable deletedEdge = new EdgeWritable();
+    private Set<DeletedEdge> deletedEdges = new HashSet<DeletedEdge>();//A set storing deleted edges
+    
     /**
      * initiate kmerSize, maxIteration
      */
@@ -110,61 +114,7 @@
         String newVertexId = getVertexId().toString() + generaterRandomString(numOfSuffix);;
         createdVertexId.setByRead(kmerSize + numOfSuffix, newVertexId.getBytes(), 0);
     }
-    
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    public void createNewVertex(int i, EdgeWritable incomingEdge, EdgeWritable outgoingEdge){
-        Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
-        vertex.getMsgList().clear();
-        vertex.getEdges().clear();
-        VKmerBytesWritable vertexId = new VKmerBytesWritable();
-        VertexValueWritable vertexValue = new VertexValueWritable();
-        //add the corresponding edge to new vertex
-        vertexValue.getEdgeList(connectedTable[i][0]).add(incomingEdge);
-        
-        vertexValue.getEdgeList(connectedTable[i][1]).add(outgoingEdge);
-        
-        vertexId.setAsCopy(createdVertexId);
-        vertex.setVertexId(vertexId);
-        vertex.setVertexValue(vertexValue);
-        
-        addVertex(vertexId, vertex);
-    }
-    
-    public void sendMsgToUpdateEdge(EdgeWritable incomingEdge, EdgeWritable outgoingEdge){
-        EdgeWritable createdEdge = new EdgeWritable();
-        createdEdge.setKey(createdVertexId);
-        for(Long readId: neighborEdgeIntersection)
-            createdEdge.appendReadID(readId);
-        outgoingMsg.setCreatedEdge(createdEdge);
-        outgoingMsg.setSourceVertexId(getVertexId());
-        
-        outgoingMsg.setFlag(incomingEdgeDir);
-        destVertexId.setAsCopy(incomingEdge.getKey());
-        sendMsg(destVertexId, outgoingMsg);
-        
-        outgoingMsg.setFlag(outgoingEdgeDir);
-        destVertexId.setAsCopy(outgoingEdge.getKey());
-        sendMsg(destVertexId, outgoingMsg);
-    }
-    
-    public void storeDeletedEdge(Set<DeletedEdge> deletedEdges, int i, EdgeWritable incomingEdge, EdgeWritable outgoingEdge){
-        DeletedEdge deletedIncomingEdge = new DeletedEdge();
-        DeletedEdge deletedOutgoingEdge = new DeletedEdge();
-        
-        deletedIncomingEdge.setDir(connectedTable[i][0]);
-        deletedIncomingEdge.setEdge(incomingEdge);
-        
-        deletedOutgoingEdge.setDir(connectedTable[i][1]);
-        deletedOutgoingEdge.setEdge(outgoingEdge);
-        
-        deletedEdges.add(deletedIncomingEdge);
-        deletedEdges.add(deletedOutgoingEdge);
-    }
-    
-    public void deleteEdgeFromOldVertex(DeletedEdge deleteEdge){
-        getVertexValue().getEdgeList(deleteEdge.dir).remove(deleteEdge.getEdge());
-    }
-    
+   
     public void setEdgeListAndEdgeDir(int i){
         incomingEdgeList.setAsCopy(getVertexValue().getEdgeList(connectedTable[i][0]));
         incomingEdgeDir = connectedTable[i][0];
@@ -189,11 +139,72 @@
         neighborEdgeIntersection.retainAll(outgoingReadIdSet);
     }
     
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    public void createNewVertex(int i, EdgeWritable incomingEdge, EdgeWritable outgoingEdge){
+        Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
+        vertex.getMsgList().clear();
+        vertex.getEdges().clear();
+        VKmerBytesWritable vertexId = new VKmerBytesWritable();
+        VertexValueWritable vertexValue = new VertexValueWritable();
+        //add the corresponding edge to new vertex
+        vertexValue.getEdgeList(connectedTable[i][0]).add(incomingEdge);
+        
+        vertexValue.getEdgeList(connectedTable[i][1]).add(outgoingEdge);
+        
+        vertexValue.setInternalKmer(getVertexId());
+        
+        vertexId.setAsCopy(createdVertexId);
+        vertex.setVertexId(vertexId);
+        vertex.setVertexValue(vertexValue);
+        
+        addVertex(vertexId, vertex);
+    }
+    
+    public void sendMsgToUpdateEdge(EdgeWritable incomingEdge, EdgeWritable outgoingEdge){
+        EdgeWritable createdEdge = new EdgeWritable();
+        createdEdge.setKey(createdVertexId);
+        for(Long readId: neighborEdgeIntersection)
+            createdEdge.appendReadID(readId);
+        outgoingMsg.setCreatedEdge(createdEdge);
+//        outgoingMsg.setSourceVertexId(getVertexId());
+        deletedEdge.reset();
+        deletedEdge.setKey(getVertexId());
+        deletedEdge.setReadIDs(neighborEdgeIntersection);
+        outgoingMsg.setDeletedEdge(deletedEdge);
+        
+        outgoingMsg.setFlag(incomingEdgeDir);
+        destVertexId.setAsCopy(incomingEdge.getKey());
+        sendMsg(destVertexId, outgoingMsg);
+        
+        outgoingMsg.setFlag(outgoingEdgeDir);
+        destVertexId.setAsCopy(outgoingEdge.getKey());
+        sendMsg(destVertexId, outgoingMsg);
+    }
+    
+    public void storeDeletedEdge(int i, EdgeWritable incomingEdge, EdgeWritable outgoingEdge,
+            Set<Long> commonReadIdSet){
+        DeletedEdge deletedIncomingEdge = new DeletedEdge();
+        DeletedEdge deletedOutgoingEdge = new DeletedEdge();
+        
+        deletedIncomingEdge.setDir(connectedTable[i][0]);
+        deletedIncomingEdge.setEdge(incomingEdge);
+        
+        deletedOutgoingEdge.setDir(connectedTable[i][1]);
+        deletedOutgoingEdge.setEdge(outgoingEdge);
+        
+        deletedEdges.add(deletedIncomingEdge);
+        deletedEdges.add(deletedOutgoingEdge);
+    }
+    
+    public void deleteEdgeFromOldVertex(DeletedEdge deleteEdge){
+        getVertexValue().getEdgeList(deleteEdge.dir).removeSubEdge(deleteEdge.getEdge());
+    }
+    
     public void updateEdgeListPointToNewVertex(){
         byte meToNeighborDir = incomingMsg.getFlag();
         byte neighborToMeDir = mirrorDirection(meToNeighborDir);
         
-        getVertexValue().getEdgeList(neighborToMeDir).remove(incomingMsg.getSourceVertexId());
+        getVertexValue().getEdgeList(neighborToMeDir).removeSubEdge(incomingMsg.getDeletedEdge());
         getVertexValue().getEdgeList(neighborToMeDir).add(incomingMsg.getCreatedEdge());
     }
     
@@ -202,8 +213,7 @@
         initVertex();
         if(getSuperstep() == 1){
             if(getVertexValue().getDegree() > 2){
-                //A set storing deleted edges
-                Set<DeletedEdge> deletedEdges = new HashSet<DeletedEdge>();
+                deletedEdges.clear();
                 /** process connectedTable **/
                 for(int i = 0; i < 4; i++){
                     /** set edgeList and edgeDir based on connectedTable **/
@@ -218,6 +228,10 @@
                                 /** random generate vertexId of new vertex **/
                                 randomGenerateVertexId(3);
                                 
+                                /** change incomingEdge/outgoingEdge's edgeList to commondReadIdSet **/
+                                incomingEdge.setReadIDs(neighborEdgeIntersection);
+                                outgoingEdge.setReadIDs(neighborEdgeIntersection);
+                                
                                 /** create new/created vertex **/
                                 createNewVertex(i, incomingEdge, outgoingEdge);
                                 
@@ -225,7 +239,7 @@
                                 sendMsgToUpdateEdge(incomingEdge, outgoingEdge);
                                 
                                 /** store deleted edge **/
-                                storeDeletedEdge(deletedEdges, i, incomingEdge, outgoingEdge);
+                                storeDeletedEdge(i, incomingEdge, outgoingEdge, neighborEdgeIntersection);
                             }
                         }
                     }                
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/SplitRepeatTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/SplitRepeatTestSuite.java
index e1df8b5..15b4db9 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/SplitRepeatTestSuite.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/SplitRepeatTestSuite.java
@@ -6,7 +6,7 @@
 
     public static Test suite() throws Exception {
         String pattern ="SplitRepeat";
-        String testSet[] = {"SplitOnce", "SplitTwice"};
+        String testSet[] = {"2to1"};//{"SimpleSplitManyTimes", "ComplexSplitManyTimes"};
         init(pattern, testSet);
         BasicGraphCleanTestSuite testSuite = new BasicGraphCleanTestSuite();
         return makeTestSuite(testSuite);