Merge branch 'jianfeng/genomix' into jianfeng/genomix-reverse

Conflicts:
	genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapReadToNodeOperator.java
	genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/ReadsKeyValueParserFactory.java
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/ReadsKeyValueParserFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/ReadsKeyValueParserFactory.java
index fe8224f..3667d43 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/ReadsKeyValueParserFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/ReadsKeyValueParserFactory.java
@@ -45,19 +45,17 @@
     public static final int OutputKmerField = 0;
     public static final int OutputPosition = 1;
 
-    private KmerBytesWritable kmer;
-    private PositionReference pos;
-    private boolean bReversed;
+    private final boolean bReversed;
     private final int readLength;
+    private final int kmerSize;
 
     public static final RecordDescriptor readKmerOutputRec = new RecordDescriptor(new ISerializerDeserializer[] { null,
             null });
 
     public ReadsKeyValueParserFactory(int readlength, int k, boolean bGenerateReversed) {
         bReversed = bGenerateReversed;
-        kmer = new KmerBytesWritable(k);
-        pos = new PositionReference();
         this.readLength = readlength;
+        this.kmerSize = k;
     }
 
     @Override
@@ -69,6 +67,9 @@
 
         return new IKeyValueParser<LongWritable, Text>() {
 
+            private KmerBytesWritable kmer = new KmerBytesWritable(kmerSize);
+            private PositionReference pos = new PositionReference();
+            
             @Override
             public void parse(LongWritable key, Text value, IFrameWriter writer) throws HyracksDataException {
                 String[] geneLine = value.toString().split("\\t"); // Read the Real Gene Line
@@ -97,17 +98,16 @@
 
             private void SplitReads(int readID, byte[] array, IFrameWriter writer) {
                 /** first kmer */
-                int k = kmer.getKmerLength();
-                if (k >= array.length) {
+                if (kmerSize >= array.length) {
                     return;
                 }
                 kmer.setByRead(array, 0);
                 InsertToFrame(kmer, readID, 1, writer);
 
                 /** middle kmer */
-                for (int i = k; i < array.length; i++) {
+                for (int i = kmerSize; i < array.length; i++) {
                     kmer.shiftKmerWithNextChar(array[i]);
-                    InsertToFrame(kmer, readID, i - k + 2, writer);
+                    InsertToFrame(kmer, readID, i - kmerSize + 2, writer);
                 }
 
                 if (bReversed) {
@@ -115,9 +115,9 @@
                     kmer.setByReadReverse(array, 0);
                     InsertToFrame(kmer, readID, -1, writer);
                     /** middle kmer */
-                    for (int i = k; i < array.length; i++) {
+                    for (int i = kmerSize; i < array.length; i++) {
                         kmer.shiftKmerWithPreCode(GeneCode.getPairedCodeFromSymbol(array[i]));
-                        InsertToFrame(kmer, readID, -(i - k + 2), writer);
+                        InsertToFrame(kmer, readID, -(i - kmerSize + 2), writer);
                     }
                 }
             }
@@ -149,8 +149,6 @@
 
             @Override
             public void open(IFrameWriter writer) throws HyracksDataException {
-                // TODO Auto-generated method stub
-
             }
 
             @Override
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java
index c6a69d4..28e4ff5 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java
@@ -56,13 +56,15 @@
              * 
              */
             private static final long serialVersionUID = 1L;
-            private KmerBytesWritable kmer = new KmerBytesWritable(kmerSize);
-            private PositionWritable pos = new PositionWritable();
+            
 
             @Override
             public ITupleWriter getTupleWriter(IHyracksTaskContext ctx) throws HyracksDataException {
                 return new ITupleWriter(){
 
+                    private KmerBytesWritable kmer = new KmerBytesWritable(kmerSize);
+                    private PositionWritable pos = new PositionWritable();
+                    
                     @Override
                     public void open(DataOutput output) throws HyracksDataException {
                         // TODO Auto-generated method stub
diff --git a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/test/JobRunStepByStepTest.java b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/test/JobRunStepByStepTest.java
index 07cfab4..ec95aa6 100644
--- a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/test/JobRunStepByStepTest.java
+++ b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/hyracks/test/JobRunStepByStepTest.java
@@ -54,7 +54,7 @@
 
     private JobConf conf = new JobConf();
     private int numberOfNC = 2;
-    private int numPartitionPerMachine = 1;
+    private int numPartitionPerMachine = 2;
 
     private Driver driver;