Merge branch 'fullstack_genomix' of https://code.google.com/p/hyracks into fullstack_genomix
Conflicts:
genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java
index 614c696..648f28e 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerBytesWritable.java
@@ -183,6 +183,7 @@
int pos = ((kmerlength - 1) % 4) << 1;
byte code = (byte) (c << pos);
bytes[0] = (byte) (((bytes[0] >>> 2) & 0x3f) | code);
+ clearLeadBit();
return output;
}
@@ -212,12 +213,14 @@
bytes[i] = (byte) ((bytes[i] << 2) | in);
}
bytes[size - 1] = (byte) ((bytes[size - 1] << 2) | c);
- // (k%4) * 2
+ clearLeadBit();
+ return output;
+ }
+
+ protected void clearLeadBit(){
if (kmerlength % 4 != 0) {
bytes[0] &= (1 << ((kmerlength % 4) << 1)) - 1;
}
-
- return output;
}
public void set(KmerBytesWritable newData) {
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
index fc63fd8..5a4329e 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
@@ -107,6 +107,7 @@
this.kmerlength = k;
setSize(0);
setSize(KmerUtil.getByteNumFromK(k));
+ clearLeadBit();
}
}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritableFactory.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritableFactory.java
index 9bd6acb..c00967f 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritableFactory.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritableFactory.java
@@ -80,6 +80,7 @@
if (byteInKmer == 0) {
kmer.getBytes()[0] = (byte) ((kmerChain.getBytes()[0] & 0xff) >> posInByteOfChain);
}
+ kmer.clearLeadBit();
return kmer;
}
@@ -112,6 +113,7 @@
} else {
kmer.getBytes()[0] = (byte) (kmerChain.getBytes()[kmerChain.getLength() - i] & ((1 << posInByteOfChain) - 1));
}
+ kmer.clearLeadBit();
return kmer;
}
@@ -138,9 +140,7 @@
if (byteInKmer == 0) {
kmer.getBytes()[0] = (byte) ((kmerChain.getBytes()[0] & 0xff) >> posInByteOfChain);
}
- if (kSize % 4 != 0) {
- kmer.getBytes()[0] &= (1 << ((kSize % 4) << 1)) - 1;
- }
+ kmer.clearLeadBit();
return kmer;
}
@@ -167,6 +167,7 @@
} else {
this.kmer.getBytes()[0] = (byte) (kmer.getBytes()[0] | ((nextCode & 0x3) << ((kmer.getKmerLength() % 4) << 1)));
}
+ this.kmer.clearLeadBit();
return this.kmer;
}
@@ -194,6 +195,7 @@
this.kmer.getBytes()[byteInMergedKmer] = (byte) ((kmer.getBytes()[i] << 2) | ((kmer.getBytes()[i + 1] >> 6) & 0x3));
}
this.kmer.getBytes()[byteInMergedKmer] = (byte) ((kmer.getBytes()[kmer.getLength() - 1] << 2) | (preCode & 0x3));
+ this.kmer.clearLeadBit();
return this.kmer;
}
@@ -235,6 +237,7 @@
kmer.getBytes()[0] = (byte) ((0xff & nextKmer.getBytes()[0]) >> (8 - posNeedToMove));
}
}
+ kmer.clearLeadBit();
return kmer;
}
@@ -302,6 +305,7 @@
curByteAtKmer++;
}
}
+ this.kmer.clearLeadBit();
return this.kmer;
}
}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathH2Mapper.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathH2Mapper.java
index 3c5b192..de7ecfc 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathH2Mapper.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathH2Mapper.java
@@ -41,7 +41,7 @@
byte bitStartEnd = (byte) (0x81 & bitFlag);
switch (bitStartEnd) {
- case 0x01:
+ case (byte) 0x01:
byte succeedCode = GeneCode.getGeneCodeFromBitMap(succeed);
tmpKmer.set(outputKmerFactory.getLastKmerFromChain(KMER_SIZE, key));
outputKmer.set(outputKmerFactory.shiftKmerWithNextCode(tmpKmer, succeedCode));
@@ -59,7 +59,7 @@
outputValue.set(tmpKmer, adjBitMap, bitFlag);
output.collect(outputKmer, outputValue);
break;
- case 0x00:
+ case (byte) 0x00:
succeedCode = GeneCode.getGeneCodeFromBitMap(succeed);
tmpKmer.set(outputKmerFactory.getLastKmerFromChain(KMER_SIZE, key));
outputKmer.set(outputKmerFactory.shiftKmerWithNextCode(tmpKmer, succeedCode));
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathValueWritable.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathValueWritable.java
index 5a6b722..3faba46 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathValueWritable.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/MergePathValueWritable.java
@@ -44,17 +44,11 @@
}
public void set(MergePathValueWritable right) {
- set(right.getBytes(), 0, right.getLength(), right.getAdjBitMap(), right.getFlag(), right.getKmerLength());
+ set(right.getAdjBitMap(), right.getFlag(), right.getKmer());
}
- public void set(KmerBytesWritable mergedKmer, byte adjBitMap, byte bitFlag) {
- set(mergedKmer.getBytes(), 0, mergedKmer.getLength(), adjBitMap, bitFlag, mergedKmer.getKmerLength());
- }
-
- public void set(byte[] newData, int offset, int length, byte adjBitMap, byte flag, int kmerSize) {
- if (length != 0) {
- kmer.set(kmerSize, newData, offset, length);
- }
+ public void set(byte adjBitMap, byte flag, VKmerBytesWritable kmer) {
+ this.kmer.set(kmer);
this.adjBitMap = adjBitMap;
this.flag = flag;
}
@@ -76,7 +70,7 @@
arg0.writeByte(flag);
}
- public KmerBytesWritable getKmer() {
+ public VKmerBytesWritable getKmer() {
if (kmer.getLength() != 0) {
return kmer;
}
@@ -102,6 +96,7 @@
return kmer.getBytes();
} else
return null;
+
}
public int getKmerLength() {
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialMapper.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialMapper.java
index 498b7c8..076b3d9 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialMapper.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialMapper.java
@@ -108,7 +108,7 @@
output.collect(outputKmer, outputAdjList);
} else {
for (int i = 0; i < 4; i++) {
- byte temp = 0x01;
+ byte temp = (byte) 0x01;
byte shiftedCode = 0;
temp = (byte) (temp << i);
temp = (byte) (precursor & temp);
@@ -116,9 +116,6 @@
byte precurCode = GeneCode.getGeneCodeFromBitMap(temp);
shiftedCode = key.shiftKmerWithPreCode(precurCode);
outputKmer.set(key);
- for(int j = 0; j < key.getLength(); j ++){
- System.out.println(key.getBytes()[j]);
- }
bitFlag = (byte) 0x80;
outputAdjList.set(null, 0, 0, (byte) 0, bitFlag, 0);
output.collect(outputKmer, outputAdjList);
@@ -126,7 +123,7 @@
}
}
for (int i = 0; i < 4; i++) {
- byte temp = 0x01;
+ byte temp = (byte) 0x01;
byte shiftedCode = 0;
temp = (byte) (temp << i);
temp = (byte) (succeed & temp);
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialReducer.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialReducer.java
index e840965..a858524 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialReducer.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/pathmergingh2/SNodeInitialReducer.java
@@ -32,13 +32,13 @@
if (values.hasNext() == true) {
switch (outputValue.getFlag()) {
case (byte) 0x01:
- startFlag = 0x01;
+ startFlag = (byte) 0x01;
break;
case (byte) 0x80:
endFlag = (byte) 0x80;
break;
case (byte) 0x02:
- targetPointFlag = 0x02;
+ targetPointFlag = (byte) 0x02;
targetAdjList = outputValue.getAdjBitMap();
break;
}
@@ -56,10 +56,10 @@
targetAdjList = outputValue.getAdjBitMap();
break;
}
- if(startFlag != 0x00 && endFlag!= 0x00 && targetPointFlag != 0x00)
+ if(startFlag != (byte) 0x00 && endFlag!= (byte) 0x00 && targetPointFlag != (byte) 0x00)
break;
}
- if(targetPointFlag == 0x02) {
+ if(targetPointFlag == (byte) 0x02) {
if(startFlag == (byte) 0x01) {
outputFlag = (byte) (outputFlag | startFlag);
}