Class GenotypeBuilder


  • public final class GenotypeBuilder
    extends Object
    A builder class for genotypes Provides convenience setter methods for all of the Genotype field values. Setter methods can be used in any order, allowing you to pass through states that wouldn't be allowed in the highly regulated immutable Genotype class. All fields default to meaningful MISSING values. Call make() to actually create the corresponding Genotype object from this builder. Can be called multiple times to create independent copies, or with intervening sets to conveniently make similar Genotypes with slight modifications. Re-using the same GenotypeBuilder to build multiple Genotype objects via calls to make() is dangerous, since reference types in the builder (eg., Collections/arrays) don't get copied when making each Genotype. To safely re-use the same builder object multiple times, use makeWithShallowCopy() instead of make().
    Since:
    06/12
    • Constructor Detail

      • GenotypeBuilder

        public GenotypeBuilder()
        Create a empty builder. Both a sampleName and alleles must be provided before trying to make a Genotype from this builder.
      • GenotypeBuilder

        public GenotypeBuilder​(String sampleName)
        Create a builder using sampleName. Alleles must be provided before trying to make a Genotype from this builder.
        Parameters:
        sampleName -
      • GenotypeBuilder

        public GenotypeBuilder​(String sampleName,
                               List<Allele> alleles)
        Make a builder using sampleName and alleles for starting values
        Parameters:
        sampleName -
        alleles -
      • GenotypeBuilder

        public GenotypeBuilder​(Genotype g)
        Create a new builder starting with the values in Genotype g
        Parameters:
        g -
    • Method Detail

      • createMissing

        public static Genotype createMissing​(String sampleName,
                                             int ploidy)
        Create a new Genotype object for a sample that's missing from the VC (i.e., in the output header). Defaults to a diploid no call genotype ./.
        Parameters:
        sampleName - the name of this sample
        Returns:
        an initialized Genotype with sampleName that's a diploid ./. no call genotype
      • copy

        public GenotypeBuilder copy​(Genotype g)
        Copy all of the values for this builder from Genotype g
        Parameters:
        g -
        Returns:
      • reset

        public final void reset​(boolean keepSampleName)
        Reset all of the builder attributes to their defaults. After this function you must provide sampleName and alleles before trying to make more Genotypes.
      • make

        public Genotype make()
        Create a new Genotype object using the values set in this builder. After creation the values in this builder can be modified and more Genotypes created, althrough the contents of array values like PL should never be modified inline as they are not copied for efficiency reasons. Note: if attributes are added via this builder after a call to make(), the new Genotype will be modified. Use makeWithShallowCopy() to safely re-use the same builder object multiple times.
        Returns:
        a newly minted Genotype object with values provided from this builder
      • makeWithShallowCopy

        public Genotype makeWithShallowCopy()
        Create a new Genotype object using the values set in this builder, and perform a shallow copy of reference types to allow safer re-use of this builder After creation the values in this builder can be modified and more Genotypes created.
        Returns:
        a newly minted Genotype object with values provided from this builder
      • name

        public GenotypeBuilder name​(String sampleName)
        Set this genotype's name
        Parameters:
        sampleName -
        Returns:
      • alleles

        public GenotypeBuilder alleles​(List<Allele> alleles)
        Set this genotype's alleles
        Parameters:
        alleles -
        Returns:
      • phased

        public GenotypeBuilder phased​(boolean phased)
        Is this genotype phased?
        Parameters:
        phased -
        Returns:
      • log10PError

        public GenotypeBuilder log10PError​(double pLog10Error)
        Set the GQ with a log10PError value
        Parameters:
        pLog10Error -
        Returns:
      • noGQ

        public GenotypeBuilder noGQ()
        This genotype has no GQ value
        Returns:
      • noAD

        public GenotypeBuilder noAD()
        This genotype has no AD value
        Returns:
      • noDP

        public GenotypeBuilder noDP()
        This genotype has no DP value
        Returns:
      • noPL

        public GenotypeBuilder noPL()
        This genotype has no PL value
        Returns:
      • DP

        public GenotypeBuilder DP​(int DP)
        This genotype has this DP value
        Returns:
      • AD

        public GenotypeBuilder AD​(int[] AD)
        This genotype has this AD value
        Returns:
      • PL

        public GenotypeBuilder PL​(int[] PL)
        This genotype has this PL value, as int[]. FAST
        Returns:
      • PL

        public GenotypeBuilder PL​(double[] GLs)
        This genotype has this PL value, converted from double[]. SLOW
        Returns:
      • attributes

        public GenotypeBuilder attributes​(Map<String,​Object> attributes)
        This genotype has these attributes. Attributes are added to previous ones. Cannot contain inline attributes (DP, AD, GQ, PL). Note: this is not checked
        Returns:
      • noAttributes

        public GenotypeBuilder noAttributes()
        Tells this builder to remove all extended attributes
        Returns:
      • attribute

        public GenotypeBuilder attribute​(String key,
                                         Object value)
        This genotype has this attribute key / value pair. Cannot contain inline attributes (DP, AD, GQ, PL). Note: this is not checked
        Returns:
      • filters

        public GenotypeBuilder filters​(List<String> filters)
        Tells this builder to make a Genotype object that has had filters applied, which may be empty (passes) or have some value indicating the reasons why it's been filtered.
        Parameters:
        filters - non-null list of filters. empty list => PASS
        Returns:
        this builder
      • filters

        public GenotypeBuilder filters​(String... filters)
        varargs version of #filters
        Parameters:
        filters -
        Returns:
      • filter

        public GenotypeBuilder filter​(String filter)
        Most efficient version of setting filters -- just set the filters string to filters
        Parameters:
        filter - if filters == null or filters.equals("PASS") => genotype is PASS
        Returns:
      • unfiltered

        public GenotypeBuilder unfiltered()
        This genotype is unfiltered
        Returns:
      • maxAttributes

        public GenotypeBuilder maxAttributes​(int i)
        Tell's this builder that we have at most these number of attributes
        Returns: