Do new filtering before matching
This commit is contained in:
Binary file not shown.
@@ -196,12 +196,12 @@ public class Simulator {
|
|||||||
|
|
||||||
//Filter by overlap size
|
//Filter by overlap size
|
||||||
if(verbose){System.out.println("Eliminating edges with weights much less than occupancy values");}
|
if(verbose){System.out.println("Eliminating edges with weights much less than occupancy values");}
|
||||||
filterByOverlapSize(graph, alphaWellCounts, betaWellCounts);
|
filterByOverlapSize(graph, alphaWellCounts, betaWellCounts, plateVtoAMap, plateVtoBMap);
|
||||||
if(verbose){System.out.println("Edges with weights much less than occupancy values set to 0.0");}
|
if(verbose){System.out.println("Edges with weights much less than occupancy values set to 0.0");}
|
||||||
|
|
||||||
//Filter by relative occupancy
|
//Filter by relative occupancy
|
||||||
if(verbose){System.out.println("Eliminating edges between vertices of massively different occupancy");}
|
if(verbose){System.out.println("Eliminating edges between vertices of massively different occupancy");}
|
||||||
filterByRelativeOccupancy(graph, alphaWellCounts, betaWellCounts);
|
filterByRelativeOccupancy(graph, alphaWellCounts, betaWellCounts, plateVtoAMap, plateVtoBMap);
|
||||||
if(verbose){System.out.println("Edges between vertices of massively different occupancy set to 0.0");}
|
if(verbose){System.out.println("Edges between vertices of massively different occupancy set to 0.0");}
|
||||||
|
|
||||||
|
|
||||||
@@ -679,10 +679,12 @@ public class Simulator {
|
|||||||
//Remove edges for pairs with large occupancy discrepancy
|
//Remove edges for pairs with large occupancy discrepancy
|
||||||
private static void filterByRelativeOccupancy(SimpleWeightedGraph<Integer, DefaultWeightedEdge> graph,
|
private static void filterByRelativeOccupancy(SimpleWeightedGraph<Integer, DefaultWeightedEdge> graph,
|
||||||
Map<Integer, Integer> alphaWellCounts,
|
Map<Integer, Integer> alphaWellCounts,
|
||||||
Map<Integer, Integer> betaWellCounts) {
|
Map<Integer, Integer> betaWellCounts,
|
||||||
|
Map<Integer, Integer> plateVtoAMap,
|
||||||
|
Map<Integer, Integer> plateVtoBMap) {
|
||||||
for (DefaultWeightedEdge e : graph.edgeSet()) {
|
for (DefaultWeightedEdge e : graph.edgeSet()) {
|
||||||
Integer alphaOcc = alphaWellCounts.get(graph.getEdgeSource(e));
|
Integer alphaOcc = alphaWellCounts.get(plateVtoAMap.get(graph.getEdgeSource(e)));
|
||||||
Integer betaOcc = betaWellCounts.get(graph.getEdgeTarget(e));
|
Integer betaOcc = betaWellCounts.get(plateVtoBMap.get(graph.getEdgeTarget(e)));
|
||||||
//Adjust this to something cleverer later
|
//Adjust this to something cleverer later
|
||||||
if (Math.abs(alphaOcc - betaOcc) >= 20) {
|
if (Math.abs(alphaOcc - betaOcc) >= 20) {
|
||||||
graph.setEdgeWeight(e, 0.0);
|
graph.setEdgeWeight(e, 0.0);
|
||||||
@@ -693,10 +695,12 @@ public class Simulator {
|
|||||||
//Remove edges for pairs where overlap size is significantly lower than the well occupancy
|
//Remove edges for pairs where overlap size is significantly lower than the well occupancy
|
||||||
private static void filterByOverlapSize(SimpleWeightedGraph<Integer, DefaultWeightedEdge> graph,
|
private static void filterByOverlapSize(SimpleWeightedGraph<Integer, DefaultWeightedEdge> graph,
|
||||||
Map<Integer, Integer> alphaWellCounts,
|
Map<Integer, Integer> alphaWellCounts,
|
||||||
Map<Integer, Integer> betaWellCounts) {
|
Map<Integer, Integer> betaWellCounts,
|
||||||
|
Map<Integer, Integer> plateVtoAMap,
|
||||||
|
Map<Integer, Integer> plateVtoBMap) {
|
||||||
for (DefaultWeightedEdge e : graph.edgeSet()) {
|
for (DefaultWeightedEdge e : graph.edgeSet()) {
|
||||||
Integer alphaOcc = alphaWellCounts.get(graph.getEdgeSource(e));
|
Integer alphaOcc = alphaWellCounts.get(plateVtoAMap.get(graph.getEdgeSource(e)));
|
||||||
Integer betaOcc = betaWellCounts.get(graph.getEdgeTarget(e));
|
Integer betaOcc = betaWellCounts.get(plateVtoBMap.get(graph.getEdgeTarget(e)));
|
||||||
//Adjust this to something cleverer later
|
//Adjust this to something cleverer later
|
||||||
Integer min = alphaOcc > betaOcc ? betaOcc : alphaOcc;
|
Integer min = alphaOcc > betaOcc ? betaOcc : alphaOcc;
|
||||||
if (min - graph.getEdgeWeight(e) >= 15) {
|
if (min - graph.getEdgeWeight(e) >= 15) {
|
||||||
|
|||||||
Reference in New Issue
Block a user