/// <summary> /// Try to get the nGenotypeFields as efficiently as possible. /// /// If this is a lazy BCF2 object just grab the field count from there, /// otherwise do the whole counting by types test in the actual data /// </summary> /// <param name="vc"> /// @return </param> //JAVA TO C# CONVERTER WARNING: 'final' parameters are not allowed in .NET: //ORIGINAL LINE: private final int getNGenotypeFormatFields(final VariantContext vc) private int getNGenotypeFormatFields(VariantContext vc) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.broadinstitute.variant.bcf2.BCF2Codec.LazyData lazyData = getLazyData(vc); BCF2Codec.LazyData lazyData = getLazyData(vc); return(lazyData != null ? lazyData.nGenotypeFields : VCFWriter.calcVCFGenotypeKeys(vc, header).Count); }
/// <summary> /// Can we safely write on the raw (undecoded) genotypes of an input VC? /// /// The cache depends on the undecoded lazy data header == lastVCFHeaderOfUnparsedGenotypes, in /// which case we return the previous result. If it's not cached, we use the BCF2Util to /// compare the VC header with our header (expensive) and cache it. /// </summary> /// <param name="lazyData"> /// @return </param> //JAVA TO C# CONVERTER WARNING: 'final' parameters are not allowed in .NET: //ORIGINAL LINE: private boolean canSafelyWriteRawGenotypesBytes(final org.broadinstitute.variant.bcf2.BCF2Codec.LazyData lazyData) private bool canSafelyWriteRawGenotypesBytes(BCF2Codec.LazyData lazyData) { if (lazyData.header != lastVCFHeaderOfUnparsedGenotypes) { // result is already cached canPassOnUnparsedGenotypeDataForLastVCFHeader = BCF2Utils.headerLinesAreOrderedConsistently(this.header, lazyData.header); lastVCFHeaderOfUnparsedGenotypes = lazyData.header; } return(canPassOnUnparsedGenotypeDataForLastVCFHeader); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: private byte[] buildSamplesData(final VariantContext vc) throws IOException //JAVA TO C# CONVERTER WARNING: 'final' parameters are not allowed in .NET: private sbyte[] buildSamplesData(VariantContext vc) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.broadinstitute.variant.bcf2.BCF2Codec.LazyData lazyData = getLazyData(vc); BCF2Codec.LazyData lazyData = getLazyData(vc); // has critical side effects if (lazyData != null) { // we never decoded any data from this BCF file, so just pass it back return(lazyData.bytes); } // we have to do work to convert the VC into a BCF2 byte stream //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final List<String> genotypeFields = VCFWriter.calcVCFGenotypeKeys(vc, header); IList <string> genotypeFields = VCFWriter.calcVCFGenotypeKeys(vc, header); foreach (String field in genotypeFields) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final BCF2FieldWriter.GenotypesWriter writer = fieldManager.getGenotypeFieldWriter(field); BCF2FieldWriter.GenotypesWriter writer = fieldManager.getGenotypeFieldWriter(field); if (writer == null) { errorUnexpectedFieldToWrite(vc, field, "FORMAT"); } Debug.Assert(writer != null); writer.start(encoder, vc); foreach (String name in sampleNames) { Genotype g = vc.getGenotype(name); if (g == null) { g = GenotypeBuilder.createMissing(name, writer.nValuesPerGenotype); } writer.addGenotype(encoder, vc, g); } writer.done(encoder, vc); } return(encoder.RecordBytes); }