X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FBamFile.java;h=26c14a2f3683c57ac7b2a297db6dabd625580075;hb=0b0b3d3687479204da2d199042c7bc90f3a6fd43;hp=05696927060858087df2d63fef1681de767ce74a;hpb=9f118a08c0f093fb30a51a2459e2609b3c959614;p=jalview.git diff --git a/src/jalview/io/BamFile.java b/src/jalview/io/BamFile.java index 0569692..26c14a2 100644 --- a/src/jalview/io/BamFile.java +++ b/src/jalview/io/BamFile.java @@ -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 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); } } - - - - }