*/
private SequenceI seqrep;
- /*
- * HMM consensus sequence for group (if any)
- */
- private SequenceI hmmConsensus;
-
private int width = -1;
/*
*/
public SequenceGroup(SequenceGroup seqsel)
{
+ this(seqsel, true);
+ }
+
+ /**
+ * copy constructor
+ *
+ * @param seqsel
+ * @param keepsequences
+ * if false do not add sequences from seqsel to new instance
+ */
+ public SequenceGroup(SequenceGroup seqsel, boolean keepsequences)
+ {
this();
+
if (seqsel != null)
{
sequences = new ArrayList<>();
- sequences.addAll(seqsel.sequences);
+ if (keepsequences)
+ {
+ sequences.addAll(seqsel.sequences);
+ }
if (seqsel.groupName != null)
{
groupName = new String(seqsel.groupName);
ignoreGapsInConsensus = seqsel.ignoreGapsInConsensus;
hmmIgnoreBelowBackground = seqsel.hmmIgnoreBelowBackground;
hmmUseInfoLetterHeight = seqsel.hmmUseInfoLetterHeight;
- if (seqsel.conservationData != null)
+ if (keepsequences && seqsel.conservationData != null)
{
+ // todo avoid doing this if we don't actually want derived calculations
+ // !
recalcConservation(); // safer than
// aaFrequency = (Vector) seqsel.aaFrequency.clone(); // ??
}
return showSequenceLogo;
}
- public SequenceI[] getSelectionAsNewSequences(AlignmentI align)
+ public SequenceI[] getSelectionAsNewSequences(AlignmentI align,
+ boolean copyAnnotation)
{
int iSize = sequences.size();
SequenceI[] seqs = new SequenceI[iSize];
if (seqs[ipos] != null)
{
seqs[ipos].setDescription(seq.getDescription());
- seqs[ipos].setDBRefs(seq.getDBRefs());
- seqs[ipos].setSequenceFeatures(seq.getSequenceFeatures());
- seqs[ipos].setIsHMMConsensusSequence(seq.isHMMConsensusSequence());
- if (seq.getDatasetSequence() != null)
- {
- seqs[ipos].setDatasetSequence(seq.getDatasetSequence());
- }
- if (seq.getAnnotation() != null)
+ if (seq.getAnnotation() != null && copyAnnotation)
{
AlignmentAnnotation[] alann = align.getAlignmentAnnotation();
// Only copy annotation that is either a score or referenced by the
hmmNormaliseSequenceLogo = state;
}
- @Override
- public SequenceI getHmmConsensus()
- {
- return hmmConsensus;
- }
-
- @Override
- public void setHmmConsensus(SequenceI hmmSeq)
- {
- this.hmmConsensus = hmmSeq;
- }
-
public ProfilesI getConsensusData()
{
return consensusProfiles;
this.hmmProfiles = hmmProfiles;
}
+ @Override
+ public List<SequenceI> getHmmSequences()
+ {
+ List<SequenceI> result = new ArrayList<>();
+ for (int i = 0; i < sequences.size(); i++)
+ {
+ SequenceI seq = sequences.get(i);
+ if (seq.hasHMMProfile())
+ {
+ result.add(seq);
+ }
+ }
+ return result;
+ }
+
}