delete the genomic.data.experiments
diff --git a/genomix/genomix-data/.classpath b/genomix/genomix-data/.classpath
deleted file mode 100644
index e43402f..0000000
--- a/genomix/genomix-data/.classpath
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/.DS_Store b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/.DS_Store
deleted file mode 100644
index 7880be8..0000000
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/DeepGraphBuildingMapper.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/DeepGraphBuildingMapper.java
new file mode 100644
index 0000000..0905a35
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/DeepGraphBuildingMapper.java
@@ -0,0 +1,21 @@
+package edu.uci.ics.genomix.valvetgraphbuilding;
+
+import java.io.IOException;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.mapred.MapReduceBase;
+import org.apache.hadoop.mapred.Mapper;
+import org.apache.hadoop.mapred.OutputCollector;
+import org.apache.hadoop.mapred.Reporter;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.PositionListWritable;
+
+@SuppressWarnings("deprecation")
+public class DeepGraphBuildingMapper extends MapReduceBase implements
+        Mapper<KmerBytesWritable, PositionListWritable, IntWritable, LineBasedmappingWritable> {
+    IntWritable  numLine = new IntWritable();
+    LineBasedmappingWritable lineBasedWriter = new LineBasedmappingWritable();
+    @Override
+    public void map(KmerBytesWritable key, PositionListWritable value, OutputCollector<IntWritable, LineBasedmappingWritable> output,
+            Reporter reporter) throws IOException {
+    }
+}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/DeepGraphBuildingReducer.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/DeepGraphBuildingReducer.java
new file mode 100644
index 0000000..5dac4cd
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/DeepGraphBuildingReducer.java
@@ -0,0 +1,86 @@
+package edu.uci.ics.genomix.valvetgraphbuilding;
+
+import java.io.IOException;
+import java.util.Iterator;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.mapred.MapReduceBase;
+import org.apache.hadoop.mapred.OutputCollector;
+import org.apache.hadoop.mapred.Reducer;
+import org.apache.hadoop.mapred.Reporter;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
+
+@SuppressWarnings("deprecation")
+public class DeepGraphBuildingReducer extends MapReduceBase implements
+        Reducer<IntWritable, LineBasedmappingWritable, NodeWritable, NullWritable> {
+
+/*    public ArrayList<LineBasedmappingWritable> lineElementsSet = new ArrayList<LineBasedmappingWritable>();
+    public Position outputVerID = new Position();
+    public VertexAdjacentWritable outputAdjacentList = new VertexAdjacentWritable();
+    public PositionList srcVtexAdjList = new PositionList();
+    public PositionList desVtexAdjList = new PositionList();
+    public VertexIDListWritable srcAdjListWritable = new VertexIDListWritable();
+    public VKmerBytesWritable desKmer = new VKmerBytesWritable(1);
+    public VKmerBytesWritableFactory kmerFactory = new VKmerBytesWritableFactory(1);
+    public VKmerBytesWritable srcKmer = new VKmerBytesWritable(1);*/
+    @Override
+    public void reduce(IntWritable key, Iterator<LineBasedmappingWritable> values,
+            OutputCollector<NodeWritable, NullWritable> output, Reporter reporter) throws IOException {
+/*        while (values.hasNext()) {
+            lineElementsSet.add(values.next());
+        }
+        int[] orderLineTable = new int[lineElementsSet.size()];
+        for (int i = 0; i < lineElementsSet.size(); i++) {
+            int posInInvertedIndex = lineElementsSet.get(i).getPosInInvertedIndex();
+            orderLineTable[lineElementsSet.get(i).getAdjVertexList().get().getPosinReadListElement(posInInvertedIndex)] = i;
+        }
+        //the first node in this read
+        int posInInvertedIndex = lineElementsSet.get(orderLineTable[0]).getPosInInvertedIndex();
+        outputVerID.set(
+                lineElementsSet.get(orderLineTable[0]).getAdjVertexList().get().getReadListElement(posInInvertedIndex),
+                (byte) 0);
+        desVtexAdjList.set(lineElementsSet.get(orderLineTable[1]).getAdjVertexList().get());
+        for (int i = 0; i < desVtexAdjList.getUsedSize(); i++) {
+            if (desVtexAdjList.getPosinReadListElement(i) == (byte) 0) {
+                srcVtexAdjList.addELementToList(desVtexAdjList.getReadListElement(i), (byte) 0);
+            }
+        }
+        srcVtexAdjList.addELementToList(key.get(), (byte) 1);
+        outputVerID.set(
+                lineElementsSet.get(orderLineTable[0]).getAdjVertexList().get().getReadListElement(posInInvertedIndex),
+                (byte) 0);
+        srcAdjListWritable.set(srcVtexAdjList);
+        outputAdjacentList.set(srcAdjListWritable, lineElementsSet.get(orderLineTable[0]).getVkmer());
+        output.collect(outputVerID, outputAdjacentList);
+        //srcVtexAdjList reset!!!!
+
+        for (int i = 1; i < lineElementsSet.size(); i++) {
+            desVtexAdjList.set(lineElementsSet.get(orderLineTable[i + 1]).getAdjVertexList().get());
+            boolean flag = false;
+            for (int j = 0; j < desVtexAdjList.getUsedSize(); j++) {
+                if (desVtexAdjList.getPosinReadListElement(j) == (byte) 0) {
+                    srcVtexAdjList.addELementToList(desVtexAdjList.getReadListElement(i), (byte) 0);
+                    flag = true;
+                }
+            }
+            if (flag = true) {
+                //doesm't merge
+                srcVtexAdjList.addELementToList(key.get(), (byte) (i + 1));
+                outputVerID.set(
+                        lineElementsSet.get(orderLineTable[i]).getAdjVertexList().get()
+                                .getReadListElement(posInInvertedIndex), lineElementsSet.get(orderLineTable[i])
+                                .getAdjVertexList().get().getPosinReadListElement(posInInvertedIndex));
+                srcAdjListWritable.set(srcVtexAdjList);
+                outputAdjacentList.set(srcAdjListWritable, lineElementsSet.get(orderLineTable[i]).getVkmer());
+            }
+            else {
+                //merge
+                desKmer.set(kmerFactory.getFirstKmerFromChain(1, lineElementsSet.get(orderLineTable[i+1]).getVkmer()));
+                srcKmer.set(lineElementsSet.get(orderLineTable[i]).getVkmer());
+                lineElementsSet.get(orderLineTable[i+1]).getVkmer().set(kmerFactory.mergeTwoKmer(srcKmer, desKmer));
+                orderLineTable[i+1] = orderLineTable[i];
+            }
+        }*/
+    }
+}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/GraphInvertedIndexBuildingMapper.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/GraphInvertedIndexBuildingMapper.java
new file mode 100644
index 0000000..f4f95a1
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/GraphInvertedIndexBuildingMapper.java
@@ -0,0 +1,49 @@
+package edu.uci.ics.genomix.valvetgraphbuilding;
+
+import java.io.IOException;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.MapReduceBase;
+import org.apache.hadoop.mapred.Mapper;
+import org.apache.hadoop.mapred.OutputCollector;
+import org.apache.hadoop.mapred.Reporter;
+import edu.uci.ics.genomix.type.GeneCode;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+@SuppressWarnings("deprecation")
+public class GraphInvertedIndexBuildingMapper extends MapReduceBase implements
+        Mapper<LongWritable, Text, KmerBytesWritable, PositionWritable> {
+    
+    public static int KMER_SIZE;
+    public PositionWritable outputVertexID;
+    public KmerBytesWritable outputKmer;
+
+    @Override
+    public void configure(JobConf job) {
+        KMER_SIZE = Integer.parseInt(job.get("sizeKmer"));
+        outputVertexID = new PositionWritable();
+        outputKmer = new KmerBytesWritable(KMER_SIZE);
+    }
+    @Override
+    public void map(LongWritable key, Text value, OutputCollector<KmerBytesWritable, PositionWritable> output,
+            Reporter reporter) throws IOException {
+        String geneLine = value.toString();
+        /** first kmer */
+        byte[] array = geneLine.getBytes();
+        outputKmer.setByRead(array, 0);
+        outputVertexID.set((int)key.get(), (byte)0);
+        output.collect(outputKmer, outputVertexID);
+        /** middle kmer */
+        for (int i = KMER_SIZE; i < array.length - 1; i++) {
+            GeneCode.getBitMapFromGeneCode(outputKmer.shiftKmerWithNextChar(array[i]));
+            outputVertexID.set((int)key.get(), (byte)(i - KMER_SIZE + 1));
+            output.collect(outputKmer, outputVertexID);
+        }
+        /** last kmer */
+        GeneCode.getBitMapFromGeneCode(outputKmer.shiftKmerWithNextChar(array[array.length - 1]));
+        outputVertexID.set((int)key.get(), (byte)(array.length - 1 + 1));
+        output.collect(outputKmer, outputVertexID);
+    }
+}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/GraphInvertedIndexBuildingReducer.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/GraphInvertedIndexBuildingReducer.java
new file mode 100644
index 0000000..f734f81
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/GraphInvertedIndexBuildingReducer.java
@@ -0,0 +1,26 @@
+package edu.uci.ics.genomix.valvetgraphbuilding;
+
+import java.io.IOException;
+import java.util.Iterator;
+import org.apache.hadoop.mapred.MapReduceBase;
+import org.apache.hadoop.mapred.Mapper;
+import org.apache.hadoop.mapred.OutputCollector;
+import org.apache.hadoop.mapred.Reducer;
+import org.apache.hadoop.mapred.Reporter;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.PositionListWritable;
+import edu.uci.ics.genomix.type.PositionWritable;
+
+@SuppressWarnings({ "deprecation", "unused" })
+public class GraphInvertedIndexBuildingReducer extends MapReduceBase implements
+        Reducer<KmerBytesWritable, PositionWritable, KmerBytesWritable, PositionListWritable> {
+    PositionListWritable outputlist = new PositionListWritable();
+    @Override
+    public void reduce(KmerBytesWritable key, Iterator<PositionWritable> values,
+            OutputCollector<KmerBytesWritable, PositionListWritable> output, Reporter reporter) throws IOException {
+        while (values.hasNext()) {
+            outputlist.append(values.next());
+        }
+        output.collect(key, outputlist);
+    }
+}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/LineBasedmappingWritable.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/LineBasedmappingWritable.java
new file mode 100644
index 0000000..c87e5ff
--- /dev/null
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/valvetgraphbuilding/LineBasedmappingWritable.java
@@ -0,0 +1,41 @@
+package edu.uci.ics.genomix.valvetgraphbuilding;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import edu.uci.ics.genomix.type.PositionListWritable;
+
+public class LineBasedmappingWritable extends PositionListWritable{
+    byte posInRead;
+    
+    public LineBasedmappingWritable() {
+        super();
+        this.posInRead = -1;        
+    }
+
+    public LineBasedmappingWritable(int count, byte [] data, int offset, byte posInRead) {       
+        super(count, data, offset);
+        this.posInRead = posInRead;
+    }
+    
+    public void set(byte posInRead, PositionListWritable right) {
+        super.set(right);
+        this.posInRead = posInRead;
+    }
+
+    @Override
+    public void readFields(DataInput in) throws IOException {
+        super.readFields(in);
+        this.posInRead = in.readByte();
+    }
+
+    @Override
+    public void write(DataOutput out) throws IOException {
+        super.write(out);
+        out.writeByte(this.posInRead);
+    }
+    
+    public int getPosInInvertedIndex() {
+        return this.posInRead;
+    }
+}