Merge branch 'develop' into trialMerge
[jalview.git] / test / jalview / analysis / AlignmentUtilsTests.java
index ddd38e7..7f7ec31 100644 (file)
@@ -35,12 +35,15 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.Mapping;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SearchResults.Match;
+import jalview.datamodel.SearchResultMatchI;
+import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
 import jalview.io.FormatAdapter;
 import jalview.util.MapList;
 import jalview.util.MappingUtils;
@@ -69,14 +72,15 @@ public class AlignmentUtilsTests
       SequenceI s1 = ts.deriveSequence().getSubSequence(i, i + 7);
       al.addSequence(s1);
     }
-    System.out.println(new AppletFormatAdapter().formatSequences("Clustal",
+    System.out.println(new AppletFormatAdapter().formatSequences(
+            FileFormat.Clustal,
             al, true));
     for (int flnk = -1; flnk < 25; flnk++)
     {
       AlignmentI exp = AlignmentUtils.expandContext(al, flnk);
       System.out.println("\nFlank size: " + flnk);
       System.out.println(new AppletFormatAdapter().formatSequences(
-              "Clustal", exp, true));
+              FileFormat.Clustal, exp, true));
       if (flnk == -1)
       {
         /*
@@ -209,7 +213,7 @@ public class AlignmentUtilsTests
   {
     final String data = ">Seq1Name\nKQYL\n" + ">Seq2Name\nRFPW\n"
             + ">Seq1Name\nABCD\n";
-    AlignmentI al = loadAlignment(data, "FASTA");
+    AlignmentI al = loadAlignment(data, FileFormat.Fasta);
     Map<String, List<SequenceI>> map = AlignmentUtils
             .getSequencesByName(al);
     assertEquals(2, map.keySet().size());
@@ -229,11 +233,11 @@ public class AlignmentUtilsTests
    * @return
    * @throws IOException
    */
-  protected AlignmentI loadAlignment(final String data, String format)
+  protected AlignmentI loadAlignment(final String data, FileFormatI format)
           throws IOException
   {
     AlignmentI a = new FormatAdapter().readFile(data,
-            AppletFormatAdapter.PASTE, format);
+            DataSourceType.PASTE, format);
     a.setDataset(null);
     return a;
   }
@@ -439,7 +443,8 @@ public class AlignmentUtilsTests
     SequenceI alignFrom = new Sequence("Seq2", alignModel);
     alignFrom.createDatasetSequence();
     AlignedCodonFrame acf = new AlignedCodonFrame();
-    acf.addMap(alignMe.getDatasetSequence(), alignFrom.getDatasetSequence(), map);
+    acf.addMap(alignMe.getDatasetSequence(),
+            alignFrom.getDatasetSequence(), map);
 
     AlignmentUtils.alignSequenceAs(alignMe, alignFrom, acf, "---", '-',
             preserveMappedGaps, preserveUnmappedGaps);
@@ -977,7 +982,7 @@ public class AlignmentUtilsTests
     /*
      * scenario:
      *     dna1 --> [4, 6] [10,12]        --> pep1 
-     *     dna2 --> [1, 3] [7, 9] [13,15] --> pep1 
+     *     dna2 --> [1, 3] [7, 9] [13,15] --> pep2
      */
     SequenceI dna1 = new Sequence("dna1", "aaaGGGcccTTTaaa");
     SequenceI dna2 = new Sequence("dna2", "GGGcccTTTaaaCCC");
@@ -993,6 +998,13 @@ public class AlignmentUtilsTests
     dna.setDataset(null);
 
     /*
+     * put a variant feature on dna2 base 8
+     * - should transfer to cds2 base 5
+     */
+    dna2.addSequenceFeature(new SequenceFeature("variant", "hgmd", 8, 8,
+            0f, null));
+
+    /*
      * need a sourceDbRef if we are to construct dbrefs to the CDS
      * sequence from the dna contig sequences
      */
@@ -1007,15 +1019,14 @@ public class AlignmentUtilsTests
      * CDS sequences are 'discovered' from dna-to-protein mappings on the alignment
      * dataset (e.g. added from dbrefs by CrossRef.findXrefSequences)
      */
-    MapList mapfordna1 = new MapList(new int[] { 4, 6, 10, 12 },
-            new int[] { 1, 2 }, 3, 1);
+    MapList mapfordna1 = new MapList(new int[] { 4, 6, 10, 12 }, new int[] {
+        1, 2 }, 3, 1);
     AlignedCodonFrame acf = new AlignedCodonFrame();
     acf.addMap(dna1.getDatasetSequence(), pep1.getDatasetSequence(),
             mapfordna1);
     dna.addCodonFrame(acf);
     MapList mapfordna2 = new MapList(new int[] { 1, 3, 7, 9, 13, 15 },
-            new int[] { 1, 3 },
-            3, 1);
+            new int[] { 1, 3 }, 3, 1);
     acf = new AlignedCodonFrame();
     acf.addMap(dna2.getDatasetSequence(), pep2.getDatasetSequence(),
             mapfordna2);
