Merge branch 'spike/JAL-1950_hmmer3client' into features/mchmmer_merge_JAL-1950
[jalview.git] / src / jalview / gui / AlignViewport.java
index 14c4022..39ded7f 100644 (file)
@@ -22,7 +22,6 @@ package jalview.gui;
 
 import jalview.analysis.AlignmentUtils;
 import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
-import jalview.analysis.TreeModel;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.api.FeatureColourI;
@@ -36,7 +35,6 @@ import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.HiddenColumns;
-import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SearchResults;
 import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.SequenceGroup;
@@ -58,11 +56,9 @@ import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Rectangle;
-import java.util.ArrayList;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Vector;
 
 import javax.swing.JInternalFrame;
 
@@ -96,6 +92,12 @@ public class AlignViewport extends AlignmentViewport
 
   private AnnotationColumnChooser annotationColumnSelectionState;
 
+  boolean validCharWidth;
+
+  public boolean followSelection = true;
+
+  private Hashtable<String, AutoCalcSetting> calcIdParams = new Hashtable<>();
+
   /**
    * Creates a new AlignViewport object.
    * 
@@ -258,14 +260,18 @@ public class AlignViewport extends AlignmentViewport
 
     setFont(new Font(fontName, style, Integer.parseInt(fontSize)), true);
 
-    alignment
-            .setGapCharacter(Cache.getDefault("GAP_SYMBOL", "-").charAt(0));
+    AlignmentI al = getAlignment();
+
+    if (Cache.getDefault("NORMALISE_GAPS", true))
+    {
+      al.setGapCharacter(Cache.getDefault("GAP_SYMBOL", "-").charAt(0));
+    }
 
     // We must set conservation and consensus before setting colour,
     // as Blosum and Clustal require this to be done
-    if (hconsensus == null && !isDataset)
+    if (consensusProfiles == null && !isDataset)
     {
-      if (!alignment.isNucleotide())
+      if (!al.isNucleotide())
       {
         showConservation = Cache.getDefault("SHOW_CONSERVATION", true);
         showQuality = Cache.getDefault("SHOW_QUALITY", true);
@@ -277,13 +283,19 @@ public class AlignViewport extends AlignmentViewport
       showSequenceLogo = Cache.getDefault("SHOW_CONSENSUS_LOGO", false);
       normaliseSequenceLogo = Cache.getDefault("NORMALISE_CONSENSUS_LOGO",
               false);
+      // for now, use consensus options for Information till it gets its own
+      setShowHMMSequenceLogo(showSequenceLogo);
+      setNormaliseHMMSequenceLogo(normaliseSequenceLogo);
+      setShowInformationHistogram(showConsensusHistogram);
       showGroupConsensus = Cache.getDefault("SHOW_GROUP_CONSENSUS", false);
       showConsensus = Cache.getDefault("SHOW_IDENTITY", true);
 
       showOccupancy = Cache.getDefault(Preferences.SHOW_OCCUPANCY, true);
     }
     initAutoAnnotation();
-    String colourProperty = alignment.isNucleotide()
+    // initInformation();
+
+    String colourProperty = al.isNucleotide()
             ? Preferences.DEFAULT_COLOUR_NUC
             : Preferences.DEFAULT_COLOUR_PROT;
     String schemeName = Cache.getProperty(colourProperty);
@@ -294,7 +306,7 @@ public class AlignViewport extends AlignmentViewport
               ResidueColourScheme.NONE);
     }
     ColourSchemeI colourScheme = ColourSchemeProperty
-            .getColourScheme(alignment, schemeName);
+            .getColourScheme(al, schemeName);
     residueShading = new ResidueShader(colourScheme);
 
     if (colourScheme instanceof UserColourScheme)
@@ -306,12 +318,10 @@ public class AlignViewport extends AlignmentViewport
 
     if (residueShading != null)
     {
-      residueShading.setConsensus(hconsensus);
+      residueShading.setConsensus(consensusProfiles);
     }
   }
 
-  boolean validCharWidth;
-
   /**
    * {@inheritDoc}
    */
