From bb92eb8b1c36e354d7664732b99d17162f631aef Mon Sep 17 00:00:00 2001 From: aaron Date: Thu, 2 Jul 2009 02:08:59 +0000 Subject: [PATCH] added a fix for overlapping reads in the locus context git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1153 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/datasources/providers/LocusReferenceView.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java b/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java index 60a73b582..b00ae9e9c 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/LocusReferenceView.java @@ -1,6 +1,7 @@ package org.broadinstitute.sting.gatk.datasources.providers; import org.broadinstitute.sting.utils.GenomeLoc; +import org.broadinstitute.sting.utils.Utils; import net.sf.picard.reference.ReferenceSequence; import net.sf.samtools.util.StringUtil; /** @@ -63,8 +64,12 @@ public class LocusReferenceView extends ReferenceView { * at the end of the locus (inclusive). */ public char[] getReferenceBases( GenomeLoc genomeLoc ) { - ReferenceSequence subsequence = reference.getSubsequenceAt(genomeLoc.getContig(),genomeLoc.getStart(),genomeLoc.getStop()); - return StringUtil.bytesToString(subsequence.getBases()).toCharArray(); + long stop = genomeLoc.getStop(); + if (reference.getSequence(genomeLoc.getContig()).length() > genomeLoc.getStart()) { + stop = reference.getSequence(genomeLoc.getContig()).length(); + } + ReferenceSequence subsequence = reference.getSubsequenceAt(genomeLoc.getContig(),genomeLoc.getStart(),stop); + return (StringUtil.bytesToString(subsequence.getBases()) + Utils.dupString('X', (int)(genomeLoc.getStop() - stop)) ).toCharArray(); } /**