private int idx_resol;
+ /**
+ * selection model
+ */
+ private String filter=null;
+ /**
+ * limit to particular source
+ */
+ private String sourceFilter=null;
+
+ private int idx_mprov;
+
public TDBResultAnalyser(SequenceI seq,
Collection<FTSData> collectedResults,
- FTSRestRequest lastTdbRequest)
+ FTSRestRequest lastTdbRequest, String fieldToFilterBy, String string)
{
this.seq = seq;
this.collectedResults = collectedResults;
this.lastTdbRequest = lastTdbRequest;
+ this.filter = fieldToFilterBy;
+ this.sourceFilter = string;
idx_ups = lastTdbRequest.getFieldIndex("Uniprot Start");
idx_upe = lastTdbRequest.getFieldIndex("Uniprot End");
idx_mcat = lastTdbRequest.getFieldIndex("Model Category");
+ idx_mprov = lastTdbRequest.getFieldIndex("Provider");
idx_mqual = lastTdbRequest.getFieldIndex("Confidence");
idx_resol = lastTdbRequest.getFieldIndex("Resolution");
}
{
int up_s = (Integer) row.getSummaryData()[idx_ups];
int up_e = (Integer) row.getSummaryData()[idx_upe];
-
- if (seq == row.getSummaryData()[0] && up_e > seq.getStart()
- && up_s < seq.getEnd())
+ String provider = (String) row.getSummaryData()[idx_mprov];
+ if (sourceFilter == null || sourceFilter.equals(provider))
{
- filteredResponse.add(row);
+ if (seq == row.getSummaryData()[0] && up_e > seq.getStart()
+ && up_s < seq.getEnd())
+ {
+ filteredResponse.add(row);
+ }
}
}
// sort according to decreasing length,
// increasing start
Collections.sort(filteredResponse, new Comparator<FTSData>()
{
-
-
@Override
public int compare(FTSData o1, FTSData o2)
{
return o2_xt-o1_xt;
}
});
+ if (filter.equals(ThreeDBStructureChooserQuerySource.FILTER_FIRST_BEST_COVERAGE))
+ {
+ return selected.subList(0, 1);
+ }
return selected;
}