JAL-629 add AF examples for FER1_SPIOL. Link and display PAE matrix annotation
[jalview.git] / src / jalview / gui / StructureChooser.java
index 5612469..0823652 100644 (file)
@@ -25,6 +25,7 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -43,10 +44,13 @@ import javax.swing.JTable;
 import javax.swing.SwingUtilities;
 import javax.swing.table.AbstractTableModel;
 
+import org.json.simple.parser.ParseException;
+
 import jalview.api.structures.JalviewStructureDisplayI;
 import jalview.bin.Cache;
 import jalview.bin.Console;
 import jalview.bin.Jalview;
+import jalview.datamodel.AlignmentI;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SequenceI;
 import jalview.fts.api.FTSData;
@@ -63,6 +67,7 @@ import jalview.gui.structurechooser.ThreeDBStructureChooserQuerySource;
 import jalview.io.DataSourceType;
 import jalview.io.JalviewFileChooser;
 import jalview.io.JalviewFileView;
+import jalview.io.StructureFile;
 import jalview.jbgui.FilterOption;
 import jalview.jbgui.GStructureChooser;
 import jalview.structure.StructureImportSettings.TFType;
@@ -73,6 +78,7 @@ import jalview.util.Platform;
 import jalview.util.StringUtils;
 import jalview.ws.DBRefFetcher;
 import jalview.ws.DBRefFetcher.FetchFinishedListenerI;
+import jalview.ws.dbsources.EBIAlfaFold;
 import jalview.ws.seqfetcher.DbSourceProxy;
 import jalview.ws.sifts.SiftsSettings;
 
@@ -1262,8 +1268,19 @@ public class StructureChooser extends GStructureChooser
         }
         else if (currentView == VIEWS_FROM_FILE)
         {
-          SequenceI userSelectedSeq = ((AssociateSeqOptions) fileChooserAssSeqPanel
-                  .getCmb_assSeq().getSelectedItem()).getSequence();
+
+          // TEMPFAC NOT WORKING
+          TFType tft = (TFType) StructureChooser.this.combo_tempFacAs
+                  .getSelectedItem();
+          if (tft != null && tft != TFType.DEFAULT)
+          {
+            ssm.setAddTempFacAnnot(true);
+          }
+
+          AssociateSeqOptions assSeqOpt = (AssociateSeqOptions) fileChooserAssSeqPanel
+                  .getCmb_assSeq().getSelectedItem();
+
+          SequenceI userSelectedSeq = assSeqOpt.getSequence();
           if (userSelectedSeq != null)
           {
             selectedSequence = userSelectedSeq;
@@ -1272,21 +1289,30 @@ public class StructureChooser extends GStructureChooser
                   .associatePdbWithSeq(selectedPdbFileName,
                           DataSourceType.FILE, selectedSequence, true,
                           Desktop.instance);
-          /* LOOK AT
-          public PDBEntry associatePdbWithSeq(String choice, DataSourceType file,
-                  SequenceI sequence, boolean prompt,
-                  StructureSelectionManagerProvider ssmp)
-          IN AssociatePdbFileWithSeq */
 
+          List<SequenceI> seqList = new ArrayList<>();
+          seqList.add(selectedSequence);
+          SequenceI[] seqArray = new SequenceI[] { selectedSequence };
+          StructureFile sf = ssm.computeMapping(true, seqArray, null,
+                  selectedPdbFileName, DataSourceType.FILE, null);
+          // EBIAlfaFold.addAlphaFoldPAEToStructure(pdbAlignment, pae, index,
+          // structIdOrFile, isStructId);
+          StructureMapping[] sm = ssm.getMapping(fileEntry.getFile());
           // DO SOMETHING WITH
-          if (StructureChooser.this.localPdbPaeMatrixFileName != null)
+          String paeFilename = StructureChooser.this.localPdbPaeMatrixFileName;
+          File paeFile = paeFilename == null ? null : new File(paeFilename);
+          if (paeFilename != null && paeFile.exists())
           {
-
-          }
-          if (StructureChooser.this.combo_tempFacAs
-                  .getSelectedItem() != null)
-          {
-
+            AlignmentI al = StructureChooser.this.ap.getAlignment();
+            try
+            {
+              EBIAlfaFold.importPaeJSONAsContactMatrixToSequence(al,
+                      paeFile, -1, selectedSequence.getName());
+            } catch (IOException | ParseException e)
+            {
+              // TODO Auto-generated catch block
+              e.printStackTrace();
+            }
           }
 
           sViewer = launchStructureViewer(ssm, new PDBEntry[] { fileEntry },