From 1bfe28067fd87b40b81d51db2ddcdacbecf97056 Mon Sep 17 00:00:00 2001 From: Guillermo del Angel Date: Thu, 8 Dec 2011 12:54:08 -0500 Subject: [PATCH] Don't try to genotype an indel even bigger than the reference window size, or else we'll be out of bounds. Necessary to handle Phase 1 integrated callset with large deletions. Better error indication when validating a GenomeLoc. --- .../genotyper/IndelGenotypeLikelihoodsCalculationModel.java | 4 ++++ .../src/org/broadinstitute/sting/utils/GenomeLocParser.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java index aea63b61d..14d647b6d 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/genotyper/IndelGenotypeLikelihoodsCalculationModel.java @@ -361,6 +361,10 @@ public class IndelGenotypeLikelihoodsCalculationModel extends GenotypeLikelihood final int hsize = (int)ref.getWindow().size()-Math.abs(eventLength)-1; final int numPrefBases= ref.getLocus().getStart()-ref.getWindow().getStart()+1; + if (hsize <=0) { + logger.warn(String.format("Warning: event at location %s can't be genotyped, skipping",loc.toString())); + return null; + } haplotypeMap = Haplotype.makeHaplotypeListFromAlleles(alleleList, loc.getStart(), ref, hsize, numPrefBases); diff --git a/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java b/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java index 8d9768681..a06a7166f 100644 --- a/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java +++ b/public/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java @@ -285,7 +285,7 @@ public class GenomeLocParser { return vglHelper(exceptOnError, String.format("Unknown contig %s", contig)); if (stop < start) - return vglHelper(exceptOnError, String.format("The stop position %d is less than start %d", stop, start)); + return vglHelper(exceptOnError, String.format("The stop position %d is less than start %d in contig %s", stop, start, contig)); if (contigIndex < 0) return vglHelper(exceptOnError, String.format("The contig index %d is less than 0", contigIndex));