@@ -394,9 +404,9 @@ public class AlignViewport extends AlignmentViewport
     /*
      * replace mappings on our alignment
      */
-    if (alignment != null && align != null)
+    if (getAlignment() != null && align != null)
     {
-      alignment.setCodonFrames(align.getCodonFrames());
+      getAlignment().setCodonFrames(align.getCodonFrames());
     }
   }
 
@@ -447,7 +457,7 @@ public class AlignViewport extends AlignmentViewport
   }
 
   /**
-   * returns the visible column regions of the alignment
+   * Returns an iterator over the visible column regions of the alignment
    * 
    * @param selectedRegionOnly
    *          true to just return the contigs intersecting with the selected
@@ -465,9 +475,11 @@ public class AlignViewport extends AlignmentViewport
     }
     else
     {
-      end = alignment.getWidth();
+      end = getAlignment().getWidth();
     }
-    return (alignment.getHiddenColumns().getVisContigsIterator(start, end));
+
+    return getAlignment().getHiddenColumns().getVisContigsIterator(start,
+            end, false);
   }
 
   /**
@@ -516,8 +528,6 @@ public class AlignViewport extends AlignmentViewport
     return false;
   }
 
-  public boolean followSelection = true;
-
   /**
    * @return true if view selection should always follow the selections
    *         broadcast by other selection sources
@@ -585,69 +595,6 @@ public class AlignViewport extends AlignmentViewport
 
   /**
    * 
-   * @param pdbEntries
-   * @return an array of SequenceI arrays, one for each PDBEntry, listing which
-   *         sequences in the alignment hold a reference to it
-   */
-  public SequenceI[][] collateForPDB(PDBEntry[] pdbEntries)
-  {
-    List<SequenceI[]> seqvectors = new ArrayList<>();
-    for (PDBEntry pdb : pdbEntries)
-    {
-      List<SequenceI> choosenSeqs = new ArrayList<>();
-      for (SequenceI sq : alignment.getSequences())
-      {
-        Vector<PDBEntry> pdbRefEntries = sq.getDatasetSequence()
-                .getAllPDBEntries();
-        if (pdbRefEntries == null)
-        {
-          continue;
-        }
-        for (PDBEntry pdbRefEntry : pdbRefEntries)
-        {
-          if (pdbRefEntry.getId().equals(pdb.getId()))
-          {
-            if (pdbRefEntry.getChainCode() != null
-                    && pdb.getChainCode() != null)
-            {
-              if (pdbRefEntry.getChainCode().equalsIgnoreCase(
-                      pdb.getChainCode()) && !choosenSeqs.contains(sq))
-              {
-                choosenSeqs.add(sq);
-                continue;
-              }
-            }
-            else
-            {
-              if (!choosenSeqs.contains(sq))
-              {
-                choosenSeqs.add(sq);
-                continue;
-              }
-            }
-
-          }
-        }
-      }
-      seqvectors
-              .add(choosenSeqs.toArray(new SequenceI[choosenSeqs.size()]));
-    }
-    return seqvectors.toArray(new SequenceI[seqvectors.size()][]);
-  }
-
-  @Override
-  public boolean isNormaliseSequenceLogo()
-  {
-    return normaliseSequenceLogo;
-  }
-
-  public void setNormaliseSequenceLogo(boolean state)
-  {
-    normaliseSequenceLogo = state;
-  }
-
-  /**
-   * 
    * @return true if alignment characters should be displayed
    */
   @Override
@@ -656,8 +603,6 @@ public class AlignViewport extends AlignmentViewport
     return validCharWidth;
   }
 
-  private Hashtable<String, AutoCalcSetting> calcIdParams = new Hashtable<>();
-
   public AutoCalcSetting getCalcIdSettingsFor(String calcId)
   {
     return calcIdParams.get(calcId);
@@ -1087,4 +1032,5 @@ public class AlignViewport extends AlignmentViewport
     }
     fr.setTransparency(featureSettings.getTransparency());
   }
+
 }