@@ -1112,9 +1123,9 @@ public class AlignmentUtilsTests
     assertEquals(1, mappings.size());
 
     // map G to GGG
-    SearchResults sr = MappingUtils.buildSearchResults(pep1, 1, mappings);
+    SearchResultsI sr = MappingUtils.buildSearchResults(pep1, 1, mappings);
     assertEquals(1, sr.getResults().size());
-    Match m = sr.getResults().get(0);
+    SearchResultMatchI m = sr.getResults().get(0);
     assertSame(cds1Dss, m.getSequence());
     assertEquals(1, m.getStart());
     assertEquals(3, m.getEnd());
@@ -1154,6 +1165,16 @@ public class AlignmentUtilsTests
     assertSame(cds2Dss, m.getSequence());
     assertEquals(7, m.getStart());
     assertEquals(9, m.getEnd());
+
+    /*
+     * check cds2 acquired a variant feature in position 5
+     */
+    SequenceFeature[] sfs = cds2Dss.getSequenceFeatures();
+    assertNotNull(sfs);
+    assertEquals(1, sfs.length);
+    assertEquals("variant", sfs[0].type);
+    assertEquals(5, sfs[0].begin);
+    assertEquals(5, sfs[0].end);
   }
 
   /**
@@ -1293,8 +1314,7 @@ public class AlignmentUtilsTests
             .findMappingsForSequence(cds.get(0), dnaMappings);
     Mapping mapping = dnaToCds1Mappings.get(0).getMappings().get(0)
             .getMapping();
-    assertSame(cds.get(0).getDatasetSequence(), mapping
-            .getTo());
+    assertSame(cds.get(0).getDatasetSequence(), mapping.getTo());
     assertEquals("G(1) in CDS should map to G(4) in DNA", 4, mapping
             .getMap().getToPosition(1));
 
@@ -1362,8 +1382,7 @@ public class AlignmentUtilsTests
    * @throws IOException
    */
   @Test(groups = { "Functional" })
