- FTSRestRequest tdbQuery = new FTSRestRequest();
- tdbQuery.setResponseSize(100);
- tdbQuery.setFieldToSearchBy("");
- tdbQuery.setSearchTerm(scquery.buildQuery(upSeq));
- tdbQuery.setWantedFields(scquery.getDocFieldPrefs().getStructureSummaryFields());
- //scquery.fetchStructuresMetaData(upSeq, null, null, false);
- String secondaryPdbQuery;
- //secondaryPdbQuery = ((ThreeDBStructureChooserQuerySource)scquery).buildPDBFTSquery();
+ FTSRestResponse upResponse = null;
+ FTSRestResponse pdbResponse = null;
+ // TODO test available options
+ // Best coverage
+ // Best Alphafold Model
+ // Best model (by confidence score)
+ // Will also need to develop a more sophisticated filtering system
+ List<FilterOption> opts = tdbquery.getAvailableFilterOptions(StructureChooser.VIEWS_FILTER);
+ FilterOption opt_singlebest = opts.get(0);
+ FilterOption opt_manybest = opts.get(1);
+ assertEquals(opt_singlebest.getValue(), ThreeDBStructureChooserQuerySource.FILTER_FIRST_BEST_COVERAGE);
+ assertEquals(opt_manybest.getValue(), ThreeDBStructureChooserQuerySource.FILTER_TDBEACONS_COVERAGE);
+
+ try {
+ upResponse = tdbquery.fetchStructuresMetaData(testUpSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_singlebest, false);
+ tdbquery.updateAvailableFilterOptions(StructureChooser.VIEWS_FILTER,opts,upResponse.getSearchSummary());
+ // test ranking without additional PDBe data
+ FTSRestResponse firstRanked = tdbquery.selectFirstRankedQuery(testUpSeq, upResponse.getSearchSummary(), tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_singlebest.getValue(), false);
+ assertEquals(firstRanked.getNumberOfItemsFound(),1);
+ // many best response
+ upResponse = tdbquery.fetchStructuresMetaData(testUpSeq, tdbquery.getDocFieldPrefs().getStructureSummaryFields(), opt_manybest, false);
+ assertTrue(firstRanked.getSearchSummary().size()<upResponse.getSearchSummary().size());
+ // NB Could have race condition here
+ String pdb_Query = tdbquery.buildPDBFTSQueryFor(upResponse);
+ assertTrue(pdb_Query.trim().length()>0);
+ pdbResponse = tdbquery.fetchStructuresMetaDataFor(pdbquery, upResponse);
+ assertTrue(pdbResponse.getNumberOfItemsFound()>0);
+ FTSRestResponse joinedResp = tdbquery.joinResponses(upResponse, pdbResponse);
+ assertEquals(upResponse.getNumberOfItemsFound(),joinedResp.getNumberOfItemsFound());
+
+
+ } catch (Exception x)
+ {
+ x.printStackTrace();
+ Assert.fail("Unexpected Exception");
+ }
+ StructureChooserQuerySource scquery = StructureChooserQuerySource.getQuerySourceFor(new SequenceI[] { testUpSeq});