Merge MergeBubbleMessageWritable to MessageWritable
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MergeBubbleMessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MergeBubbleMessageWritable.java
index c3b4710..3200e14 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MergeBubbleMessageWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MergeBubbleMessageWritable.java
@@ -41,7 +41,7 @@
this.sourceVertexId.set(msg.getSourceVertexId());
}
if (chainVertexId != null) {
- checkMessage |= CheckMessage.CHAIN;
+ checkMessage |= CheckMessage.ACUTUALKMER;
this.chainVertexId.set(msg.getChainVertexId());
}
if (neighberNode != null) {
@@ -62,7 +62,7 @@
this.sourceVertexId.set(sourceVertexId.getReadID(),sourceVertexId.getPosInRead());
}
if (chainVertexId != null) {
- checkMessage |= CheckMessage.CHAIN;
+ checkMessage |= CheckMessage.ACUTUALKMER;
this.chainVertexId.set(chainVertexId);
}
if (neighberNode != null) {
@@ -100,7 +100,7 @@
public void setChainVertexId(KmerBytesWritable chainVertexId) {
if (chainVertexId != null) {
- checkMessage |= CheckMessage.CHAIN;
+ checkMessage |= CheckMessage.ACUTUALKMER;
this.chainVertexId.set(chainVertexId);
}
}
@@ -144,7 +144,7 @@
out.writeByte(checkMessage);
if ((checkMessage & CheckMessage.SOURCE) != 0)
sourceVertexId.write(out);
- if ((checkMessage & CheckMessage.CHAIN) != 0)
+ if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
chainVertexId.write(out);
if ((checkMessage & CheckMessage.NEIGHBER) != 0)
neighberNode.write(out);
@@ -159,7 +159,7 @@
checkMessage = in.readByte();
if ((checkMessage & CheckMessage.SOURCE) != 0)
sourceVertexId.readFields(in);
- if ((checkMessage & CheckMessage.CHAIN) != 0)
+ if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
chainVertexId.readFields(in);
if ((checkMessage & CheckMessage.NEIGHBER) != 0)
neighberNode.readFields(in);
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
index 66dd474..1eba346 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/MessageWritable.java
@@ -25,13 +25,15 @@
private boolean isFlip;
private int kmerlength = 0;
private boolean updateMsg = false;
-
+ private KmerBytesWritable startVertexId;
+
private byte checkMessage;
public MessageWritable() {
sourceVertexId = new KmerBytesWritable();
kmer = new KmerBytesWritable(0);
neighberNode = new AdjacencyListWritable();
+ startVertexId = new KmerBytesWritable();
flag = Message.NON;
isFlip = false;
checkMessage = (byte) 0;
@@ -39,9 +41,10 @@
public MessageWritable(int kmerSize) {
kmerlength = kmerSize;
- sourceVertexId = new KmerBytesWritable();
+ sourceVertexId = new KmerBytesWritable(kmerSize);
kmer = new KmerBytesWritable(0);
neighberNode = new AdjacencyListWritable(kmerSize);
+ startVertexId = new KmerBytesWritable(kmerSize);
flag = Message.NON;
isFlip = false;
checkMessage = (byte) 0;
@@ -55,13 +58,17 @@
this.sourceVertexId.set(msg.getSourceVertexId());
}
if (kmer != null) {
- checkMessage |= CheckMessage.CHAIN;
+ checkMessage |= CheckMessage.ACUTUALKMER;
this.kmer.set(msg.getActualKmer());
}
if (neighberNode != null) {
checkMessage |= CheckMessage.NEIGHBER;
this.neighberNode.set(msg.getNeighberNode());
}
+ if (startVertexId != null) {
+ checkMessage |= CheckMessage.START;
+ this.startVertexId.set(msg.getStartVertexId());
+ }
checkMessage |= CheckMessage.ADJMSG;
this.flag = msg.getFlag();
updateMsg = msg.isUpdateMsg();
@@ -75,7 +82,7 @@
this.sourceVertexId.set(sourceVertexId);
}
if (chainVertexId != null) {
- checkMessage |= CheckMessage.CHAIN;
+ checkMessage |= CheckMessage.ACUTUALKMER;
this.kmer.set(chainVertexId);
}
if (neighberNode != null) {
@@ -94,6 +101,7 @@
kmerlength = kmerSize;
kmer.reset(1);
neighberNode.reset(kmerSize);
+ startVertexId.reset(kmerSize);
flag = Message.NON;
isFlip = false;
}
@@ -115,7 +123,7 @@
public void setAcutalKmer(KmerBytesWritable actualKmer) {
if (actualKmer != null) {
- checkMessage |= CheckMessage.CHAIN;
+ checkMessage |= CheckMessage.ACUTUALKMER;
this.kmer.set(actualKmer);
}
}
@@ -126,7 +134,7 @@
public void setCreatedVertexId(KmerBytesWritable actualKmer) {
if (actualKmer != null) {
- checkMessage |= CheckMessage.CHAIN;
+ checkMessage |= CheckMessage.ACUTUALKMER;
this.kmer.set(actualKmer);
}
}
@@ -142,6 +150,17 @@
}
}
+ public KmerBytesWritable getStartVertexId() {
+ return startVertexId;
+ }
+
+ public void setStartVertexId(KmerBytesWritable startVertexId) {
+ if(startVertexId != null){
+ checkMessage |= CheckMessage.START;
+ this.startVertexId.set(startVertexId);
+ }
+ }
+
public int getLengthOfChain() {
return kmer.getKmerLength();
}
@@ -188,12 +207,14 @@
out.writeByte(checkMessage);
if ((checkMessage & CheckMessage.SOURCE) != 0)
sourceVertexId.write(out);
- if ((checkMessage & CheckMessage.CHAIN) != 0)
+ if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
kmer.write(out);
if ((checkMessage & CheckMessage.NEIGHBER) != 0)
neighberNode.write(out);
if ((checkMessage & CheckMessage.NODEIDLIST) != 0)
nodeIdList.write(out);
+ if ((checkMessage & CheckMessage.START) != 0)
+ startVertexId.write(out);
out.writeBoolean(isFlip);
out.writeByte(flag);
out.writeBoolean(updateMsg);
@@ -206,12 +227,14 @@
checkMessage = in.readByte();
if ((checkMessage & CheckMessage.SOURCE) != 0)
sourceVertexId.readFields(in);
- if ((checkMessage & CheckMessage.CHAIN) != 0)
+ if ((checkMessage & CheckMessage.ACUTUALKMER) != 0)
kmer.readFields(in);
if ((checkMessage & CheckMessage.NEIGHBER) != 0)
neighberNode.readFields(in);
if ((checkMessage & CheckMessage.NODEIDLIST) != 0)
nodeIdList.readFields(in);
+ if ((checkMessage & CheckMessage.START) != 0)
+ startVertexId.readFields(in);
isFlip = in.readBoolean();
flag = in.readByte();
updateMsg = in.readBoolean();
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
index 8112b58..d4a2355 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
@@ -124,23 +124,7 @@
return null;
}
}
-
- /**
- * head send message to all next nodes
- */
- public void sendMsgToAllNextNodes(VertexValueWritable value) {
- kmerIterator = value.getFFList().iterator(); // FFList
- while(kmerIterator.hasNext()){
- destVertexId.set(kmerIterator.next());
- sendMsg(destVertexId, outgoingMsg);
- }
- kmerIterator = value.getFRList().iterator(); // FRList
- while(kmerIterator.hasNext()){
- destVertexId.set(kmerIterator.next());
- sendMsg(destVertexId, outgoingMsg);
- }
- }
-
+
/**
* head send message to all previous nodes
*/
@@ -156,6 +140,22 @@
sendMsg(destVertexId, outgoingMsg);
}
}
+
+ /**
+ * head send message to all next nodes
+ */
+ public void sendMsgToAllNextNodes(VertexValueWritable value) {
+ kmerIterator = value.getFFList().iterator(); // FFList
+ while(kmerIterator.hasNext()){
+ destVertexId.set(kmerIterator.next());
+ sendMsg(destVertexId, outgoingMsg);
+ }
+ kmerIterator = value.getFRList().iterator(); // FRList
+ while(kmerIterator.hasNext()){
+ destVertexId.set(kmerIterator.next());
+ sendMsg(destVertexId, outgoingMsg);
+ }
+ }
/**
* one vertex send message to previous and next vertices (neighbor)
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java
index 73ab533..4b32a51 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java
@@ -3,7 +3,7 @@
public class CheckMessage {
public static final byte SOURCE = 1 << 0;
- public static final byte CHAIN = 1 << 1;
+ public static final byte ACUTUALKMER = 1 << 1;
public static final byte NEIGHBER = 1 << 2;
public static final byte MESSAGE = 1 << 3;
public static final byte NODEIDLIST = 1 << 4;
@@ -18,8 +18,8 @@
case SOURCE:
r = "SOURCE";
break;
- case CHAIN:
- r = "CHAIN";
+ case ACUTUALKMER:
+ r = "ACUTUALKMER";
break;
case NEIGHBER:
r = "NEIGHBER";