From 7462f3f344f76631b47d06c853975e06bf95020f Mon Sep 17 00:00:00 2001 From: asivache Date: Wed, 1 Jul 2009 20:50:09 +0000 Subject: [PATCH] Bug in setContig() fixed: sequence dictionary's .getSequences().contains() and .getSequences().indexOf() do NOT work when applied to contig names (Strings), since getSequences() returns a list of SAMSequenceRecord's; changed to querying the dictionary directly for specified contig name git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1147 348d0f76-0448-11de-a6fe-93d51630548a --- .../src/org/broadinstitute/sting/utils/GenomeLocParser.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java index aa45ebdce..085193812 100644 --- a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java +++ b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java @@ -487,10 +487,12 @@ public class GenomeLocParser { */ public static GenomeLoc setContig(GenomeLoc loc, String contig) { checkSetup(); - if (!GenomeLocParser.contigInfo.getSequences().contains(contig)) { + + int index = -1; + if ( ( index = contigInfo.getSequenceIndex(contig) ) < 0 ) { throw new StingException("Contig name ( " + contig + " ) not in the set sequence dictionary."); } - return verifyGenomeLoc(new GenomeLoc(contig, GenomeLocParser.contigInfo.getSequences().indexOf(contig), loc.start, loc.getStop())); + return verifyGenomeLoc(new GenomeLoc(contig, index, loc.start, loc.getStop())); } /** Sets contig index. UNSAFE since it 1) does NOT update contig name; 2) does not validate the index