public IGFGenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder, final IntGenotypeFieldAccessors.Accessor ige) { super(header, fieldEncoder); this.ige = ige; if ( ! (fieldEncoder instanceof BCF2FieldEncoder.IntArray) ) throw new IllegalArgumentException("BUG: IntGenotypesWriter requires IntArray encoder for field " + getField()); }
private BCF2FieldWriter.GenotypesWriter createGenotypesWriter(final VCFHeader header, final VCFFormatHeaderLine line, final BCF2Encoder encoder, final Map<String, Integer> dict) { final String field = line.getID(); final BCF2FieldEncoder fieldEncoder = createFieldEncoder(line, encoder, dict, true); if ( field.equals(VCFConstants.GENOTYPE_KEY) ) { return new BCF2FieldWriter.GTWriter(header, fieldEncoder); } else if ( line.getID().equals(VCFConstants.GENOTYPE_FILTER_KEY) ) { return new BCF2FieldWriter.FTGenotypesWriter(header, fieldEncoder); } else if ( intGenotypeFieldAccessors.getAccessor(field) != null ) { return new BCF2FieldWriter.IGFGenotypesWriter(header, fieldEncoder, intGenotypeFieldAccessors.getAccessor(field)); } else if ( line.getType() == VCFHeaderLineType.Integer ) { return new BCF2FieldWriter.IntegerTypeGenotypesWriter(header, fieldEncoder); } else { return new BCF2FieldWriter.StaticallyTypeGenotypesWriter(header, fieldEncoder); } }
private BCF2FieldWriter.GenotypesWriter createGenotypesWriter(final VCFHeader header, final VCFFormatHeaderLine line, final BCF2Encoder encoder, final Map<String, Integer> dict) { final String field = line.getID(); final BCF2FieldEncoder fieldEncoder = createFieldEncoder(line, encoder, dict, true); if ( field.equals(VCFConstants.GENOTYPE_KEY) ) { return new BCF2FieldWriter.GTWriter(header, fieldEncoder); } else if ( line.getID().equals(VCFConstants.GENOTYPE_FILTER_KEY) ) { return new BCF2FieldWriter.FTGenotypesWriter(header, fieldEncoder); } else if ( intGenotypeFieldAccessors.getAccessor(field) != null ) { return new BCF2FieldWriter.IGFGenotypesWriter(header, fieldEncoder, intGenotypeFieldAccessors.getAccessor(field)); } else if ( line.getType() == VCFHeaderLineType.Integer ) { return new BCF2FieldWriter.IntegerTypeGenotypesWriter(header, fieldEncoder); } else { return new BCF2FieldWriter.StaticallyTypeGenotypesWriter(header, fieldEncoder); } }
private BCF2FieldWriter.GenotypesWriter createGenotypesWriter(final VCFHeader header, final VCFFormatHeaderLine line, final BCF2Encoder encoder, final Map<String, Integer> dict) { final String field = line.getID(); final BCF2FieldEncoder fieldEncoder = createFieldEncoder(line, encoder, dict, true); if ( field.equals(VCFConstants.GENOTYPE_KEY) ) { return new BCF2FieldWriter.GTWriter(header, fieldEncoder); } else if ( line.getID().equals(VCFConstants.GENOTYPE_FILTER_KEY) ) { return new BCF2FieldWriter.FTGenotypesWriter(header, fieldEncoder); } else if ( intGenotypeFieldAccessors.getAccessor(field) != null ) { return new BCF2FieldWriter.IGFGenotypesWriter(header, fieldEncoder, intGenotypeFieldAccessors.getAccessor(field)); } else if ( line.getType() == VCFHeaderLineType.Integer ) { return new BCF2FieldWriter.IntegerTypeGenotypesWriter(header, fieldEncoder); } else { return new BCF2FieldWriter.StaticallyTypeGenotypesWriter(header, fieldEncoder); } }
@Override public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException { // TODO // TODO this piece of code consumes like 10% of the runtime alone because fo the vc.getGenotypes() iteration // TODO encodingType = BCF2Type.INT8; for ( final Genotype g : vc.getGenotypes() ) { final int[] pls = ige.getValues(g); final BCF2Type plsType = getFieldEncoder().getType(pls); encodingType = BCF2Utils.maxIntegerType(encodingType, plsType); if ( encodingType == BCF2Type.INT32 ) break; // stop early } super.start(encoder, vc); }
@Override public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException { // TODO // TODO this piece of code consumes like 10% of the runtime alone because fo the vc.getGenotypes() iteration // TODO encodingType = BCF2Type.INT8; for ( final Genotype g : vc.getGenotypes() ) { final int[] pls = ige.getValues(g); final BCF2Type plsType = getFieldEncoder().getType(pls); encodingType = BCF2Utils.maxIntegerType(encodingType, plsType); if ( encodingType == BCF2Type.INT32 ) break; // stop early } super.start(encoder, vc); }
@Override public void start(final BCF2Encoder encoder, final VariantContext vc) throws IOException { // TODO // TODO this piece of code consumes like 10% of the runtime alone because fo the vc.getGenotypes() iteration // TODO encodingType = BCF2Type.INT8; for ( final Genotype g : vc.getGenotypes() ) { final int[] pls = ige.getValues(g); final BCF2Type plsType = getFieldEncoder().getType(pls); encodingType = BCF2Utils.maxIntegerType(encodingType, plsType); if ( encodingType == BCF2Type.INT32 ) break; // stop early } super.start(encoder, vc); }
@Override public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException { getFieldEncoder().encodeValue(encoder, ige.getValues(g), encodingType, nValuesPerGenotype); }
@Override public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException { getFieldEncoder().encodeValue(encoder, ige.getValues(g), encodingType, nValuesPerGenotype); }
@Override public void addGenotype(final BCF2Encoder encoder, final VariantContext vc, final Genotype g) throws IOException { getFieldEncoder().encodeValue(encoder, ige.getValues(g), encodingType, nValuesPerGenotype); }
public IGFGenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder, final IntGenotypeFieldAccessors.Accessor ige) { super(header, fieldEncoder); this.ige = ige; if ( ! (fieldEncoder instanceof BCF2FieldEncoder.IntArray) ) throw new IllegalArgumentException("BUG: IntGenotypesWriter requires IntArray encoder for field " + getField()); }
public IGFGenotypesWriter(final VCFHeader header, final BCF2FieldEncoder fieldEncoder, final IntGenotypeFieldAccessors.Accessor ige) { super(header, fieldEncoder); this.ige = ige; if ( ! (fieldEncoder instanceof BCF2FieldEncoder.IntArray) ) throw new IllegalArgumentException("BUG: IntGenotypesWriter requires IntArray encoder for field " + getField()); }