adapt new NodeWritable and extends it in VertexValue
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 4f1e0ef..533819b 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
@@ -26,10 +26,10 @@
// connections within the same read -- used for resolving repeats and scaffolding
private PositionListWritable threads[] = {null, null, null, null};
- private PositionListWritable startReads; // first kmer in read (or last but kmer was flipped)
- private PositionListWritable endReads; //last kmer in read (or first but kmer was flipped)
+ private PositionListWritable startReads; // first internalKmer in read (or last but internalKmer was flipped)
+ private PositionListWritable endReads; //last internalKmer in read (or first but internalKmer was flipped)
- private VKmerBytesWritable kmer;
+ private VKmerBytesWritable internalKmer;
private float averageCoverage;
// merge/update directions
@@ -53,7 +53,7 @@
}
startReads = new PositionListWritable();
endReads = new PositionListWritable();
- kmer = new VKmerBytesWritable(); // in graph construction - not set kmerlength Optimization: VKmer
+ internalKmer = new VKmerBytesWritable(); // in graph construction - not set kmerlength Optimization: VKmer
averageCoverage = 0;
}
@@ -65,7 +65,7 @@
}
public void set(NodeWritable node){
- set(node.edges, node.threads, node.startReads, node.endReads, node.kmer, node.averageCoverage);
+ set(node.edges, node.threads, node.startReads, node.endReads, node.internalKmer, node.averageCoverage);
}
public void set(VKmerListWritable[] edges, PositionListWritable[] threads,
@@ -77,7 +77,7 @@
}
this.startReads.set(startReads);
this.endReads.set(endReads);
- this.kmer.setAsCopy(kmer2);
+ this.internalKmer.setAsCopy(kmer2);
this.averageCoverage = coverage;
}
@@ -88,20 +88,20 @@
}
startReads.reset();
endReads.reset();
- kmer.reset(0);
+ internalKmer.reset(0);
averageCoverage = 0;
}
-
- public VKmerBytesWritable getKmer() {
- return kmer;
- }
-
- public void setKmer(VKmerBytesWritable kmer) {
- this.kmer.setAsCopy(kmer);
- }
+ public VKmerBytesWritable getInternalKmer() {
+ return internalKmer;
+ }
+
+ public void setInternalKmer(VKmerBytesWritable internalKmer) {
+ this.internalKmer.setAsCopy(internalKmer);
+ }
+
public int getKmerLength() {
- return kmer.getKmerLetterLength();
+ return internalKmer.getKmerLetterLength();
}
public VKmerListWritable getEdgeList(byte dir) {
@@ -125,10 +125,10 @@
*/
public void mergeCoverage(NodeWritable other) {
// sequence considered in the average doesn't include anything overlapping with other kmers
- float adjustedLength = kmer.getKmerLetterLength() + other.kmer.getKmerLetterLength() - (KmerBytesWritable.getKmerLength() - 1) * 2;
+ float adjustedLength = internalKmer.getKmerLetterLength() + other.internalKmer.getKmerLetterLength() - (KmerBytesWritable.getKmerLength() - 1) * 2;
- float myCount = (kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * averageCoverage;
- float otherCount = (other.kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * other.averageCoverage;
+ float myCount = (internalKmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * averageCoverage;
+ float otherCount = (other.internalKmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1) * other.averageCoverage;
averageCoverage = (myCount + otherCount) / adjustedLength;
}
@@ -136,8 +136,8 @@
* Update my coverage as if all the reads in other became my own
*/
public void addCoverage(NodeWritable other) {
- float myAdjustedLength = kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1;
- float otherAdjustedLength = other.kmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1;
+ float myAdjustedLength = internalKmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1;
+ float otherAdjustedLength = other.internalKmer.getKmerLetterLength() - KmerBytesWritable.getKmerLength() - 1;
averageCoverage += other.averageCoverage * (otherAdjustedLength / myAdjustedLength);
}
@@ -174,7 +174,7 @@
length += edges[d].getLength();
length += threads[d].getLength();
}
- length += kmer.getLength() + SIZE_FLOAT;
+ length += internalKmer.getLength() + SIZE_FLOAT;
return length;
}
@@ -202,8 +202,8 @@
curOffset += startReads.getLength();
endReads.set(data, curOffset);
curOffset += endReads.getLength();
- kmer.setAsCopy(data, curOffset);
- curOffset += kmer.getLength();
+ internalKmer.setAsCopy(data, curOffset);
+ curOffset += internalKmer.getLength();
averageCoverage = Marshal.getFloat(data, curOffset);
}
@@ -222,8 +222,8 @@
endReads.setNewReference(data, curOffset);
curOffset += endReads.getLength();
- kmer.setAsReference(data, curOffset);
- curOffset += kmer.getLength();
+ internalKmer.setAsReference(data, curOffset);
+ curOffset += internalKmer.getLength();
averageCoverage = Marshal.getFloat(data, curOffset);
}
@@ -237,7 +237,7 @@
}
startReads.write(out);
endReads.write(out);
- this.kmer.write(out);
+ this.internalKmer.write(out);
out.writeFloat(averageCoverage);
}
@@ -252,13 +252,13 @@
}
startReads.readFields(in);
endReads.readFields(in);
- this.kmer.readFields(in);
+ this.internalKmer.readFields(in);
averageCoverage = in.readFloat();
}
@Override
public int compareTo(NodeWritable other) {
- return this.kmer.compareTo(other.kmer);
+ return this.internalKmer.compareTo(other.internalKmer);
}
public class SortByCoverage implements Comparator<NodeWritable> {
@@ -270,7 +270,7 @@
@Override
public int hashCode() {
- return this.kmer.hashCode();
+ return this.internalKmer.hashCode();
}
@Override
@@ -283,7 +283,7 @@
if (!edges[d].equals(nw.edges[d]) || !threads[d].equals(nw.threads[d]))
return false;
}
- return averageCoverage == nw.averageCoverage && kmer.equals(nw.kmer);
+ return averageCoverage == nw.averageCoverage && internalKmer.equals(nw.internalKmer);
}
@Override
@@ -296,7 +296,7 @@
for (byte d: DirectionFlag.values) {
sbuilder.append(threads[d].toString()).append('\t');
}
- sbuilder.append(kmer.toString()).append('\t');
+ sbuilder.append(internalKmer.toString()).append('\t');
sbuilder.append(averageCoverage).append('x').append('}');
return sbuilder.toString();
}
@@ -304,13 +304,13 @@
public void mergeForwardNext(final NodeWritable nextNode, int initialKmerSize) {
edges[DirectionFlag.DIR_FF].setCopy(nextNode.edges[DirectionFlag.DIR_FF]);
edges[DirectionFlag.DIR_FR].setCopy(nextNode.edges[DirectionFlag.DIR_FR]);
- kmer.mergeWithFFKmer(initialKmerSize, nextNode.getKmer());
+ internalKmer.mergeWithFFKmer(initialKmerSize, nextNode.getInternalKmer());
}
public void mergeForwardPre(final NodeWritable preNode, int initialKmerSize) {
edges[DirectionFlag.DIR_RF].setCopy(preNode.edges[DirectionFlag.DIR_RF]);
edges[DirectionFlag.DIR_RR].setCopy(preNode.edges[DirectionFlag.DIR_RR]);
- kmer.mergeWithRRKmer(initialKmerSize, preNode.getKmer());
+ internalKmer.mergeWithRRKmer(initialKmerSize, preNode.getInternalKmer());
}
public int inDegree() {
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
index 29e27b9..aae1660 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/format/InitialGraphCleanInputFormat.java
@@ -75,8 +75,7 @@
vertexValue.setFRList(node.getEdgeList(DirectionFlag.DIR_FR));
vertexValue.setRFList(node.getEdgeList(DirectionFlag.DIR_RF));
vertexValue.setRRList(node.getEdgeList(DirectionFlag.DIR_RR));
- // TODO make this more efficient (don't use toString)
- vertexValue.setActualKmer(new VKmerBytesWritable(vertexId));
+ vertexValue.setInternalKmer(new VKmerBytesWritable(vertexId));
vertexValue.setState(State.IS_NON);
vertex.setVertexValue(vertexValue);
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
index 237d9ce..3036c2e 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/io/VertexValueWritable.java
@@ -1,14 +1,14 @@
package edu.uci.ics.genomix.pregelix.io;
import java.io.*;
-import org.apache.hadoop.io.WritableComparable;
-import edu.uci.ics.genomix.type.PositionListWritable;
import edu.uci.ics.genomix.pregelix.type.MessageFlag;
+import edu.uci.ics.genomix.type.NodeWritable;
import edu.uci.ics.genomix.type.VKmerBytesWritable;
import edu.uci.ics.genomix.type.VKmerListWritable;
-public class VertexValueWritable implements WritableComparable<VertexValueWritable>, Serializable {
+public class VertexValueWritable
+ extends NodeWritable{
private static final long serialVersionUID = 1L;
@@ -46,135 +46,75 @@
public static final byte FAKEFLAG_MASK = (byte) 00000001;
}
- private PositionListWritable nodeIdList;
- private AdjacencyListWritable incomingList;
- private AdjacencyListWritable outgoingList;
- private VKmerBytesWritable actualKmer;
- private float averageCoverage;
private byte state;
private boolean isFakeVertex = false;
private HashMapWritable<VKmerBytesWritable, VKmerListWritable> traverseMap = new HashMapWritable<VKmerBytesWritable, VKmerListWritable>();
public VertexValueWritable() {
- this(0);
+
}
- public VertexValueWritable(int kmerSize){
- nodeIdList = new PositionListWritable();
- incomingList = new AdjacencyListWritable();
- outgoingList = new AdjacencyListWritable();
- actualKmer = new VKmerBytesWritable();
- state = State.IS_NON;
- averageCoverage = 0;
- }
-
- public VertexValueWritable(PositionListWritable nodeIdList, VKmerListWritable forwardForwardList, VKmerListWritable forwardReverseList,
- VKmerListWritable reverseForwardList, VKmerListWritable reverseReverseList, VKmerBytesWritable actualKmer,
- float averageCoverage, byte state) {
- set(nodeIdList, forwardForwardList, forwardReverseList,
- reverseForwardList, reverseReverseList, actualKmer,
- averageCoverage, state);
- }
-
- public void set(PositionListWritable nodeIdList, VKmerListWritable forwardForwardList, VKmerListWritable forwardReverseList,
- VKmerListWritable reverseForwardList, VKmerListWritable reverseReverseList, VKmerBytesWritable actualKmer,
- float averageCoverage, byte state) {
- this.incomingList.setForwardList(reverseForwardList);
- this.incomingList.setReverseList(reverseReverseList);
- this.outgoingList.setForwardList(forwardForwardList);
- this.outgoingList.setReverseList(forwardReverseList);
- this.actualKmer.setAsCopy(actualKmer);
- this.averageCoverage = averageCoverage;
- this.state = state;
- }
-
- public void set(VertexValueWritable value) {
- set(value.getNodeIdList(), value.getFFList(),value.getFRList(),value.getRFList(),value.getRRList(),
- value.getActualKmer(), value.getAverageCoverage(), value.getState());
- }
-
-
- public PositionListWritable getNodeIdList() {
- return nodeIdList;
- }
-
- //for testing
- public long getHeadReadId(){
- return 1;
- }
-
- public void setNodeIdList(PositionListWritable nodeIdList) {
- this.nodeIdList.set(nodeIdList);
- }
public VKmerListWritable getFFList() {
- return outgoingList.getForwardList();
+ return getEdgeList(DirectionFlag.DIR_FF);
}
public VKmerListWritable getFRList() {
- return outgoingList.getReverseList();
+ return getEdgeList(DirectionFlag.DIR_FR);
}
public VKmerListWritable getRFList() {
- return incomingList.getForwardList();
+ return getEdgeList(DirectionFlag.DIR_RF);
}
public VKmerListWritable getRRList() {
- return incomingList.getReverseList();
+ return getEdgeList(DirectionFlag.DIR_RR);
}
public void setFFList(VKmerListWritable forwardForwardList){
- outgoingList.setForwardList(forwardForwardList);
+ setEdgeList(DirectionFlag.DIR_FF, forwardForwardList);
}
public void setFRList(VKmerListWritable forwardReverseList){
- outgoingList.setReverseList(forwardReverseList);
+ setEdgeList(DirectionFlag.DIR_FR, forwardReverseList);
}
public void setRFList(VKmerListWritable reverseForwardList){
- incomingList.setForwardList(reverseForwardList);
+ setEdgeList(DirectionFlag.DIR_RF, reverseForwardList);
}
public void setRRList(VKmerListWritable reverseReverseList){
- incomingList.setReverseList(reverseReverseList);
+ setEdgeList(DirectionFlag.DIR_RR, reverseReverseList);
}
public AdjacencyListWritable getIncomingList() {
+ AdjacencyListWritable incomingList = new AdjacencyListWritable();
+ incomingList.setForwardList(getRFList());
+ incomingList.setReverseList(getRRList());
return incomingList;
}
public void setIncomingList(AdjacencyListWritable incomingList) {
- this.incomingList.set(incomingList);
+ this.setRFList(incomingList.getForwardList());
+ this.setRRList(incomingList.getReverseList());
}
public AdjacencyListWritable getOutgoingList() {
+ AdjacencyListWritable outgoingList = new AdjacencyListWritable();
+ outgoingList.setForwardList(getFFList());
+ outgoingList.setReverseList(getFRList());
return outgoingList;
}
public void setOutgoingList(AdjacencyListWritable outgoingList) {
- this.outgoingList.set(outgoingList);
+ this.setFFList(outgoingList.getForwardList());
+ this.setFRList(outgoingList.getReverseList());
}
public byte getState() {
return state;
}
-
- public VKmerBytesWritable getActualKmer() {
- return actualKmer;
- }
-
- public void setActualKmer(VKmerBytesWritable kmer) {
- this.actualKmer.setAsCopy(kmer);
- }
-
- public float getAverageCoverage() {
- return averageCoverage;
- }
-
- public void setAverageCoverage(float averageCoverage) {
- this.averageCoverage = averageCoverage;
- }
-
+
public boolean isFakeVertex() {
return isFakeVertex;
}
@@ -186,11 +126,6 @@
public void setState(byte state) {
this.state = state;
}
-
- public int getLengthOfKmer() {
- return actualKmer.getKmerLetterLength();
- }
-
public HashMapWritable<VKmerBytesWritable, VKmerListWritable> getTraverseMap() {
return traverseMap;
@@ -201,29 +136,19 @@
}
public void reset() {
- this.reset(0);
+ super.reset();
+ this.state = 0;
+ this.isFakeVertex = false;
+ this.traverseMap.clear();
}
- public void reset(int kmerSize) {
- this.nodeIdList.reset();
- this.incomingList.getForwardList().reset();
- this.incomingList.getReverseList().reset();
- this.outgoingList.getForwardList().reset();
- this.outgoingList.getReverseList().reset();
- this.actualKmer.reset(0);
- averageCoverage = 0;
- }
+// public void reset(int kmerSize) {
+// }
@Override
public void readFields(DataInput in) throws IOException {
reset();
- this.nodeIdList.readFields(in);
- this.outgoingList.getForwardList().readFields(in);
- this.outgoingList.getReverseList().readFields(in);
- this.incomingList.getForwardList().readFields(in);
- this.incomingList.getReverseList().readFields(in);
- this.actualKmer.readFields(in);
- averageCoverage = in.readFloat();
+ super.readFields(in);
this.state = in.readByte();
this.isFakeVertex = in.readBoolean();
this.traverseMap.readFields(in);
@@ -231,42 +156,18 @@
@Override
public void write(DataOutput out) throws IOException {
- this.nodeIdList.write(out);
- this.outgoingList.getForwardList().write(out);
- this.outgoingList.getReverseList().write(out);
- this.incomingList.getForwardList().write(out);
- this.incomingList.getReverseList().write(out);
- this.actualKmer.write(out);
- out.writeFloat(averageCoverage);
+ super.write(out);
out.writeByte(this.state);
out.writeBoolean(this.isFakeVertex);
this.traverseMap.write(out);
}
-
- @Override
- public int compareTo(VertexValueWritable o) {
- return 0;
- }
-
- @Override
- public String toString() {
- StringBuilder sbuilder = new StringBuilder();
- sbuilder.append('{');
- sbuilder.append(nodeIdList.toString()).append('\t');
- sbuilder.append(outgoingList.getForwardList().toString()).append('\t');
- sbuilder.append(outgoingList.getReverseList().toString()).append('\t');
- sbuilder.append(incomingList.getForwardList().toString()).append('\t');
- sbuilder.append(incomingList.getReverseList().toString()).append('\t');
- sbuilder.append(actualKmer.toString()).append('}');
- return sbuilder.toString();
- }
public int inDegree(){
- return incomingList.getForwardList().getCountOfPosition() + incomingList.getReverseList().getCountOfPosition();
+ return getRFList().getCountOfPosition() + getRRList().getCountOfPosition();
}
public int outDegree(){
- return outgoingList.getForwardList().getCountOfPosition() + outgoingList.getReverseList().getCountOfPosition();
+ return getFFList().getCountOfPosition() + getFRList().getCountOfPosition();
}
public int getDegree(){
@@ -277,20 +178,8 @@
* Delete the corresponding edge
*/
public void processDelete(byte neighborToDeleteDir, VKmerBytesWritable nodeToDelete){
- switch (neighborToDeleteDir & MessageFlag.DIR_MASK) {
- case MessageFlag.DIR_FF:
- this.getFFList().remove(nodeToDelete);
- break;
- case MessageFlag.DIR_FR:
- this.getFRList().remove(nodeToDelete);
- break;
- case MessageFlag.DIR_RF:
- this.getRFList().remove(nodeToDelete);
- break;
- case MessageFlag.DIR_RR:
- this.getRRList().remove(nodeToDelete);
- break;
- }
+ byte dir = (byte)(neighborToDeleteDir & MessageFlag.DIR_MASK);
+ this.getEdgeList(dir).remove(nodeToDelete);
}
/*
@@ -298,38 +187,11 @@
*/
public void processUpdates(byte neighborToDeleteDir, VKmerBytesWritable nodeToDelete,
byte neighborToMergeDir, VKmerBytesWritable nodeToAdd){
-// TODO
-// this.getListFromDir(neighborToDeleteDir).remove(nodeToDelete);
-// this.getListFromDir(neighborToMergeDir).append(nodeToDelete);
+ byte deleteDir = (byte)(neighborToDeleteDir & MessageFlag.DIR_MASK);
+ this.getEdgeList(deleteDir).remove(nodeToDelete);
- switch (neighborToDeleteDir & MessageFlag.DIR_MASK) {
- case MessageFlag.DIR_FF:
- this.getFFList().remove(nodeToDelete);
- break;
- case MessageFlag.DIR_FR:
- this.getFRList().remove(nodeToDelete);
- break;
- case MessageFlag.DIR_RF:
- this.getRFList().remove(nodeToDelete);
- break;
- case MessageFlag.DIR_RR:
- this.getRRList().remove(nodeToDelete);
- break;
- }
- switch (neighborToMergeDir & MessageFlag.DIR_MASK) {
- case MessageFlag.DIR_FF:
- this.getFFList().append(nodeToAdd);
- break;
- case MessageFlag.DIR_FR:
- this.getFRList().append(nodeToAdd);
- break;
- case MessageFlag.DIR_RF:
- this.getRFList().append(nodeToAdd);
- break;
- case MessageFlag.DIR_RR:
- this.getRRList().append(nodeToAdd);
- break;
- }
+ byte mergeDir = (byte)(neighborToMergeDir & MessageFlag.DIR_MASK);
+ this.getEdgeList(mergeDir).append(nodeToAdd);
}
/*
@@ -338,41 +200,13 @@
public void processMerges(byte neighborToDeleteDir, VKmerBytesWritable nodeToDelete,
byte neighborToMergeDir, VKmerBytesWritable nodeToAdd,
int kmerSize, VKmerBytesWritable kmer){
- switch (neighborToDeleteDir & MessageFlag.DIR_MASK) {
- case MessageFlag.DIR_FF:
- this.getFFList().remove(nodeToDelete); //set(null);
- this.getActualKmer().mergeWithFFKmer(kmerSize, kmer);
- break;
- case MessageFlag.DIR_FR:
- this.getFRList().remove(nodeToDelete);
- this.getActualKmer().mergeWithFRKmer(kmerSize, kmer);
- break;
- case MessageFlag.DIR_RF:
- this.getRFList().remove(nodeToDelete);
- this.getActualKmer().mergeWithRFKmer(kmerSize, kmer);
- break;
- case MessageFlag.DIR_RR:
- this.getRRList().remove(nodeToDelete);
- this.getActualKmer().mergeWithRRKmer(kmerSize, kmer);
- break;
- }
- // TODO: remove switch below and replace with general direction merge
-// this.getKmer().mergeWithDirKmer(neighborToMergeDir);
- if(nodeToAdd != null){ //if null, nodeToAdd is empty and so another node may be head or tail
- switch (neighborToMergeDir & MessageFlag.DIR_MASK) {
- case MessageFlag.DIR_FF:
- this.getFFList().append(nodeToAdd);
- break;
- case MessageFlag.DIR_FR:
- this.getFRList().append(nodeToAdd);
- break;
- case MessageFlag.DIR_RF:
- this.getRFList().append(nodeToAdd);
- break;
- case MessageFlag.DIR_RR:
- this.getRRList().append(nodeToAdd);
- break;
- }
+ byte deleteDir = (byte)(neighborToDeleteDir & MessageFlag.DIR_MASK);
+ this.getEdgeList(deleteDir).remove(nodeToDelete);
+ this.getInternalKmer().mergeWithKmerInDir(deleteDir, kmerSize, kmer);
+
+ if(nodeToAdd != null){
+ byte mergeDir = (byte)(neighborToMergeDir & MessageFlag.DIR_MASK);
+ this.getEdgeList(mergeDir).append(nodeToAdd);
}
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeAddVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeAddVertex.java
index 13a6223..03ed1de 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeAddVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeAddVertex.java
@@ -81,7 +81,7 @@
Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
vertex.getMsgList().clear();
vertex.getEdges().clear();
- VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+ VertexValueWritable vertexValue = new VertexValueWritable(); //kmerSize
/**
* set the src vertex id
*/
@@ -98,7 +98,7 @@
VKmerListWritable kmerRFList = new VKmerListWritable();
kmerRFList.append(otherVertexId);
vertexValue.setRFList(kmerRFList);
- vertexValue.setActualKmer(vertexId);
+ vertexValue.setInternalKmer(vertexId);
vertex.setVertexValue(vertexValue);
addVertex(vertexId, vertex);
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeRemoveVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeRemoveVertex.java
index 50b1518..2175336 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeRemoveVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bridgeremove/BridgeRemoveVertex.java
@@ -91,7 +91,7 @@
i++;
}
if(receivedMsgList.size() == 2){
- if(getVertexValue().getLengthOfKmer() <= length
+ if(getVertexValue().getKmerLength() <= length
&& getVertexValue().getDegree() == 2){
broadcaseKillself();
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleAddVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleAddVertex.java
index aca9d95..89c73c9 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleAddVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleAddVertex.java
@@ -74,7 +74,7 @@
Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
vertex.getMsgList().clear();
vertex.getEdges().clear();
- VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+ VertexValueWritable vertexValue = new VertexValueWritable(); //kmerSize
/**
* set the src vertex id
*/
@@ -91,7 +91,7 @@
VKmerListWritable kmerRFList = new VKmerListWritable();
kmerRFList.append(otherVertexId);
vertexValue.setRFList(kmerRFList);
- vertexValue.setActualKmer(vertexId);
+ vertexValue.setInternalKmer(vertexId);
vertex.setVertexValue(vertexValue);
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
index c97244a..2937058 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
@@ -62,7 +62,7 @@
if(hasNextDest(getVertexValue())){
outgoingMsg.setStartVertexId(incomingMsg.getSourceVertexId());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
destVertexId.setAsCopy(getNextDestVertexId(getVertexValue()));
sendMsg(destVertexId, outgoingMsg);
}
@@ -72,7 +72,7 @@
if(hasPrevDest(getVertexValue())){
outgoingMsg.setStartVertexId(incomingMsg.getSourceVertexId());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
destVertexId.setAsCopy(getPrevDestVertexId(getVertexValue()));
sendMsg(destVertexId, outgoingMsg);
}
@@ -182,7 +182,7 @@
broadcaseKillself();
} else if(incomingMsg.getFlag() == MessageFlag.UNCHANGE){
/** update average coverage **/
- getVertexValue().setAverageCoverage(incomingMsg.getAverageCoverage());
+ getVertexValue().setAvgCoverage(incomingMsg.getAverageCoverage());
}
}
} else if(getSuperstep() == 5){
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
index d0d1ce9..4c4483e 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicGraphCleanVertex.java
@@ -238,22 +238,22 @@
*/
public void startSendMsg() {
if (VertexUtil.isHeadVertexWithIndegree(getVertexValue())) {
- outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHNEXT
+ outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));
sendMsgToAllNextNodes(getVertexValue());
voteToHalt();
}
if (VertexUtil.isRearVertexWithOutdegree(getVertexValue())) {
- outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHPREV
+ outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));
sendMsgToAllPreviousNodes(getVertexValue());
voteToHalt();
}
if (VertexUtil.isHeadWithoutIndegree(getVertexValue())){
- outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHNEXT
+ outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));
sendMsg(getVertexId(), outgoingMsg); //send to itself
voteToHalt();
}
if (VertexUtil.isRearWithoutOutdegree(getVertexValue())){
- outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));//| MessageFlag.HEAD_SHOULD_MERGEWITHPREV
+ outgoingMsg.setFlag((byte)(MessageFlag.IS_HEAD));
sendMsg(getVertexId(), outgoingMsg); //send to itself
voteToHalt();
}
@@ -308,8 +308,6 @@
outFlag |= MessageFlag.DIR_FF;
else if(getVertexValue().getFRList().getCountOfPosition() > 0)
outFlag |= MessageFlag.DIR_FR;
-// else
-// outFlag |= MessageFlag.DIR_NO;
}
/**
@@ -321,8 +319,6 @@
outFlag |= MessageFlag.DIR_RF;
else if(getVertexValue().getRRList().getCountOfPosition() > 0)
outFlag |= MessageFlag.DIR_RR;
-// else
-// outFlag |= MessageFlag.DIR_NO;
}
/**
@@ -408,7 +404,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getNextDestVertexId(getVertexValue())
break;
case MessageFlag.DIR_RF:
@@ -421,7 +417,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getPreDestVertexId(getVertexValue())
break;
}
@@ -446,7 +442,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getNextDestVertexId(getVertexValue())
break;
case MessageFlag.DIR_RF:
@@ -459,7 +455,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg); //getPreDestVertexId(getVertexValue())
break;
}
@@ -482,7 +478,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getIncomingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
sendMsg(getNextDestVertexId(getVertexValue()), outgoingMsg);
deleteVertex(getVertexId());
break;
@@ -495,7 +491,7 @@
outgoingMsg.setFlag(outFlag);
outgoingMsg.setNeighberNode(getVertexValue().getOutgoingList());
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
sendMsg(getPrevDestVertexId(getVertexValue()), outgoingMsg);
deleteVertex(getVertexId());
break;
@@ -651,28 +647,28 @@
int index;
switch(neighborToMeDir){
case MessageFlag.DIR_FF:
- selfString = getVertexValue().getActualKmer().toString();
+ selfString = getVertexValue().getInternalKmer().toString();
match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length());
msgString = msg.getActualKmer().toString();
index = msgString.indexOf(match);
tmpKmer.setByRead(msgString.length() - index, msgString.substring(index).getBytes(), 0);
break;
case MessageFlag.DIR_FR:
- selfString = getVertexValue().getActualKmer().toString();
+ selfString = getVertexValue().getInternalKmer().toString();
match = selfString.substring(selfString.length() - kmerSize + 1,selfString.length());
msgString = GeneCode.reverseComplement(msg.getActualKmer().toString());
index = msgString.indexOf(match);
tmpKmer.setByReadReverse(msgString.length() - index, msgString.substring(index).getBytes(), 0);
break;
case MessageFlag.DIR_RF:
- selfString = getVertexValue().getActualKmer().toString();
+ selfString = getVertexValue().getInternalKmer().toString();
match = selfString.substring(0, kmerSize - 1);
msgString = GeneCode.reverseComplement(msg.getActualKmer().toString());
index = msgString.lastIndexOf(match) + kmerSize - 2;
tmpKmer.setByReadReverse(index + 1, msgString.substring(0, index + 1).getBytes(), 0);
break;
case MessageFlag.DIR_RR:
- selfString = getVertexValue().getActualKmer().toString();
+ selfString = getVertexValue().getInternalKmer().toString();
match = selfString.substring(0, kmerSize - 1);
msgString = msg.getActualKmer().toString();
index = msgString.lastIndexOf(match) + kmerSize - 2;
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/MapReduceVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/MapReduceVertex.java
index 5baf492..d6ba604 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/MapReduceVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/MapReduceVertex.java
@@ -81,7 +81,7 @@
Vertex vertex = (Vertex) BspUtils.createVertex(getContext().getConfiguration());
vertex.getMsgList().clear();
vertex.getEdges().clear();
- VertexValueWritable vertexValue = new VertexValueWritable(kmerSize + 1);
+ VertexValueWritable vertexValue = new VertexValueWritable();//kmerSize + 1
vertexValue.setState(State.IS_FAKE);
vertexValue.setFakeVertex(true);
@@ -96,7 +96,7 @@
public void sendMsgToFakeVertex(){
if(!getVertexValue().isFakeVertex()){
outgoingMsg.setSourceVertexId(getVertexId());
- outgoingMsg.setActualKmer(getVertexValue().getActualKmer());
+ outgoingMsg.setActualKmer(getVertexValue().getInternalKmer());
sendMsg(fakeVertex, outgoingMsg);
voteToHalt();
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
index 3e822e4..3eae7b4 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
@@ -33,7 +33,7 @@
@Override
public void compute(Iterator<MessageWritable> msgIterator) {
initVertex();
- if(getVertexValue().getAverageCoverage() < minAverageCoverage)
+ if(getVertexValue().getAvgCoverage() < minAverageCoverage)
deleteVertex(getVertexId());
else
voteToHalt();
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
index be43658..782ed70 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/scaffolding/ScaffoldingVertex.java
@@ -45,8 +45,8 @@
if(getSuperstep() == 1){
/** add a fake vertex **/
addFakeVertex();
- /** grouped by 5' readId **/
- long mainReadId = getVertexValue().getHeadReadId();
+ /** grouped by 5' readId **/ //TODO
+ long mainReadId = getVertexValue().getStartReads().getPosition(0).getReadId();
if(mainReadId != 0){ //empty or not
if(scaffoldingMap.containsKey(mainReadId)){
kmerList.setCopy(scaffoldingMap.get(mainReadId));
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
index ee493f9..945b439 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/splitrepeat/SplitRepeatVertex.java
@@ -153,9 +153,9 @@
public void setSelfReadIdSet(){
selfReadIdSet.clear();
- for(PositionWritable nodeId : getVertexValue().getNodeIdList()){
- selfReadIdSet.add(nodeId.getReadId());
- }
+// for(PositionWritable nodeId : getVertexValue().getNodeIdList()){
+// selfReadIdSet.add(nodeId.getReadId());
+// }
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@@ -164,7 +164,7 @@
vertex.getMsgList().clear();
vertex.getEdges().clear();
VKmerBytesWritable vertexId = new VKmerBytesWritable(kmerSize);
- VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+ VertexValueWritable vertexValue = new VertexValueWritable(); //kmerSize
//add the corresponding edge to new vertex
switch(connectedTable[i][0]){
case EdgeDir.DIR_RF:
@@ -317,7 +317,7 @@
} else if(getSuperstep() == 2){
while(msgIterator.hasNext()){
incomingMsg = msgIterator.next();
- outgoingMsg.setNodeIdList(getVertexValue().getNodeIdList());
+// outgoingMsg.setNodeIdList(getVertexValue().getNodeIdList());
outgoingMsg.setSourceVertexId(getVertexId());
sendMsg(incomingMsg.getSourceVertexId(), outgoingMsg);
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipAddVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipAddVertex.java
index 0738208..86406a9 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipAddVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipAddVertex.java
@@ -78,7 +78,7 @@
vertex.getMsgList().clear();
vertex.getEdges().clear();
- VertexValueWritable vertexValue = new VertexValueWritable(kmerSize);
+ VertexValueWritable vertexValue = new VertexValueWritable(); //kmerSize
/**
* set the src vertex id
*/
@@ -89,7 +89,7 @@
VKmerListWritable kmerList = new VKmerListWritable();
kmerList.append(getVertexId());
vertexValue.setRFList(kmerList);
- vertexValue.setActualKmer(vertexId);
+ vertexValue.setInternalKmer(vertexId);
vertex.setVertexValue(vertexValue);
addVertex(vertexId, vertex);
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
index 527fb66..1594673 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
@@ -71,19 +71,19 @@
initVertex();
if(getSuperstep() == 1){
if(VertexUtil.isIncomingTipVertex(getVertexValue())){
- if(getVertexValue().getLengthOfKmer() <= length){
+ if(getVertexValue().getKmerLength() <= length){
sendSettledMsgToPreviousNode();
deleteVertex(getVertexId());
}
}
else if(VertexUtil.isOutgoingTipVertex(getVertexValue())){
- if(getVertexValue().getLengthOfKmer() <= length){
+ if(getVertexValue().getKmerLength() <= length){
sendSettledMsgToNextNode();
deleteVertex(getVertexId());
}
}
else if(VertexUtil.isSingleVertex(getVertexValue())){
- if(getVertexValue().getLengthOfKmer() <= length)
+ if(getVertexValue().getKmerLength() <= length)
deleteVertex(getVertexId());
}
}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
index b3a3d37..d075fe9 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/GenerateTextFile.java
@@ -57,7 +57,7 @@
if (key == null || value == null) {
break;
}
- if (value.getLengthOfKmer() != -1 && value.getLengthOfKmer() <= maxLength) {
+ if (value.getKmerLength() != -1 && value.getKmerLength() <= maxLength) {
bw.write(value.toString());
bw.newLine();
}
@@ -81,7 +81,7 @@
if (key == null || value == null) {
break;
}
- if (value.getLengthOfKmer() != -1 && value.getLengthOfKmer() <= maxLength
+ if (value.getKmerLength() != -1 && value.getKmerLength() <= maxLength
&& value.getState() == State.IS_FINAL) {
bw.write(key.toString() + "\t" + value.toString());
bw.newLine();