change code structure
git-svn-id: https://hyracks.googlecode.com/svn/branches/fullstack_genomix@3338 123451ca-8445-de46-9d55-352943316053
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/BinaryLoadGraphInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/BinaryLoadGraphInputFormat.java
similarity index 90%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/BinaryLoadGraphInputFormat.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/BinaryLoadGraphInputFormat.java
index 2bbc1c2..8ab6784 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/BinaryLoadGraphInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/BinaryLoadGraphInputFormat.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.IOException;
@@ -9,13 +9,13 @@
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
+import edu.uci.ics.genomix.type.KmerCountValue;
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.io.VertexReader;
-import edu.uci.ics.pregelix.api.io.binary.BinaryVertexInputFormat;
-import edu.uci.ics.pregelix.api.io.binary.BinaryVertexInputFormat.BinaryVertexReader;
import edu.uci.ics.pregelix.api.util.BspUtils;
-import edu.uci.ics.pregelix.example.io.MessageWritable;
-import edu.uci.ics.genomix.type.KmerCountValue;
+import edu.uci.ics.genomix.pregelix.example.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexInputFormat;
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexInputFormat.BinaryVertexReader;
public class BinaryLoadGraphInputFormat extends
BinaryVertexInputFormat<BytesWritable, ByteWritable, NullWritable, MessageWritable>{
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/BinaryLoadGraphOutputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/BinaryLoadGraphOutputFormat.java
similarity index 93%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/BinaryLoadGraphOutputFormat.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/BinaryLoadGraphOutputFormat.java
index 9b1a579..8bf13b8 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/BinaryLoadGraphOutputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/BinaryLoadGraphOutputFormat.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.IOException;
@@ -8,9 +8,9 @@
import org.apache.hadoop.mapreduce.RecordWriter;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexOutputFormat;
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.io.VertexWriter;
-import edu.uci.ics.pregelix.api.io.binary.BinaryVertexOutputFormat;
public class BinaryLoadGraphOutputFormat extends
BinaryVertexOutputFormat<BytesWritable, ByteWritable, NullWritable> {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/GraphVertexOperation.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/GraphVertexOperation.java
similarity index 87%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/GraphVertexOperation.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/GraphVertexOperation.java
index 8fa34c3..0c94512 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/GraphVertexOperation.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/GraphVertexOperation.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
@@ -15,16 +15,17 @@
import org.apache.hadoop.io.SequenceFile;
import org.apache.hadoop.io.SequenceFile.CompressionType;
-import edu.uci.ics.pregelix.SequenceFile.GenerateSequenceFile;
-import edu.uci.ics.pregelix.bitwise.BitwiseOperation;
-import edu.uci.ics.pregelix.example.io.LogAlgorithmMessageWritable;
-import edu.uci.ics.pregelix.example.io.MessageWritable;
-import edu.uci.ics.pregelix.example.io.ValueStateWritable;
-import edu.uci.ics.pregelix.hdfs.HDFSOperation;
-import edu.uci.ics.pregelix.type.KmerCountValue;
+import edu.uci.ics.genomix.type.Kmer;
+import edu.uci.ics.genomix.type.KmerUtil;
+import edu.uci.ics.genomix.pregelix.SequenceFile.GenerateSequenceFile;
+import edu.uci.ics.genomix.pregelix.bitwise.BitwiseOperation;
+import edu.uci.ics.genomix.pregelix.example.io.LogAlgorithmMessageWritable;
+import edu.uci.ics.genomix.pregelix.example.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.example.io.ValueStateWritable;
+import edu.uci.ics.genomix.pregelix.hdfs.HDFSOperation;
public class GraphVertexOperation {
- public static final int k = 55; //kmer, k: the length of kmer
+ public static final int k = 3; //kmer, k: the length of kmer
static private final Path TMP_DIR = new Path(
GenerateSequenceFile.class.getSimpleName() + "_INTERIM");
/**
@@ -33,86 +34,29 @@
*/
public static boolean isPathVertex(ByteWritable vertexValue){
byte value = vertexValue.get();
- byte[] bit = new byte[8];
- for(int i = 0; i < 8; i++)
- bit[i] = (byte) ((value >> i) & 0x01);
-
- //check out-degree
- if(((bit[0]==1)&&(bit[1]==0)&&(bit[2]==0)&&(bit[3]==0))
- || ((bit[0]==0)&&(bit[1]==1)&&(bit[2]==0)&&(bit[3]==0))
- || ((bit[0]==0)&&(bit[1]==0)&&(bit[2]==1)&&(bit[3]==0))
- || ((bit[0]==0)&&(bit[1]==0)&&(bit[2]==0)&&(bit[3]==1))
- ){
- //check in-degree
- if(((bit[4]==1)&&(bit[5]==0)&&(bit[6]==0)&&(bit[7]==0))
- || ((bit[4]==0)&&(bit[5]==1)&&(bit[6]==0)&&(bit[7]==0))
- || ((bit[4]==0)&&(bit[5]==0)&&(bit[6]==1)&&(bit[7]==0))
- || ((bit[4]==0)&&(bit[5]==0)&&(bit[6]==0)&&(bit[7]==1))
- )
- return true;
- else
- return false;
- }
- else
- return false;
+ if(KmerUtil.inDegree(value) == 1 && KmerUtil.outDegree(value) == 1)
+ return true;
+ return false;
}
- /**
- * Head Vertex: out-degree = 1, in-degree != 1
+ /**
+ * Head Vertex: in-degree != 1, out-degree = 1,
* @param vertexValue
*/
public static boolean isHead(ByteWritable vertexValue){
byte value = vertexValue.get();
- byte[] bit = new byte[8];
- for(int i = 0; i < 8; i++)
- bit[i] = (byte) ((value >> i) & 0x01);
-
- //check out-degree
- if(((bit[0]==1)&&(bit[1]==0)&&(bit[2]==0)&&(bit[3]==0))
- || ((bit[0]==0)&&(bit[1]==1)&&(bit[2]==0)&&(bit[3]==0))
- || ((bit[0]==0)&&(bit[1]==0)&&(bit[2]==1)&&(bit[3]==0))
- || ((bit[0]==0)&&(bit[1]==0)&&(bit[2]==0)&&(bit[3]==1))
- ){
- //check in-degree
- if(!((bit[4]==1)&&(bit[5]==0)&&(bit[6]==0)&&(bit[7]==0))
- && !((bit[4]==0)&&(bit[5]==1)&&(bit[6]==0)&&(bit[7]==0))
- && !((bit[4]==0)&&(bit[5]==0)&&(bit[6]==1)&&(bit[7]==0))
- && !((bit[4]==0)&&(bit[5]==0)&&(bit[6]==0)&&(bit[7]==1))
- )
- return true;
- else
- return false;
- }
- else
- return false;
+ if(KmerUtil.inDegree(value) != 1 && KmerUtil.outDegree(value) == 1)
+ return true;
+ return false;
}
/**
- * Rear Vertex: out-degree != 1, in-degree = 1
+ * Rear Vertex: in-degree = 1, out-degree != 1,
* @param vertexValue
*/
public static boolean isRear(ByteWritable vertexValue){
byte value = vertexValue.get();
- byte[] bit = new byte[8];
- for(int i = 0; i < 8; i++)
- bit[i] = (byte) ((value >> i) & 0x01);
-
- //check out-degree
- if(!((bit[0]==1)&&(bit[1]==0)&&(bit[2]==0)&&(bit[3]==0))
- && !((bit[0]==0)&&(bit[1]==1)&&(bit[2]==0)&&(bit[3]==0))
- && !((bit[0]==0)&&(bit[1]==0)&&(bit[2]==1)&&(bit[3]==0))
- && !((bit[0]==0)&&(bit[1]==0)&&(bit[2]==0)&&(bit[3]==1))
- ){
- //check in-degree
- if(((bit[4]==1)&&(bit[5]==0)&&(bit[6]==0)&&(bit[7]==0))
- || ((bit[4]==0)&&(bit[5]==1)&&(bit[6]==0)&&(bit[7]==0))
- || ((bit[4]==0)&&(bit[5]==0)&&(bit[6]==1)&&(bit[7]==0))
- || ((bit[4]==0)&&(bit[5]==0)&&(bit[6]==0)&&(bit[7]==1))
- )
- return true;
- else
- return false;
- }
- else
- return false;
+ if(KmerUtil.inDegree(value) == 1 && KmerUtil.outDegree(value) != 1)
+ return true;
+ return false;
}
/**
* write Kmer to Sequence File for test
@@ -152,19 +96,19 @@
int value = vertexValue & 0xff;
int tmp = value & first;
if(tmp != 0)
- return 0;
+ return Kmer.GENE_CODE.A;
else{
tmp = value & second;
if(tmp != 0)
- return 1;
+ return Kmer.GENE_CODE.C;
else{
tmp = value & third;
if(tmp != 0)
- return 2;
+ return Kmer.GENE_CODE.G;
else{
tmp = value & fourth;
if(tmp != 0)
- return 3;
+ return Kmer.GENE_CODE.T;
else
return 4;
}
@@ -187,19 +131,19 @@
int value = vertexValue & 0xff;
int tmp = value & first;
if(tmp != 0)
- return 0;
+ return Kmer.GENE_CODE.A;
else{
tmp = value & second;
if(tmp != 0)
- return 1;
+ return Kmer.GENE_CODE.C;
else{
tmp = value & third;
if(tmp != 0)
- return 2;
+ return Kmer.GENE_CODE.G;
else{
tmp = value & fourth;
if(tmp != 0)
- return 3;
+ return Kmer.GENE_CODE.T;
else
return 4;
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LoadGraphVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LoadGraphVertex.java
similarity index 95%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LoadGraphVertex.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LoadGraphVertex.java
index 9892376..d928555 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LoadGraphVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LoadGraphVertex.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.IOException;
import java.util.Iterator;
@@ -15,8 +15,8 @@
import edu.uci.ics.pregelix.api.io.text.TextVertexOutputFormat;
import edu.uci.ics.pregelix.api.io.text.TextVertexOutputFormat.TextVertexWriter;
import edu.uci.ics.pregelix.api.job.PregelixJob;
-import edu.uci.ics.pregelix.example.client.Client;
-import edu.uci.ics.pregelix.example.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.example.client.Client;
+import edu.uci.ics.genomix.pregelix.example.io.MessageWritable;
/*
* vertexId: BytesWritable
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphInputFormat.java
similarity index 89%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphInputFormat.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphInputFormat.java
index 5aad613..625d588 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphInputFormat.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.IOException;
@@ -10,12 +10,12 @@
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.io.VertexReader;
-import edu.uci.ics.pregelix.api.io.binary.BinaryVertexInputFormat;
import edu.uci.ics.pregelix.api.util.BspUtils;
-import edu.uci.ics.pregelix.bitwise.BitwiseOperation;
-import edu.uci.ics.pregelix.example.io.LogAlgorithmMessageWritable;
-import edu.uci.ics.pregelix.example.io.ValueStateWritable;
-import edu.uci.ics.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.bitwise.BitwiseOperation;
+import edu.uci.ics.genomix.pregelix.example.io.LogAlgorithmMessageWritable;
+import edu.uci.ics.genomix.pregelix.example.io.ValueStateWritable;
+import edu.uci.ics.genomix.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexInputFormat;
import edu.uci.ics.genomix.type.KmerCountValue;
public class LogAlgorithmForMergeGraphInputFormat extends
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphOutputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphOutputFormat.java
similarity index 89%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphOutputFormat.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphOutputFormat.java
index 9d4672a..dbaa528 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphOutputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphOutputFormat.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.IOException;
@@ -8,10 +8,10 @@
import org.apache.hadoop.mapreduce.RecordWriter;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
+import edu.uci.ics.genomix.pregelix.api.io.binary.BinaryVertexOutputFormat;
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.io.VertexWriter;
-import edu.uci.ics.pregelix.api.io.binary.BinaryVertexOutputFormat;
-import edu.uci.ics.pregelix.example.io.ValueStateWritable;
+import edu.uci.ics.genomix.pregelix.example.io.ValueStateWritable;
public class LogAlgorithmForMergeGraphOutputFormat extends
BinaryVertexOutputFormat<BytesWritable, ValueStateWritable, NullWritable> {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphVertex.java
similarity index 96%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphVertex.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphVertex.java
index 8ccb03e..c521074 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/LogAlgorithmForMergeGraphVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/LogAlgorithmForMergeGraphVertex.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -17,13 +17,13 @@
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.job.PregelixJob;
import edu.uci.ics.pregelix.api.util.BspUtils;
-import edu.uci.ics.pregelix.bitwise.BitwiseOperation;
+import edu.uci.ics.genomix.pregelix.bitwise.BitwiseOperation;
import edu.uci.ics.pregelix.dataflow.util.IterationUtils;
-import edu.uci.ics.pregelix.example.client.Client;
-import edu.uci.ics.pregelix.example.io.LogAlgorithmMessageWritable;
-import edu.uci.ics.pregelix.example.io.ValueStateWritable;
-import edu.uci.ics.pregelix.type.Message;
-import edu.uci.ics.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.example.client.Client;
+import edu.uci.ics.genomix.pregelix.example.io.LogAlgorithmMessageWritable;
+import edu.uci.ics.genomix.pregelix.example.io.ValueStateWritable;
+import edu.uci.ics.genomix.pregelix.type.Message;
+import edu.uci.ics.genomix.pregelix.type.State;
/*
* vertexId: BytesWritable
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/MergeGraphVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/MergeGraphVertex.java
similarity index 73%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/MergeGraphVertex.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/MergeGraphVertex.java
index 3fdcd6d..0a77a94 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/MergeGraphVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/MergeGraphVertex.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -14,14 +14,16 @@
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.NullWritable;
+import edu.uci.ics.genomix.type.Kmer;
+import edu.uci.ics.genomix.type.KmerUtil;
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.job.PregelixJob;
import edu.uci.ics.pregelix.api.util.BspUtils;
-import edu.uci.ics.pregelix.bitwise.BitwiseOperation;
+import edu.uci.ics.genomix.pregelix.bitwise.BitwiseOperation;
import edu.uci.ics.pregelix.dataflow.util.IterationUtils;
-import edu.uci.ics.pregelix.example.client.Client;
-import edu.uci.ics.pregelix.example.io.MessageWritable;
-import edu.uci.ics.pregelix.hdfs.HDFSOperation;
+import edu.uci.ics.genomix.pregelix.example.client.Client;
+import edu.uci.ics.genomix.pregelix.example.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.hdfs.HDFSOperation;
/*
* vertexId: BytesWritable
@@ -71,17 +73,20 @@
} catch (FileNotFoundException e1) { e1.printStackTrace();}
tmpVertextId.set(GraphVertexOperation.generateValidDataFromBytesWritable(getVertexId()),0,numBytes);
if (getSuperstep() == 1) {
- if(GraphVertexOperation.isHead(getVertexValue())){
- //tmpSourceVertextId = tmpVertextId;
- tmpDestVertexId.set(GraphVertexOperation.getDestVertexId(tmpVertextId.getBytes(),
- getVertexValue().get()), 0, numBytes);
+ if(GraphVertexOperation.isHead(getVertexValue())){
+ tmpDestVertexId.set(tmpVertextId);
+ //change
+ Kmer.moveKmer(GraphVertexOperation.k, tmpDestVertexId.getBytes(),
+ (byte)GraphVertexOperation.findSucceedNode(getVertexValue().get()));
+ //tmpDestVertexId.set(GraphVertexOperation.getDestVertexId(tmpDestVertexId.getBytes(),
+ // getVertexValue().get()), 0, numBytes);
tmpMsg.setSourceVertexId(tmpVertextId.getBytes());
tmpMsg.setLengthOfChain(0);
tmpMsg.setChainVertexId(tmpChainVertexId.getBytes());
sendMsg(tmpDestVertexId,tmpMsg);
//test
- //GraphVertexOperation.testMessageCommunication(writer,getSuperstep(),tmpVertextId.getBytes(),
- // tmpDestVertexId.getBytes(),tmpMsg);
+ GraphVertexOperation.testMessageCommunication(writer,getSuperstep(),tmpVertextId.getBytes(),
+ tmpDestVertexId.getBytes(),tmpMsg);
}
}
//path node sends message back to head node
@@ -97,11 +102,19 @@
tmpMsg.setChainVertexId(tmpVertextId.getBytes());
}
else{
+ /*
tmpMsg.incrementLength();
tmpMsg.setChainVertexId(GraphVertexOperation.updateChainVertexId(
- tmpMsg.getChainVertexId(),
+ tmpChainVertexId,
tmpMsg.getLengthOfChain()-1,
- tmpVertextId.getBytes()));
+ tmpVertextId));
+ */
+ //change
+ tmpMsg.setChainVertexId(KmerUtil.mergeKmerWithNextCode(
+ tmpMsg.getLengthOfChain(),
+ tmpMsg.getChainVertexId(),
+ (byte)GraphVertexOperation.findSucceedNode(getVertexValue().get())));
+ tmpMsg.incrementLength();
deleteVertex(getVertexId());
}
sendMsg(tmpDestVertexId,tmpMsg);
@@ -132,7 +145,6 @@
//test
GraphVertexOperation.testLastMessageCommunication(writer,getSuperstep(),tmpVertextId.getBytes(),
tmpDestVertexId.getBytes(),tmpMsg);
-
}
}
}
@@ -141,10 +153,17 @@
if (msgIterator.hasNext()){
tmpMsg = msgIterator.next();
if(!tmpMsg.isRear()){
- byte[] lastKmer = GraphVertexOperation.getLastKmer(tmpMsg.getChainVertexId(),
- tmpMsg.getLengthOfChain());
- tmpDestVertexId.set(GraphVertexOperation.getDestVertexId(lastKmer,
- tmpMsg.getNeighberInfo()), 0, numBytes);
+ byte[] lastKmer = KmerUtil.getLastKmerFromChain(GraphVertexOperation.k,
+ tmpMsg.getLengthOfChain(),
+ tmpMsg.getChainVertexId());
+ //byte[] lastKmer = GraphVertexOperation.getLastKmer(tmpMsg.getChainVertexId(),
+ // tmpMsg.getLengthOfChain());
+ tmpDestVertexId.set(lastKmer, 0, numBytes);
+ //change
+ Kmer.moveKmer(GraphVertexOperation.k, tmpDestVertexId.getBytes(),
+ (byte)GraphVertexOperation.findSucceedNode(getVertexValue().get()));
+ //tmpDestVertexId.set(GraphVertexOperation.getDestVertexId(lastKmer,
+ // tmpMsg.getNeighberInfo()), 0, numBytes);
tmpMsg.setSourceVertexId(tmpVertextId.getBytes());
sendMsg(tmpDestVertexId,tmpMsg);
//test
@@ -152,8 +171,12 @@
tmpDestVertexId.getBytes(),tmpMsg);
}
else{
- tmpDestVertexId.set(GraphVertexOperation.getDestVertexId(tmpVertextId.getBytes(),
- getVertexValue().get()), 0, numBytes);
+ tmpDestVertexId.set(tmpVertextId);
+ //change
+ Kmer.moveKmer(GraphVertexOperation.k, tmpDestVertexId.getBytes(),
+ (byte)GraphVertexOperation.findSucceedNode(getVertexValue().get()));
+ //tmpDestVertexId.set(GraphVertexOperation.getDestVertexId(tmpVertextId.getBytes(),
+ // getVertexValue().get()), 0, numBytes);
sendMsg(tmpDestVertexId,tmpMsg);
//test
GraphVertexOperation.testMessageCommunication(writer,getSuperstep(),tmpVertextId.getBytes(),
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/ConvertToSequenceFile.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/ConvertToSequenceFile.java
similarity index 96%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/ConvertToSequenceFile.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/ConvertToSequenceFile.java
index 304d764..1aff95d 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/ConvertToSequenceFile.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/ConvertToSequenceFile.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.SequenceFile;
+package edu.uci.ics.genomix.pregelix.SequenceFile;
import java.io.IOException;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/GenerateSequenceFile.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/GenerateSequenceFile.java
similarity index 99%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/GenerateSequenceFile.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/GenerateSequenceFile.java
index b8fc24d..b7fed48 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/GenerateSequenceFile.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/GenerateSequenceFile.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.SequenceFile;
+package edu.uci.ics.genomix.pregelix.SequenceFile;
import java.io.IOException;
import java.util.ArrayList;
@@ -12,8 +12,8 @@
import org.apache.hadoop.io.SequenceFile.CompressionType;
import edu.uci.ics.genomix.type.KmerCountValue;
-import edu.uci.ics.pregelix.GraphVertexOperation;
-import edu.uci.ics.pregelix.bitwise.BitwiseOperation;
+import edu.uci.ics.genomix.pregelix.GraphVertexOperation;
+import edu.uci.ics.genomix.pregelix.bitwise.BitwiseOperation;
public class GenerateSequenceFile {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/generateSmallFile.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/generateSmallFile.java
similarity index 96%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/generateSmallFile.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/generateSmallFile.java
index ae4c2f5..eec2559 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/SequenceFile/generateSmallFile.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/SequenceFile/generateSmallFile.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.SequenceFile;
+package edu.uci.ics.genomix.pregelix.SequenceFile;
import java.io.IOException;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TestLoadGraphVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TestLoadGraphVertex.java
similarity index 88%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TestLoadGraphVertex.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TestLoadGraphVertex.java
index 3992a56..3449df6 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TestLoadGraphVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TestLoadGraphVertex.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.util.Arrays;
import java.util.Iterator;
@@ -9,9 +9,9 @@
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.job.PregelixJob;
-import edu.uci.ics.pregelix.bitwise.BitwiseOperation;
-import edu.uci.ics.pregelix.example.client.Client;
-import edu.uci.ics.pregelix.example.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.bitwise.BitwiseOperation;
+import edu.uci.ics.genomix.pregelix.example.client.Client;
+import edu.uci.ics.genomix.pregelix.example.io.MessageWritable;
/*
* vertexId: BytesWritable
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TestMemory.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TestMemory.java
new file mode 100644
index 0000000..247ca42
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TestMemory.java
@@ -0,0 +1,32 @@
+package edu.uci.ics.genomix.pregelix;
+/**
+* Class: TestMemory
+* @author: Anbang Xu
+* @description: Prints JVM memory utilization statistics
+*/
+public class TestMemory {
+
+ public static void main(String [] args) {
+
+ int mb = 1024*1024;
+
+ //Getting the runtime reference from system
+ Runtime runtime = Runtime.getRuntime();
+
+ System.out.println("##### Heap utilization statistics [MB] #####");
+
+ //Print used memory
+ System.out.println("Used Memory:"
+ + (runtime.totalMemory() - runtime.freeMemory()) / mb);
+
+ //Print free memory
+ System.out.println("Free Memory:"
+ + runtime.freeMemory() / mb);
+
+ //Print total available memory
+ System.out.println("Total Memory:" + runtime.totalMemory() / mb);
+
+ //Print Maximum available memory
+ System.out.println("Max Memory:" + runtime.maxMemory() / mb);
+ }
+}
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TextLoadGraphInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TextLoadGraphInputFormat.java
similarity index 96%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TextLoadGraphInputFormat.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TextLoadGraphInputFormat.java
index b7fda73..e3c660e 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/TextLoadGraphInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/TextLoadGraphInputFormat.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.io.IOException;
@@ -15,7 +15,7 @@
import edu.uci.ics.pregelix.api.io.VertexReader;
import edu.uci.ics.pregelix.api.io.text.TextVertexInputFormat;
import edu.uci.ics.pregelix.api.util.BspUtils;
-import edu.uci.ics.pregelix.example.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.example.io.MessageWritable;
public class TextLoadGraphInputFormat extends
TextVertexInputFormat<BytesWritable, ByteWritable, NullWritable, MessageWritable>{
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/api/io/binary/BinaryVertexInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryVertexInputFormat.java
similarity index 98%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/api/io/binary/BinaryVertexInputFormat.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryVertexInputFormat.java
index 31274ac..51eceee 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/api/io/binary/BinaryVertexInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryVertexInputFormat.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.api.io.binary;
+package edu.uci.ics.genomix.pregelix.api.io.binary;
import java.io.IOException;
import java.util.List;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/api/io/binary/BinaryVertexOutputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryVertexOutputFormat.java
similarity index 98%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/api/io/binary/BinaryVertexOutputFormat.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryVertexOutputFormat.java
index 399cbca..2bfaf90 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/api/io/binary/BinaryVertexOutputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/api/io/binary/BinaryVertexOutputFormat.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.api.io.binary;
+package edu.uci.ics.genomix.pregelix.api.io.binary;
import java.io.IOException;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/bitwise/BitwiseOperation.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/bitwise/BitwiseOperation.java
similarity index 98%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/bitwise/BitwiseOperation.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/bitwise/BitwiseOperation.java
index b064707..8d90e92 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/bitwise/BitwiseOperation.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/bitwise/BitwiseOperation.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.bitwise;
+package edu.uci.ics.genomix.pregelix.bitwise;
public class BitwiseOperation {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/client/Client.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/client/Client.java
similarity index 97%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/client/Client.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/client/Client.java
index 9cf2e3f..5507713 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/client/Client.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/client/Client.java
@@ -1,5 +1,5 @@
-package edu.uci.ics.pregelix.example.client;
+package edu.uci.ics.genomix.pregelix.example.client;
import java.io.IOException;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/LogAlgorithmMessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/LogAlgorithmMessageWritable.java
similarity index 97%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/LogAlgorithmMessageWritable.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/LogAlgorithmMessageWritable.java
index 262ce7f..d77a26f 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/LogAlgorithmMessageWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/LogAlgorithmMessageWritable.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.example.io;
+package edu.uci.ics.genomix.pregelix.example.io;
import java.io.DataInput;
import java.io.DataOutput;
@@ -7,7 +7,7 @@
import org.apache.hadoop.io.WritableComparable;
-import edu.uci.ics.pregelix.GraphVertexOperation;
+import edu.uci.ics.genomix.pregelix.GraphVertexOperation;
public class LogAlgorithmMessageWritable implements WritableComparable<LogAlgorithmMessageWritable>{
/**
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/MessageWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/MessageWritable.java
similarity index 96%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/MessageWritable.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/MessageWritable.java
index e18a062..b477eb5 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/MessageWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/MessageWritable.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.example.io;
+package edu.uci.ics.genomix.pregelix.example.io;
import java.io.DataInput;
import java.io.DataOutput;
@@ -7,7 +7,7 @@
import org.apache.hadoop.io.WritableComparable;
-import edu.uci.ics.pregelix.GraphVertexOperation;
+import edu.uci.ics.genomix.pregelix.GraphVertexOperation;
public class MessageWritable implements WritableComparable<MessageWritable>{
/**
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/ValueStateWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/ValueStateWritable.java
similarity index 94%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/ValueStateWritable.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/ValueStateWritable.java
index 78d4f0c..97275be 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/example/io/ValueStateWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/example/io/ValueStateWritable.java
@@ -1,10 +1,10 @@
-package edu.uci.ics.pregelix.example.io;
+package edu.uci.ics.genomix.pregelix.example.io;
import java.io.*;
import org.apache.hadoop.io.WritableComparable;
-import edu.uci.ics.pregelix.type.State;
+import edu.uci.ics.genomix.pregelix.type.State;
public class ValueStateWritable implements WritableComparable<ValueStateWritable> {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/Graph.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/Graph.java
new file mode 100644
index 0000000..fe95252
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/Graph.java
@@ -0,0 +1,58 @@
+package edu.uci.ics.genomix.pregelix.graph;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+public class Graph {
+
+ /**
+ * Construct a DOT graph in memory, convert it
+ * to image and store the image in the file system.
+ * @throws Exception
+ */
+ private void start(String fileName) throws Exception
+ {
+ File filePathTo = new File("graph/" + fileName);
+ BufferedReader br = new BufferedReader(new FileReader(filePathTo));
+ String line = "";
+ String[] split;
+
+ String precursor = "";
+ String[] adjMap;
+ char[] succeeds;
+ String succeed = "";
+ String output;
+
+ GraphViz gv = new GraphViz();
+ gv.addln(gv.start_graph());
+ while((line = br.readLine()) != null){
+ split = line.split("\t");
+ precursor = split[0];
+ adjMap = split[1].split("\\|");
+ if(adjMap.length > 1){
+ succeeds = adjMap[1].toCharArray();
+ for(int i = 0; i < succeeds.length; i++){
+ succeed = precursor.substring(1) + succeeds[i];
+ output = precursor + " -> " + succeed;
+ gv.addln(output);
+ }
+ }
+ }
+ gv.addln(gv.end_graph());
+ System.out.println(gv.getDotSource());
+
+ String type = "ps";
+ File out = new File("graph/" + fileName + "_out." + type); // Linux
+ gv.writeGraphToFile(gv.getGraph(gv.getDotSource(), type), out);
+ }
+
+ public static void main(String[] args) throws Exception
+ {
+ Graph g = new Graph();
+ g.start("SinglePath");
+ }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GraphViz.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GraphViz.java
new file mode 100644
index 0000000..c2178bc
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/GraphViz.java
@@ -0,0 +1,288 @@
+package edu.uci.ics.genomix.pregelix.graph;
+
+// GraphViz.java - a simple API to call dot from Java programs
+
+/*$Id$*/
+/*
+ ******************************************************************************
+ * *
+ * (c) Copyright 2003 Laszlo Szathmary *
+ * *
+ * This program is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as published by *
+ * the Free Software Foundation; either version 2.1 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, but *
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public *
+ * License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public License *
+ * along with this program; if not, write to the Free Software Foundation, *
+ * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
+ * *
+ ******************************************************************************
+ */
+
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.InputStreamReader;
+
+/**
+ * <dl>
+ * <dt>Purpose: GraphViz Java API
+ * <dd>
+ *
+ * <dt>Description:
+ * <dd> With this Java class you can simply call dot
+ * from your Java programs
+ * <dt>Example usage:
+ * <dd>
+ * <pre>
+ * GraphViz gv = new GraphViz();
+ * gv.addln(gv.start_graph());
+ * gv.addln("A -> B;");
+ * gv.addln("A -> C;");
+ * gv.addln(gv.end_graph());
+ * System.out.println(gv.getDotSource());
+ *
+ * String type = "gif";
+ * File out = new File("out." + type); // out.gif in this example
+ * gv.writeGraphToFile( gv.getGraph( gv.getDotSource(), type ), out );
+ * </pre>
+ * </dd>
+ *
+ * </dl>
+ *
+ * @version v0.4, 2011/02/05 (February) -- Patch of Keheliya Gallaba is added. Now you
+ * can specify the type of the output file: gif, dot, fig, pdf, ps, svg, png, etc.
+ * @version v0.3, 2010/11/29 (November) -- Windows support + ability
+ * to read the graph from a text file
+ * @version v0.2, 2010/07/22 (July) -- bug fix
+ * @version v0.1, 2003/12/04 (December) -- first release
+ * @author Laszlo Szathmary (<a href="jabba.laci@gmail.com">jabba.laci@gmail.com</a>)
+ */
+public class GraphViz
+{
+ /**
+ * The dir. where temporary files will be created.
+ */
+ private static String TEMP_DIR = "/tmp"; // Linux
+ // private static String TEMP_DIR = "c:/temp"; // Windows
+
+ /**
+ * Where is your dot program located? It will be called externally.
+ */
+ private static String DOT = "/usr/bin/dot"; // Linux
+// private static String DOT = "c:/Program Files/Graphviz2.26.3/bin/dot.exe"; // Windows
+
+ /**
+ * The source of the graph written in dot language.
+ */
+ private StringBuilder graph = new StringBuilder();
+
+ /**
+ * Constructor: creates a new GraphViz object that will contain
+ * a graph.
+ */
+ public GraphViz() {
+ }
+
+ /**
+ * Returns the graph's source description in dot language.
+ * @return Source of the graph in dot language.
+ */
+ public String getDotSource() {
+ return graph.toString();
+ }
+
+ /**
+ * Adds a string to the graph's source (without newline).
+ */
+ public void add(String line) {
+ graph.append(line);
+ }
+
+ /**
+ * Adds a string to the graph's source (with newline).
+ */
+ public void addln(String line) {
+ graph.append(line + "\n");
+ }
+
+ /**
+ * Adds a newline to the graph's source.
+ */
+ public void addln() {
+ graph.append('\n');
+ }
+
+ /**
+ * Returns the graph as an image in binary format.
+ * @param dot_source Source of the graph to be drawn.
+ * @param type Type of the output image to be produced, e.g.: gif, dot, fig, pdf, ps, svg, png.
+ * @return A byte array containing the image of the graph.
+ */
+ public byte[] getGraph(String dot_source, String type)
+ {
+ File dot;
+ byte[] img_stream = null;
+
+ try {
+ dot = writeDotSourceToFile(dot_source);
+ if (dot != null)
+ {
+ img_stream = get_img_stream(dot, type);
+ if (dot.delete() == false)
+ System.err.println("Warning: " + dot.getAbsolutePath() + " could not be deleted!");
+ return img_stream;
+ }
+ return null;
+ } catch (java.io.IOException ioe) { return null; }
+ }
+
+ /**
+ * Writes the graph's image in a file.
+ * @param img A byte array containing the image of the graph.
+ * @param file Name of the file to where we want to write.
+ * @return Success: 1, Failure: -1
+ */
+ public int writeGraphToFile(byte[] img, String file)
+ {
+ File to = new File(file);
+ return writeGraphToFile(img, to);
+ }
+
+ /**
+ * Writes the graph's image in a file.
+ * @param img A byte array containing the image of the graph.
+ * @param to A File object to where we want to write.
+ * @return Success: 1, Failure: -1
+ */
+ public int writeGraphToFile(byte[] img, File to)
+ {
+ try {
+ FileOutputStream fos = new FileOutputStream(to);
+ fos.write(img);
+ fos.close();
+ } catch (java.io.IOException ioe) { return -1; }
+ return 1;
+ }
+
+ /**
+ * It will call the external dot program, and return the image in
+ * binary format.
+ * @param dot Source of the graph (in dot language).
+ * @param type Type of the output image to be produced, e.g.: gif, dot, fig, pdf, ps, svg, png.
+ * @return The image of the graph in .gif format.
+ */
+ private byte[] get_img_stream(File dot, String type)
+ {
+ File img;
+ byte[] img_stream = null;
+
+ try {
+ img = File.createTempFile("graph_", "."+type, new File(GraphViz.TEMP_DIR));
+ Runtime rt = Runtime.getRuntime();
+
+ // patch by Mike Chenault
+ String[] args = {DOT, "-T"+type, dot.getAbsolutePath(), "-o", img.getAbsolutePath()};
+ Process p = rt.exec(args);
+
+ p.waitFor();
+
+ FileInputStream in = new FileInputStream(img.getAbsolutePath());
+ img_stream = new byte[in.available()];
+ in.read(img_stream);
+ // Close it if we need to
+ if( in != null ) in.close();
+
+ if (img.delete() == false)
+ System.err.println("Warning: " + img.getAbsolutePath() + " could not be deleted!");
+ }
+ catch (java.io.IOException ioe) {
+ System.err.println("Error: in I/O processing of tempfile in dir " + GraphViz.TEMP_DIR+"\n");
+ System.err.println(" or in calling external command");
+ ioe.printStackTrace();
+ }
+ catch (java.lang.InterruptedException ie) {
+ System.err.println("Error: the execution of the external program was interrupted");
+ ie.printStackTrace();
+ }
+
+ return img_stream;
+ }
+
+ /**
+ * Writes the source of the graph in a file, and returns the written file
+ * as a File object.
+ * @param str Source of the graph (in dot language).
+ * @return The file (as a File object) that contains the source of the graph.
+ */
+ private File writeDotSourceToFile(String str) throws java.io.IOException
+ {
+ File temp;
+ try {
+ temp = File.createTempFile("graph_", ".dot.tmp", new File(GraphViz.TEMP_DIR));
+ FileWriter fout = new FileWriter(temp);
+ fout.write(str);
+ fout.close();
+ }
+ catch (Exception e) {
+ System.err.println("Error: I/O error while writing the dot source to temp file!");
+ return null;
+ }
+ return temp;
+ }
+
+ /**
+ * Returns a string that is used to start a graph.
+ * @return A string to open a graph.
+ */
+ public String start_graph() {
+ return "digraph G {";
+ }
+
+ /**
+ * Returns a string that is used to end a graph.
+ * @return A string to close a graph.
+ */
+ public String end_graph() {
+ return "}";
+ }
+
+ /**
+ * Read a DOT graph from a text file.
+ *
+ * @param input Input text file containing the DOT graph
+ * source.
+ */
+ public void readSource(String input)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ try
+ {
+ FileInputStream fis = new FileInputStream(input);
+ DataInputStream dis = new DataInputStream(fis);
+ BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+ String line;
+ while ((line = br.readLine()) != null) {
+ sb.append(line);
+ }
+ dis.close();
+ }
+ catch (Exception e) {
+ System.err.println("Error: " + e.getMessage());
+ }
+
+ this.graph = sb;
+ }
+
+} // end of class GraphViz
+
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/Proba.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/Proba.java
new file mode 100644
index 0000000..6bd66e5
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/graph/Proba.java
@@ -0,0 +1,69 @@
+package edu.uci.ics.genomix.pregelix.graph;
+
+import java.io.File;
+
+public class Proba
+{
+ public static void main(String[] args)
+ {
+ Proba p = new Proba();
+ p.start();
+// p.start2();
+ }
+
+ /**
+ * Construct a DOT graph in memory, convert it
+ * to image and store the image in the file system.
+ */
+ private void start()
+ {
+ GraphViz gv = new GraphViz();
+ gv.addln(gv.start_graph());
+ gv.addln("A -> B;");
+ gv.addln("B -> C;");
+ gv.addln("C -> D;");
+ gv.addln("D -> E;");
+ gv.addln("E -> A;");
+ gv.addln(gv.end_graph());
+ System.out.println(gv.getDotSource());
+
+// String type = "gif";
+// String type = "dot";
+// String type = "fig"; // open with xfig
+// String type = "pdf";
+ String type = "ps";
+// String type = "svg"; // open with inkscape
+// String type = "png";
+// String type = "plain";
+ File out = new File("graph_out." + type); // Linux
+// File out = new File("c:/eclipse.ws/graphviz-java-api/out." + type); // Windows
+ gv.writeGraphToFile( gv.getGraph( gv.getDotSource(), type ), out );
+ }
+
+ /**
+ * Read the DOT source from a file,
+ * convert to image and store the image in the file system.
+ */
+ private void start2()
+ {
+ String dir = "/home/jabba/eclipse2/laszlo.sajat/graphviz-java-api"; // Linux
+ String input = dir + "/sample/simple.dot";
+// String input = "c:/eclipse.ws/graphviz-java-api/sample/simple.dot"; // Windows
+
+ GraphViz gv = new GraphViz();
+ gv.readSource(input);
+ System.out.println(gv.getDotSource());
+
+ String type = "gif";
+// String type = "dot";
+// String type = "fig"; // open with xfig
+// String type = "pdf";
+// String type = "ps";
+// String type = "svg"; // open with inkscape
+// String type = "png";
+// String type = "plain";
+ File out = new File("/tmp/simple." + type); // Linux
+// File out = new File("c:/eclipse.ws/graphviz-java-api/tmp/simple." + type); // Windows
+ gv.writeGraphToFile( gv.getGraph( gv.getDotSource(), type ), out );
+ }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/hdfs/HDFSOperation.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/hdfs/HDFSOperation.java
similarity index 98%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/hdfs/HDFSOperation.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/hdfs/HDFSOperation.java
index ea972ef..824722a 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/hdfs/HDFSOperation.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/hdfs/HDFSOperation.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.hdfs;
+package edu.uci.ics.genomix.pregelix.hdfs;
import java.io.IOException;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/testDeleteVertexId.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testDeleteVertexId.java
similarity index 89%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/testDeleteVertexId.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testDeleteVertexId.java
index 061b8b5..fd6f0c5 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/testDeleteVertexId.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testDeleteVertexId.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import java.util.Arrays;
import java.util.Iterator;
@@ -9,9 +9,9 @@
import edu.uci.ics.pregelix.api.graph.Vertex;
import edu.uci.ics.pregelix.api.job.PregelixJob;
-import edu.uci.ics.pregelix.bitwise.BitwiseOperation;
-import edu.uci.ics.pregelix.example.client.Client;
-import edu.uci.ics.pregelix.example.io.MessageWritable;
+import edu.uci.ics.genomix.pregelix.bitwise.BitwiseOperation;
+import edu.uci.ics.genomix.pregelix.example.client.Client;
+import edu.uci.ics.genomix.pregelix.example.io.MessageWritable;
/*
* vertexId: BytesWritable
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java
new file mode 100644
index 0000000..2dac10d
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/GenerateTestInput.java
@@ -0,0 +1,77 @@
+package edu.uci.ics.genomix.pregelix.testcase;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+
+public class GenerateTestInput {
+
+ /**
+ * Simple Path
+ */
+ public static String simplePath(int k, int length, int numLines){
+ RandomString rs = new RandomString(k, length);
+ String output = "";
+ for(int i = 0; i < numLines; i++)
+ output += rs.nextString(0) + "\r\n";
+ return output;
+ }
+ /**
+ * Tree Path
+ */
+ public static String treePath(int k, int x, int y, int z){
+ RandomString rs = new RandomString(k, x + y + k - 1);
+ String s1 = rs.nextString(0);
+ rs.setLength(x + y + z + k - 1);
+ rs.addString(s1.substring(0, x));
+ String s2 = rs.nextString(x);
+ rs.setLength(x + y + z + k - 1);
+ rs.addString(s2.substring(0,x + y));
+ String s3 = rs.nextString(x + y);
+ return s1 + "\r\n" + s2 + "\r\n" + s3;
+ }
+ /**
+ * Cycle Path
+ */
+ public static String cyclePath(int k, int length){
+ RandomString rs = new RandomString(k, length);
+ String s1 = rs.nextString(0);
+ String s2 = s1 + s1.substring(1, k + 1);
+ return s2;
+ }
+ /**
+ * Bridge Path
+ */
+ public static String bridgePath(int k, int x){
+ RandomString rs = new RandomString(k, x + k + 2 + k - 1);
+ String s1 = rs.nextString(0);
+ rs.setLength(x + k + 2);
+ rs.addString(s1.substring(0, k + 2));
+ String s2 = rs.nextString(k + 2) + s1.substring(x + k + 2, x + k + 2 + k - 1);
+ return s1 + "\r\n" + s2;
+ }
+
+ public static void main(String[] args) {
+ // TODO Auto-generated method stub
+ OutputStreamWriter writer;
+ try {
+ writer = new OutputStreamWriter(new FileOutputStream("SinglePath"));
+ writer.write(simplePath(5,10,1));
+ writer.close();
+ writer = new OutputStreamWriter(new FileOutputStream("SimplePath"));
+ writer.write(simplePath(5,10,3));
+ writer.close();
+ writer = new OutputStreamWriter(new FileOutputStream("TreePath"));
+ writer.write(treePath(5, 5, 5, 3));
+ writer.close();
+ writer = new OutputStreamWriter(new FileOutputStream("CyclePath"));
+ writer.write(cyclePath(5,10));
+ writer.close();
+ writer = new OutputStreamWriter(new FileOutputStream("BridgePath"));
+ writer.write(bridgePath(5,2));
+ writer.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/RandomString.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/RandomString.java
new file mode 100644
index 0000000..337c5d8
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/testcase/RandomString.java
@@ -0,0 +1,63 @@
+package edu.uci.ics.genomix.pregelix.testcase;
+
+import java.util.ArrayList;
+import java.util.Random;
+
+public class RandomString
+{
+
+ private static final char[] symbols = new char[4];
+
+ static {
+ symbols[0] = 'A';
+ symbols[1] = 'C';
+ symbols[2] = 'G';
+ symbols[3] = 'T';
+ }
+
+ private final Random random = new Random();
+
+ private char[] buf;
+
+ private ArrayList<String> existKmer = new ArrayList<String>();;
+
+ private int k;
+
+ public RandomString(int k, int length)
+ {
+ if (length < 1)
+ throw new IllegalArgumentException("length < 1: " + length);
+ buf = new char[length];
+ this.k = k;
+ }
+
+ public String nextString(int startIdx)
+ {
+ String tmp = "";
+ for (int idx = startIdx; idx < buf.length;){
+ buf[idx] = symbols[random.nextInt(4)];
+ if(idx >= k - 1){
+ tmp = new String(buf, idx-k+1, k);
+ if(!existKmer.contains(tmp)){
+ existKmer.add(tmp);
+ idx++;
+ }
+ }
+ else
+ idx++;
+ }
+
+ return new String(buf);
+ }
+
+ public void setLength(int length){
+ buf = new char[length];
+ }
+
+ public void addString(String s){
+ char[] tmp = s.toCharArray();
+ for(int i = 0; i < tmp.length; i++)
+ buf[i] = tmp[i];
+ }
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/Message.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/Message.java
similarity index 75%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/Message.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/Message.java
index 5280fef..f965d64 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/Message.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/Message.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.type;
+package edu.uci.ics.genomix.pregelix.type;
public class Message {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/State.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State.java
similarity index 86%
rename from genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/State.java
rename to genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State.java
index c62688e..2a2a3f3 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/State.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/State.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.type;
+package edu.uci.ics.genomix.pregelix.type;
public class State {
public static final int NON_VERTEX = 0;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/Kmer.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/Kmer.java
deleted file mode 100644
index f35da10..0000000
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/Kmer.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package edu.uci.ics.pregelix.type;
-
-public class Kmer {
-
- public final static byte[] GENE_SYMBOL = { 'A', 'C', 'G', 'T' };
-
- public final static class GENE_CODE {
-
- /**
- * make sure this 4 ids equal to the sequence id of char in
- * {@GENE_SYMBOL}
- */
- public static final byte A = 0;
- public static final byte C = 1;
- public static final byte G = 2;
- public static final byte T = 3;
-
- public static byte getCodeFromSymbol(byte ch) {
- byte r = 0;
- switch (ch) {
- case 'A':
- case 'a':
- r = A;
- break;
- case 'C':
- case 'c':
- r = C;
- break;
- case 'G':
- case 'g':
- r = G;
- break;
- case 'T':
- case 't':
- r = T;
- break;
- }
- return r;
- }
-
- public static byte getSymbolFromCode(byte code) {
- if (code > 3) {
- return '!';
- }
- return GENE_SYMBOL[code];
- }
-
- public static byte getAdjBit(byte t) {
- byte r = 0;
- switch (t) {
- case 'A':
- case 'a':
- r = 1 << A;
- break;
- case 'C':
- case 'c':
- r = 1 << C;
- break;
- case 'G':
- case 'g':
- r = 1 << G;
- break;
- case 'T':
- case 't':
- r = 1 << T;
- break;
- }
- return r;
- }
-
- public static byte mergePreNextAdj(byte pre, byte next) {
- return (byte) (pre << 4 | (next & 0x0f));
- }
-
- public static String getSymbolFromBitMap(byte code) {
- int left = (code >> 4) & 0x0F;
- int right = code & 0x0F;
- StringBuilder str = new StringBuilder();
- for (int i = A; i <= T; i++) {
- if ((left & (1 << i)) != 0) {
- str.append((char)GENE_SYMBOL[i]);
- }
- }
- str.append('|');
- for (int i = A; i <= T; i++) {
- if ((right & (1 << i)) != 0) {
- str.append((char)GENE_SYMBOL[i]);
- }
- }
- return str.toString();
- }
- }
-
- public static String recoverKmerFrom(int k, byte[] keyData, int keyStart,
- int keyLength) {
- StringBuilder strKmer = new StringBuilder();
- int byteId = keyStart + keyLength - 1;
- byte currentbyte = keyData[byteId];
- for (int geneCount = 0; geneCount < k; geneCount++) {
- if (geneCount % 4 == 0 && geneCount > 0) {
- currentbyte = keyData[--byteId];
- }
- strKmer.append((char) GENE_SYMBOL[(currentbyte >> ((geneCount % 4) * 2)) & 0x03]);
- }
- return strKmer.toString();
- }
-
- public static int getByteNumFromK(int k){
- int x = k/4;
- if (k%4 !=0){
- x+=1;
- }
- return x;
- }
-
- /**
- * Compress Kmer into bytes array AATAG will compress as [0 0 0 G][A T A A]
- *
- * @param kmer
- * @param input
- * array
- * @param start
- * position
- * @return initialed kmer array
- */
- public static byte[] CompressKmer(int k, byte[] array, int start) {
- final int byteNum = getByteNumFromK(k);
- byte[] bytes = new byte[byteNum];
-
- byte l = 0;
- int bytecount = 0;
- int bcount = byteNum - 1;
- for (int i = start; i < start + k; i++) {
- byte code = GENE_CODE.getCodeFromSymbol(array[i]);
- l |= (byte) (code << bytecount);
- bytecount += 2;
- if (bytecount == 8) {
- bytes[bcount--] = l;
- l = 0;
- bytecount = 0;
- }
- }
- if (bcount >= 0) {
- bytes[0] = l;
- }
- return bytes;
- }
-
- /**
- * Shift Kmer to accept new input
- *
- * @param kmer
- * @param bytes
- * Kmer Array
- * @param c
- * Input new gene character
- * @return the shiftout gene, in gene code format
- */
- public static byte MoveKmer(int k, byte[] kmer, byte c) {
- int byteNum = kmer.length;
- byte output = (byte) (kmer[byteNum - 1] & 0x03);
- for (int i = byteNum - 1; i > 0; i--) {
- byte in = (byte) (kmer[i - 1] & 0x03);
- kmer[i] = (byte) (((kmer[i] >>> 2) & 0x3f) | (in << 6));
- }
-
- int pos = ((k - 1) % 4) * 2;
- byte code = (byte) (GENE_CODE.getCodeFromSymbol(c) << pos);
- kmer[0] = (byte) (((kmer[0] >>> 2) & 0x3f) | code);
- return (byte) (1 << output);
- }
-
- public static void main(String[] argv) {
- byte[] array = { 'A', 'A', 'T', 'A', 'G', 'A', 'A', 'G' };
- int k = 5;
- byte[] kmer = CompressKmer(k, array, 0);
- for (byte b : kmer) {
- System.out.print(Integer.toBinaryString(b));
- System.out.print(' ');
- }
- System.out.println();
- System.out.println(recoverKmerFrom(k, kmer, 0, kmer.length));
-
- for (int i = k; i < array.length-1; i++) {
- byte out = MoveKmer(k, kmer, array[i]);
-
- System.out.println((int) out);
- for (byte b : kmer) {
- System.out.print(Integer.toBinaryString(b));
- System.out.print(' ');
- }
- System.out.println();
- System.out.println(recoverKmerFrom(k, kmer, 0, kmer.length));
- }
-
- byte out = MoveKmer(k, kmer, array[array.length - 1]);
-
- System.out.println((int) out);
- for (byte b : kmer) {
- System.out.print(Integer.toBinaryString(b));
- System.out.print(' ');
- }
- System.out.println();
- System.out.println(recoverKmerFrom(k, kmer, 0, kmer.length));
-
- }
-
-}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/KmerBytesWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/KmerBytesWritable.java
deleted file mode 100644
index 230b3f7..0000000
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/KmerBytesWritable.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2009-2012 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.pregelix.type;
-
-import java.io.IOException;
-import java.io.DataInput;
-import java.io.DataOutput;
-import org.apache.hadoop.io.BinaryComparable;
-import org.apache.hadoop.io.WritableComparable;
-import org.apache.hadoop.io.WritableComparator;
-
-public class KmerBytesWritable extends BinaryComparable implements WritableComparable<BinaryComparable> {
- private static final int LENGTH_BYTES = 4;
- private static final byte[] EMPTY_BYTES = {};
- private byte size;
- private byte[] bytes;
-
- public KmerBytesWritable() {
- this(EMPTY_BYTES);
- }
-
- public KmerBytesWritable(byte[] bytes) {
- this.bytes = bytes;
- this.size = (byte) bytes.length;
- }
-
- @Override
- public byte[] getBytes() {
- return bytes;
- }
-
- @Deprecated
- public byte[] get() {
- return getBytes();
- }
-
- @Override
- public int getLength() {
- return (int) size;
- }
-
- @Deprecated
- public int getSize() {
- return getLength();
- }
-
- public void setSize(byte size) {
- if ((int) size > getCapacity()) {
- setCapacity((byte) (size * 3 / 2));
- }
- this.size = size;
- }
-
- public int getCapacity() {
- return bytes.length;
- }
-
- public void setCapacity(byte new_cap) {
- if (new_cap != getCapacity()) {
- byte[] new_data = new byte[new_cap];
- if (new_cap < size) {
- size = new_cap;
- }
- if (size != 0) {
- System.arraycopy(bytes, 0, new_data, 0, size);
- }
- bytes = new_data;
- }
- }
-
- public void set(KmerBytesWritable newData) {
- set(newData.bytes, (byte) 0, newData.size);
- }
-
- public void set(byte[] newData, byte offset, byte length) {
- setSize((byte) 0);
- setSize(length);
- System.arraycopy(newData, offset, bytes, 0, size);
- }
-
- public void readFields(DataInput in) throws IOException {
- setSize((byte) 0); // clear the old data
- setSize(in.readByte());
- in.readFully(bytes, 0, size);
- }
-
- @Override
- public void write(DataOutput out) throws IOException {
- out.writeByte(size);
- out.write(bytes, 0, size);
- }
-
- @Override
- public int hashCode() {
- return super.hashCode();
- }
-
- @Override
- public boolean equals(Object right_obj) {
- if (right_obj instanceof KmerBytesWritable)
- return super.equals(right_obj);
- return false;
- }
-
- @Override
- public String toString() {
- StringBuffer sb = new StringBuffer(3 * size);
- for (int idx = 0; idx < (int) size; idx++) {
- // if not the first, put a blank separator in
- if (idx != 0) {
- sb.append(' ');
- }
- String num = Integer.toHexString(0xff & bytes[idx]);
- // if it is only one digit, add a leading 0.
- if (num.length() < 2) {
- sb.append('0');
- }
- sb.append(num);
- }
- return sb.toString();
- }
-
- public static class Comparator extends WritableComparator {
- public Comparator() {
- super(KmerBytesWritable.class);
- }
-
- public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) {
- return compareBytes(b1, s1 + LENGTH_BYTES, l1 - LENGTH_BYTES, b2, s2 + LENGTH_BYTES, l2 - LENGTH_BYTES);
- }
- }
-
- static { // register this comparator
- WritableComparator.define(KmerBytesWritable.class, new Comparator());
- }
-}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/KmerCountValue.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/KmerCountValue.java
deleted file mode 100644
index 1900eca..0000000
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/pregelix/type/KmerCountValue.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2009-2012 by The Regents of the University of California
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * you may obtain a copy of the License from
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package edu.uci.ics.pregelix.type;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-import org.apache.hadoop.io.Writable;
-
-
-public class KmerCountValue implements Writable{
- private byte adjBitMap;
- private byte count;
-
- public KmerCountValue(byte bitmap, byte count) {
- reset(bitmap, count);
- }
-
- public KmerCountValue() {
- adjBitMap = 0;
- count = 0;
- }
-
- @Override
- public void readFields(DataInput arg0) throws IOException {
- adjBitMap = arg0.readByte();
- count = arg0.readByte();
- }
-
- @Override
- public void write(DataOutput arg0) throws IOException {
- arg0.writeByte(adjBitMap);
- arg0.writeByte(count);
- }
-
- @Override
- public String toString() {
- return Kmer.GENE_CODE.getSymbolFromBitMap(adjBitMap) + '\t' + String.valueOf(count);
- }
-
- public void reset(byte bitmap, byte count) {
- this.adjBitMap = bitmap;
- this.count = count;
- }
- public byte getAdjBitMap() {
- return adjBitMap;
- }
-
- public void setAdjBitMap(byte adjBitMap) {
- this.adjBitMap = adjBitMap;
- }
-
- public void setCount(byte count) {
- this.count = count;
- }
-
- public byte getCount() {
- return count;
- }
-}
\ No newline at end of file
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobGen/JobGenerator.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
similarity index 84%
rename from genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobGen/JobGenerator.java
rename to genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
index 625c1d4..7e740cd 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobGen/JobGenerator.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobGen/JobGenerator.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.JobGen;
+package edu.uci.ics.genomix.pregelix.JobGen;
import java.io.File;
import java.io.FileOutputStream;
@@ -10,17 +10,16 @@
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
-import edu.uci.ics.pregelix.BinaryLoadGraphInputFormat;
-import edu.uci.ics.pregelix.BinaryLoadGraphOutputFormat;
-import edu.uci.ics.pregelix.LoadGraphVertex;
-import edu.uci.ics.pregelix.LogAlgorithmForMergeGraphInputFormat;
-import edu.uci.ics.pregelix.LogAlgorithmForMergeGraphOutputFormat;
-import edu.uci.ics.pregelix.LogAlgorithmForMergeGraphVertex;
-import edu.uci.ics.pregelix.MergeGraphVertex;
-import edu.uci.ics.pregelix.TestLoadGraphVertex;
-import edu.uci.ics.pregelix.TextLoadGraphInputFormat;
-import edu.uci.ics.pregelix.testDeleteVertexId;
-import edu.uci.ics.pregelix.LoadGraphVertex.SimpleLoadGraphVertexOutputFormat;
+import edu.uci.ics.genomix.pregelix.BinaryLoadGraphInputFormat;
+import edu.uci.ics.genomix.pregelix.BinaryLoadGraphOutputFormat;
+import edu.uci.ics.genomix.pregelix.LoadGraphVertex;
+import edu.uci.ics.genomix.pregelix.LogAlgorithmForMergeGraphInputFormat;
+import edu.uci.ics.genomix.pregelix.LogAlgorithmForMergeGraphOutputFormat;
+import edu.uci.ics.genomix.pregelix.LogAlgorithmForMergeGraphVertex;
+import edu.uci.ics.genomix.pregelix.MergeGraphVertex;
+import edu.uci.ics.genomix.pregelix.TestLoadGraphVertex;
+import edu.uci.ics.genomix.pregelix.TextLoadGraphInputFormat;
+import edu.uci.ics.genomix.pregelix.LoadGraphVertex.SimpleLoadGraphVertexOutputFormat;
import edu.uci.ics.pregelix.api.job.PregelixJob;
@@ -100,8 +99,8 @@
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
- genBinaryLoadGraph();
- //genMergeGraph();
+ //genBinaryLoadGraph();
+ genMergeGraph();
//genLogAlgorithmForMergeGraph();
//genSequenceLoadGraph();
//genBasicBinaryLoadGraph();
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobRun/RunJobTestCase.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RunJobTestCase.java
similarity index 97%
rename from genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobRun/RunJobTestCase.java
rename to genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RunJobTestCase.java
index 7af814c..98a7eea 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobRun/RunJobTestCase.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RunJobTestCase.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.JobRun;
+package edu.uci.ics.genomix.pregelix.JobRun;
import java.io.File;
import java.io.FileNotFoundException;
@@ -13,6 +13,7 @@
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.junit.Test;
+import edu.uci.ics.genomix.pregelix.example.util.TestUtils;
import edu.uci.ics.hyracks.api.job.JobSpecification;
import edu.uci.ics.pregelix.api.job.PregelixJob;
import edu.uci.ics.pregelix.core.jobgen.JobGen;
@@ -22,7 +23,6 @@
import edu.uci.ics.pregelix.core.jobgen.JobGenOuterJoinSort;
import edu.uci.ics.pregelix.core.util.PregelixHyracksIntegrationUtil;
import edu.uci.ics.pregelix.dataflow.util.IterationUtils;
-import edu.uci.ics.pregelix.example.util.TestUtils;
public class RunJobTestCase extends TestCase{
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobRun/RunJobTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RunJobTestSuite.java
similarity index 97%
rename from genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobRun/RunJobTestSuite.java
rename to genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RunJobTestSuite.java
index 251e223..e657b94 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/JobRun/RunJobTestSuite.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/RunJobTestSuite.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix.JobRun;
+package edu.uci.ics.genomix.pregelix.JobRun;
import java.io.BufferedReader;
import java.io.DataOutputStream;
@@ -41,7 +41,7 @@
private static final String PATH_TO_ONLY = "src/test/resources/only.txt";
private static final String FILE_EXTENSION_OF_RESULTS = "result";
- private static final String DATA_PATH = "data/input/part-1-out-50000";//sequenceFileMergeTest
+ private static final String DATA_PATH = "data/input/SinglePath.seq";//sequenceFileMergeTest
private static final String HDFS_PATH = "/webmap/";
private static final String HYRACKS_APP_NAME = "pregelix";
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/LoadGraphVertexTest.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/LoadGraphVertexTest.java
similarity index 95%
rename from genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/LoadGraphVertexTest.java
rename to genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/LoadGraphVertexTest.java
index e88098d..3087377 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/LoadGraphVertexTest.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/LoadGraphVertexTest.java
@@ -1,4 +1,4 @@
-package edu.uci.ics.pregelix;
+package edu.uci.ics.genomix.pregelix;
import static org.junit.Assert.*;
@@ -14,9 +14,9 @@
import org.junit.Test;
-import edu.uci.ics.pregelix.LoadGraphVertex.SimpleLoadGraphVertexOutputFormat;
+import edu.uci.ics.genomix.pregelix.LoadGraphVertex.SimpleLoadGraphVertexOutputFormat;
+import edu.uci.ics.genomix.pregelix.example.client.Client;
import edu.uci.ics.pregelix.api.job.PregelixJob;
-import edu.uci.ics.pregelix.example.client.Client;
public class LoadGraphVertexTest {
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/example/util/TestUtils.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/example/util/TestUtils.java
similarity index 98%
rename from genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/example/util/TestUtils.java
rename to genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/example/util/TestUtils.java
index d89ec46..4ea3c1d 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/pregelix/example/util/TestUtils.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/example/util/TestUtils.java
@@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package edu.uci.ics.pregelix.example.util;
+package edu.uci.ics.genomix.pregelix.example.util;
import java.io.BufferedReader;
import java.io.File;