From a645ad57edeec989e753a4414aa0bdbfb0854077 Mon Sep 17 00:00:00 2001 From: tcarver <tjc> Date: Thu, 12 Jul 2012 11:56:55 +0100 Subject: [PATCH] fix for creating features from read peaks with concat sequences --- .../artemis/components/alignment/BamUtils.java | 3 ++- .../artemis/components/alignment/MappedReads.java | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/uk/ac/sanger/artemis/components/alignment/BamUtils.java b/uk/ac/sanger/artemis/components/alignment/BamUtils.java index 8ad6da6ce..84e90f524 100644 --- a/uk/ac/sanger/artemis/components/alignment/BamUtils.java +++ b/uk/ac/sanger/artemis/components/alignment/BamUtils.java @@ -166,6 +166,7 @@ class BamUtils final String refName, final int start, final int end, + final int concatShift, final int cnt[][], final SAMRecordPredicate samRecordFlagPredicate, final SAMRecordPredicate samRecordMapQPredicate) @@ -194,7 +195,7 @@ class BamUtils int refStart = block.getReferenceStart(); for(int i=0; i<block.getLength(); i++) { - int pos = refStart + i; + int pos = refStart + i + concatShift; int bin = pos - start; if(bin < 0 || bin > cnt.length-1) continue; diff --git a/uk/ac/sanger/artemis/components/alignment/MappedReads.java b/uk/ac/sanger/artemis/components/alignment/MappedReads.java index f065b85bb..230f26e0b 100644 --- a/uk/ac/sanger/artemis/components/alignment/MappedReads.java +++ b/uk/ac/sanger/artemis/components/alignment/MappedReads.java @@ -487,9 +487,20 @@ public class MappedReads if( (start >= offset && start <= offset+len) || (stop >= offset && start <= offset+len) ) { + int thisStart = start-offset; + if(thisStart < 1) + thisStart = 1; + int thisEnd = stop-offset; + if(thisEnd > len) + thisEnd = len; + + int concatShift = 0; + if(offset > start) + concatShift = offset-start; + cnt = BamUtils.countOverRange(bamList.get(i), samFileReaderHash, - name, start-offset, stop-offset, cnt, + name, thisStart, thisEnd, concatShift, cnt, samRecordFlagPredicate, samRecordMapQPredicate); } } @@ -498,7 +509,7 @@ public class MappedReads { cnt = BamUtils.countOverRange(bamList.get(i), samFileReaderHash, - refSeq, start, stop, cnt, + refSeq, start, stop, 0, cnt, samRecordFlagPredicate, samRecordMapQPredicate); } -- GitLab