private int idx_mqual;
+ private int idx_mqualtype;
+
private int idx_resol;
/**
idx_mprov = lastTdbRequest.getFieldIndex("Provider");
idx_mqual = lastTdbRequest.getFieldIndex("Confidence");
idx_resol = lastTdbRequest.getFieldIndex("Resolution");
+ idx_mqualtype = lastTdbRequest.getFieldIndex("Confidence Score Type");
}
/**
int o2_cat = scoreCategory((String) o2data[idx_mcat]);
String o2_prov = ((String) o2data[idx_mprov])
.toUpperCase(Locale.ROOT);
+ String o1_qualtype = (String) o1data[idx_mqualtype],
+ o2_qualtype = (String) o2data[idx_mqualtype];
if (o1_cat == o2_cat)
{
}
else
{
+ // RANK ON QUALITY - DOWNRANK THOSE WITH NO QUALITY MEASURE
+ if (eitherNull(idx_mqualtype, o1data, o2data))
+ {
+ return nonNullFirst(idx_mqualtype, o1data, o2data);
+ }
+ // ONLY COMPARE LIKE QUALITY SCORES
+ if (!o1_qualtype.equals(o2_qualtype))
+ {
+ // prefer LDDT measure over others
+ return "pLDDT".equals(o1_prov) ? -1
+ : "pLDDT".equals(o2_prov) ? 1 : 0;
+ }
+ // OR NO VALUE FOR THE QUALITY
if (eitherNull(idx_mqual, o1data, o2data))
{
return nonNullFirst(idx_mqual, o1data, o2data);