class_docstr: Container class for genotype likelihoods of allele configurations.
  
  When evaluating valid genotype configurations across multiple variants, we
  calculate the likelihood of each configuration. To then calculate the marginal
  likelihoods for each variant's genotypes, for each genotype we need to sum the
  probabilities of all configurations that include that genotype.
  
  For numerical stability we do this by storing the genotype likelihoods
  = log10(p) and then aggregate using the log-sum-exp trick.
docstr: Constructor.
  
  Args:
    num_alts: int. The number of alternate alleles in the variant.
docstr_tok: ["Constructor",".","Args",":","num_alts",":","int",".","The","number","of","alternate","alleles","in","the","variant","."]
code: def __init__(self, num_alts):
      """Constructor.
  
      Args:
        num_alts: int. The number of alternate alleles in the variant.
      """
      self._num_likelihoods = (
          variant_utils.genotype_likelihood_index((num_alts, num_alts))
          + 1
      )
  
      # At each GL index, we keep a list that will include the joint GL across all
      # variants that include that particular set of allele indices for this
      # variant.
      self._genotype_likelihood_containers = []
      for _ in range(self._num_likelihoods):
          self._genotype_likelihood_containers.append([])
  
imports: import copy
  import itertools
  from absl import flags
  from absl import logging
  import numpy
  from third_party.nucleus.util import genomics_math
  from third_party.nucleus.util import variant_utils
label_desc: Use image node_id 1 to create a new _LikelihoodAggregator object from inherited base classes: object with example: obj = _LikelihoodAggregator(num_alts)