change directionFlag back
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 d1fcd6b..3fd9ef1 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
@@ -31,32 +31,11 @@
// merge/update directions
public static class DirectionFlag {
- public static final byte DIR_NO = 0b000 << 0;
- public static final byte DIR_FF = 0b001 << 0;
- public static final byte DIR_FR = 0b010 << 0;
- public static final byte DIR_RF = 0b011 << 0;
- public static final byte DIR_RR = 0b100 << 0;
- public static final byte DIR_MASK = 0b111 << 0;
- }
-
- public static class SpecialVertexFlag extends DirectionFlag {
- public static final byte IS_NON = 0b00 << 5;
- public static final byte IS_RANDOMTAIL = 0b00 << 5;
- public static final byte IS_STOP = 0b00 << 5;
- public static final byte IS_HEAD = 0b01 << 5;
- public static final byte IS_FINAL = 0b10 << 5;
- public static final byte IS_RANDOMHEAD = 0b11 << 5;
- public static final byte IS_OLDHEAD = 0b11 << 5;
-
- public static final byte VERTEX_MASK = 0b11 << 5;
- public static final byte VERTEX_CLEAR = (byte) 11001111;
- }
-
- public static class MergeDirFlag extends SpecialVertexFlag{
- public static final byte NO_MERGE = 0b00 << 3;
- public static final byte SHOULD_MERGEWITHNEXT = 0b01 << 3;
- public static final byte SHOULD_MERGEWITHPREV = 0b10 << 3;
- public static final byte SHOULD_MERGE_MASK = 0b11 << 3;
+ public static final byte DIR_FF = 0b00 << 0;
+ public static final byte DIR_FR = 0b01 << 0;
+ public static final byte DIR_RF = 0b10 << 0;
+ public static final byte DIR_RR = 0b11 << 0;
+ public static final byte DIR_MASK = 0b11 << 0;
}
private PositionWritable nodeID;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/LogAlgorithmForPathMergeInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/LogAlgorithmForPathMergeInputFormat.java
index f9a3444..ba5b601 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/LogAlgorithmForPathMergeInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/LogAlgorithmForPathMergeInputFormat.java
@@ -10,7 +10,7 @@
import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexInputFormat;
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
-import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
import edu.uci.ics.genomix.type.NodeWritable;
import edu.uci.ics.genomix.type.PositionWritable;
import edu.uci.ics.pregelix.api.graph.Vertex;
@@ -71,7 +71,7 @@
vertexValue.setRFList(node.getRFList());
vertexValue.setRRList(node.getRRList());
vertexValue.setKmer(node.getKmer());
- vertexValue.setState(State.NON_VERTEX);
+ vertexValue.setState(State.IS_NON);
vertex.setVertexValue(vertexValue);
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/NaiveAlgorithmForPathMergeInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/NaiveAlgorithmForPathMergeInputFormat.java
index b9af850..13ca02c 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/NaiveAlgorithmForPathMergeInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/NaiveAlgorithmForPathMergeInputFormat.java
@@ -14,7 +14,7 @@
import edu.uci.ics.pregelix.api.util.BspUtils;
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
-import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexInputFormat;
import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexInputFormat.BinaryVertexReader;
@@ -74,7 +74,7 @@
vertexValue.setRFList(node.getRFList());
vertexValue.setRRList(node.getRRList());
vertexValue.setKmer(node.getKmer());
- vertexValue.setState(State.NON_VERTEX);
+ vertexValue.setState(State.IS_NON);
vertex.setVertexValue(vertexValue);
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
index 2defa0c..9274c80 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
@@ -5,13 +5,32 @@
import org.apache.hadoop.io.WritableComparable;
import edu.uci.ics.genomix.pregelix.type.MessageFlag;
-import edu.uci.ics.genomix.pregelix.type.State;
import edu.uci.ics.genomix.type.KmerBytesWritable;
import edu.uci.ics.genomix.type.PositionListWritable;
import edu.uci.ics.genomix.type.PositionWritable;
public class VertexValueWritable implements WritableComparable<VertexValueWritable> {
+ public static class VertexStateFlag {
+ public static final byte IS_NON = 0b00 << 5;
+ public static final byte IS_RANDOMTAIL = 0b00 << 5;
+ public static final byte IS_STOP = 0b00 << 5;
+ public static final byte IS_HEAD = 0b01 << 5;
+ public static final byte IS_FINAL = 0b10 << 5;
+ public static final byte IS_RANDOMHEAD = 0b11 << 5;
+ public static final byte IS_OLDHEAD = 0b11 << 5;
+
+ public static final byte VERTEX_MASK = 0b11 << 5;
+ public static final byte VERTEX_CLEAR = (byte) 11001111;
+ }
+
+ public static class State extends VertexStateFlag{
+ public static final byte NO_MERGE = 0b00 << 3;
+ public static final byte SHOULD_MERGEWITHNEXT = 0b01 << 3;
+ public static final byte SHOULD_MERGEWITHPREV = 0b10 << 3;
+ public static final byte SHOULD_MERGE_MASK = 0b11 << 3;
+ }
+
private AdjacencyListWritable incomingList;
private AdjacencyListWritable outgoingList;
private byte state;
@@ -21,7 +40,7 @@
public VertexValueWritable() {
incomingList = new AdjacencyListWritable();
outgoingList = new AdjacencyListWritable();
- state = State.NON_VERTEX;
+ state = State.IS_NON;
kmer = new KmerBytesWritable(0);
mergeDest = new PositionWritable();
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/LogAlgorithmLogFormatter.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/LogAlgorithmLogFormatter.java
index c29e1b3..5f6440f 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/LogAlgorithmLogFormatter.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/LogAlgorithmLogFormatter.java
@@ -4,7 +4,7 @@
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.type.Message;
-import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.type.State2;
import edu.uci.ics.genomix.type.KmerBytesWritable;
public class LogAlgorithmLogFormatter extends Formatter {
@@ -83,7 +83,7 @@
builder.append("Chain Length: " + msg.getLengthOfChain() + "\r\n");
}
- builder.append("State is: " + State.STATE_CONTENT.getContentFromCode(state) + "\r\n");
+ builder.append("State is: " + State2.STATE_CONTENT.getContentFromCode(state) + "\r\n");
}
if (operation == 2) {
chain = mergeChain.toString();
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
index cd84272..3eb1023 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
@@ -10,6 +10,7 @@
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
import edu.uci.ics.genomix.pregelix.type.AdjMessage;
import edu.uci.ics.genomix.pregelix.type.MessageFlag;
import edu.uci.ics.genomix.pregelix.util.VertexUtil;
@@ -44,18 +45,18 @@
maxIteration = getContext().getConfiguration().getInt(ITERATIONS, 1000000);
outFlag = (byte)0;
outgoingMsg.reset();
- headFlag = (byte)(getVertexValue().getState() & MessageFlag.IS_HEAD);
+ headFlag = (byte)(getVertexValue().getState() & State.IS_HEAD);
}
/**
* reset headFlag
*/
public void resetHeadFlag(){
- headFlag = (byte)(getVertexValue().getState() & MessageFlag.IS_HEAD);
+ headFlag = (byte)(getVertexValue().getState() & State.IS_HEAD);
}
public byte getHeadFlag(){
- return (byte)(getVertexValue().getState() & MessageFlag.IS_HEAD);
+ return (byte)(getVertexValue().getState() & State.IS_HEAD);
}
/**
@@ -316,8 +317,8 @@
public void sendMergeMsg(){
if(selfFlag == MessageFlag.IS_HEAD){
byte newState = getVertexValue().getState();
- newState &= ~MessageFlag.IS_HEAD;
- newState |= MessageFlag.IS_OLDHEAD;
+ newState &= ~State.IS_HEAD;
+ newState |= State.IS_OLDHEAD;
getVertexValue().setState(newState);
resetSelfFlag();
outFlag |= MessageFlag.IS_HEAD;
@@ -360,7 +361,7 @@
public void broadcastMergeMsg(){
if(headFlag > 0)
outFlag |= MessageFlag.IS_HEAD;
- switch(getVertexValue().getState() & MessageFlag.SHOULD_MERGE_MASK) {
+ switch(getVertexValue().getState() & State.SHOULD_MERGE_MASK) {
case MessageFlag.SHOULD_MERGEWITHNEXT:
setSuccessorAdjMsg();
if(ifFlipWithPredecessor())
@@ -392,7 +393,7 @@
*/
public void sendUpdateMsgToPredecessor(){
byte state = getVertexValue().getState();
- state |= MessageFlag.SHOULD_MERGEWITHNEXT;
+ state |= State.SHOULD_MERGEWITHNEXT;
getVertexValue().setState(state);
if(getVertexValue().getFFList().getLength() > 0)
getVertexValue().setMergeDest(getVertexValue().getFFList().getPosition(0));
@@ -407,7 +408,7 @@
*/
public void sendUpdateMsgToSuccessor(){
byte state = getVertexValue().getState();
- state |= MessageFlag.SHOULD_MERGEWITHPREV;
+ state |= State.SHOULD_MERGEWITHPREV;
getVertexValue().setState(state);
if(getVertexValue().getRFList().getLength() > 0)
getVertexValue().setMergeDest(getVertexValue().getRFList().getPosition(0));
@@ -479,7 +480,7 @@
if((inFlag & MessageFlag.IS_HEAD) > 0){
byte state = getVertexValue().getState();
- state |= MessageFlag.IS_HEAD;
+ state |= State.IS_HEAD;
getVertexValue().setState(state);
}
@@ -509,8 +510,8 @@
*/
public void setHeadState(){
byte state = getVertexValue().getState();
- state &= MessageFlag.VERTEX_CLEAR;
- state |= MessageFlag.IS_HEAD;
+ state &= State.VERTEX_CLEAR;
+ state |= State.IS_HEAD;
getVertexValue().setState(state);
}
@@ -519,8 +520,8 @@
*/
public void setFinalState(){
byte state = getVertexValue().getState();
- state &= MessageFlag.VERTEX_CLEAR;
- state |= MessageFlag.IS_FINAL;
+ state &= State.VERTEX_CLEAR;
+ state |= State.IS_FINAL;
getVertexValue().setState(state);
}
@@ -529,8 +530,8 @@
*/
public void setStopFlag(){
byte state = incomingMsg.getFlag();
- state &= MessageFlag.VERTEX_CLEAR;
- state |= MessageFlag.IS_STOP;
+ state &= State.VERTEX_CLEAR;
+ state |= State.IS_STOP;
getVertexValue().setState(state);
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/NaiveAlgorithmForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/NaiveAlgorithmForPathMergeVertex.java
index 0b636ee..ba0d304 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/NaiveAlgorithmForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/NaiveAlgorithmForPathMergeVertex.java
@@ -14,8 +14,8 @@
import edu.uci.ics.genomix.pregelix.format.NaiveAlgorithmForPathMergeOutputFormat;
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
import edu.uci.ics.genomix.pregelix.type.Message;
-import edu.uci.ics.genomix.pregelix.type.State;
import edu.uci.ics.genomix.pregelix.util.VertexUtil;
/*
@@ -171,9 +171,9 @@
*/
public void setState() {
if (incomingMsg.getFlag() == Message.START) {
- getVertexValue().setState(State.START_VERTEX);
- } else if (incomingMsg.getFlag() == Message.END && getVertexValue().getState() != State.START_VERTEX) {
- getVertexValue().setState(State.END_VERTEX);
+ getVertexValue().setState(State.IS_HEAD);
+ } else if (incomingMsg.getFlag() == Message.END && getVertexValue().getState() != State.IS_HEAD) {
+ getVertexValue().setState(State.IS_HEAD);//is tail
voteToHalt();
} else
voteToHalt();
@@ -208,7 +208,7 @@
sendMsg(destVertexId, outgoingMsg);
} else {
mergeChainVertex();
- getVertexValue().setState(State.FINAL_VERTEX);
+ getVertexValue().setState(State.IS_FINAL);
//String source = getVertexValue().getKmer().toString();
//System.out.println();
}
@@ -223,7 +223,7 @@
deleteVertex(getVertexId());
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setChainVertexId(getVertexValue().getKmer());
- if (getVertexValue().getState() == State.END_VERTEX)
+ if (getVertexValue().getState() == State.IS_HEAD)//is_tail
outgoingMsg.setFlag(Message.STOP);
destVertexId.set(incomingMsg.getSourceVertexId());
sendMsg(destVertexId, outgoingMsg);
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P3ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P3ForPathMergeVertex.java
index 69e1fb6..a22d393 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P3ForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P3ForPathMergeVertex.java
@@ -15,7 +15,7 @@
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
import edu.uci.ics.genomix.pregelix.type.Message;
-import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.type.State2;
import edu.uci.ics.genomix.pregelix.util.VertexUtil;
/*
@@ -177,7 +177,7 @@
if (random < pseudoRate)
markPseudoHead();
else{
- getVertexValue().setState(State.NON_VERTEX);
+ getVertexValue().setState(State2.NON_VERTEX);
voteToHalt();
}
/*if (getVertexId().toString().equals("CCTCA") || getVertexId().toString().equals("CTCAG")) //AGTAC CCTCA CTCAG CGCCC ACGCC
@@ -192,9 +192,9 @@
*/
public void setState() {
if (incomingMsg.getFlag() == Message.START) {
- getVertexValue().setState(State.START_VERTEX);
- } else if (incomingMsg.getFlag() == Message.END && getVertexValue().getState() != State.START_VERTEX) {
- getVertexValue().setState(State.END_VERTEX);
+ getVertexValue().setState(State2.START_VERTEX);
+ } else if (incomingMsg.getFlag() == Message.END && getVertexValue().getState() != State2.START_VERTEX) {
+ getVertexValue().setState(State2.END_VERTEX);
voteToHalt();
} else
voteToHalt();
@@ -204,7 +204,7 @@
* mark the pseudoHead
*/
public void markPseudoHead() {
- getVertexValue().setState(State.PSEUDOHEAD);
+ getVertexValue().setState(State2.PSEUDOHEAD);
outgoingMsg.setFlag(Message.FROMPSEUDOHEAD);
destVertexId
.set(getPreDestVertexId(getVertexValue()));
@@ -216,13 +216,13 @@
*/
public void markPseudoRear() {
if (incomingMsg.getFlag() == Message.FROMPSEUDOHEAD
- && getVertexValue().getState() != State.START_VERTEX) {
- getVertexValue().setState(State.PSEUDOREAR);
+ && getVertexValue().getState() != State2.START_VERTEX) {
+ getVertexValue().setState(State2.PSEUDOREAR);
voteToHalt();
}
else if(incomingMsg.getFlag() == Message.FROMPSEUDOHEAD
- && getVertexValue().getState() == State.START_VERTEX){
- getVertexValue().setState(State.START_HALT);
+ && getVertexValue().getState() == State2.START_VERTEX){
+ getVertexValue().setState(State2.START_HALT);
}
}
@@ -257,7 +257,7 @@
sendMsg(destVertexId, outgoingMsg);
} else {
mergeChainVertex();
- getVertexValue().setState(State.FINAL_VERTEX);
+ getVertexValue().setState(State2.FINAL_VERTEX);
//String source = getVertexValue().getKmer().toString();
//System.out.println();
}
@@ -272,7 +272,7 @@
deleteVertex(getVertexId());
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setChainVertexId(getVertexValue().getKmer());
- if (getVertexValue().getState() == State.END_VERTEX)
+ if (getVertexValue().getState() == State2.END_VERTEX)
outgoingMsg.setFlag(Message.STOP);
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg);
}
@@ -282,7 +282,7 @@
*/
public void sendMsgToPathVertexPartitionPhase(Iterator<MessageWritable> msgIterator) {
if (getSuperstep() == 4) {
- if(getVertexValue().getState() != State.START_HALT){
+ if(getVertexValue().getState() != State2.START_HALT){
outgoingMsg.setSourceVertexId(getVertexId());
destVertexId.set(getNextDestVertexId(getVertexValue()));
sendMsg(destVertexId, outgoingMsg);
@@ -302,14 +302,14 @@
voteToHalt();
} else {
//check head or pseudoHead
- if (getVertexValue().getState() == State.START_VERTEX
+ if (getVertexValue().getState() == State2.START_VERTEX
&& incomingMsg.getFlag() == Message.STOP) {
- getVertexValue().setState(State.FINAL_VERTEX);
+ getVertexValue().setState(State2.FINAL_VERTEX);
//String source = getVertexValue().getKmer().toString();
//System.out.println();
- } else if(getVertexValue().getState() == State.PSEUDOHEAD
+ } else if(getVertexValue().getState() == State2.PSEUDOHEAD
&& incomingMsg.getFlag() == Message.STOP)
- getVertexValue().setState(State.END_VERTEX);
+ getVertexValue().setState(State2.END_VERTEX);
}
}
}
@@ -320,15 +320,15 @@
* path node sends message back to head node in partition phase
*/
public void responseMsgToHeadVertexPartitionPhase() {
- if (getVertexValue().getState() == State.PSEUDOHEAD)
+ if (getVertexValue().getState() == State2.PSEUDOHEAD)
outgoingMsg.setFlag(Message.FROMPSEUDOHEAD);
else {
deleteVertex(getVertexId());
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList()); //incomingMsg.getNeighberNode()
outgoingMsg.setChainVertexId(getVertexValue().getKmer());
- if (getVertexValue().getState() == State.PSEUDOREAR)
+ if (getVertexValue().getState() == State2.PSEUDOREAR)
outgoingMsg.setFlag(Message.FROMPSEUDOREAR);
- else if (getVertexValue().getState() == State.END_VERTEX)
+ else if (getVertexValue().getState() == State2.END_VERTEX)
outgoingMsg.setFlag(Message.STOP);
}
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg);
@@ -344,25 +344,25 @@
mergeChainVertex();
getVertexValue().setOutgoingList(incomingMsg.getNeighberNode());
//check head or pseudoHead
- if (getVertexValue().getState() == State.START_VERTEX
+ if (getVertexValue().getState() == State2.START_VERTEX
&& incomingMsg.getFlag() == Message.STOP) {
- getVertexValue().setState(State.FINAL_VERTEX);
+ getVertexValue().setState(State2.FINAL_VERTEX);
//String source = getVertexValue().getKmer().toString();
//System.out.println();
- } else if(getVertexValue().getState() == State.PSEUDOHEAD
+ } else if(getVertexValue().getState() == State2.PSEUDOHEAD
&& incomingMsg.getFlag() == Message.STOP)
- getVertexValue().setState(State.END_VERTEX);
+ getVertexValue().setState(State2.END_VERTEX);
}
}
/**
* After partition phase, reset state: ex. psudoHead and psudoRear -> null
*/
public void resetState() {
- if (getVertexValue().getState() == State.PSEUDOHEAD || getVertexValue().getState() == State.PSEUDOREAR) {
- getVertexValue().setState(State.NON_VERTEX);
+ if (getVertexValue().getState() == State2.PSEUDOHEAD || getVertexValue().getState() == State2.PSEUDOREAR) {
+ getVertexValue().setState(State2.NON_VERTEX);
}
- if(getVertexValue().getState() == State.START_HALT)
- getVertexValue().setState(State.START_VERTEX);
+ if(getVertexValue().getState() == State2.START_HALT)
+ getVertexValue().setState(State2.START_VERTEX);
}
@Override
@@ -388,7 +388,7 @@
finalProcessPartitionPhase(msgIterator);
} else if (getSuperstep() % 2 == 1 && getSuperstep() <= maxIteration) {
resetState();
- if(getVertexValue().getState() == State.START_VERTEX)
+ if(getVertexValue().getState() == State2.START_VERTEX)
sendMsgToPathVertexMergePhase(msgIterator);
voteToHalt();
} else if (getSuperstep() % 2 == 0 && getSuperstep() <= maxIteration) {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
index e702bbd..d0a6da2 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P4ForPathMergeVertex.java
@@ -11,6 +11,7 @@
import edu.uci.ics.genomix.pregelix.format.NaiveAlgorithmForPathMergeOutputFormat;
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
import edu.uci.ics.genomix.pregelix.type.MessageFlag;
/*
@@ -85,7 +86,7 @@
outFlag = (byte)0;
inFlag = (byte)0;
// Node may be marked as head b/c it's a real head or a real tail
- headFlag = (byte) (MessageFlag.IS_HEAD & getVertexValue().getState());
+ headFlag = (byte) (State.IS_HEAD & getVertexValue().getState());
outgoingMsg.reset();
}
@@ -101,7 +102,7 @@
* set nextID to the element that's next (in the node's FF or FR list), returning true when there is a next neighbor
*/
protected boolean setNextInfo(VertexValueWritable value) {
- if(headFlag > 0 && (getVertexValue().getState() & MessageFlag.SHOULD_MERGEWITHPREV) > 0){
+ if(headFlag > 0 && (getVertexValue().getState() & State.SHOULD_MERGEWITHPREV) > 0){
return false;
}
if (value.getFFList().getCountOfPosition() > 0) {
@@ -121,7 +122,7 @@
* set prevID to the element that's previous (in the node's RR or RF list), returning true when there is a previous neighbor
*/
protected boolean setPrevInfo(VertexValueWritable value) {
- if(headFlag > 0 && (getVertexValue().getState() & MessageFlag.SHOULD_MERGEWITHNEXT) > 0){
+ if(headFlag > 0 && (getVertexValue().getState() & State.SHOULD_MERGEWITHNEXT) > 0){
return false;
}
if (value.getRRList().getCountOfPosition() > 0) {
@@ -213,7 +214,7 @@
//merge kmer
while (msgIterator.hasNext()) {
incomingMsg = msgIterator.next();
- selfFlag = (byte) (MessageFlag.VERTEX_MASK & getVertexValue().getState());
+ selfFlag = (byte) (State.VERTEX_MASK & getVertexValue().getState());
processMerge();
//head meets head, stop
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P5ForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P5ForPathMergeVertex.java
index a67d645..c8d45dc 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P5ForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/P5ForPathMergeVertex.java
@@ -15,9 +15,9 @@
import edu.uci.ics.genomix.pregelix.format.NaiveAlgorithmForPathMergeOutputFormat;
import edu.uci.ics.genomix.pregelix.io.MessageWritable;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
import edu.uci.ics.genomix.pregelix.type.Message;
import edu.uci.ics.genomix.pregelix.type.MessageFlag;
-import edu.uci.ics.genomix.pregelix.type.State;
import edu.uci.ics.genomix.pregelix.util.VertexUtil;
/*
@@ -242,7 +242,7 @@
public void setState() {
if (incomingMsg.getFlag() == Message.START) {
getVertexValue().setState(MessageFlag.IS_HEAD); //State.START_VERTEX
- } else if (incomingMsg.getFlag() == Message.END && getVertexValue().getState() != State.START_VERTEX) {
+ } else if (incomingMsg.getFlag() == Message.END && getVertexValue().getState() != State.IS_HEAD) {
getVertexValue().setState(MessageFlag.IS_HEAD);
getVertexValue().setKmer(getVertexValue().getKmer());
//voteToHalt();
@@ -432,8 +432,8 @@
initState(msgIterator);
else if (getSuperstep() % 4 == 3){
// Node may be marked as head b/c it's a real head or a real tail
- headFlag = (byte) (State.START_VERTEX & getVertexValue().getState());
- tailFlag = (byte) (State.END_VERTEX & getVertexValue().getState());
+ headFlag = (byte) (State.IS_HEAD & getVertexValue().getState());
+ tailFlag = (byte) (State.IS_HEAD & getVertexValue().getState()); //is_tail
outFlag = (byte) (headFlag | tailFlag);
// only PATH vertices are present. Find the ID's for my neighbors
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/ConvertNodeToIdValue.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/ConvertNodeToIdValue.java
index 9c20ce6..515bdbf 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/ConvertNodeToIdValue.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/ConvertNodeToIdValue.java
@@ -12,7 +12,8 @@
import org.apache.hadoop.io.SequenceFile.CompressionType;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
-import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+
import edu.uci.ics.genomix.type.NodeWritable;
import edu.uci.ics.genomix.type.PositionWritable;
@@ -39,7 +40,7 @@
outputValue.setRFList(node.getRFList());
outputValue.setRRList(node.getRRList());
outputValue.setKmer(node.getKmer());
- outputValue.setState(State.NON_VERTEX);
+ outputValue.setState(State.IS_HEAD);
writer.append(outputKey, outputValue);
}
writer.close();
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
index f31c1d0..9d7b735 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
@@ -13,7 +13,7 @@
import org.apache.hadoop.io.SequenceFile;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
-import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
import edu.uci.ics.genomix.type.KmerBytesWritable;
import edu.uci.ics.genomix.type.PositionWritable;
@@ -85,7 +85,7 @@
break;
}
if (value.getLengthOfKmer() != -1 && value.getLengthOfKmer() <= maxLength
- && value.getState() == State.FINAL_VERTEX) {
+ && value.getState() == State.IS_FINAL) {
bw.write(key.toString() + "\t" + value.toString());
bw.newLine();
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/DirectionFlag.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/DirectionFlag.java
new file mode 100644
index 0000000..6e1bc4b
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/DirectionFlag.java
@@ -0,0 +1,12 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+import edu.uci.ics.genomix.pregelix.io.VertexValueWritable.State;
+
+public class DirectionFlag extends State {
+ public static final byte DIR_NO = 0b000 << 0;
+ public static final byte DIR_FF = 0b001 << 0;
+ public static final byte DIR_FR = 0b010 << 0;
+ public static final byte DIR_RF = 0b011 << 0;
+ public static final byte DIR_RR = 0b100 << 0;
+ public static final byte DIR_MASK = 0b111 << 0;
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFlag.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFlag.java
index 09ea917..7b1b4e5 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFlag.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/MessageFlag.java
@@ -1,8 +1,6 @@
package edu.uci.ics.genomix.pregelix.type;
-import edu.uci.ics.genomix.type.NodeWritable.MergeDirFlag;
-
-public class MessageFlag extends MergeDirFlag {
+public class MessageFlag extends DirectionFlag {
//public static final byte FLIP = 1 << 6;
@@ -12,3 +10,5 @@
return "ERROR_BAD_MESSAGE";
}
}
+
+
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State2.java
similarity index 98%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State2.java
index 6730299..aa22972 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State2.java
@@ -1,6 +1,6 @@
package edu.uci.ics.genomix.pregelix.type;
-public class State {
+public class State2 {
public static final byte NON_VERTEX = 0;
public static final byte START_VERTEX = 1;
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/MergePathTest.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/MergePathTest.java
index 499abdc..e8ca60f 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/MergePathTest.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/pathmerge/MergePathTest.java
@@ -13,7 +13,7 @@
import org.junit.Test;
import edu.uci.ics.genomix.pregelix.io.VertexValueWritable;
-import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.type.State2;
import edu.uci.ics.genomix.type.KmerBytesWritable;
public class MergePathTest {
@@ -57,7 +57,7 @@
if (key == null || value == null) {
break;
}
- if (value.getState() == State.FINAL_VERTEX) {
+ if (value.getState() == State2.FINAL_VERTEX) {
/*bw.write(value.getMergeChain().toString()
+ "\t" + GeneCode.getSymbolFromBitMap(value.getAdjMap()));
bw.newLine();*/