-  public void testMapCdnaToProtein_forSubsequence()
-          throws IOException
+  public void testMapCdnaToProtein_forSubsequence() throws IOException
   {
     SequenceI prot = new Sequence("UNIPROT|V12345", "E-I--Q", 10, 12);
     prot.createDatasetSequence();
@@ -1384,7 +1403,7 @@ public class AlignmentUtilsTests
   @Test(groups = { "Functional" })
   public void testAlignSequenceAs_mappedProteinProtein()
   {
-  
+
     SequenceI alignMe = new Sequence("Match", "MGAASEV");
     alignMe.createDatasetSequence();
     SequenceI alignFrom = new Sequence("Query", "LQTGYMGAASEVMFSPTRR");
@@ -1395,7 +1414,7 @@ public class AlignmentUtilsTests
     MapList map = new MapList(new int[] { 6, 12 }, new int[] { 1, 7 }, 1, 1);
     acf.addMap(alignFrom.getDatasetSequence(),
             alignMe.getDatasetSequence(), map);
-    
+
     AlignmentUtils.alignSequenceAs(alignMe, alignFrom, acf, "-", '-', true,
             true);
     assertEquals("-----MGAASEV-------", alignMe.getSequenceAsString());
@@ -1410,7 +1429,7 @@ public class AlignmentUtilsTests
   {
     // map first 3 codons to KPF; G is a trailing unmapped residue
     MapList map = new MapList(new int[] { 1, 9 }, new int[] { 1, 3 }, 3, 1);
-  
+
     checkAlignSequenceAs("AAACCCTTT", "K-PFG", true, true, map,
             "AAA---CCCTTT---");
   }
@@ -1509,7 +1528,7 @@ public class AlignmentUtilsTests
 
     MapList map = new MapList(new int[] { 4, 6, 10, 12 },
             new int[] { 1, 6 }, 1, 1);
-  
+
     // [5, 11] maps to [2, 5]
     dna.addSequenceFeature(new SequenceFeature("type4", "desc4", 5, 11, 4f,
             null));
@@ -1519,12 +1538,12 @@ public class AlignmentUtilsTests
     // [12, 12] maps to [6, 6]
     dna.addSequenceFeature(new SequenceFeature("type8", "desc8", 12, 12,
             8f, null));
-  
+
     // desc4 and desc8 are the 'omit these' varargs
     AlignmentUtils.transferFeatures(dna, cds, map, null, "type4", "type8");
     SequenceFeature[] sfs = cds.getSequenceFeatures();
     assertEquals(1, sfs.length);
-  
+
     SequenceFeature sf = sfs[0];
     assertEquals("type5", sf.getType());
     assertEquals(1, sf.getBegin());
@@ -1539,10 +1558,10 @@ public class AlignmentUtilsTests
   {
     SequenceI dna = new Sequence("dna/20-34", "acgTAGcaaGCCcgt");
     SequenceI cds = new Sequence("cds/10-15", "TAGGCC");
-  
+
     MapList map = new MapList(new int[] { 4, 6, 10, 12 },
             new int[] { 1, 6 }, 1, 1);
-  
+
     // [5, 11] maps to [2, 5]
     dna.addSequenceFeature(new SequenceFeature("type4", "desc4", 5, 11, 4f,
             null));
@@ -1552,12 +1571,12 @@ public class AlignmentUtilsTests
     // [12, 12] maps to [6, 6]
     dna.addSequenceFeature(new SequenceFeature("type8", "desc8", 12, 12,
             8f, null));
-  
+
     // "type5" is the 'select this type' argument
     AlignmentUtils.transferFeatures(dna, cds, map, "type5");
     SequenceFeature[] sfs = cds.getSequenceFeatures();
     assertEquals(1, sfs.length);
-  
+
     SequenceFeature sf = sfs[0];
     assertEquals("type5", sf.getType());
     assertEquals(1, sf.getBegin());
@@ -1586,26 +1605,25 @@ public class AlignmentUtilsTests
 
     AlignmentI dna = new Alignment(new SequenceI[] { dna1, dna2, dna3 });
     dna.setDataset(null);
-  
+
     MapList map = new MapList(new int[] { 4, 12, 16, 18 },
             new int[] { 1, 4 }, 3, 1);
     AlignedCodonFrame acf = new AlignedCodonFrame();
     acf.addMap(dna1.getDatasetSequence(), pep1.getDatasetSequence(), map);
     dna.addCodonFrame(acf);
     map = new MapList(new int[] { 4, 8, 12, 12, 16, 18 },
-            new int[] { 1, 3 },
-            3, 1);
+            new int[] { 1, 3 }, 3, 1);
     acf = new AlignedCodonFrame();
     acf.addMap(dna2.getDatasetSequence(), pep2.getDatasetSequence(), map);
     dna.addCodonFrame(acf);
-  
+
     AlignmentI cds = AlignmentUtils.makeCdsAlignment(new SequenceI[] {
         dna1, dna2, dna3 }, dna.getDataset(), null);
     List<SequenceI> cdsSeqs = cds.getSequences();
     assertEquals(2, cdsSeqs.size());
     assertEquals("GGGCCCTTTGGG", cdsSeqs.get(0).getSequenceAsString());
     assertEquals("GGGCCTGGG", cdsSeqs.get(1).getSequenceAsString());
-  
+
     /*
      * verify shared, extended alignment dataset
      */
@@ -1621,7 +1639,7 @@ public class AlignmentUtilsTests
      */
     List<AlignedCodonFrame> mappings = cds.getCodonFrames();
     assertEquals(6, mappings.size());
-  
+
     /*
      * 2 mappings involve pep1
      */
@@ -1636,12 +1654,11 @@ public class AlignmentUtilsTests
     List<AlignedCodonFrame> pep1CdsMappings = MappingUtils
             .findMappingsForSequence(cds.getSequenceAt(0), pep1Mappings);
     assertEquals(1, pep1CdsMappings.size());
-    SearchResults sr = MappingUtils.buildSearchResults(pep1, 1,
+    SearchResultsI sr = MappingUtils.buildSearchResults(pep1, 1,
             pep1CdsMappings);
     assertEquals(1, sr.getResults().size());
-    Match m = sr.getResults().get(0);
-    assertEquals(cds.getSequenceAt(0).getDatasetSequence(),
-            m.getSequence());
+    SearchResultMatchI m = sr.getResults().get(0);
+    assertEquals(cds.getSequenceAt(0).getDatasetSequence(), m.getSequence());
     assertEquals(1, m.getStart());
     assertEquals(3, m.getEnd());
     sr = MappingUtils.buildSearchResults(pep1, 2, pep1CdsMappings);
@@ -1656,7 +1673,7 @@ public class AlignmentUtilsTests
     m = sr.getResults().get(0);
     assertEquals(10, m.getStart());
     assertEquals(12, m.getEnd());
-  
+
     /*
      * Get mapping of pep2 to cds2 and verify it
      * maps GPG in pep2 to 1-3,4-6,7-9 in second CDS sequence
@@ -1670,8 +1687,7 @@ public class AlignmentUtilsTests
     sr = MappingUtils.buildSearchResults(pep2, 1, pep2CdsMappings);
     assertEquals(1, sr.getResults().size());
     m = sr.getResults().get(0);
-    assertEquals(cds.getSequenceAt(1).getDatasetSequence(),
-            m.getSequence());
+    assertEquals(cds.getSequenceAt(1).getDatasetSequence(), m.getSequence());
     assertEquals(1, m.getStart());
     assertEquals(3, m.getEnd());
     sr = MappingUtils.buildSearchResults(pep2, 2, pep2CdsMappings);
@@ -1698,7 +1714,7 @@ public class AlignmentUtilsTests
     SequenceI dna3 = new Sequence("Seq3", "ccaaa-ttt-GGG-");
     AlignmentI dna = new Alignment(new SequenceI[] { dna1, dna2, dna3 });
     dna.setDataset(null);
-  
+
     // prot1 has 'X' for incomplete start codon (not mapped)
     SequenceI prot1 = new Sequence("Seq1", "XKFG"); // X for incomplete start
     SequenceI prot2 = new Sequence("Seq2", "NG");
@@ -1706,7 +1722,7 @@ public class AlignmentUtilsTests
     AlignmentI protein = new Alignment(new SequenceI[] { prot1, prot2,
         prot3 });
     protein.setDataset(null);
-  
+
     // map dna1 [3, 11] to prot1 [2, 4] KFG
     MapList map = new MapList(new int[] { 3, 11 }, new int[] { 2, 4 }, 3, 1);
     AlignedCodonFrame acf = new AlignedCodonFrame();
@@ -1745,7 +1761,7 @@ public class AlignmentUtilsTests
     SequenceI dnaSeq = new Sequence("dna", "aaagGGCCCaaaTTTttt");
     dnaSeq.createDatasetSequence();
     SequenceI ds = dnaSeq.getDatasetSequence();
-  
+
     // CDS for dna 5-6 (incomplete codon), 7-9
     SequenceFeature sf = new SequenceFeature("CDS", "", 5, 9, 0f, null);
     sf.setPhase("2"); // skip 2 bases to start of next codon
@@ -1753,9 +1769,9 @@ public class AlignmentUtilsTests
     // CDS for dna 13-15
     sf = new SequenceFeature("CDS_predicted", "", 13, 15, 0f, null);
     ds.addSequenceFeature(sf);
-  
+
     List<int[]> ranges = AlignmentUtils.findCdsPositions(dnaSeq);
-  
+
     /*
      * check the mapping starts with the first complete codon
      */
@@ -1777,7 +1793,7 @@ public class AlignmentUtilsTests
     SequenceI dnaSeq = new Sequence("dna", "aaaGGGcccAAATTTttt");
     dnaSeq.createDatasetSequence();
     SequenceI ds = dnaSeq.getDatasetSequence();
-  
+
     // CDS for dna 10-12
     SequenceFeature sf = new SequenceFeature("CDS_predicted", "", 10, 12,
             0f, null);
@@ -1790,7 +1806,7 @@ public class AlignmentUtilsTests
     // exon feature should be ignored here
     sf = new SequenceFeature("exon", "", 7, 9, 0f, null);
     ds.addSequenceFeature(sf);
-  
+
     List<int[]> ranges = AlignmentUtils.findCdsPositions(dnaSeq);
     /*
      * verify ranges { [4-6], [12-10] }
@@ -2135,7 +2151,7 @@ public class AlignmentUtilsTests
     SequenceI dnaSeq = new Sequence("dna", "aaaGGGcccAAATTTttt");
     dnaSeq.createDatasetSequence();
     SequenceI ds = dnaSeq.getDatasetSequence();
-  
+
     // CDS for dna 4-6
     SequenceFeature sf = new SequenceFeature("CDS", "", 4, 6, 0f, null);
     sf.setStrand("-");
@@ -2147,7 +2163,7 @@ public class AlignmentUtilsTests
     sf = new SequenceFeature("CDS_predicted", "", 10, 12, 0f, null);
     sf.setStrand("-");
     ds.addSequenceFeature(sf);
-  
+
     List<int[]> ranges = AlignmentUtils.findCdsPositions(dnaSeq);
     /*
      * verify ranges { [12-10], [6-4] }
@@ -2173,7 +2189,7 @@ public class AlignmentUtilsTests
     SequenceI dnaSeq = new Sequence("dna", "aaagGGCCCaaaTTTttt");
     dnaSeq.createDatasetSequence();
     SequenceI ds = dnaSeq.getDatasetSequence();
-  
+
     // CDS for dna 5-9
     SequenceFeature sf = new SequenceFeature("CDS", "", 5, 9, 0f, null);
     sf.setStrand("-");
@@ -2183,9 +2199,9 @@ public class AlignmentUtilsTests
     sf.setStrand("-");
     sf.setPhase("2"); // skip 2 bases to start of next codon
     ds.addSequenceFeature(sf);
-  
+
     List<int[]> ranges = AlignmentUtils.findCdsPositions(dnaSeq);
-  
+
     /*
      * check the mapping starts with the first complete codon
      * expect ranges [13, 13], [9, 5]
@@ -2238,8 +2254,7 @@ public class AlignmentUtilsTests
     from.createDatasetSequence();
     seq1.createDatasetSequence();
     Mapping mapping = new Mapping(seq1, new MapList(
-            new int[] { 3, 6, 9, 10 },
-            new int[] { 1, 6 }, 1, 1));
+            new int[] { 3, 6, 9, 10 }, new int[] { 1, 6 }, 1, 1));
     Map<Integer, Map<SequenceI, Character>> map = new TreeMap<Integer, Map<SequenceI, Character>>();
     AlignmentUtils.addMappedPositions(seq1, from, mapping, map);
 
@@ -2271,11 +2286,10 @@ public class AlignmentUtilsTests
     from.createDatasetSequence();
     seq1.createDatasetSequence();
     Mapping mapping = new Mapping(seq1, new MapList(
-            new int[] { 3, 6, 9, 10 },
-            new int[] { 1, 6 }, 1, 1));
+            new int[] { 3, 6, 9, 10 }, new int[] { 1, 6 }, 1, 1));
     Map<Integer, Map<SequenceI, Character>> map = new TreeMap<Integer, Map<SequenceI, Character>>();
     AlignmentUtils.addMappedPositions(seq1, from, mapping, map);
-  
+
     /*
      * verify map has seq1 residues in columns 3,4,6,7,11,12
      */
@@ -2313,7 +2327,7 @@ public class AlignmentUtilsTests
     dna.setDataset(null);
     AlignmentI emblPeptides = new Alignment(new SequenceI[] { pep3, pep4 });
     emblPeptides.setDataset(null);
-  
+
     AlignedCodonFrame acf = new AlignedCodonFrame();
     MapList map = new MapList(new int[] { 4, 6, 10, 12 },
             new int[] { 1, 2 }, 3, 1);
@@ -2327,17 +2341,17 @@ public class AlignmentUtilsTests
     acf.addMap(dna2.getDatasetSequence(), pep2.getDatasetSequence(), map);
     acf.addMap(dna2.getDatasetSequence(), pep4.getDatasetSequence(), map);
     dna.addCodonFrame(acf);
-  
+
     /*
      * execute method under test to find CDS for EMBL peptides only
      */
     AlignmentI cds = AlignmentUtils.makeCdsAlignment(new SequenceI[] {
         dna1, dna2 }, dna.getDataset(), emblPeptides.getSequencesArray());
-  
+
     assertEquals(2, cds.getSequences().size());
     assertEquals("GGGTTT", cds.getSequenceAt(0).getSequenceAsString());
     assertEquals("GGGTTTCCC", cds.getSequenceAt(1).getSequenceAsString());
-  
+
     /*
      * verify shared, extended alignment dataset
      */
@@ -2346,7 +2360,7 @@ public class AlignmentUtilsTests
             .contains(cds.getSequenceAt(0).getDatasetSequence()));
     assertTrue(dna.getDataset().getSequences()
             .contains(cds.getSequenceAt(1).getDatasetSequence()));
-  
+
     /*
      * Verify mappings from CDS to peptide, cDNA to CDS, and cDNA to peptide
      * the mappings are on the shared alignment dataset
@@ -2356,7 +2370,7 @@ public class AlignmentUtilsTests
      * 6 mappings, 2*(DNA->CDS), 2*(DNA->Pep), 2*(CDS->Pep) 
      */
     assertEquals(6, cdsMappings.size());
-  
+
     /*
      * verify that mapping sets for dna and cds alignments are different
      * [not current behaviour - all mappings are on the alignment dataset]  
@@ -2365,7 +2379,7 @@ public class AlignmentUtilsTests
     // Assert.assertNotSame(dna.getCodonFrames(), cds.getCodonFrames());
     // assertEquals(4, dna.getCodonFrames().size());
     // assertEquals(4, cds.getCodonFrames().size());
-  
+
     /*
      * Two mappings involve pep3 (dna to pep3, cds to pep3)
      * Mapping from pep3 to GGGTTT in first new exon sequence
@@ -2376,11 +2390,11 @@ public class AlignmentUtilsTests
     List<AlignedCodonFrame> mappings = MappingUtils
             .findMappingsForSequence(cds.getSequenceAt(0), pep3Mappings);
     assertEquals(1, mappings.size());
-  
+
     // map G to GGG
-    SearchResults sr = MappingUtils.buildSearchResults(pep3, 1, mappings);
+    SearchResultsI sr = MappingUtils.buildSearchResults(pep3, 1, mappings);
     assertEquals(1, sr.getResults().size());
-    Match m = sr.getResults().get(0);
+    SearchResultMatchI m = sr.getResults().get(0);
     assertSame(cds.getSequenceAt(0).getDatasetSequence(), m.getSequence());
     assertEquals(1, m.getStart());
     assertEquals(3, m.getEnd());
@@ -2390,7 +2404,7 @@ public class AlignmentUtilsTests
     assertSame(cds.getSequenceAt(0).getDatasetSequence(), m.getSequence());
     assertEquals(4, m.getStart());
     assertEquals(6, m.getEnd());
-  
+
     /*
      * Two mappings involve pep4 (dna to pep4, cds to pep4)
      * Verify mapping from pep4 to GGGTTTCCC in second new exon sequence
@@ -2444,7 +2458,7 @@ public class AlignmentUtilsTests
     dna4.setSequence(seq2);
     AlignmentI al2 = new Alignment(new SequenceI[] { dna3, dna4 });
     ((Alignment) al2).createDatasetAlignment();
-    
+
     assertTrue(AlignmentUtils.alignAsSameSequences(al1, al2));
     assertEquals(seq1, al1.getSequenceAt(0).getSequenceAsString());
     assertEquals(seq2, al1.getSequenceAt(1).getSequenceAsString());
@@ -2501,5 +2515,5 @@ public class AlignmentUtilsTests
     assertEquals(s_as2, uas2.getSequenceAsString());
     assertEquals(s_as3, uas3.getSequenceAsString());
   }
-    
+
 }