X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignment.java;h=7ea9985ecb03eaa2da3cd7671b9facd74d0f4ff4;hb=55f7d3897490cfa3d997d28194fb9a458f00f41b;hp=482df7fd0dd6f77f4b92c232132ecc8ef88f24fb;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index 482df7f..7ea9985 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -147,7 +147,9 @@ public class Alignment implements AlignmentI */ 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); } @@ -236,8 +238,7 @@ public class Alignment implements AlignmentI } if (sequences == null) { - initAlignment(new SequenceI[] - { snew }); + initAlignment(new SequenceI[] { snew }); } else { @@ -1588,38 +1589,37 @@ public class Alignment implements AlignmentI } } + 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() @@ -1664,8 +1664,8 @@ public class Alignment implements AlignmentI * 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 @@ -1678,7 +1678,7 @@ public class Alignment implements AlignmentI * @param preserveUnmappedGaps * if true, gaps within and between unmapped codons are preserved */ -// @Override + // @Override public int alignAs(AlignmentI al, boolean preserveMappedGaps, boolean preserveUnmappedGaps) { @@ -1693,17 +1693,19 @@ public class Alignment implements AlignmentI 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; } @@ -1731,4 +1733,19 @@ public class Alignment implements AlignmentI } return names; } + + @Override + public boolean hasValidSequence() + { + boolean hasValidSeq = false; + for (SequenceI seq : getSequences()) + { + if ((seq.getEnd() - seq.getStart()) > 0) + { + hasValidSeq = true; + break; + } + } + return hasValidSeq; + } }