JAL-3417 access to consensus,conservation,cdsprofile and rnastrucconsensus calculatio...
authorJim Procter <jprocter@issues.jalview.org>
Fri, 23 Aug 2019 15:15:23 +0000 (16:15 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Fri, 23 Aug 2019 15:15:23 +0000 (16:15 +0100)
src/jalview/datamodel/Alignment.java
src/jalview/datamodel/AlignmentI.java
src/jalview/datamodel/SequenceCollectionI.java
src/jalview/datamodel/SequenceGroup.java
src/jalview/viewmodel/AlignmentViewport.java

index 3b0ca46..09c69e2 100755 (executable)
@@ -21,6 +21,7 @@
 package jalview.datamodel;
 
 import jalview.analysis.AlignmentUtils;
+import jalview.analysis.Conservation;
 import jalview.datamodel.AlignedCodonFrame.SequenceToSequenceMapping;
 import jalview.io.FastaFile;
 import jalview.util.Comparison;
@@ -71,6 +72,12 @@ public class Alignment implements AlignmentI, AutoCloseable
 
   private List<AlignedCodonFrame> codonFrameList;
 
+  private Conservation conservation;
+
+  private ProfilesI consensus;
+
+  private Hashtable[] codonConsensus, rnaStructureConsensus;
+
   private void initAlignment(SequenceI[] seqs)
   {
     groups = Collections.synchronizedList(new ArrayList<SequenceGroup>());
@@ -2029,4 +2036,55 @@ public class Alignment implements AlignmentI, AutoCloseable
     }
   }
 
+  @Override
+  public Hashtable[] getComplementConsensusHash()
+  {
+    return codonConsensus;
+  }
+
+  @Override
+  public Conservation getConservation()
+  {
+    return conservation;
+  }
+
+  @Override
+  public Hashtable[] getRnaStructureConsensusHash()
+  {
+    return rnaStructureConsensus;
+  }
+
+  @Override
+  public ProfilesI getSequenceConsensusHash()
+  {
+    return consensus;
+  }
+
+  @Override
+  public void setComplementConsensusHash(Hashtable[] hconsensus)
+  {
+    codonConsensus = hconsensus;
+
+  }
+
+  @Override
+  public void setConservation(Conservation cons)
+  {
+    conservation = cons;
+
+  }
+
+  @Override
+  public void setRnaStructureConsensusHash(Hashtable[] hStrucConsensus)
+  {
+    rnaStructureConsensus = hStrucConsensus;
+
+  }
+
+  @Override
+  public void setSequenceConsensusHash(ProfilesI hconsensus)
+  {
+    consensus = hconsensus;
+
+  }
 }
index 93a2456..012ae6b 100755 (executable)
@@ -20,6 +20,8 @@
  */
 package jalview.datamodel;
 
+import jalview.analysis.Conservation;
+
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
@@ -624,4 +626,12 @@ public interface AlignmentI extends AnnotatedCollectionI
   public HiddenColumns propagateInsertions(SequenceI profileseq,
           AlignmentView input);
 
+  void setRnaStructureConsensusHash(Hashtable[] hStrucConsensus);
+
+  void setSequenceConsensusHash(ProfilesI hconsensus);
+
+  void setComplementConsensusHash(Hashtable[] hconsensus);
+
+  void setConservation(Conservation cons);
+
 }
index e2bb5a6..e86216f 100644 (file)
@@ -20,6 +20,9 @@
  */
 package jalview.datamodel;
 
+import jalview.analysis.Conservation;
+
+import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 
@@ -83,4 +86,32 @@ public interface SequenceCollectionI
    * @return
    */
   boolean isNucleotide();
+
+  /**
+   * 
+   * @return the physicochemical property conservation for this sequence
+   *         collection (protein only)
+   */
+  Conservation getConservation();
+
+  /**
+   * 
+   * @return null or a valid Codon consensus object (protein only)
+   */
+  Hashtable[] getComplementConsensusHash();
+
+  /**
+   * 
+   * @return null or a valid RNA Structure base pair consensus object (nucleotide
+   *         only)
+   */
+  Hashtable[] getRnaStructureConsensusHash();
+
+  /**
+   * 
+   * @return null or the consensus profile for this collection if it has been
+   *         calculated
+   */
+  ProfilesI getSequenceConsensusHash();
+
 }
index 3bf7bc4..1b8181b 100755 (executable)
@@ -31,6 +31,7 @@ import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 
@@ -503,6 +504,7 @@ public class SequenceGroup implements AnnotatedCollectionI
    * 
    * @return DOCUMENT ME!
    */
+  @Override
   public Conservation getConservation()
   {
     return conserve;
@@ -675,6 +677,26 @@ public class SequenceGroup implements AnnotatedCollectionI
 
   public ProfilesI consensusData = null;
 
+  @Override
+  public ProfilesI getSequenceConsensusHash()
+  {
+    return consensusData;
+  }
+
+  @Override
+  public Hashtable[] getComplementConsensusHash()
+  {
+    // TODO: Groupwise CDS Consensus
+    return null;
+  }
+
+  @Override
+  public Hashtable[] getRnaStructureConsensusHash()
+  {
+    // TODO Groupwise RNA Consensus
+    return null;
+  }
+
   private void _updateConsensusRow(ProfilesI cnsns, long nseq)
   {
     if (consensus == null)
index 8dcd1b3..979f6ad 100644 (file)
@@ -722,6 +722,7 @@ public abstract class AlignmentViewport
   @Override
   public void setConservation(Conservation cons)
   {
+    alignment.setConservation(cons);
     hconservation = cons;
   }
 
@@ -740,12 +741,14 @@ public abstract class AlignmentViewport
   @Override
   public void setSequenceConsensusHash(ProfilesI hconsensus)
   {
+    alignment.setSequenceConsensusHash(hconsensus);
     this.hconsensus = hconsensus;
   }
 
   @Override
   public void setComplementConsensusHash(Hashtable[] hconsensus)
   {
+    alignment.setComplementConsensusHash(hconsensus);
     this.hcomplementConsensus = hconsensus;
   }
 
@@ -770,6 +773,7 @@ public abstract class AlignmentViewport
   @Override
   public void setRnaStructureConsensusHash(Hashtable[] hStrucConsensus)
   {
+    alignment.setRnaStructureConsensusHash(hStrucConsensus);
     this.hStrucConsensus = hStrucConsensus;
 
   }