Mapper passes test
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/oldtype/NodeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/oldtype/NodeWritable.java
index 3931e7f..9fc1829 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/oldtype/NodeWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/oldtype/NodeWritable.java
@@ -211,13 +211,13 @@
@Override
public String toString() {
StringBuilder sbuilder = new StringBuilder();
- sbuilder.append('(');
+ sbuilder.append('{');
sbuilder.append(nodeID.toString()).append('\t');
sbuilder.append(forwardForwardList.toString()).append('\t');
sbuilder.append(forwardReverseList.toString()).append('\t');
sbuilder.append(reverseForwardList.toString()).append('\t');
sbuilder.append(reverseReverseList.toString()).append('\t');
- sbuilder.append(kmer.toString()).append(')');
+ sbuilder.append(kmer.toString()).append('}');
return sbuilder.toString();
}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/IntermediateNodeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/IntermediateNodeWritable.java
deleted file mode 100644
index 2787ef3..0000000
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/IntermediateNodeWritable.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package edu.uci.ics.genomix.type;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.Serializable;
-
-import org.apache.hadoop.io.WritableComparable;
-
-public class IntermediateNodeWritable implements WritableComparable<IntermediateNodeWritable>, Serializable{
-
- private static final long serialVersionUID = 1L;
- public static final IntermediateNodeWritable EMPTY_NODE = new IntermediateNodeWritable();
-
- private KmerListWritable forwardForwardList;
- private KmerListWritable forwardReverseList;
- private KmerListWritable reverseForwardList;
- private KmerListWritable reverseReverseList;
- private PositionWritable nodeId;
-
- public IntermediateNodeWritable(){
- forwardForwardList = new KmerListWritable();
- forwardReverseList = new KmerListWritable();
- reverseForwardList = new KmerListWritable();
- reverseReverseList = new KmerListWritable();
- nodeId = new PositionWritable();
- }
-
- public IntermediateNodeWritable(KmerListWritable FFList, KmerListWritable FRList,
- KmerListWritable RFList, KmerListWritable RRList, PositionWritable uniqueKey) {
- this();
- set(FFList, FRList, RFList, RRList, uniqueKey);
- }
-
- public void set(IntermediateNodeWritable node){
- set(node.forwardForwardList, node.forwardReverseList, node.reverseForwardList,
- node.reverseReverseList, node.nodeId);
- }
-
- public void set(KmerListWritable FFList, KmerListWritable FRList,
- KmerListWritable RFList, KmerListWritable RRList, PositionWritable uniqueKey) {
- this.forwardForwardList.set(FFList);
- this.forwardReverseList.set(FRList);
- this.reverseForwardList.set(RFList);
- this.reverseReverseList.set(RRList);
- this.nodeId.set(uniqueKey);
- }
-
- public void reset(int kmerSize) {
- forwardForwardList.reset();
- forwardReverseList.reset();
- reverseForwardList.reset();
- reverseReverseList.reset();
- nodeId.reset();
- }
-
- public KmerListWritable getFFList() {
- return forwardForwardList;
- }
-
- public void setFFList(KmerListWritable forwardForwardList) {
- this.forwardForwardList.set(forwardForwardList);
- }
-
- public KmerListWritable getFRList() {
- return forwardReverseList;
- }
-
- public void setFRList(KmerListWritable forwardReverseList) {
- this.forwardReverseList.set(forwardReverseList);
- }
-
- public KmerListWritable getRFList() {
- return reverseForwardList;
- }
-
- public void setRFList(KmerListWritable reverseForwardList) {
- this.reverseForwardList.set(reverseForwardList);
- }
-
- public KmerListWritable getRRList() {
- return reverseReverseList;
- }
-
- public void setRRList(KmerListWritable reverseReverseList) {
- this.reverseReverseList.set(reverseReverseList);
- }
-
- public PositionWritable getNodeId() {
- return nodeId;
- }
-
- public void setNodeId(PositionWritable nodeId) {
- this.nodeId.set(nodeId);
- }
-
- @Override
- public void readFields(DataInput in) throws IOException {
- this.forwardForwardList.readFields(in);
- this.forwardReverseList.readFields(in);
- this.reverseForwardList.readFields(in);
- this.reverseReverseList.readFields(in);
- this.nodeId.readFields(in);
- }
-
- @Override
- public void write(DataOutput out) throws IOException {
- this.forwardForwardList.write(out);
- this.forwardReverseList.write(out);
- this.reverseForwardList.write(out);
- this.reverseReverseList.write(out);
- this.nodeId.write(out);
- }
-
- @Override
- public int compareTo(IntermediateNodeWritable other) {
- // TODO Auto-generated method stub
- return this.nodeId.compareTo(other.nodeId);
- }
-
- @Override
- public int hashCode() {
- return this.nodeId.hashCode();
- }
-
- @Override
- public boolean equals(Object o) {
- if (o instanceof IntermediateNodeWritable) {
- IntermediateNodeWritable nw = (IntermediateNodeWritable) o;
- return (this.forwardForwardList.equals(nw.forwardForwardList)
- && this.forwardReverseList.equals(nw.forwardReverseList)
- && this.reverseForwardList.equals(nw.reverseForwardList)
- && this.reverseReverseList.equals(nw.reverseReverseList) && (this.nodeId.equals(nw.nodeId)));
- }
- return false;
- }
-
- @Override
- public String toString() {
- StringBuilder sbuilder = new StringBuilder();
- sbuilder.append('(');
- sbuilder.append(nodeId.toString()).append('\t');
- sbuilder.append(forwardForwardList.toString()).append('\t');
- sbuilder.append(forwardReverseList.toString()).append('\t');
- sbuilder.append(reverseForwardList.toString()).append('\t');
- sbuilder.append(reverseReverseList.toString()).append('\t').append(')');
- return sbuilder.toString();
- }
-}
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java
index 0f91a7c..b791515 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/KmerListWritable.java
@@ -17,7 +17,7 @@
protected byte[] storage;
protected int offset;
protected int valueCount;
- public int kmerByteSize = 0; //default kmerSize = 5, kmerByteSize = 2, fix length once setting
+ public int kmerByteSize = 0;
public int kmerlength = 0;
protected static final byte[] EMPTY = {};
@@ -29,13 +29,10 @@
this.offset = 0;
}
- public KmerListWritable(int kmerSize) {
+ public KmerListWritable(int kmerlength) {
this();
- this.kmerByteSize = KmerUtil.getByteNumFromK(kmerSize);;
- }
-
- public KmerListWritable(int count, byte[] data, int offset) {
- setNewReference(count, data, offset);
+ this.kmerlength = kmerlength;
+ this.kmerByteSize = KmerUtil.getByteNumFromK(kmerlength);;
}
public KmerListWritable(int kmerlength, int count, byte[] data, int offset) {
@@ -66,6 +63,20 @@
valueCount += 1;
}
+ /*
+ * Append the otherList to the end of myList
+ */
+ public void appendList(KmerListWritable otherList) {
+ if (otherList.valueCount > 0) {
+ setSize((valueCount + otherList.valueCount) * PositionWritable.LENGTH);
+ // copy contents of otherList into the end of my storage
+ System.arraycopy(otherList.storage, otherList.offset,
+ storage, offset + valueCount * kmerByteSize,
+ otherList.valueCount * kmerByteSize);
+ valueCount += otherList.valueCount;
+ }
+ }
+
protected void setSize(int size) {
if (size > getCapacity()) {
setCapacity((size * 3 / 2));
@@ -177,10 +188,6 @@
public String toString() {
StringBuilder sbuilder = new StringBuilder();
sbuilder.append('[');
-// for (KmerBytesWritable kmer : this) {
-// sbuilder.append(kmer.toString());
-// sbuilder.append(',');
-// }
for(int i = 0; i < valueCount; i++){
sbuilder.append(getPosition(i).toString());
sbuilder.append(',');
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
index c5576f6..e265fa9 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
@@ -13,7 +13,7 @@
private static final long serialVersionUID = 1L;
public static final NodeWritable EMPTY_NODE = new NodeWritable(0);
- private PositionWritable nodeId;
+ private PositionListWritable nodeId;
private KmerListWritable forwardForwardList;
private KmerListWritable forwardReverseList;
private KmerListWritable reverseForwardList;
@@ -35,7 +35,7 @@
}
public NodeWritable(int kmerSize) {
- nodeId = new PositionWritable();
+ nodeId = new PositionListWritable();
forwardForwardList = new KmerListWritable();
forwardReverseList = new KmerListWritable();
reverseForwardList = new KmerListWritable();
@@ -43,7 +43,7 @@
kmer = new KmerBytesWritable(kmerSize);
}
- public NodeWritable(PositionWritable nodeId, KmerListWritable FFList, KmerListWritable FRList,
+ public NodeWritable(PositionListWritable nodeId, KmerListWritable FFList, KmerListWritable FRList,
KmerListWritable RFList, KmerListWritable RRList, KmerBytesWritable kmer) {
this(kmer.getKmerLength());
set(nodeId, FFList, FRList, RFList, RRList, kmer);
@@ -54,7 +54,7 @@
node.reverseReverseList, node.kmer);
}
- public void set(PositionWritable nodeId, KmerListWritable FFList, KmerListWritable FRList,
+ public void set(PositionListWritable nodeId, KmerListWritable FFList, KmerListWritable FRList,
KmerListWritable RFList, KmerListWritable RRList, KmerBytesWritable kmer) {
this.nodeId.set(nodeId);
this.forwardForwardList.set(FFList);
@@ -72,14 +72,6 @@
reverseReverseList.reset();
kmer.reset(kmerSize);
}
-
- public PositionWritable getNodeId() {
- return nodeId;
- }
-
- public void setNodeId(PositionWritable nodeId) {
- this.nodeId = nodeId;
- }
public KmerBytesWritable getKmer() {
return kmer;
diff --git a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixDriver.java b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixDriver.java
index 2f463a4..3723ed9 100644
--- a/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixDriver.java
+++ b/genomix/genomix-hadoop/src/main/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GenomixDriver.java
@@ -10,14 +10,12 @@
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.SequenceFileOutputFormat;
import org.apache.hadoop.mapred.TextInputFormat;
+import org.apache.hadoop.mapred.TextOutputFormat;
import org.kohsuke.args4j.CmdLineParser;
import org.kohsuke.args4j.Option;
-import edu.uci.ics.genomix.hadoop.graphbuilding.GenomixCombiner;
-import edu.uci.ics.genomix.hadoop.graphbuilding.GenomixMapper;
-import edu.uci.ics.genomix.hadoop.graphbuilding.GenomixReducer;
-import edu.uci.ics.genomix.hadoop.oldtype.KmerBytesWritable;
-import edu.uci.ics.genomix.hadoop.oldtype.KmerCountValue;
+import edu.uci.ics.genomix.type.KmerBytesWritable;
+import edu.uci.ics.genomix.type.NodeWritable;
@SuppressWarnings("deprecation")
@@ -40,23 +38,33 @@
public int readLength;
}
- public void run(String inputPath, String outputPath, int numReducers, int sizeKmer, int readLength) throws IOException{
+ public void run(String inputPath, String outputPath, int numReducers, int sizeKmer, int readLength,
+ boolean seqOutput, String defaultConfPath) throws IOException{
JobConf conf = new JobConf(GenomixDriver.class);
conf.setInt("sizeKmer", sizeKmer);
conf.setInt("readLength", readLength);
+ if (defaultConfPath != null) {
+ conf.addResource(new Path(defaultConfPath));
+ }
conf.setJobName("Genomix Graph Building");
conf.setMapperClass(GenomixMapper.class);
conf.setReducerClass(GenomixReducer.class);
- conf.setCombinerClass(GenomixCombiner.class);
conf.setMapOutputKeyClass(KmerBytesWritable.class);
- conf.setMapOutputValueClass(KmerCountValue.class);
-
+ conf.setMapOutputValueClass(NodeWritable.class);
+
+ //InputFormat and OutputFormat for Reducer
conf.setInputFormat(TextInputFormat.class);
- conf.setOutputFormat(SequenceFileOutputFormat.class);
+ if (seqOutput == true)
+ conf.setOutputFormat(SequenceFileOutputFormat.class);
+ else
+ conf.setOutputFormat(TextOutputFormat.class);
+
+ //Output Key/Value Class
conf.setOutputKeyClass(KmerBytesWritable.class);
- conf.setOutputValueClass(KmerCountValue.class);
+ conf.setOutputValueClass(NodeWritable.class);
+
FileInputFormat.setInputPaths(conf, new Path(inputPath));
FileOutputFormat.setOutputPath(conf, new Path(outputPath));
conf.setNumReduceTasks(numReducers);
@@ -71,6 +79,7 @@
CmdLineParser parser = new CmdLineParser(options);
parser.parseArgument(args);
GenomixDriver driver = new GenomixDriver();
- driver.run(options.inputPath, options.outputPath, options.numReducers, options.sizeKmer, options.readLength);
+ driver.run(options.inputPath, options.outputPath, options.numReducers, options.sizeKmer,
+ options.readLength, true, null);
}
}
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 3316d62..8c9cfc8 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
@@ -13,7 +13,6 @@
import org.apache.hadoop.mapred.Reporter;
import edu.uci.ics.genomix.type.KmerBytesWritable;
-import edu.uci.ics.genomix.type.KmerBytesWritableFactory;
import edu.uci.ics.genomix.type.KmerListWritable;
import edu.uci.ics.genomix.type.NodeWritable;
import edu.uci.ics.genomix.type.PositionWritable;
@@ -36,9 +35,9 @@
private KmerBytesWritable nextReverseKmer;
private NodeWritable outputNode;
private PositionWritable nodeId;
- private KmerListWritable kmerList;
+ private KmerListWritable edgeListForPreKmer;
+ private KmerListWritable edgeListForNextKmer;
- private KmerBytesWritableFactory kmerFactory;
private KmerDir preKmerDir;
private KmerDir curKmerDir;
private KmerDir nextKmerDir;
@@ -56,8 +55,8 @@
nextReverseKmer = new KmerBytesWritable(KMER_SIZE);
outputNode = new NodeWritable();
nodeId = new PositionWritable();
- kmerList = new KmerListWritable();
- kmerFactory = new KmerBytesWritableFactory(KMER_SIZE);
+ edgeListForPreKmer = new KmerListWritable();
+ edgeListForNextKmer = new KmerListWritable();
preKmerDir = KmerDir.FORWARD;
curKmerDir = KmerDir.FORWARD;
nextKmerDir = KmerDir.FORWARD;
@@ -85,8 +84,8 @@
/** first kmer **/
curForwardKmer.setByRead(array, 0);
- curReverseKmer.set(kmerFactory.reverse(curForwardKmer));
- curKmerDir = curForwardKmer.compareTo(curReverseKmer) >= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+ curReverseKmer.setByReadReverse(array, 0);
+ curKmerDir = curForwardKmer.compareTo(curReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
setNextKmer(array[KMER_SIZE]);
//set value.nodeId
nodeId.set(mateId, readID, 1);
@@ -129,28 +128,28 @@
case FORWARD:
switch(preKmerDir){
case FORWARD:
- kmerList.reset();
- kmerList.append(preForwardKmer);
- outputNode.setRRList(kmerList);
+ edgeListForPreKmer.reset();
+ edgeListForPreKmer.append(preForwardKmer);
+ outputNode.setRRList(edgeListForPreKmer);
break;
case REVERSE:
- kmerList.reset();
- kmerList.append(preReverseKmer);
- outputNode.setRFList(kmerList);
+ edgeListForPreKmer.reset();
+ edgeListForPreKmer.append(preReverseKmer);
+ outputNode.setRFList(edgeListForPreKmer);
break;
}
break;
case REVERSE:
switch(preKmerDir){
case FORWARD:
- kmerList.reset();
- kmerList.append(nextForwardKmer);
- outputNode.setFRList(kmerList);
+ edgeListForPreKmer.reset();
+ edgeListForPreKmer.append(preForwardKmer);
+ outputNode.setFRList(edgeListForPreKmer);
break;
case REVERSE:
- kmerList.reset();
- kmerList.append(nextReverseKmer);
- outputNode.setFFList(kmerList);
+ edgeListForPreKmer.reset();
+ edgeListForPreKmer.append(preReverseKmer);
+ outputNode.setFFList(edgeListForPreKmer);
break;
}
break;
@@ -162,28 +161,28 @@
case FORWARD:
switch(nextKmerDir){
case FORWARD:
- kmerList.reset();
- kmerList.append(nextForwardKmer);
- outputNode.setFFList(kmerList);
+ edgeListForNextKmer.reset();
+ edgeListForNextKmer.append(nextForwardKmer);
+ outputNode.setFFList(edgeListForNextKmer);
break;
case REVERSE:
- kmerList.reset();
- kmerList.append(nextReverseKmer);
- outputNode.setFRList(kmerList);
+ edgeListForNextKmer.reset();
+ edgeListForNextKmer.append(nextReverseKmer);
+ outputNode.setFRList(edgeListForNextKmer);
break;
}
break;
case REVERSE:
switch(nextKmerDir){
case FORWARD:
- kmerList.reset();
- kmerList.append(nextForwardKmer);
- outputNode.setRFList(kmerList);
+ edgeListForNextKmer.reset();
+ edgeListForNextKmer.append(nextForwardKmer);
+ outputNode.setRFList(edgeListForNextKmer);
break;
case REVERSE:
- kmerList.reset();
- kmerList.append(nextReverseKmer);
- outputNode.setRRList(kmerList);
+ edgeListForNextKmer.reset();
+ edgeListForNextKmer.append(nextReverseKmer);
+ outputNode.setRRList(edgeListForNextKmer);
break;
}
break;
@@ -194,18 +193,16 @@
public void setPreKmer(byte preChar){
preForwardKmer.set(curForwardKmer);
preForwardKmer.shiftKmerWithPreChar(preChar);
- preReverseKmer.set(preForwardKmer);
- preReverseKmer.set(kmerFactory.reverse(nextForwardKmer));
- preKmerDir = preForwardKmer.compareTo(preReverseKmer) >= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+ preReverseKmer.setByReadReverse(preForwardKmer.toString().getBytes(), preForwardKmer.getOffset());
+ preKmerDir = preForwardKmer.compareTo(preReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
}
//set nextKmer by shifting curKmer with nextChar
public void setNextKmer(byte nextChar){
nextForwardKmer.set(curForwardKmer);
nextForwardKmer.shiftKmerWithNextChar(nextChar);
- nextReverseKmer.set(nextForwardKmer);
- nextReverseKmer.set(kmerFactory.reverse(nextForwardKmer));
- nextKmerDir = nextForwardKmer.compareTo(nextReverseKmer) >= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
+ nextReverseKmer.setByReadReverse(nextForwardKmer.toString().getBytes(), nextForwardKmer.getOffset());
+ nextKmerDir = nextForwardKmer.compareTo(nextReverseKmer) <= 0 ? KmerDir.FORWARD : KmerDir.REVERSE;
}
//old curKmer becomes current preKmer
@@ -231,5 +228,5 @@
output.collect(curReverseKmer, outputNode);
break;
}
- }
+ }
}
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 a710eca..d53e3bf 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
@@ -14,13 +14,22 @@
@SuppressWarnings("deprecation")
public class GenomixReducer extends MapReduceBase implements
Reducer<KmerBytesWritable, NodeWritable, KmerBytesWritable, NodeWritable>{
-
+
+ private NodeWritable outputNode = new NodeWritable();
+
@Override
public void reduce(KmerBytesWritable key, Iterator<NodeWritable> values,
OutputCollector<KmerBytesWritable, NodeWritable> output,
Reporter reporter) throws IOException {
- // TODO Auto-generated method stub
+ outputNode.reset(GenomixMapper.KMER_SIZE);
+ //copy first item to outputNode
+ if(values.hasNext())
+ outputNode.set(values.next());
+ while (values.hasNext()) {
+ NodeWritable tmpNode = values.next();
+ outputNode.getFFList().appendList(tmpNode.getFFList());
+ }
}
}
diff --git a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTest.java b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTest.java
index d3d0357..b756839 100644
--- a/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTest.java
+++ b/genomix/genomix-hadoop/src/test/java/edu/uci/ics/genomix/hadoop/contrailgraphbuilding/GraphBuildingTest.java
@@ -12,17 +12,19 @@
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.MiniMRCluster;
+import org.junit.Test;
+@SuppressWarnings("deprecation")
public class GraphBuildingTest {
private JobConf conf = new JobConf();
- private static final String ACTUAL_RESULT_DIR = "actual1";
+ private static final String ACTUAL_RESULT_DIR = "actual";
private static final String HADOOP_CONF_PATH = ACTUAL_RESULT_DIR + File.separator + "conf.xml";
- private static final String DATA_PATH = "data/webmap/text.txt";
+ private static final String DATA_PATH = "data/webmap/test.txt";
private static final String HDFS_PATH = "/webmap";
- private static final String RESULT_PATH = "/result1";
- private static final String EXPECTED_PATH = "expected/";
- private static final int COUNT_REDUCER = 2;
+ private static final String RESULT_PATH = "/result";
+
+// private static final int COUNT_REDUCER = 2;
private static final int SIZE_KMER = 5;
private static final int READ_LENGTH = 8;
@@ -30,13 +32,21 @@
private MiniMRCluster mrCluster;
private FileSystem dfs;
+ @Test
public void test() throws Exception {
FileUtils.forceMkdir(new File(ACTUAL_RESULT_DIR));
FileUtils.cleanDirectory(new File(ACTUAL_RESULT_DIR));
startHadoop();
+ TestMapKmerToNode();
cleanupHadoop();
}
+ public void TestMapKmerToNode() throws Exception {
+ GenomixDriver driver = new GenomixDriver();
+ driver.run(HDFS_PATH, RESULT_PATH, 0, SIZE_KMER, READ_LENGTH, false, HADOOP_CONF_PATH);
+ dumpResult();
+ }
+
private void startHadoop() throws IOException {
FileSystem lfs = FileSystem.getLocal(new Configuration());
lfs.delete(new Path("build"), true);
@@ -60,5 +70,10 @@
mrCluster.shutdown();
dfsCluster.shutdown();
}
-
+
+ private void dumpResult() throws IOException {
+ Path src = new Path(RESULT_PATH);
+ Path dest = new Path(ACTUAL_RESULT_DIR);
+ dfs.copyToLocalFile(src, dest);
+ }
}
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 3084722..3650553 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
@@ -24,7 +24,7 @@
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
-import edu.uci.ics.genomix.type.IntermediateNodeWritable;
+import edu.uci.ics.genomix.oldtype.IntermediateNodeWritable;
import edu.uci.ics.genomix.type.KmerBytesWritable;
import edu.uci.ics.genomix.type.KmerListWritable;
import edu.uci.ics.genomix.type.PositionWritable;
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
index c4e7063..6026ac1 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
@@ -20,8 +20,8 @@
import edu.uci.ics.genomix.hyracks.newgraph.dataflow.ReadsKeyValueParserFactory;
import edu.uci.ics.genomix.hyracks.job.GenomixJobConf;
+import edu.uci.ics.genomix.oldtype.IntermediateNodeWritable;
import edu.uci.ics.genomix.oldtype.PositionWritable;
-import edu.uci.ics.genomix.type.IntermediateNodeWritable;
import edu.uci.ics.genomix.type.KmerBytesWritable;
import edu.uci.ics.genomix.type.KmerListWritable;
import edu.uci.ics.hyracks.api.client.NodeControllerInfo;