Merge branch 'wbiesing/genomix/VKmers' into nanzhang/hyracks_genomix
Conflicts:
genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
genomix/genomix-data/src/main/java/edu/uci/ics/genomix/velvet/oldtype/NodeWritable.java
genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/contrail/graph/AggregateKmerAggregateFactory.java
genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/contrail/graph/ReadsKeyValueParserFactory.java
genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
index bc4fc2f..df93069 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/VKmerBytesWritable.java
@@ -28,6 +28,7 @@
import edu.uci.ics.genomix.data.Marshal;
import edu.uci.ics.genomix.type.NodeWritable.DirectionFlag;
+
/**
* Variable-length kmer which stores its length internally.
* Note: `offset` as used in this class is the offset at which the *kmer*
@@ -497,6 +498,11 @@
clearLeadBit();
saveHeader(lettersInKmer);
}
+
+ public void mergeWithFFKmer(int kmerSize, KmerBytesWritable kmer) {
+ // TODO make this more efficient
+ mergeWithFFKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+ }
/**
* Merge Kmer with the next connected Kmer, when that Kmer needs to be
@@ -538,6 +544,11 @@
}
saveHeader(lettersInKmer);
}
+
+ public void mergeWithFRKmer(int kmerSize, KmerBytesWritable kmer) {
+ // TODO make this more efficient
+ mergeWithFRKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+ }
/**
* Merge Kmer with the previous connected Kmer, when that kmer needs to be
@@ -550,10 +561,16 @@
* : the previous kmer
*/
public void mergeWithRFKmer(int initialKmerSize, VKmerBytesWritable preKmer) {
+ // TODO make this more efficient
VKmerBytesWritable reversed = new VKmerBytesWritable(preKmer.lettersInKmer);
reversed.setByReadReverse(preKmer.toString().getBytes(), 0);
mergeWithRRKmer(initialKmerSize, reversed);
}
+
+ public void mergeWithRFKmer(int kmerSize, KmerBytesWritable kmer) {
+ // TODO make this more efficient
+ mergeWithRFKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+ }
/**
* Merge Kmer with the previous connected Kmer e.g. AACAACC merge with
@@ -590,6 +607,11 @@
bytes, kmerStartOffset, bytesUsed);
clearLeadBit();
}
+
+ public void mergeWithRRKmer(int kmerSize, KmerBytesWritable kmer) {
+ // TODO make this more efficient
+ mergeWithRRKmer(kmerSize, new VKmerBytesWritable(kmer.toString()));
+ }
public void mergeWithKmerInDir(byte dir, int initialKmerSize, VKmerBytesWritable kmer) {
switch (dir & DirectionFlag.DIR_MASK) {
@@ -609,5 +631,16 @@
throw new RuntimeException("Direction not recognized: " + dir);
}
}
+ public void mergeWithKmerInDir(byte dir, int initialKmerSize, KmerBytesWritable kmer) {
+ // TODO make this more efficient
+ mergeWithKmerInDir(dir, initialKmerSize, new VKmerBytesWritable(kmer.toString()));
+ }
+
+ public KmerBytesWritable asFixedLengthKmer() {
+ if (lettersInKmer != KmerBytesWritable.getKmerLength()) {
+ throw new IllegalArgumentException("VKmer " + this.toString() + " is not of the same length as the fixed length Kmer (" + KmerBytesWritable.getKmerLength() + " )!");
+ }
+ return new KmerBytesWritable(bytes, kmerStartOffset);
+ }
}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixMapper.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixMapper.java
index 98f561f..833462c 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixMapper.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixMapper.java
@@ -17,6 +17,7 @@
import edu.uci.ics.genomix.type.NodeWritable;
import edu.uci.ics.genomix.type.PositionListWritable;
import edu.uci.ics.genomix.type.PositionWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
@SuppressWarnings("deprecation")
public class GenomixMapper extends MapReduceBase implements
@@ -49,17 +50,18 @@
@Override
public void configure(JobConf job) {
KMER_SIZE = Integer.parseInt(job.get("sizeKmer"));
- preForwardKmer = new KmerBytesWritable(KMER_SIZE);
- preReverseKmer = new KmerBytesWritable(KMER_SIZE);
- curForwardKmer = new KmerBytesWritable(KMER_SIZE);
- curReverseKmer = new KmerBytesWritable(KMER_SIZE);
- nextForwardKmer = new KmerBytesWritable(KMER_SIZE);
- nextReverseKmer = new KmerBytesWritable(KMER_SIZE);
+ KmerBytesWritable.setGlobalKmerLength(KMER_SIZE);
+ preForwardKmer = new KmerBytesWritable();
+ preReverseKmer = new KmerBytesWritable();
+ curForwardKmer = new KmerBytesWritable();
+ curReverseKmer = new KmerBytesWritable();
+ nextForwardKmer = new KmerBytesWritable();
+ nextReverseKmer = new KmerBytesWritable();
nodeId = new PositionWritable();
nodeIdList = new PositionListWritable();
- edgeListForPreKmer = new KmerListWritable(KMER_SIZE);
- edgeListForNextKmer = new KmerListWritable(KMER_SIZE);
- outputNode = new NodeWritable(KMER_SIZE);
+ edgeListForPreKmer = new KmerListWritable();
+ edgeListForNextKmer = new KmerListWritable();
+ outputNode = new NodeWritable();
preKmerDir = KmerDir.FORWARD;
curKmerDir = KmerDir.FORWARD;
nextKmerDir = KmerDir.FORWARD;
@@ -86,7 +88,7 @@
}
/** first kmer **/
- outputNode.reset(KMER_SIZE);
+ outputNode.reset();
curForwardKmer.setByRead(array, 0);
curReverseKmer.setByReadReverse(array, 0);
curKmerDir = curForwardKmer.compareTo(curReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
@@ -100,7 +102,7 @@
/** middle kmer **/
for (int i = KMER_SIZE + 1; i < array.length; i++) {
- outputNode.reset(KMER_SIZE);
+ outputNode.reset();
setPreKmerByOldCurKmer();
setCurKmerByOldNextKmer();
setNextKmer(array[i]);
@@ -114,7 +116,7 @@
}
/** last kmer **/
- outputNode.reset(KMER_SIZE);
+ outputNode.reset();
setPreKmerByOldCurKmer();
setCurKmerByOldNextKmer();
//set value.nodeId
@@ -138,12 +140,12 @@
case FORWARD:
switch(preKmerDir){
case FORWARD:
- edgeListForPreKmer.reset(KMER_SIZE);
+ edgeListForPreKmer.reset();
edgeListForPreKmer.append(preForwardKmer);
outputNode.setRRList(edgeListForPreKmer);
break;
case REVERSE:
- edgeListForPreKmer.reset(KMER_SIZE);
+ edgeListForPreKmer.reset();
edgeListForPreKmer.append(preReverseKmer);
outputNode.setRFList(edgeListForPreKmer);
break;
@@ -152,12 +154,12 @@
case REVERSE:
switch(preKmerDir){
case FORWARD:
- edgeListForPreKmer.reset(KMER_SIZE);
+ edgeListForPreKmer.reset();
edgeListForPreKmer.append(preForwardKmer);
outputNode.setFRList(edgeListForPreKmer);
break;
case REVERSE:
- edgeListForPreKmer.reset(KMER_SIZE);
+ edgeListForPreKmer.reset();
edgeListForPreKmer.append(preReverseKmer);
outputNode.setFFList(edgeListForPreKmer);
break;
@@ -171,12 +173,12 @@
case FORWARD:
switch(nextKmerDir){
case FORWARD:
- edgeListForNextKmer.reset(KMER_SIZE);
+ edgeListForNextKmer.reset();
edgeListForNextKmer.append(nextForwardKmer);
outputNode.setFFList(edgeListForNextKmer);
break;
case REVERSE:
- edgeListForNextKmer.reset(KMER_SIZE);
+ edgeListForNextKmer.reset();
edgeListForNextKmer.append(nextReverseKmer);
outputNode.setFRList(edgeListForNextKmer);
break;
@@ -185,12 +187,12 @@
case REVERSE:
switch(nextKmerDir){
case FORWARD:
- edgeListForNextKmer.reset(KMER_SIZE);
+ edgeListForNextKmer.reset();
edgeListForNextKmer.append(nextForwardKmer);
outputNode.setRFList(edgeListForNextKmer);
break;
case REVERSE:
- edgeListForNextKmer.reset(KMER_SIZE);
+ edgeListForNextKmer.reset();
edgeListForNextKmer.append(nextReverseKmer);
outputNode.setRRList(edgeListForNextKmer);
break;
@@ -201,7 +203,7 @@
//set preKmer by shifting curKmer with preChar
public void setPreKmer(byte preChar){
- preForwardKmer.set(curForwardKmer);
+ preForwardKmer.setAsCopy(curForwardKmer);
preForwardKmer.shiftKmerWithPreChar(preChar);
preReverseKmer.setByReadReverse(preForwardKmer.toString().getBytes(), preForwardKmer.getOffset());
preKmerDir = preForwardKmer.compareTo(preReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
@@ -209,7 +211,7 @@
//set nextKmer by shifting curKmer with nextChar
public void setNextKmer(byte nextChar){
- nextForwardKmer.set(curForwardKmer);
+ nextForwardKmer.setAsCopy(curForwardKmer);
nextForwardKmer.shiftKmerWithNextChar(nextChar);
nextReverseKmer.setByReadReverse(nextForwardKmer.toString().getBytes(), nextForwardKmer.getOffset());
nextKmerDir = nextForwardKmer.compareTo(nextReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
@@ -218,15 +220,15 @@
//old curKmer becomes current preKmer
public void setPreKmerByOldCurKmer(){
preKmerDir = curKmerDir;
- preForwardKmer.set(curForwardKmer);
- preReverseKmer.set(curReverseKmer);
+ preForwardKmer.setAsCopy(curForwardKmer);
+ preReverseKmer.setAsCopy(curReverseKmer);
}
//old nextKmer becomes current curKmer
public void setCurKmerByOldNextKmer(){
curKmerDir = nextKmerDir;
- curForwardKmer.set(nextForwardKmer);
- curReverseKmer.set(nextReverseKmer);
+ curForwardKmer.setAsCopy(nextForwardKmer);
+ curReverseKmer.setAsCopy(nextReverseKmer);
}
public void setMapperOutput(OutputCollector<KmerBytesWritable, NodeWritable> output) throws IOException{
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 1633c26..f39cdcb 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
@@ -23,15 +23,16 @@
@Override
public void configure(JobConf job) {
KMER_SIZE = GenomixMapper.KMER_SIZE;
- outputNode = new NodeWritable(KMER_SIZE);
- tmpNode = new NodeWritable(KMER_SIZE);
+ KmerBytesWritable.setGlobalKmerLength(KMER_SIZE);
+ outputNode = new NodeWritable();
+ tmpNode = new NodeWritable();
}
@Override
public void reduce(KmerBytesWritable key, Iterator<NodeWritable> values,
OutputCollector<KmerBytesWritable, NodeWritable> output,
Reporter reporter) throws IOException {
- outputNode.reset(KMER_SIZE);
+ outputNode.reset();
while (values.hasNext()) {
tmpNode.set(values.next());
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/mergepaths/h3/MergePathsH3.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/mergepaths/h3/MergePathsH3.java
index 8736fe3..b28328f 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/mergepaths/h3/MergePathsH3.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/mergepaths/h3/MergePathsH3.java
@@ -27,6 +27,7 @@
import edu.uci.ics.genomix.hadoop.pmcommon.PathNodeInitial.PathNodeFlag;
import edu.uci.ics.genomix.oldtype.NodeWritable;
import edu.uci.ics.genomix.oldtype.PositionWritable;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
@SuppressWarnings("deprecation")
public class MergePathsH3 extends Configured implements Tool {
@@ -58,12 +59,14 @@
private boolean finalMerge;
public void configure(JobConf conf) {
+ KMER_SIZE = conf.getInt("sizeKmer", 0);
+ KmerBytesWritable.setGlobalKmerLength(KMER_SIZE);
+
randSeed = conf.getLong("randomSeed", 0);
randGenerator = new Random(randSeed);
probBeingRandomHead = conf.getFloat("probBeingRandomHead", 0.5f);
finalMerge = conf.getBoolean("finalMerge", false);
- KMER_SIZE = conf.getInt("sizeKmer", 0);
outputValue = new NodeWithFlagWritable(KMER_SIZE);
outputKey = new PositionWritable();
curNode = new NodeWritable(KMER_SIZE);
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/removetips/RemoveTips.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/removetips/RemoveTips.java
index 83fe200..f1bfec6 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/removetips/RemoveTips.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/graphclean/removetips/RemoveTips.java
@@ -60,7 +60,7 @@
// kill this node by NOT mapping it. Update my neighbors with a suicide note
//TODO: update neighbors by removing me from its list
} else {
- outputValue.set(MergeMessageFlag.MSG_SELF, curNode);
+ outputValue.setAsCopy(MergeMessageFlag.MSG_SELF, curNode);
output.collect(key, value);
}
}
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/velvetgraphbuilding/PositionListAndKmerWritable.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/velvetgraphbuilding/PositionListAndKmerWritable.java
index 943b505..550cc7c 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/velvetgraphbuilding/PositionListAndKmerWritable.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/velvetgraphbuilding/PositionListAndKmerWritable.java
@@ -54,12 +54,12 @@
public void set(PositionListAndKmerWritable right) {
this.countOfKmer = right.countOfKmer;
this.vertexIDList.set(right.vertexIDList);
- this.kmer.set(right.kmer);
+ this.kmer.setAsCopy(right.kmer);
}
public void set(PositionListWritable list, KmerBytesWritable kmer) {
this.vertexIDList.set(list);
- this.kmer.set(kmer);
+ this.kmer.setAsCopy(kmer);
}
@Override
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
index 841f9f8..84f9fe0 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
@@ -79,7 +79,7 @@
private KmerListWritable edgeListForPreKmer = new KmerListWritable();
private KmerListWritable edgeListForNextKmer = new KmerListWritable();
private NodeWritable outputNode = new NodeWritable();
- private NodeWritable outputNode2 = new NodeWritable();
+// private NodeWritable outputNode2 = new NodeWritable();
private KmerBytesWritable preForwardKmer = new KmerBytesWritable();
private KmerBytesWritable preReverseKmer = new KmerBytesWritable();
@@ -148,64 +148,12 @@
}
/*last kmer*/
-/* outputNode.reset();
+ outputNode.reset();
setPreKmerByOldCurKmer();
setCurKmerByOldNextKmer();
setnodeId(mateId, readID, 0);//array.length - kmerSize + 1
setEdgeListForPreKmer();
- writeToFrame(writer);*/
- preKmerDir = curKmerDir;
- preForwardKmer.setAsCopy(curForwardKmer);
- preReverseKmer.setAsCopy(curReverseKmer);
-
- curKmerDir = nextKmerDir;
- curForwardKmer.setAsCopy(nextForwardKmer);
- curReverseKmer.setAsCopy(nextReverseKmer);
-
- nodeId.set(mateId, readID, 0);
- nodeIdList.reset();
- nodeIdList.append(nodeId);
- outputNode2.setNodeIdList(nodeIdList);
-
- switch(curKmerDir){
- case FORWARD:
- switch(preKmerDir){
- case FORWARD:
- edgeListForPreKmer.reset();
- edgeListForPreKmer.append(preForwardKmer);
- outputNode2.setRRList(edgeListForPreKmer);
- break;
- case REVERSE:
- edgeListForPreKmer.reset();
- edgeListForPreKmer.append(preReverseKmer);
- outputNode2.setRFList(edgeListForPreKmer);
- break;
- }
- break;
- case REVERSE:
- switch(preKmerDir){
- case FORWARD:
- edgeListForPreKmer.reset();
- edgeListForPreKmer.append(preForwardKmer);
- outputNode2.setFRList(edgeListForPreKmer);
- break;
- case REVERSE:
- edgeListForPreKmer.reset();
- edgeListForPreKmer.append(preReverseKmer);
- outputNode2.setFFList(edgeListForPreKmer);
- break;
- }
- break;
- }
-
- switch(curKmerDir){
- case FORWARD:
- InsertToFrame(curForwardKmer, outputNode2, writer);
- break;
- case REVERSE:
- InsertToFrame(curReverseKmer, outputNode2, writer);
- break;
- }
+ writeToFrame(writer);
}
public void setnodeId(byte mateId, long readID, int posId){
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanInputFormat.java
index e36e344..e8a72ce 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/GraphCleanInputFormat.java
@@ -60,7 +60,7 @@
/**
* set the src vertex id
*/
- vertexId.set(getRecordReader().getCurrentKey());
+ vertexId.setAsCopy(getRecordReader().getCurrentKey());
vertex.setVertexId(vertexId);
/**
* set the vertex value
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
index 0d685de..4dfff11 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
@@ -11,6 +11,7 @@
import edu.uci.ics.pregelix.api.io.VertexReader;
import edu.uci.ics.pregelix.api.util.BspUtils;
import edu.uci.ics.genomix.type.NodeWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
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;
@@ -64,19 +65,20 @@
/**
* set the src vertex id
*/
- vertexId.set(getRecordReader().getCurrentKey());
+ vertexId.setAsCopy(getRecordReader().getCurrentKey());
vertex.setVertexId(vertexId);
/**
* set the vertex value
*/
node.set(getRecordReader().getCurrentValue());
- vertexValue.setKmerlength(node.getKmerlength());
+ vertexValue.setKmerlength(node.getKmerLength());
vertexValue.setNodeIdList(node.getNodeIdList());
vertexValue.setFFList(node.getFFList());
vertexValue.setFRList(node.getFRList());
vertexValue.setRFList(node.getRFList());
vertexValue.setRRList(node.getRRList());
- vertexValue.setKmer(getRecordReader().getCurrentKey());
+ // TODO make this more efficient (don't use toString)
+ vertexValue.setKmer(new VKmerBytesWritable(getRecordReader().getCurrentKey().toString()));
vertexValue.setState(State.IS_NON);
vertex.setVertexValue(vertexValue);
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/AdjacencyListWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/AdjacencyListWritable.java
index c35ad7f..b19a0cf 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/AdjacencyListWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/AdjacencyListWritable.java
@@ -19,13 +19,13 @@
}
public AdjacencyListWritable(int kmerSize){
- forwardList = new KmerListWritable(kmerSize);
- reverseList = new KmerListWritable(kmerSize);
+ forwardList = new KmerListWritable();
+ reverseList = new KmerListWritable();
}
public void set(AdjacencyListWritable adjacencyList){
- forwardList.set(adjacencyList.getForwardList());
- reverseList.set(adjacencyList.getReverseList());
+ forwardList.setCopy(adjacencyList.getForwardList());
+ reverseList.setCopy(adjacencyList.getReverseList());
}
public void reset(){
@@ -34,8 +34,8 @@
}
public void reset(int kmerSize){
- forwardList.reset(kmerSize);
- reverseList.reset(kmerSize);
+ forwardList.reset();
+ reverseList.reset();
}
public int getCountOfPosition(){
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..9fd15dd 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
@@ -27,7 +27,7 @@
public MergeBubbleMessageWritable() {
sourceVertexId = new PositionWritable();
- chainVertexId = new KmerBytesWritable(0);
+ chainVertexId = new KmerBytesWritable();
neighberNode = new AdjacencyListWritable();
startVertexId = new PositionWritable();
message = Message.NON;
@@ -42,7 +42,7 @@
}
if (chainVertexId != null) {
checkMessage |= CheckMessage.CHAIN;
- this.chainVertexId.set(msg.getChainVertexId());
+ this.chainVertexId.setAsCopy(msg.getChainVertexId());
}
if (neighberNode != null) {
checkMessage |= CheckMessage.NEIGHBER;
@@ -63,7 +63,7 @@
}
if (chainVertexId != null) {
checkMessage |= CheckMessage.CHAIN;
- this.chainVertexId.set(chainVertexId);
+ this.chainVertexId.setAsCopy(chainVertexId);
}
if (neighberNode != null) {
checkMessage |= CheckMessage.NEIGHBER;
@@ -78,7 +78,7 @@
public void reset() {
checkMessage = 0;
- chainVertexId.reset(1);
+// chainVertexId.reset();
neighberNode.reset();
message = Message.NON;
}
@@ -101,7 +101,7 @@
public void setChainVertexId(KmerBytesWritable chainVertexId) {
if (chainVertexId != null) {
checkMessage |= CheckMessage.CHAIN;
- this.chainVertexId.set(chainVertexId);
+ this.chainVertexId.setAsCopy(chainVertexId);
}
}
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 6356715..d9177e2 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
@@ -28,7 +28,7 @@
public MessageWritable() {
sourceVertexId = new KmerBytesWritable();
- kmer = new KmerBytesWritable(0);
+ kmer = new KmerBytesWritable();
neighberNode = new AdjacencyListWritable();
flag = Message.NON;
isFlip = false;
@@ -38,7 +38,7 @@
public MessageWritable(int kmerSize) {
kmerlength = kmerSize;
sourceVertexId = new KmerBytesWritable();
- kmer = new KmerBytesWritable(0);
+ kmer = new KmerBytesWritable();
neighberNode = new AdjacencyListWritable(kmerSize);
flag = Message.NON;
isFlip = false;
@@ -50,11 +50,11 @@
checkMessage = 0;
if (sourceVertexId != null) {
checkMessage |= CheckMessage.SOURCE;
- this.sourceVertexId.set(msg.getSourceVertexId());
+ this.sourceVertexId.setAsCopy(msg.getSourceVertexId());
}
if (kmer != null) {
checkMessage |= CheckMessage.CHAIN;
- this.kmer.set(msg.getKmer());
+ this.kmer.setAsCopy(msg.getKmer());
}
if (neighberNode != null) {
checkMessage |= CheckMessage.NEIGHBER;
@@ -70,11 +70,11 @@
checkMessage = 0;
if (sourceVertexId != null) {
checkMessage |= CheckMessage.SOURCE;
- this.sourceVertexId.set(sourceVertexId);
+ this.sourceVertexId.setAsCopy(sourceVertexId);
}
if (chainVertexId != null) {
checkMessage |= CheckMessage.CHAIN;
- this.kmer.set(chainVertexId);
+ this.kmer.setAsCopy(chainVertexId);
}
if (neighberNode != null) {
checkMessage |= CheckMessage.NEIGHBER;
@@ -90,7 +90,7 @@
public void reset(int kmerSize) {
checkMessage = (byte) 0;
kmerlength = kmerSize;
- kmer.reset(1);
+// kmer.reset();
neighberNode.reset(kmerSize);
flag = Message.NON;
isFlip = false;
@@ -103,7 +103,7 @@
public void setSourceVertexId(KmerBytesWritable sourceVertexId) {
if (sourceVertexId != null) {
checkMessage |= CheckMessage.SOURCE;
- this.sourceVertexId.set(sourceVertexId);
+ this.sourceVertexId.setAsCopy(sourceVertexId);
}
}
@@ -114,7 +114,7 @@
public void setChainVertexId(KmerBytesWritable chainVertexId) {
if (chainVertexId != null) {
checkMessage |= CheckMessage.CHAIN;
- this.kmer.set(chainVertexId);
+ this.kmer.setAsCopy(chainVertexId);
}
}
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 065bfd5..60ad003 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
@@ -7,6 +7,7 @@
import edu.uci.ics.genomix.type.PositionListWritable;
import edu.uci.ics.genomix.pregelix.type.MessageFlag;
import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.VKmerBytesWritable;
import edu.uci.ics.genomix.type.KmerListWritable;
public class VertexValueWritable implements WritableComparable<VertexValueWritable> {
@@ -39,8 +40,8 @@
private AdjacencyListWritable incomingList;
private AdjacencyListWritable outgoingList;
private byte state;
- private KmerBytesWritable kmer;
- private KmerBytesWritable mergeDest;
+ private VKmerBytesWritable kmer;
+ private VKmerBytesWritable mergeDest;
private int kmerlength = 0;
public VertexValueWritable() {
@@ -53,13 +54,13 @@
incomingList = new AdjacencyListWritable();
outgoingList = new AdjacencyListWritable();
state = State.IS_NON;
- kmer = new KmerBytesWritable(kmerSize);
- mergeDest = new KmerBytesWritable(kmerSize);
+ kmer = new VKmerBytesWritable();
+ mergeDest = new VKmerBytesWritable();
}
public VertexValueWritable(PositionListWritable nodeIdList, KmerListWritable forwardForwardList, KmerListWritable forwardReverseList,
KmerListWritable reverseForwardList, KmerListWritable reverseReverseList,
- byte state, KmerBytesWritable kmer) {
+ byte state, VKmerBytesWritable kmer) {
set(nodeIdList, forwardForwardList, forwardReverseList,
reverseForwardList, reverseReverseList,
state, kmer);
@@ -67,14 +68,14 @@
public void set(PositionListWritable nodeIdList, KmerListWritable forwardForwardList, KmerListWritable forwardReverseList,
KmerListWritable reverseForwardList, KmerListWritable reverseReverseList,
- byte state, KmerBytesWritable kmer) {
- this.kmerlength = kmer.kmerByteSize;
+ byte state, VKmerBytesWritable kmer) {
+ this.kmerlength = kmer.getKmerLetterLength();
this.incomingList.setForwardList(reverseForwardList);
this.incomingList.setReverseList(reverseReverseList);
this.outgoingList.setForwardList(forwardForwardList);
this.outgoingList.setReverseList(forwardReverseList);
this.state = state;
- this.kmer.set(kmer);
+ this.kmer.setAsCopy(kmer);
}
public void set(VertexValueWritable value) {
@@ -149,22 +150,22 @@
}
public int getLengthOfKmer() {
- return kmer.getKmerLength();
+ return kmer.getKmerLetterLength();
}
- public KmerBytesWritable getKmer() {
+ public VKmerBytesWritable getKmer() {
return kmer;
}
- public void setKmer(KmerBytesWritable kmer) {
- this.kmer.set(kmer);
+ public void setKmer(VKmerBytesWritable kmer) {
+ this.kmer.setAsCopy(kmer);
}
- public KmerBytesWritable getMergeDest() {
+ public VKmerBytesWritable getMergeDest() {
return mergeDest;
}
- public void setMergeDest(KmerBytesWritable mergeDest) {
+ public void setMergeDest(VKmerBytesWritable mergeDest) {
this.mergeDest = mergeDest;
}
@@ -180,11 +181,11 @@
public void reset(int kmerSize) {
this.kmerlength = kmerSize;
this.nodeIdList.reset();
- this.incomingList.getForwardList().reset(kmerSize);
- this.incomingList.getReverseList().reset(kmerSize);
- this.outgoingList.getForwardList().reset(kmerSize);
- this.outgoingList.getReverseList().reset(kmerSize);
- this.kmer.reset(0);
+ this.incomingList.getForwardList().reset();
+ this.incomingList.getReverseList().reset();
+ this.outgoingList.getForwardList().reset();
+ this.outgoingList.getReverseList().reset();
+// this.kmer.reset(0);
}
@Override
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/DataLoadLogFormatter.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/DataLoadLogFormatter.java
index bb60a25..95e070f 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/DataLoadLogFormatter.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/DataLoadLogFormatter.java
@@ -4,7 +4,7 @@
import java.util.logging.Handler;
import java.util.logging.LogRecord;
-import edu.uci.ics.genomix.oldtype.NodeWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
public class DataLoadLogFormatter extends Formatter {
private NodeWritable key;
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 5f6440f..7d6a1b9 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
@@ -12,11 +12,11 @@
// Create a DateFormat to format the logger timestamp.
//
private long step;
- private KmerBytesWritable sourceVertexId = new KmerBytesWritable(1);
- private KmerBytesWritable destVertexId = new KmerBytesWritable(1);
+ private KmerBytesWritable sourceVertexId = new KmerBytesWritable();
+ private KmerBytesWritable destVertexId = new KmerBytesWritable();
private MessageWritable msg = new MessageWritable();
private byte state;
- private KmerBytesWritable mergeChain = new KmerBytesWritable(1);;
+ private KmerBytesWritable mergeChain = new KmerBytesWritable();
//private boolean testDelete = false;
/**
* 0: general operation
@@ -32,8 +32,8 @@
public void set(long step, KmerBytesWritable sourceVertexId, KmerBytesWritable destVertexId,
MessageWritable msg, byte state) {
this.step = step;
- this.sourceVertexId.set(sourceVertexId);
- this.destVertexId.set(destVertexId);
+ this.sourceVertexId.setAsCopy(sourceVertexId);
+ this.destVertexId.setAsCopy(destVertexId);
this.msg = msg;
this.state = state;
this.operation = 0;
@@ -42,24 +42,24 @@
public void setMergeChain(long step, KmerBytesWritable sourceVertexId, KmerBytesWritable mergeChain) {
this.reset();
this.step = step;
- this.sourceVertexId.set(sourceVertexId);
- this.mergeChain.set(mergeChain);
+ this.sourceVertexId.setAsCopy(sourceVertexId);
+ this.mergeChain.setAsCopy(mergeChain);
this.operation = 2;
}
public void setVotoToHalt(long step, KmerBytesWritable sourceVertexId) {
this.reset();
this.step = step;
- this.sourceVertexId.set(sourceVertexId);
+ this.sourceVertexId.setAsCopy(sourceVertexId);
this.operation = 3;
}
public void reset() {
- this.sourceVertexId = new KmerBytesWritable(1);
- this.destVertexId = new KmerBytesWritable(1);
+ this.sourceVertexId = new KmerBytesWritable();
+ this.destVertexId = new KmerBytesWritable();
this.msg = new MessageWritable();
this.state = 0;
- this.mergeChain = new KmerBytesWritable(1);
+ this.mergeChain = new KmerBytesWritable();
}
public String format(LogRecord record) {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/NaiveAlgorithmLogFormatter.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/NaiveAlgorithmLogFormatter.java
index 4a5850a..6b23074 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/NaiveAlgorithmLogFormatter.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/log/NaiveAlgorithmLogFormatter.java
@@ -15,8 +15,8 @@
public void set(long step, KmerBytesWritable sourceVertexId, KmerBytesWritable destVertexId) {
this.step = step;
- this.sourceVertexId.set(sourceVertexId);
- this.destVertexId.set(destVertexId);
+ this.sourceVertexId.setAsCopy(sourceVertexId);
+ this.destVertexId.setAsCopy(destVertexId);
}
public String format(LogRecord record) {
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 ec608c5..1beee03 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
@@ -30,7 +30,7 @@
protected MessageWritable outgoingMsg = null;
protected KmerBytesWritable destVertexId = new KmerBytesWritable();
protected Iterator<KmerBytesWritable> posIterator;
- private KmerBytesWritable kmer = new KmerBytesWritable(kmerSize);
+ private KmerBytesWritable kmer = new KmerBytesWritable();
byte headFlag;
protected byte outFlag;
protected byte inFlag;
@@ -133,12 +133,12 @@
public void sendMsgToAllNextNodes(VertexValueWritable value) {
posIterator = value.getFFList().iterator(); // FFList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
posIterator = value.getFRList().iterator(); // FRList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
}
@@ -149,12 +149,12 @@
public void sendMsgToAllPreviousNodes(VertexValueWritable value) {
posIterator = value.getRFList().iterator(); // RFList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
posIterator = value.getRRList().iterator(); // RRList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
}
@@ -165,22 +165,22 @@
public void sendMsgToAllNeighborNodes(VertexValueWritable value){
posIterator = value.getFFList().iterator(); // FFList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
posIterator = value.getFRList().iterator(); // FRList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
posIterator = value.getFFList().iterator(); // FFList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
posIterator = value.getFRList().iterator(); // FRList
while(posIterator.hasNext()){
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
}
@@ -193,14 +193,14 @@
while(posIterator.hasNext()){
outgoingMsg.setFlag(AdjMessage.FROMFF);
outgoingMsg.setSourceVertexId(getVertexId());
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
posIterator = value.getFRList().iterator(); // FRList
while(posIterator.hasNext()){
outgoingMsg.setFlag(AdjMessage.FROMFR);
outgoingMsg.setSourceVertexId(getVertexId());
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
}
@@ -213,14 +213,14 @@
while(posIterator.hasNext()){
outgoingMsg.setFlag(AdjMessage.FROMRF);
outgoingMsg.setSourceVertexId(getVertexId());
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
posIterator = value.getRRList().iterator(); // RRList
while(posIterator.hasNext()){
outgoingMsg.setFlag(AdjMessage.FROMRR);
outgoingMsg.setSourceVertexId(getVertexId());
- destVertexId.set(posIterator.next());
+ destVertexId.setAsCopy(posIterator.next());
sendMsg(destVertexId, outgoingMsg);
}
}
@@ -397,7 +397,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setChainVertexId(getVertexValue().getKmer());
+ outgoingMsg.setChainVertexId(getVertexValue().getKmer().asFixedLengthKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getNextDestVertexId(getVertexValue())
break;
case MessageFlag.DIR_RF:
@@ -410,7 +410,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setChainVertexId(getVertexValue().getKmer());
+ outgoingMsg.setChainVertexId(getVertexValue().getKmer().asFixedLengthKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getPreDestVertexId(getVertexValue())
break;
}
@@ -437,7 +437,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setChainVertexId(getVertexValue().getKmer());
+ outgoingMsg.setChainVertexId(getVertexValue().getKmer().asFixedLengthKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getNextDestVertexId(getVertexValue())
break;
case MessageFlag.DIR_RF:
@@ -450,7 +450,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setChainVertexId(getVertexValue().getKmer());
+ outgoingMsg.setChainVertexId(getVertexValue().getKmer().asFixedLengthKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getPreDestVertexId(getVertexValue())
break;
}
@@ -473,7 +473,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setChainVertexId(getVertexValue().getKmer());
+ outgoingMsg.setChainVertexId(getVertexValue().getKmer().asFixedLengthKmer());
sendMsg(getNextDestVertexId(getVertexValue()), outgoingMsg);
deleteVertex(getVertexId());
break;
@@ -486,7 +486,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setChainVertexId(getVertexValue().getKmer());
+ outgoingMsg.setChainVertexId(getVertexValue().getKmer().asFixedLengthKmer());
sendMsg(getPreDestVertexId(getVertexValue()), outgoingMsg);
deleteVertex(getVertexId());
break;
@@ -646,7 +646,7 @@
match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length());
msgString = msg.getKmer().toString();
index = msgString.indexOf(match);
- kmer.reset(msgString.length() - index);
+// kmer.reset(msgString.length() - index);
kmer.setByRead(msgString.substring(index).getBytes(), 0);
break;
case MessageFlag.DIR_FR:
@@ -654,7 +654,7 @@
match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length());
msgString = GeneCode.reverseComplement(msg.getKmer().toString());
index = msgString.indexOf(match);
- kmer.reset(msgString.length() - index);
+// kmer.reset(msgString.length() - index);
kmer.setByReadReverse(msgString.substring(index).getBytes(), 0);
break;
case MessageFlag.DIR_RF:
@@ -662,7 +662,7 @@
match = selfString.substring(0,kmerSize - 1);
msgString = GeneCode.reverseComplement(msg.getKmer().toString());
index = msgString.lastIndexOf(match) + kmerSize - 2;
- kmer.reset(index + 1);
+// kmer.reset(index + 1);
kmer.setByReadReverse(msgString.substring(0, index + 1).getBytes(), 0);
break;
case MessageFlag.DIR_RR:
@@ -670,7 +670,7 @@
match = selfString.substring(0,kmerSize - 1);
msgString = msg.getKmer().toString();
index = msgString.lastIndexOf(match) + kmerSize - 2;
- kmer.reset(index + 1);
+// kmer.reset(index + 1);
kmer.setByRead(msgString.substring(0, index + 1).getBytes(), 0);
System.out.println(kmer.toString());
break;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
index 3b5a782..b6f2164 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
@@ -73,7 +73,7 @@
//send wantToMerge to next
tmpKmer = getNextDestVertexIdAndSetFlag(getVertexValue());
if(tmpKmer != null){
- destVertexId.set(tmpKmer);
+ destVertexId.setAsCopy(tmpKmer);
outgoingMsg.setFlag(outFlag);
outgoingMsg.setSourceVertexId(getVertexId());
sendMsg(destVertexId, outgoingMsg);
@@ -82,7 +82,7 @@
//send wantToMerge to prev
tmpKmer = getPreDestVertexIdAndSetFlag(getVertexValue());
if(tmpKmer != null){
- destVertexId.set(tmpKmer);
+ destVertexId.setAsCopy(tmpKmer);
outgoingMsg.setFlag(outFlag);
outgoingMsg.setSourceVertexId(getVertexId());
sendMsg(destVertexId, outgoingMsg);
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 a65f556..53e46af 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
@@ -60,7 +60,7 @@
private MessageWritable outgoingMsg = new MessageWritable();
private KmerBytesWritableFactory kmerFactory = new KmerBytesWritableFactory(1);
- private KmerBytesWritable lastKmer = new KmerBytesWritable(1);
+ private KmerBytesWritable lastKmer = new KmerBytesWritable();
private PositionWritable destVertexId = new PositionWritable();
private Iterator<PositionWritable> posIterator;
@@ -184,7 +184,7 @@
*/
public void mergeChainVertex() {
//merge chain
- lastKmer.set(kmerFactory.getLastKmerFromChain(incomingMsg.getLengthOfChain() - kmerSize + 1,
+ lastKmer.setAsCopy(kmerFactory.getLastKmerFromChain(incomingMsg.getLengthOfChain() - kmerSize + 1,
incomingMsg.getKmer()));
getVertexValue().setKmer(kmerFactory.mergeTwoKmer(getVertexValue().getKmer(), lastKmer));
getVertexValue().setOutgoingList(incomingMsg.getNeighberNode());
@@ -225,7 +225,7 @@
outgoingMsg.setChainVertexId(getVertexValue().getKmer());
if (getVertexValue().getState() == State.IS_HEAD)//is_tail
outgoingMsg.setFlag(Message.STOP);
- destVertexId.set(incomingMsg.getSourceVertexId());
+ destVertexId.setAsCopy(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 f2bb3db..fd3a1db 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
@@ -230,7 +230,7 @@
* merge chain vertex
*/
public void mergeChainVertex(){
- lastKmer.set(kmerFactory.getLastKmerFromChain(incomingMsg.getLengthOfChain() - kmerSize + 1,
+ lastKmer.setAsCopy(kmerFactory.getLastKmerFromChain(incomingMsg.getLengthOfChain() - kmerSize + 1,
incomingMsg.getKmer()));
getVertexValue().setKmer(
kmerFactory.mergeTwoKmer(getVertexValue().getKmer(),
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 c473867..7a22d25 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
@@ -111,12 +111,12 @@
*/
protected boolean setNextInfo(VertexValueWritable value) {
if (value.getFFList().getCountOfPosition() > 0) {
- nextKmer.set(value.getFFList().getPosition(0));
+ nextKmer.setAsCopy(value.getFFList().getPosition(0));
nextHead = isNodeRandomHead(nextKmer);
return true;
}
if (value.getFRList().getCountOfPosition() > 0) {
- nextKmer.set(value.getFRList().getPosition(0));
+ nextKmer.setAsCopy(value.getFRList().getPosition(0));
nextHead = isNodeRandomHead(nextKmer);
return true;
}
@@ -128,12 +128,12 @@
*/
protected boolean setPrevInfo(VertexValueWritable value) {
if (value.getRRList().getCountOfPosition() > 0) {
- prevKmer.set(value.getRRList().getPosition(0));
+ prevKmer.setAsCopy(value.getRRList().getPosition(0));
prevHead = isNodeRandomHead(prevKmer);
return true;
}
if (value.getRFList().getCountOfPosition() > 0) {
- prevKmer.set(value.getRFList().getPosition(0));
+ prevKmer.setAsCopy(value.getRFList().getPosition(0));
prevHead = isNodeRandomHead(prevKmer);
return true;
}
@@ -156,7 +156,7 @@
setStateAsNoMerge();
// only PATH vertices are present. Find the ID's for my neighbors
- curKmer.set(getVertexId());
+ curKmer.setAsCopy(getVertexId());
curHead = isNodeRandomHead(curKmer);
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 8a2a301..7f8a832 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
@@ -113,12 +113,12 @@
*/
protected boolean setNextInfo(VertexValueWritable value) {
if (value.getFFList().getCountOfPosition() > 0) {
- nextID.set(value.getFFList().getPosition(0));
+ nextID.setAsCopy(value.getFFList().getPosition(0));
nextHead = isNodeRandomHead(nextID);
return true;
}
if (value.getFRList().getCountOfPosition() > 0) {
- nextID.set(value.getFRList().getPosition(0));
+ nextID.setAsCopy(value.getFRList().getPosition(0));
nextHead = isNodeRandomHead(nextID);
return true;
}
@@ -130,12 +130,12 @@
*/
protected boolean setPrevInfo(VertexValueWritable value) {
if (value.getRRList().getCountOfPosition() > 0) {
- prevID.set(value.getRRList().getPosition(0));
+ prevID.setAsCopy(value.getRRList().getPosition(0));
prevHead = isNodeRandomHead(prevID);
return true;
}
if (value.getRFList().getCountOfPosition() > 0) {
- prevID.set(value.getRFList().getPosition(0));
+ prevID.setAsCopy(value.getRFList().getPosition(0));
prevHead = isNodeRandomHead(prevID);
return true;
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
index 7141ae7..9b83d19 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
@@ -71,7 +71,7 @@
else if(getVertexValue().getFRList().getCountOfPosition() > 0)
outgoingMsg.setFlag(AdjMessage.FROMFR);
outgoingMsg.setSourceVertexId(getVertexId());
- destVertexId.set(getNextDestVertexId(getVertexValue()));
+ destVertexId.setAsCopy(getNextDestVertexId(getVertexValue()));
sendMsg(destVertexId, outgoingMsg);
deleteVertex(getVertexId());
}
@@ -83,7 +83,7 @@
else if(getVertexValue().getRRList().getCountOfPosition() > 0)
outgoingMsg.setFlag(AdjMessage.FROMRR);
outgoingMsg.setSourceVertexId(getVertexId());
- destVertexId.set(getPreDestVertexId(getVertexValue()));
+ destVertexId.setAsCopy(getPreDestVertexId(getVertexValue()));
sendMsg(destVertexId, outgoingMsg);
deleteVertex(getVertexId());
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateSmallFile.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateSmallFile.java
index 6b9eb4e..d3180c8 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateSmallFile.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateSmallFile.java
@@ -28,7 +28,8 @@
SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, inFile, conf);
SequenceFile.Writer writer = SequenceFile.createWriter(fileSys, conf, outFile, KmerBytesWritable.class,
NullWritable.class, CompressionType.NONE);
- KmerBytesWritable outKey = new KmerBytesWritable(55);
+ KmerBytesWritable.setGlobalKmerLength(55);
+ KmerBytesWritable outKey = new KmerBytesWritable();
int i = 0;
for (i = 0; i < numOfLines; i++) {
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 bc08600..8618237 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
@@ -19,6 +19,7 @@
public class GenerateTextFile {
public static void generateFromPathmergeResult(int kmerSize, String strSrcDir, String outPutDir) throws IOException {
+ KmerBytesWritable.setGlobalKmerLength(kmerSize);
Configuration conf = new Configuration();
FileSystem fileSys = FileSystem.getLocal(conf);
@@ -44,13 +45,14 @@
}
public static void generateSpecificLengthChainFromNaivePathmergeResult(int maxLength) throws IOException {
+ KmerBytesWritable.setGlobalKmerLength(55);
BufferedWriter bw = new BufferedWriter(new FileWriter("naive_text_" + maxLength));
Configuration conf = new Configuration();
FileSystem fileSys = FileSystem.get(conf);
for (int i = 0; i < 2; i++) {
Path path = new Path("/home/anbangx/genomix_result/final_naive/part-" + i);
SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
- KmerBytesWritable key = new KmerBytesWritable(55);
+ KmerBytesWritable key = new KmerBytesWritable();
VertexValueWritable value = new VertexValueWritable();
while (reader.next(key, value)) {
@@ -68,13 +70,14 @@
}
public static void generateSpecificLengthChainFromLogPathmergeResult(int maxLength) throws IOException {
+ KmerBytesWritable.setGlobalKmerLength(55);
BufferedWriter bw = new BufferedWriter(new FileWriter("log_text_" + maxLength));
Configuration conf = new Configuration();
FileSystem fileSys = FileSystem.get(conf);
for (int i = 0; i < 2; i++) {
Path path = new Path("/home/anbangx/genomix_result/improvelog2/part-" + i);
SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
- KmerBytesWritable key = new KmerBytesWritable(55);
+ KmerBytesWritable key = new KmerBytesWritable();
VertexValueWritable value = new VertexValueWritable();
while (reader.next(key, value)) {
@@ -93,12 +96,13 @@
}
public static void generateFromGraphbuildResult() throws IOException {
+ KmerBytesWritable.setGlobalKmerLength(55);
BufferedWriter bw = new BufferedWriter(new FileWriter("textfile"));
Configuration conf = new Configuration();
FileSystem fileSys = FileSystem.get(conf);
Path path = new Path("data/input/part-0-out-3000000");
SequenceFile.Reader reader = new SequenceFile.Reader(fileSys, path, conf);
- KmerBytesWritable key = new KmerBytesWritable(55);
+ KmerBytesWritable key = new KmerBytesWritable();
while (reader.next(key, null)) {
if (key == null) {