From 84ca2f27bb4bac7d11bfdda40181f5f526978b89 Mon Sep 17 00:00:00 2001 From: ebanks Date: Thu, 5 Aug 2010 03:19:02 +0000 Subject: [PATCH] Bug fix for Chris: added method createPotentiallyInvalidGenomeLoc() to the GenomeLocParser that doesn't check that the contig exists in the sequence dictionary. This is crucial for lifting over from one reference to another, as sometimes contigs names change in the liftover (e.g. chrM to MT). git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3948 348d0f76-0448-11de-a6fe-93d51630548a --- .../walkers/variantutils/LiftoverVariants.java | 3 +-- .../sting/utils/GenomeLocParser.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java index 4010d70bf..ce900927e 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java @@ -26,7 +26,6 @@ package org.broadinstitute.sting.gatk.walkers.variantutils; import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.utils.genotype.vcf.VCFWriter; -import org.broadinstitute.sting.utils.genotype.vcf.VCFUtils; import org.broadinstitute.sting.utils.GenomeLocParser; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; @@ -85,7 +84,7 @@ public class LiftoverVariants extends RodWalker { final Interval toInterval = liftOver.liftOver(fromInterval); if ( toInterval != null ) { - vc = VariantContextUtils.modifyLocation(vc, GenomeLocParser.createGenomeLoc(toInterval.getSequence(), toInterval.getStart(), toInterval.getEnd())); + vc = VariantContextUtils.modifyLocation(vc, GenomeLocParser.createPotentiallyInvalidGenomeLoc(toInterval.getSequence(), toInterval.getStart(), toInterval.getEnd())); writer.add(vc, ref.getBase()); successfulIntervals++; } else { diff --git a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java index 4db6f3611..a947256d6 100644 --- a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java +++ b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java @@ -407,6 +407,20 @@ public class GenomeLocParser { return exceptionOnInvalidGenomeLoc(new GenomeLoc(contig, GenomeLocParser.getContigIndex(contig,true), start, stop)); } + /** + * create a genome loc, given the contig name, start, and stop + * + * @param contig the contig name + * @param start the starting position + * @param stop the stop position + * + * @return a new genome loc - but don't exception out if it is invalid + */ + public static GenomeLoc createPotentiallyInvalidGenomeLoc(String contig, final long start, final long stop) { + checkSetup(); + return new GenomeLoc(contig, GenomeLocParser.getContigIndex(contig,false), start, stop); + } + /** * create a genome loc, given the contig index, start, and stop *