All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.broadinstitute.hellbender.tools.genomicsdb.GenomicsDBArgumentCollection Maven / Gradle / Ivy

The newest version!
package org.broadinstitute.hellbender.tools.genomicsdb;

import htsjdk.variant.variantcontext.GenotypeLikelihoods;
import org.broadinstitute.barclay.argparser.Advanced;
import org.broadinstitute.barclay.argparser.Argument;

import java.io.Serializable;

public class GenomicsDBArgumentCollection implements Serializable {
  private static final long serialVersionUID = 1L;
  public static final String USE_BCF_CODEC_LONG_NAME = "genomicsdb-use-bcf-codec";
  public static final String SHARED_POSIXFS_OPTIMIZATIONS = "genomicsdb-shared-posixfs-optimizations";
  public static final String USE_GCS_HDFS_CONNECTOR = "genomicsdb-use-gcs-hdfs-connector";

  public static final String CALL_GENOTYPES_LONG_NAME = "call-genotypes";
  public static final String MAX_ALTS_LONG_NAME = "genomicsdb-max-alternate-alleles";
  private static final boolean DEFAULT_CALL_GENOTYPES = false;
  private static final boolean DEFAULT_USE_BCF_CODEC = false;
  private static final boolean DEFAULT_SHARED_POSIXFS_OPTIMIZATIONS = false;
  private static final boolean DEFAULT_USE_GCS_HDFS_CONNECTOR = false;

  /**
   * Maximum number of alternate alleles that will report likelihoods after being combined on reading from GenomicsDB (including )
   * Must be at least one greater than the maximum number of alternate alleles for genotyping.
   * A typical value is 3 more than the --max-alternate-alleles value that's used by GenotypeGVCFs and larger differences
   * result in more robustness to PCR-related indel errors.
   * NOTE: GenotypeGVCFs will drop multi-allelic sites with more than this many alternate alleles since they are missing likelihoods.
   *
   * See also {@link org.broadinstitute.hellbender.tools.walkers.genotyper.GenotypeCalculationArgumentCollection#MAX_ALTERNATE_ALLELES_LONG_NAME}
   */
  @Argument(fullName = MAX_ALTS_LONG_NAME, doc = "Maximum number of alternate alleles that will be combined on reading from GenomicsDB")
  public int maxDiploidAltAllelesThatCanBeGenotyped = GenotypeLikelihoods.MAX_DIPLOID_ALT_ALLELES_THAT_CAN_BE_GENOTYPED;

    /**
     * Output called genotypes in the final VCF (otherwise no-call)
     */
  @Argument(fullName = CALL_GENOTYPES_LONG_NAME, doc = "Output called genotypes in final VCF (otherwise no-call)", optional = true)
  public boolean callGenotypes = DEFAULT_CALL_GENOTYPES;

  /**
   * Currently there is no support for 64-bit fields in BCF2Codec. The VCFCodec allows for 64-bit
   * width positions and INFO fields and for computed annotation sizes to exceed the 32-bit
   * integer space while encoding/decoding with GenomicsDB. Use the BCF2Codec option if and
   * only if performance is an issue.
   */
  @Advanced
  @Argument(
      fullName = USE_BCF_CODEC_LONG_NAME,
      doc =
          "Use BCF Codec Streaming for data from GenomicsDB instead of the default VCFCodec. BCFCodec performs slightly better but currently does not support "
              + "64-bit width positions and INFO fields and for computed annotation sizes to exceed 32-bit integer space.",
      optional = true)
  public boolean useBCFCodec = DEFAULT_USE_BCF_CODEC;

  @Argument(fullName = SHARED_POSIXFS_OPTIMIZATIONS,
          doc = "Allow for optimizations to improve the usability and performance for shared Posix Filesystems(e.g. NFS, Lustre). " +
                  "If set, file level locking is disabled and file system writes are minimized.",
          optional = true)
  public boolean sharedPosixFSOptimizations = DEFAULT_SHARED_POSIXFS_OPTIMIZATIONS;

  @Argument(fullName = USE_GCS_HDFS_CONNECTOR,
          doc = "Use the GCS HDFS Connector instead of the native GCS SDK client with gs:// URLs.",
          optional = true)
  public boolean useGcsHdfsConnector = DEFAULT_USE_GCS_HDFS_CONNECTOR;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy