add kmer factory
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/ValueStateWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/ValueStateWritable.java
index fc833f8..0edc762 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/ValueStateWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/ValueStateWritable.java
@@ -15,9 +15,6 @@
private byte adjMap;
private byte state;
private VKmerBytesWritable mergeChain;
-
- //extra - for test
- //private boolean isOp;
public ValueStateWritable() {
state = State.NON_VERTEX;
@@ -69,20 +66,11 @@
this.mergeChain.set(mergeChain);
}
- /*public boolean isOp() {
- return isOp;
- }
-
- public void setOp(boolean isOp) {
- this.isOp = isOp;
- }*/
-
@Override
public void readFields(DataInput in) throws IOException {
adjMap = in.readByte();
state = in.readByte();
mergeChain.readFields(in);
- //isOp = in.readBoolean();
}
@Override
@@ -90,7 +78,6 @@
out.writeByte(adjMap);
out.writeByte(state);
mergeChain.write(out);
- //out.writeBoolean(isOp);
}
@Override
@@ -103,7 +90,6 @@
return GeneCode.getSymbolFromBitMap(adjMap) + "\t" +
getLengthOfMergeChain() + "\t" +
mergeChain.toString();
- //+ "\t" + state;
}
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/util/VertexUtil.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/util/VertexUtil.java
index 66e0f43..854d176 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/util/VertexUtil.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/util/VertexUtil.java
@@ -1,14 +1,10 @@
package edu.uci.ics.genomix.pregelix.util;
-import edu.uci.ics.genomix.pregelix.operator.NaiveAlgorithmForPathMergeVertex;
import edu.uci.ics.genomix.type.GeneCode;
import edu.uci.ics.genomix.type.KmerBytesWritable;
import edu.uci.ics.genomix.type.VKmerBytesWritable;
-import edu.uci.ics.genomix.type.VKmerBytesWritableFactory;
public class VertexUtil {
- public static VKmerBytesWritableFactory kmerFactory = new VKmerBytesWritableFactory(
- NaiveAlgorithmForPathMergeVertex.kmerSize);
public static VKmerBytesWritable subKmer = new VKmerBytesWritable(0);
/**
* Single Vertex: in-degree = out-degree = 1
@@ -56,9 +52,11 @@
* check if mergeChain is cycle
*/
public static boolean isCycle(KmerBytesWritable vertexId, VKmerBytesWritable mergeChain, int kmerSize){
- for(int istart = 1; istart < mergeChain.getKmerLength() - kmerSize + 1; istart++) {
- subKmer = kmerFactory.getSubKmerFromChain(istart, kmerSize, mergeChain);
- if(subKmer.equals(vertexId))
+ subKmer.set(vertexId);
+ for(int istart = 1; istart < mergeChain.getKmerLength() - kmerSize + 1; istart++){
+ byte nextgene = mergeChain.getGeneCodeAtPosition(istart+kmerSize);
+ subKmer.shiftKmerWithNextCode(nextgene);
+ if(subKmer.equals(vertexId))
return true;
}
return false;