From 17120879bd8e01ef654f70ae16ff607472442497 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Fri, 23 Aug 2019 16:15:23 +0100 Subject: [PATCH] JAL-3417 access to consensus,conservation,cdsprofile and rnastrucconsensus calculation objects moved from AlignViewportI to AnnotatedCollectionI. AlignViewport methods left, but profiles etc are now stored on Alignment. SequenceGroups can now have their own RNA structure consensus, etc, too. --- src/jalview/datamodel/Alignment.java | 58 ++++++++++++++++++++++++ src/jalview/datamodel/AlignmentI.java | 10 ++++ src/jalview/datamodel/SequenceCollectionI.java | 31 +++++++++++++ src/jalview/datamodel/SequenceGroup.java | 22 +++++++++ src/jalview/viewmodel/AlignmentViewport.java | 4 ++ 5 files changed, 125 insertions(+) diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index 3b0ca46..09c69e2 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -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 codonFrameList; + private Conservation conservation; + + private ProfilesI consensus; + + private Hashtable[] codonConsensus, rnaStructureConsensus; + private void initAlignment(SequenceI[] seqs) { groups = Collections.synchronizedList(new ArrayList()); @@ -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; + + } } diff --git a/src/jalview/datamodel/AlignmentI.java b/src/jalview/datamodel/AlignmentI.java index 93a2456..012ae6b 100755 --- a/src/jalview/datamodel/AlignmentI.java +++ b/src/jalview/datamodel/AlignmentI.java @@ -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); + } diff --git a/src/jalview/datamodel/SequenceCollectionI.java b/src/jalview/datamodel/SequenceCollectionI.java index e2bb5a6..e86216f 100644 --- a/src/jalview/datamodel/SequenceCollectionI.java +++ b/src/jalview/datamodel/SequenceCollectionI.java @@ -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(); + } diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index 3bf7bc4..1b8181b 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -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) diff --git a/src/jalview/viewmodel/AlignmentViewport.java b/src/jalview/viewmodel/AlignmentViewport.java index 8dcd1b3..979f6ad 100644 --- a/src/jalview/viewmodel/AlignmentViewport.java +++ b/src/jalview/viewmodel/AlignmentViewport.java @@ -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; } -- 1.7.10.2