import jalview.datamodel.AlignmentView;
import jalview.datamodel.SeqCigar;
import jalview.datamodel.SequenceFeature;
+import jalview.util.SetUtils;
import java.util.HashMap;
import java.util.HashSet;
{
for (int j = i + 1; j < noseqs; j++)
{
- int seqDistance = countUnsharedFeatureTypes(sfap.get(seqs[i]),
+ int seqDistance = SetUtils.countDisjunction(sfap.get(seqs[i]),
sfap.get(seqs[j]));
distance[i][j] += seqDistance;
- // distance[j][i] += distance[i][j];
}
}
}
}
/**
- * Returns the count of values that are set1 or set2 but not in both
- *
- * @param set1
- * @param set2
- * @return
- */
- protected int countUnsharedFeatureTypes(Set<String> set1, Set<String> set2)
- {
- int size1 = set1.size();
- int size2 = set2.size();
- Set<String> smallerSet = size1 < size2 ? set1 : set2;
- Set<String> largerSet = (smallerSet == set1 ? set2 : set1);
- int inCommon = 0;
- for (String k : smallerSet)
- {
- if (largerSet.contains(k))
- {
- inCommon++;
- }
- }
-
- int notInCommon = (size1 - inCommon) + (size2 - inCommon);
- return notInCommon;
- }
-
- /**
* Builds and returns a list (one per SeqCigar) of visible feature types at
* the given column position
*