JAL-4311 failing test case for 3d-beacons epas1_human including levyLab alphaFold2...
[jalview.git] / test / jalview / gui / structurechooser / StructureChooserQuerySourceTest.java
index c21add1..4579b9c 100644 (file)
@@ -22,7 +22,9 @@ package jalview.gui.structurechooser;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Vector;
 
@@ -39,8 +41,13 @@ import jalview.datamodel.DBRefSource;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceI;
+import jalview.fts.api.FTSData;
+import jalview.fts.api.FTSDataColumnI;
+import jalview.fts.core.FTSRestRequest;
 import jalview.fts.core.FTSRestResponse;
 import jalview.fts.service.pdb.PDBFTSRestClientTest;
+import jalview.fts.service.threedbeacons.TDB_FTSData;
+import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient;
 import jalview.fts.threedbeacons.TDBeaconsFTSRestClientTest;
 import jalview.gui.JvOptionPane;
 import jalview.gui.StructureChooser;
@@ -60,6 +67,8 @@ public class StructureChooserQuerySourceTest
 
   private Sequence upSeq_fer1_maize;
 
+  private Sequence upSeq_epas1_human;
+
   // same set up as for structurechooser test
 
   @BeforeMethod(alwaysRun = true)
@@ -237,7 +246,24 @@ public class StructureChooserQuerySourceTest
     upSeq_fer1_maize
             .addDBRef(new DBRefEntry("UNIPROT", "0", "P27787", null, true));
     upSeq_fer1_maize.createDatasetSequence();
-
+    
+    upSeq_epas1_human = new Sequence("EPAS1_HUMAN","MTADKEKKRSSSERRKEKSRDAARCRRSKETEVFYELAHELPLPHSVSSHLDKASIMRLAISFLRTHKLLSS\n"
+            + "VCSENESEAEADQQMDNLYLKALEGFIAVVTQDGDMIFLSENISKFMGLTQVELTGHSIFDFTHPCDHEEIR\n"
+            + "ENLSLKNGSGFGKKSKDMSTERDFFMRMKCTVTNRGRTVNLKSATWKVLHCTGQVKVYNNCPPHNSLCGYKE\n"
+            + "PLLSCLIIMCEPIQHPSHMDIPLDSKTFLSRHSMDMKFTYCDDRITELIGYHPEELLGRSAYEFYHALDSEN\n"
+            + "MTKSHQNLCTKGQVVSGQYRMLAKHGGYVWLETQGTVIYNPRNLQPQCIMCVNYVLSEIEKNDVVFSMDQTE\n"
+            + "SLFKPHLMAMNSIFDSSGKGAVSEKSNFLFTKLKEEPEELAQLAPTPGDAIISLDFGNQNFEESSAYGKAIL\n"
+            + "PPSQPWATELRSHSTQSEAGSLPAFTVPQAAAPGSTTPSATSSSSSCSTPNSPEDYYTSLDNDLKIEVIEKL\n"
+            + "FAMDTEAKDQCSTQTDFNELDLETLAPYIPMDGEDFQLSPICPEERLLAENPQSTPQHCFSAMTNIFQPLAP\n"
+            + "VAPHSPFLLDKFQQQLESKKTEPEHRPMSSIFFDAGSKASLPPCCGQASTPLSSMGGRSNTQWPPDPPLHFG\n"
+            + "PTKWAVGDQRTEFLGAAPLGPPVSPPHVSTFKTRSAKGFGARGPDVLSPAMVALSNKLKLKRQLEYEEQAFQ\n"
+            + "DLSGGDPPGGSTSHLMWKRMKNLRGGSCPLMPDKPLSANVPNDKFTQNPMRGLGHPLRHLPLPQPPSAISPG\n"
+            + "ENSKSRFPPQCYATQYQDYSLSSAHKVSGMASRLLGPSFESYLLPELTRYDCEVNVPVLGSSTLLQGGDLLR\n"
+            + "ALDQAT");
+    upSeq_epas1_human.setDescription("Endothelial PAS domain-containing protein 1");
+    upSeq_epas1_human
+    .addDBRef(new DBRefEntry("UNIPROT", "0", "Q99814", null, true));
+    upSeq_epas1_human.createDatasetSequence();
   }
 
   @AfterMethod(alwaysRun = true)
@@ -247,6 +273,7 @@ public class StructureChooserQuerySourceTest
     upSeq = null;
     upSeq_r1ab = null;
     upSeq_fer1_maize = null;
+    upSeq_epas1_human=null;
   }
 
   @SuppressWarnings("deprecation")
@@ -438,6 +465,31 @@ public class StructureChooserQuerySourceTest
               pdbResponse);
       assertEquals(upResponse.getNumberOfItemsFound(),
               joinedResp.getNumberOfItemsFound());
+      
+      // Special data test case
+      if (testUpSeq.getDisplayId(true)
+              .equals(upSeq_epas1_human.getDisplayId(true)))
+      {
+
+        TDBResultAnalyser tDBResultAnalyz = new TDBResultAnalyser(testUpSeq,
+                joinedResp.getSearchSummary(), tdbquery.lastTdbRequest,
+                ThreeDBStructureChooserQuerySource.FILTER_FIRST_BEST_COVERAGE,
+                tdbquery.remove_prefix(
+                        ThreeDBStructureChooserQuerySource.FILTER_FIRST_BEST_COVERAGE));
+        List<FTSData> ordered = tDBResultAnalyz.getFilteredResponse();
+        List<FTSData> selected = tDBResultAnalyz.selectStructures(ordered);
+        assertEquals(((TDB_FTSData) selected.get(0)).getProvider(),
+                "AlphaFold DB");
+        // to be sufficient, should also
+        // test that adjacent ordered structure in ordered is levyLab
+        // TDB_FTSData first = (TDB_FTSData) ordered.get(0),
+        // second = (TDB_FTSData) ordered.get(1),
+        // third = (TDB_FTSData) ordered.get(2);
+        // Assert.assertEquals("pLDDT", first.getConfidenceScoreType());
+        // Assert.assertTrue(first.getConfidenceScoreType()
+        // .equals(second.getConfidenceScoreType())); // pLDDT first and
+        // // second
+      }
 
     } catch (
 
@@ -458,7 +510,7 @@ public class StructureChooserQuerySourceTest
   {
     setUp();
     return new Object[][] { { upSeq }, { upSeq_insulin }, { upSeq_r1ab },
-        { upSeq_fer1_maize } };
+        { upSeq_fer1_maize },{upSeq_epas1_human} };
   }
 
   @Test(groups = { "Functional" })
@@ -481,5 +533,5 @@ public class StructureChooserQuerySourceTest
     name = "abcde12[345a]fg";
     AssertJUnit.assertEquals("abcde12345afg",
             PDBStructureChooserQuerySource.sanitizeSeqName(name));
-  }
+  }  
 }