/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1)
+ * Copyright (C) 2015 The Jalview Authors
*
* This file is part of Jalview.
*
*/
public static AlignmentI createAlignment(CigarArray compactAlignment)
{
- throw new Error(MessageManager.getString("error.alignment_cigararray_not_implemented"));
+ throw new Error(
+ MessageManager
+ .getString("error.alignment_cigararray_not_implemented"));
// this(compactAlignment.refCigars);
}
}
if (sequences == null)
{
- initAlignment(new SequenceI[]
- { snew });
+ initAlignment(new SequenceI[] { snew });
}
else
{
}
}
+ private SequenceI seqrep = null;
- private SequenceI seqrep=null;
-
- /**
- *
- * @return the representative sequence for this group
- */
- public SequenceI getSeqrep()
- {
- return seqrep;
- }
+ /**
+ *
+ * @return the representative sequence for this group
+ */
+ public SequenceI getSeqrep()
+ {
+ return seqrep;
+ }
- /**
- * set the representative sequence for this group. Note - this affects the
- * interpretation of the Hidereps attribute.
- *
- * @param seqrep
- * the seqrep to set (null means no sequence representative)
- */
- public void setSeqrep(SequenceI seqrep)
- {
- this.seqrep = seqrep;
- }
+ /**
+ * set the representative sequence for this group. Note - this affects the
+ * interpretation of the Hidereps attribute.
+ *
+ * @param seqrep
+ * the seqrep to set (null means no sequence representative)
+ */
+ public void setSeqrep(SequenceI seqrep)
+ {
+ this.seqrep = seqrep;
+ }
- /**
- *
- * @return true if group has a sequence representative
- */
- public boolean hasSeqrep()
- {
- return seqrep != null;
- }
+ /**
+ *
+ * @return true if group has a sequence representative
+ */
+ public boolean hasSeqrep()
+ {
+ return seqrep != null;
+ }
@Override
public int getEndRes()
* identically. If this is nucleotide and the other is protein, make 3 gaps
* for each gap in the protein sequences. If this is protein and the other is
* nucleotide, insert a gap for each 3 gaps (or part thereof) between
- * nucleotide bases. Does nothing if alignment of protein from cDNA is
- * requested (not yet implemented).
+ * nucleotide bases. If this is protein and the other is nucleotide, gaps
+ * protein to match the relative ordering of codons in the nucleotide.
*
* Parameters control whether gaps in exon (mapped) and intron (unmapped)
* regions are preserved. Gaps that connect introns to exons are treated
* @param preserveUnmappedGaps
* if true, gaps within and between unmapped codons are preserved
*/
-// @Override
+ // @Override
public int alignAs(AlignmentI al, boolean preserveMappedGaps,
boolean preserveUnmappedGaps)
{
char thisGapChar = this.getGapCharacter();
String gap = thisIsNucleotide && thatIsProtein ? String
- .valueOf(new char[]
- { thisGapChar, thisGapChar, thisGapChar }) : String
- .valueOf(thisGapChar);
+ .valueOf(new char[] { thisGapChar, thisGapChar, thisGapChar })
+ : String.valueOf(thisGapChar);
+
+ // TODO handle intron regions? Needs a 'holistic' alignment of dna,
+ // not just sequence by sequence. But how to 'gap' intron regions?
/*
* Get mappings from 'that' alignment's sequences to this.
*/
for (SequenceI alignTo : getSequences())
{
- count += AlignmentUtils.alignSequenceAs(alignTo, al, gap, preserveMappedGaps,
- preserveUnmappedGaps) ? 1 : 0;
+ count += AlignmentUtils.alignSequenceAs(alignTo, al, gap,
+ preserveMappedGaps, preserveUnmappedGaps) ? 1 : 0;
}
return count;
}
}
return names;
}
+
+ @Override
+ public boolean hasValidSequence()
+ {
+ boolean hasValidSeq = false;
+ for (SequenceI seq : getSequences())
+ {
+ if ((seq.getEnd() - seq.getStart()) > 0)
+ {
+ hasValidSeq = true;
+ break;
+ }
+ }
+ return hasValidSeq;
+ }
}