Fix NodeWritable and Finish contrail-graph Mapper/Reducer
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java
index 09d353d..3349aaf 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java
@@ -17,8 +17,8 @@
protected byte[] storage;
protected int offset;
protected int valueCount;
- public int kmerByteSize = 2;
- public int kmerlength = 5;
+ public int kmerByteSize = 0;
+ public int kmerlength = 0;
protected static final byte[] EMPTY = {};
protected KmerBytesWritable posIter = new KmerBytesWritable();
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
index 76a6171..19f6374 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
@@ -10,11 +10,6 @@
public class NodeWritable implements WritableComparable<NodeWritable>, Serializable{
-// public static class KMER{
-// public static final byte EXIST = 0;
-// public static final byte NON_EXIST = 1;
-// }
-
private static final long serialVersionUID = 1L;
public static final NodeWritable EMPTY_NODE = new NodeWritable(0);
@@ -24,7 +19,7 @@
private KmerListWritable reverseForwardList;
private KmerListWritable reverseReverseList;
private KmerBytesWritable kmer;
-// private byte kmerMark;
+ private int kmerlength = 0;
// merge/update directions
public static class DirectionFlag {
@@ -39,14 +34,14 @@
this(0);
}
- public NodeWritable(int kmerSize) {
+ public NodeWritable(int kmerlenth) {
+ this.kmerlength = kmerlenth;
nodeIdList = new PositionListWritable();
- forwardForwardList = new KmerListWritable(kmerSize);
- forwardReverseList = new KmerListWritable(kmerSize);
- reverseForwardList = new KmerListWritable(kmerSize);
- reverseReverseList = new KmerListWritable(kmerSize);
- kmer = new KmerBytesWritable(kmerSize);
-// kmerMark = KMER.NON_EXIST;
+ forwardForwardList = new KmerListWritable(kmerlenth);
+ forwardReverseList = new KmerListWritable(kmerlenth);
+ reverseForwardList = new KmerListWritable(kmerlenth);
+ reverseReverseList = new KmerListWritable(kmerlenth);
+ kmer = new KmerBytesWritable(); //in graph construction - not set kmerlength Optimization: VKmer
}
public NodeWritable(PositionListWritable nodeIdList, KmerListWritable FFList, KmerListWritable FRList,
@@ -68,17 +63,16 @@
this.reverseForwardList.set(RFList);
this.reverseReverseList.set(RRList);
this.kmer.set(kmer);
-// kmerMark = KMER.EXIST;
}
public void reset(int kmerSize) {
- nodeIdList.reset();
- forwardForwardList.reset(kmerSize);
- forwardReverseList.reset(kmerSize);
- reverseForwardList.reset(kmerSize);
- reverseReverseList.reset(kmerSize);
- kmer.reset(kmerSize);
-// kmerMark = KMER.NON_EXIST;
+ this.kmerlength = kmerSize;
+ this.nodeIdList.reset();
+ this.forwardForwardList.reset(kmerSize);
+ this.forwardReverseList.reset(kmerSize);
+ this.reverseForwardList.reset(kmerSize);
+ this.reverseReverseList.reset(kmerSize);
+ this.kmer.reset(0);
}
@@ -95,7 +89,6 @@
}
public void setKmer(KmerBytesWritable kmer) {
-// kmerMark = KMER.EXIST;
this.kmer.set(kmer);
}
@@ -149,28 +142,28 @@
throw new RuntimeException("Unrecognized direction in getListFromDir: " + dir);
}
}
+
@Override
public void write(DataOutput out) throws IOException {
-// out.writeByte(kmerMark);
-// this.nodeIdList.write(out);
+ out.writeInt(kmerlength);
+ this.nodeIdList.write(out);
this.forwardForwardList.write(out);
-// this.forwardReverseList.write(out);
-// this.reverseForwardList.write(out);
-// this.reverseReverseList.write(out);
-// if(kmerMark == KMER.EXIST)
-// this.kmer.write(out);
+ this.forwardReverseList.write(out);
+ this.reverseForwardList.write(out);
+ this.reverseReverseList.write(out);
+ this.kmer.write(out);
}
@Override
public void readFields(DataInput in) throws IOException {
-// kmerMark = in.readByte();
-// this.nodeIdList.readFields(in);
+ this.kmerlength = in.readInt();
+ reset(kmerlength);
+ this.nodeIdList.readFields(in);
this.forwardForwardList.readFields(in);
-// this.forwardReverseList.readFields(in);
-// this.reverseForwardList.readFields(in);
-// this.reverseReverseList.readFields(in);
-// if(kmerMark == KMER.EXIST)
-// this.kmer.readFields(in);
+ this.forwardReverseList.readFields(in);
+ this.reverseForwardList.readFields(in);
+ this.reverseReverseList.readFields(in);
+ this.kmer.readFields(in);
}
@Override
@@ -199,13 +192,13 @@
@Override
public String toString() {
StringBuilder sbuilder = new StringBuilder();
- sbuilder.append('(');
+ sbuilder.append('{');
sbuilder.append(nodeIdList.toString()).append('\t');
sbuilder.append(forwardForwardList.toString()).append('\t');
sbuilder.append(forwardReverseList.toString()).append('\t');
sbuilder.append(reverseForwardList.toString()).append('\t');
sbuilder.append(reverseReverseList.toString()).append('\t');
- sbuilder.append(kmer.toString()).append(')');
+ sbuilder.append(kmer.toString()).append('}');
return sbuilder.toString();
}
diff --git a/genomix/genomix-hadoop/data/webmap/test.txt b/genomix/genomix-hadoop/data/webmap/test.txt
index 17770fa..990dbd1 100644
--- a/genomix/genomix-hadoop/data/webmap/test.txt
+++ b/genomix/genomix-hadoop/data/webmap/test.txt
@@ -1 +1,3 @@
1 AATAGAAG
+2 TATAGACC
+3 CATAGATT
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixReducer.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixReducer.java
index e877504..1633c26 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixReducer.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixReducer.java
@@ -33,11 +33,6 @@
Reporter reporter) throws IOException {
outputNode.reset(KMER_SIZE);
-// //copy first item to outputNode
-// if(values.hasNext()){
-// NodeWritable tmpNode = values.next();
-// outputNode.set(tmpNode);
-// }
while (values.hasNext()) {
tmpNode.set(values.next());
outputNode.getNodeIdList().appendList(tmpNode.getNodeIdList());