add vertex.activate() to notice update and change DirectionFlag to 2 bits
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 4936d17..d0d1ce9 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
@@ -308,8 +308,8 @@
             outFlag |= MessageFlag.DIR_FF;
         else if(getVertexValue().getFRList().getCountOfPosition() > 0)
             outFlag |= MessageFlag.DIR_FR;
-        else
-            outFlag |= MessageFlag.DIR_NO;
+//        else
+//            outFlag |= MessageFlag.DIR_NO;
     }
     
     /**
@@ -321,8 +321,8 @@
             outFlag |= MessageFlag.DIR_RF;
         else if(getVertexValue().getRRList().getCountOfPosition() > 0)
             outFlag |= MessageFlag.DIR_RR;
-        else
-            outFlag |= MessageFlag.DIR_NO;
+//        else
+//            outFlag |= MessageFlag.DIR_NO;
     }
     
     /**
@@ -334,24 +334,26 @@
             outFlag |= MessageFlag.IS_HEAD;
         switch(getVertexValue().getState() & State.SHOULD_MERGE_MASK){
             case State.SHOULD_MERGEWITHPREV:
-                setSuccessorAdjMsg();
-                if(ifFlipWithPredecessor())
-                    outgoingMsg.setFlip(true);
-                outgoingMsg.setFlag(outFlag);
-                outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
-                outgoingMsg.setSourceVertexId(getVertexId());
-                if(getNextDestVertexId(getVertexValue()) != null)
+                if(getNextDestVertexId(getVertexValue()) != null){
+                    setSuccessorAdjMsg();
+                    if(ifFlipWithPredecessor())
+                        outgoingMsg.setFlip(true);
+                    outgoingMsg.setFlag(outFlag);
+                    outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
+                    outgoingMsg.setSourceVertexId(getVertexId());
                     sendMsg(getNextDestVertexId(getVertexValue()), outgoingMsg);
+                }
                 break;
             case State.SHOULD_MERGEWITHNEXT:
-                setPredecessorAdjMsg();
-                if(ifFilpWithSuccessor())
-                    outgoingMsg.setFlip(true);
-                outgoingMsg.setFlag(outFlag);
-                outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
-                outgoingMsg.setSourceVertexId(getVertexId());
-                if(getPrevDestVertexId(getVertexValue()) != null)
+                if(getPrevDestVertexId(getVertexValue()) != null){
+                    setPredecessorAdjMsg();
+                    if(ifFilpWithSuccessor())
+                        outgoingMsg.setFlip(true);
+                    outgoingMsg.setFlag(outFlag);
+                    outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
+                    outgoingMsg.setSourceVertexId(getVertexId());
                     sendMsg(getPrevDestVertexId(getVertexValue()), outgoingMsg);
+                }
                 break; 
         }
     }
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 28d0563..a6ebb27 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
@@ -160,7 +160,6 @@
             
             curHead = isNodeRandomHead(curKmer);
             
-            
             // the headFlag and tailFlag's indicate if the node is at the beginning or end of a simple path. 
             // We prevent merging towards non-path nodes
             hasNext = setNextInfo(getVertexValue());//&& headFlag == 0;
@@ -198,12 +197,14 @@
                     }
                 }
             }
+            this.activate();
         }
         else if (getSuperstep() % 4 == 0){
             //update neighber
             while (msgIterator.hasNext()) {
                 incomingMsg = msgIterator.next();
                 processUpdate();
+                this.activate();
                 if(VertexUtil.isHeadOrRearVertexWithDegree(getVertexValue()))
                     voteToHalt();
             }
@@ -216,7 +217,7 @@
                 incomingMsg = msgIterator.next();
                 selfFlag = (byte) (State.VERTEX_MASK & getVertexValue().getState());
                 processMerge();
-                
+                this.activate();
                 //head meets head, stop
                 if(getMsgFlag() == MessageFlag.IS_HEAD && selfFlag == MessageFlag.IS_HEAD)
                     voteToHalt();
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
index 51a73f1..4785205 100644
--- 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
@@ -3,7 +3,7 @@
 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_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;
diff --git a/genomix/genomix-pregelix/src/test/resources/only_pathmerge.txt b/genomix/genomix-pregelix/src/test/resources/only_pathmerge.txt
index 3d007d2..5a15ca0 100644
--- a/genomix/genomix-pregelix/src/test/resources/only_pathmerge.txt
+++ b/genomix/genomix-pregelix/src/test/resources/only_pathmerge.txt
@@ -1 +1 @@
-P4ForMergeGraph.xml
+LogAlgorithmForMergeGraph.xml