Remove reference dependence in BCF2Codec

-- Adding BCF2Codec to VCF.jar and associated unit tests

Signed-off-by: Mark DePristo <depristo@broadinstitute.org>
This commit is contained in:
Mark DePristo 2012-07-24 17:22:40 -04:00
parent 19a257a5c1
commit fcefa61bce
3 changed files with 9 additions and 22 deletions

View File

@ -646,7 +646,7 @@
<jar jarfile="${dist.dir}/vcf.jar"> <jar jarfile="${dist.dir}/vcf.jar">
<fileset dir="${java.classes}"> <fileset dir="${java.classes}">
<include name="org/broadinstitute/sting/utils/codecs/vcf/**/*.class"/> <include name="org/broadinstitute/sting/utils/codecs/vcf/**/*.class"/>
<!-- <include name="org/broadinstitute/sting/utils/codecs/bcf2/**/*.class"/> --> <include name="org/broadinstitute/sting/utils/codecs/bcf2/**/*.class"/>
<include name="org/broadinstitute/sting/utils/variantcontext/**/*.class"/> <include name="org/broadinstitute/sting/utils/variantcontext/**/*.class"/>
<include name="org/broadinstitute/sting/utils/exceptions/**"/> <include name="org/broadinstitute/sting/utils/exceptions/**"/>
<include name="org/broadinstitute/sting/utils/help/DocumentedGATKFeature.class"/> <include name="org/broadinstitute/sting/utils/help/DocumentedGATKFeature.class"/>

View File

@ -26,15 +26,12 @@ package org.broadinstitute.sting.utils.codecs.bcf2;
import com.google.java.contract.Ensures; import com.google.java.contract.Ensures;
import com.google.java.contract.Requires; import com.google.java.contract.Requires;
import net.sf.samtools.SAMSequenceRecord;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.broad.tribble.Feature; import org.broad.tribble.Feature;
import org.broad.tribble.FeatureCodec; import org.broad.tribble.FeatureCodec;
import org.broad.tribble.FeatureCodecHeader; import org.broad.tribble.FeatureCodecHeader;
import org.broad.tribble.readers.AsciiLineReader; import org.broad.tribble.readers.AsciiLineReader;
import org.broad.tribble.readers.PositionalBufferedStream; import org.broad.tribble.readers.PositionalBufferedStream;
import org.broadinstitute.sting.gatk.refdata.ReferenceDependentFeatureCodec;
import org.broadinstitute.sting.utils.GenomeLocParser;
import org.broadinstitute.sting.utils.codecs.vcf.*; import org.broadinstitute.sting.utils.codecs.vcf.*;
import org.broadinstitute.sting.utils.exceptions.ReviewedStingException; import org.broadinstitute.sting.utils.exceptions.ReviewedStingException;
import org.broadinstitute.sting.utils.exceptions.UserException; import org.broadinstitute.sting.utils.exceptions.UserException;
@ -44,12 +41,15 @@ import java.io.ByteArrayInputStream;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* Decode BCF2 files * Decode BCF2 files
*/ */
public final class BCF2Codec implements FeatureCodec<VariantContext>, ReferenceDependentFeatureCodec { public final class BCF2Codec implements FeatureCodec<VariantContext> {
final protected static Logger logger = Logger.getLogger(BCF2Codec.class); final protected static Logger logger = Logger.getLogger(BCF2Codec.class);
private final static boolean FORBID_SYMBOLICS = false; private final static boolean FORBID_SYMBOLICS = false;
@ -162,7 +162,7 @@ public final class BCF2Codec implements FeatureCodec<VariantContext>, ReferenceD
contigNames.add(contig.getID()); contigNames.add(contig.getID());
} }
} else { } else {
logger.info("Didn't find any contig lines in BCF2 file, falling back (dangerously) to GATK reference dictionary"); throw new UserException.MalformedBCF2("Didn't find any contig lines in BCF2 file header");
} }
// create the string dictionary // create the string dictionary
@ -201,19 +201,6 @@ public final class BCF2Codec implements FeatureCodec<VariantContext>, ReferenceD
} }
} }
// --------------------------------------------------------------------------------
//
// Reference dependence
//
// --------------------------------------------------------------------------------
@Override
public void setGenomeLocParser(final GenomeLocParser genomeLocParser) {
// initialize contigNames to standard ones in reference
for ( final SAMSequenceRecord contig : genomeLocParser.getContigs().getSequences() )
contigNames.add(contig.getSequenceName());
}
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
// //
// implicit block // implicit block

View File

@ -50,12 +50,12 @@ public class VCFJarClassLoadingUnitTest {
ClassLoader classLoader = new URLClassLoader(jarURLs, null); ClassLoader classLoader = new URLClassLoader(jarURLs, null);
classLoader.loadClass("org.broadinstitute.sting.utils.variantcontext.VariantContext"); classLoader.loadClass("org.broadinstitute.sting.utils.variantcontext.VariantContext");
// TODO -- uncomment when we include BCF2 codec classLoader.loadClass("org.broadinstitute.sting.utils.codecs.bcf2.BCF2Codec");
// classLoader.loadClass("org.broadinstitute.sting.utils.codecs.bcf2.BCF2Codec");
classLoader.loadClass("org.broadinstitute.sting.utils.codecs.vcf.VCFCodec"); classLoader.loadClass("org.broadinstitute.sting.utils.codecs.vcf.VCFCodec");
classLoader.loadClass("org.broadinstitute.sting.utils.codecs.vcf.VCF3Codec"); classLoader.loadClass("org.broadinstitute.sting.utils.codecs.vcf.VCF3Codec");
classLoader.loadClass("org.broadinstitute.sting.utils.variantcontext.writer.VariantContextWriter"); classLoader.loadClass("org.broadinstitute.sting.utils.variantcontext.writer.VariantContextWriter");
classLoader.loadClass("org.broadinstitute.sting.utils.variantcontext.writer.VCFWriter"); classLoader.loadClass("org.broadinstitute.sting.utils.variantcontext.writer.VCFWriter");
classLoader.loadClass("org.broadinstitute.sting.utils.variantcontext.writer.BCF2Writer");
} }
/** /**