From 366c3a0b8fe856bae7bc22466d3b279fec43508f Mon Sep 17 00:00:00 2001 From: ebanks Date: Sun, 16 Jan 2011 05:26:47 +0000 Subject: [PATCH] Incompatible chain files are user exceptions git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5008 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/variantutils/LiftoverVariants.java | 10 ++++++++-- 1 file changed, 8 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 1b299f3c2..be80ba4e5 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/LiftoverVariants.java @@ -28,6 +28,7 @@ import org.broad.tribble.util.variantcontext.VariantContext; import org.broad.tribble.vcf.*; import org.broadinstitute.sting.commandline.Argument; import org.broadinstitute.sting.commandline.Output; +import org.broadinstitute.sting.utils.exceptions.UserException; import org.broadinstitute.sting.utils.vcf.VCFUtils; import org.broadinstitute.sting.utils.SampleUtils; import org.broadinstitute.sting.gatk.refdata.RefMetaDataTracker; @@ -39,6 +40,7 @@ import org.broadinstitute.sting.gatk.contexts.variantcontext.VariantContextUtils import java.io.File; import java.util.*; +import net.sf.picard.PicardException; import net.sf.picard.liftover.LiftOver; import net.sf.picard.util.Interval; import net.sf.samtools.SAMFileHeader; @@ -71,8 +73,12 @@ public class LiftoverVariants extends RodWalker { liftOver = new LiftOver(CHAIN); liftOver.setLiftOverMinMatch(LiftOver.DEFAULT_LIFTOVER_MINMATCH); - final SAMFileHeader toHeader = new SAMFileReader(NEW_SEQ_DICT).getFileHeader(); - liftOver.validateToSequences(toHeader.getSequenceDictionary()); + try { + final SAMFileHeader toHeader = new SAMFileReader(NEW_SEQ_DICT).getFileHeader(); + liftOver.validateToSequences(toHeader.getSequenceDictionary()); + } catch (PicardException e) { + throw new UserException.BadInput("the chain file you are using is not compatible with the reference you are trying to lift over to; please use the appropriate chain file for the given reference"); + } Set samples = SampleUtils.getSampleListWithVCFHeader(getToolkit(), Arrays.asList("variant")); Map vcfHeaders = VCFUtils.getVCFHeadersFromRods(getToolkit(), Arrays.asList("variant"));