JAL-2909 Tidy up bam file cigar code
[jalview.git] / src / jalview / io / BamFile.java
index 0569692..26c14a2 100644 (file)
@@ -90,8 +90,8 @@ public class BamFile extends AlignFile
   @Override
   public void parse() throws IOException
   {
-    CigarParser parser = new CigarParser('-');
     SAMRecordIterator it = fileReader.iterator();
+    CigarParser parser = new CigarParser('-');
     SortedMap<Integer, Integer> insertions = parser.getInsertions(it);
     it.close();
 
@@ -99,22 +99,22 @@ public class BamFile extends AlignFile
     while (it.hasNext())
     {
       SAMRecord rec = it.next();
-      int start = rec.getStart();
-      int end = rec.getEnd();
 
-      SequenceI seq = new Sequence(rec.getReadName(), rec.getReadString());
+      // make dataset sequence: start at 1, end at read length
+      SequenceI seq = new Sequence(rec.getReadName(),
+              rec.getReadString().toLowerCase());
+      seq.setStart(1);
+      seq.setEnd(rec.getReadLength());
 
-      String cigarredRead = parser.parseCigarToSequence(rec, insertions);
+      String newRead = parser.parseCigarToSequence(rec, insertions);
 
+      // make alignment sequences
       SequenceI alsq = seq.deriveSequence();
-      alsq.setSequence(cigarredRead);
-      alsq.setStart(start);
-      alsq.setEnd(end);
+      alsq.setSequence(newRead);
+
+      // set start relative to soft clip; assume end is set by Sequence code
+      alsq.setStart(rec.getStart() - rec.getUnclippedStart() + 1);
       seqs.add(alsq);
     }
   }
-
-
-  
-
 }