"""
DO NOT EDIT THIS FILE!!
This file is automatically generated by the process_schemas.py program
in the scripts directory. It is not intended to be edited directly. If
you need to update the GEL protocol classes, please run the script
on the appropriate schema version.
"""
from protocols.protocol import ProtocolElement
from protocols.protocol import SearchRequest
from protocols.protocol import SearchResponse
from protocols.protocol import avro_parse

import avro.schema

version = '1.0.0'


class ArrayConcordance(ProtocolElement):
    """
    Array concordance with WGS data  * `numberOfSites`: Number of
    sites considered * `numberOfDiscordantSites`: Number of sites
    discordant between WGS and Genotyping Array
    """
    _schemaSource = """
{"type": "record", "name": "ArrayConcordance", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "numberOfSites", "type": "double"}, {"name": "numberOfDiscordantSites", "type":
"double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "numberOfDiscordantSites",
        "numberOfSites",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'numberOfDiscordantSites', 'numberOfSites'
    ]

    def __init__(self, **kwargs):
        self.numberOfDiscordantSites = kwargs.get(
            'numberOfDiscordantSites', None)
        self.numberOfSites = kwargs.get(
            'numberOfSites', None)


class ArrayGenotypingRate(ProtocolElement):
    """
    Array genotyping rate for the sample * `IID` - Individual sample
    ID * `number_missing_genotypes`: The number of missing genotypes *
    `number_total_genotypes`: The number of total genotypes
    """
    _schemaSource = """
{"type": "record", "name": "ArrayGenotypingRate", "namespace": "org.gel.models.report.avro", "doc":
"", "fields": [{"name": "IID", "type": "string"}, {"name": "number_missing_genotypes", "type":
"double"}, {"name": "number_total_genotypes", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "IID",
        "number_missing_genotypes",
        "number_total_genotypes",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'IID', 'number_missing_genotypes', 'number_total_genotypes'
    ]

    def __init__(self, **kwargs):
        self.IID = kwargs.get(
            'IID', None)
        self.number_missing_genotypes = kwargs.get(
            'number_missing_genotypes', None)
        self.number_total_genotypes = kwargs.get(
            'number_total_genotypes', None)


class BamHeaderMachine(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "BamHeaderMachine", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "machines", "type": {"type": "array", "items": {"type": "record", "name": "Machine",
"fields": [{"name": "DATE", "type": "double"}, {"name": "MACHINE", "type": "string"}, {"name":
"FLOWCELL", "type": "string"}, {"name": "RUN", "type": "string"}]}}}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "machines",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'machines': Machine,
        }
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'machines': Machine,
        }

        return embeddedTypes[fieldName]

    __slots__ = [
        'machines'
    ]

    def __init__(self, **kwargs):
        self.machines = kwargs.get(
            'machines', None)


class BamHeaderOther(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "BamHeaderOther", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "PIPELINE_ID", "type": "string"}, {"name": "PIPELINE_VERSION", "type": "string"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "PIPELINE_ID",
        "PIPELINE_VERSION",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'PIPELINE_ID', 'PIPELINE_VERSION'
    ]

    def __init__(self, **kwargs):
        self.PIPELINE_ID = kwargs.get(
            'PIPELINE_ID', None)
        self.PIPELINE_VERSION = kwargs.get(
            'PIPELINE_VERSION', None)


class CancerSummaryMetrics(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "CancerSummaryMetrics", "namespace": "org.gel.models.report.avro",
"fields": [{"name": "samtools_reads_mapped", "type": "double"}, {"name":
"samtools_reads_mapped_normal", "type": "double"}, {"name":
"samtools_pairs_on_different_chromosomes", "type": "double"}, {"name":
"samtools_pairs_on_different_chromosomes_normal", "type": "double"}, {"name":
"samtools_insert_size_average", "type": "double"}, {"name": "samtools_insert_size_average_normal",
"type": "double"}, {"name": "variantstats_total_snvs", "type": "int"}, {"name":
"variantstats_total_indels", "type": "int"}, {"name": "variantstats_total_svs", "type": ["null",
"int"]}, {"name": "tumor_contamination_cont_est", "type": "string"}, {"name":
"tumor_contamination_con_pair", "type": "string"}, {"name": "mean", "type": "double"}, {"name":
"mean_normal", "type": "double"}, {"name": "local_rmsd_normal", "type": "double"}, {"name":
"local_rmsd", "type": "double"}, {"name": "cosmic_30x_cov", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "cosmic_30x_cov",
        "local_rmsd",
        "local_rmsd_normal",
        "mean",
        "mean_normal",
        "samtools_insert_size_average",
        "samtools_insert_size_average_normal",
        "samtools_pairs_on_different_chromosomes",
        "samtools_pairs_on_different_chromosomes_normal",
        "samtools_reads_mapped",
        "samtools_reads_mapped_normal",
        "tumor_contamination_con_pair",
        "tumor_contamination_cont_est",
        "variantstats_total_indels",
        "variantstats_total_snvs",
        "variantstats_total_svs",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'cosmic_30x_cov', 'local_rmsd', 'local_rmsd_normal', 'mean',
        'mean_normal', 'samtools_insert_size_average',
        'samtools_insert_size_average_normal',
        'samtools_pairs_on_different_chromosomes',
        'samtools_pairs_on_different_chromosomes_normal',
        'samtools_reads_mapped', 'samtools_reads_mapped_normal',
        'tumor_contamination_con_pair',
        'tumor_contamination_cont_est', 'variantstats_total_indels',
        'variantstats_total_snvs', 'variantstats_total_svs'
    ]

    def __init__(self, **kwargs):
        self.cosmic_30x_cov = kwargs.get(
            'cosmic_30x_cov', None)
        self.local_rmsd = kwargs.get(
            'local_rmsd', None)
        self.local_rmsd_normal = kwargs.get(
            'local_rmsd_normal', None)
        self.mean = kwargs.get(
            'mean', None)
        self.mean_normal = kwargs.get(
            'mean_normal', None)
        self.samtools_insert_size_average = kwargs.get(
            'samtools_insert_size_average', None)
        self.samtools_insert_size_average_normal = kwargs.get(
            'samtools_insert_size_average_normal', None)
        self.samtools_pairs_on_different_chromosomes = kwargs.get(
            'samtools_pairs_on_different_chromosomes', None)
        self.samtools_pairs_on_different_chromosomes_normal = kwargs.get(
            'samtools_pairs_on_different_chromosomes_normal', None)
        self.samtools_reads_mapped = kwargs.get(
            'samtools_reads_mapped', None)
        self.samtools_reads_mapped_normal = kwargs.get(
            'samtools_reads_mapped_normal', None)
        self.tumor_contamination_con_pair = kwargs.get(
            'tumor_contamination_con_pair', None)
        self.tumor_contamination_cont_est = kwargs.get(
            'tumor_contamination_cont_est', None)
        self.variantstats_total_indels = kwargs.get(
            'variantstats_total_indels', None)
        self.variantstats_total_snvs = kwargs.get(
            'variantstats_total_snvs', None)
        self.variantstats_total_svs = kwargs.get(
            'variantstats_total_svs', None)


class CoverageSummary(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "CoverageSummary", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "avg", "type": "double", "doc": ""}, {"name": "med", "type": "double", "doc": ""},
{"name": "bases", "type": "double", "doc": ""}, {"name": "pct25", "type": ["null", "double"], "doc":
""}, {"name": "pct75", "type": ["null", "double"], "doc": ""}, {"name": "lt15x", "type": ["null",
"double"], "doc": ""}, {"name": "gte15x", "type": ["null", "double"], "doc": ""}, {"name": "gte30x",
"type": ["null", "double"], "doc": ""}, {"name": "gte50x", "type": ["null", "double"], "doc": ""},
{"name": "sd", "type": ["null", "double"], "doc": ""}, {"name": "localRMSD", "type": ["null",
"double"], "doc": ""}, {"name": "scope", "type": "string", "doc": ""}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "avg",
        "bases",
        "gte15x",
        "gte30x",
        "gte50x",
        "localRMSD",
        "lt15x",
        "med",
        "pct25",
        "pct75",
        "scope",
        "sd",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'avg', 'bases', 'gte15x', 'gte30x', 'gte50x', 'localRMSD',
        'lt15x', 'med', 'pct25', 'pct75', 'scope', 'sd'
    ]

    def __init__(self, **kwargs):
        self.avg = kwargs.get(
            'avg', None)
        self.bases = kwargs.get(
            'bases', None)
        self.gte15x = kwargs.get(
            'gte15x', None)
        self.gte30x = kwargs.get(
            'gte30x', None)
        self.gte50x = kwargs.get(
            'gte50x', None)
        self.localRMSD = kwargs.get(
            'localRMSD', None)
        self.lt15x = kwargs.get(
            'lt15x', None)
        self.med = kwargs.get(
            'med', None)
        self.pct25 = kwargs.get(
            'pct25', None)
        self.pct75 = kwargs.get(
            'pct75', None)
        self.scope = kwargs.get(
            'scope', None)
        self.sd = kwargs.get(
            'sd', None)


class ExomeCoverage(ProtocolElement):
    """
    Renamed from ExonCoverage
    """
    _schemaSource = """
{"type": "record", "name": "ExomeCoverage", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "coverageSummary", "type": {"type": "array", "items": {"type": "record", "name":
"CoverageSummary", "fields": [{"name": "avg", "type": "double", "doc": ""}, {"name": "med", "type":
"double", "doc": ""}, {"name": "bases", "type": "double", "doc": ""}, {"name": "pct25", "type":
["null", "double"], "doc": ""}, {"name": "pct75", "type": ["null", "double"], "doc": ""}, {"name":
"lt15x", "type": ["null", "double"], "doc": ""}, {"name": "gte15x", "type": ["null", "double"],
"doc": ""}, {"name": "gte30x", "type": ["null", "double"], "doc": ""}, {"name": "gte50x", "type":
["null", "double"], "doc": ""}, {"name": "sd", "type": ["null", "double"], "doc": ""}, {"name":
"localRMSD", "type": ["null", "double"], "doc": ""}, {"name": "scope", "type": "string", "doc":
""}]}}}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "coverageSummary",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'coverageSummary': CoverageSummary,
        }
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'coverageSummary': CoverageSummary,
        }

        return embeddedTypes[fieldName]

    __slots__ = [
        'coverageSummary'
    ]

    def __init__(self, **kwargs):
        self.coverageSummary = kwargs.get(
            'coverageSummary', None)


class File(ProtocolElement):
    """
    This defines a file This Record is defined by the sampleID and a
    URI Currently SampleID can be a single String or an array of
    strings if multiple samples are associated with the same file *
    """
    _schemaSource = """
{"type": "record", "name": "File", "namespace": "org.gel.models.metrics.avro", "doc": "", "fields":
[{"name": "SampleId", "type": ["null", "string", {"type": "array", "items": "string"}], "doc": ""},
{"name": "URIFile", "type": "string", "doc": ""}, {"name": "fileType", "type": {"type": "enum",
"name": "FileType", "symbols": ["BAM", "gVCF", "VCF_small", "VCF_somatic_small", "VCF_CNV",
"VCF_somatic_CNV", "VCF_SV", "VCF_somatic_SV", "VCF_SV_CNV", "SVG", "ANN", "BigWig", "MD5Sum",
"ROH", "OTHER"]}}, {"name": "md5Sum", "type": ["null", "string"]}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "SampleId",
        "URIFile",
        "fileType",
        "md5Sum",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'SampleId', 'URIFile', 'fileType', 'md5Sum'
    ]

    def __init__(self, **kwargs):
        self.SampleId = kwargs.get(
            'SampleId', None)
        self.URIFile = kwargs.get(
            'URIFile', None)
        self.fileType = kwargs.get(
            'fileType', None)
        self.md5Sum = kwargs.get(
            'md5Sum', None)


class FileType(object):
    """
    No documentation
    """
    BAM = "BAM"
    gVCF = "gVCF"
    VCF_small = "VCF_small"
    VCF_somatic_small = "VCF_somatic_small"
    VCF_CNV = "VCF_CNV"
    VCF_somatic_CNV = "VCF_somatic_CNV"
    VCF_SV = "VCF_SV"
    VCF_somatic_SV = "VCF_somatic_SV"
    VCF_SV_CNV = "VCF_SV_CNV"
    SVG = "SVG"
    ANN = "ANN"
    BigWig = "BigWig"
    MD5Sum = "MD5Sum"
    ROH = "ROH"
    OTHER = "OTHER"

    def __hash__(self):
        return str(self).__hash__()


class GelAtGcDrop(ProtocolElement):
    """
    GEL AT/GC dropout calculation
    """
    _schemaSource = """
{"type": "record", "name": "GelAtGcDrop", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "at_drop", "type": "double"}, {"name": "gc_drop", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "at_drop",
        "gc_drop",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'at_drop', 'gc_drop'
    ]

    def __init__(self, **kwargs):
        self.at_drop = kwargs.get(
            'at_drop', None)
        self.gc_drop = kwargs.get(
            'gc_drop', None)


class GelMetrics(ProtocolElement):
    """
    These are contractual metrics calculated by GEL  * `BaseDir` -
    Base directory of the data * `GbQ30NoDupsNoClip`: The number of
    missing genotypes * `perc_bases_ge_15x_mapQ_ge11`: Percentage of
    bases that have >=15x coverage and mapping quality >=11 *
    `InputDir`: Input dir of the data * `DirectoryType`: Illumina
    directory type version * `nBases_samtools`: number of bases from
    samtools * `FileRelativePath`: relative path of bam file *
    `md5checksum`: md5 of the delivery
    """
    _schemaSource = """
{"type": "record", "name": "GelMetrics", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "BaseDir", "type": "string"}, {"name": "GbQ30NoDupsNoClip", "type": "double"},
{"name": "perc_bases_ge_15x_mapQ_ge11", "type": "float"}, {"name": "InputDir", "type": "string"},
{"name": "DirectoryType", "type": "string"}, {"name": "nBases_samtools", "type": "double"}, {"name":
"FileRelativePath", "type": "string"}, {"name": "md5checksum", "type": "string"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "BaseDir",
        "DirectoryType",
        "FileRelativePath",
        "GbQ30NoDupsNoClip",
        "InputDir",
        "md5checksum",
        "nBases_samtools",
        "perc_bases_ge_15x_mapQ_ge11",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'BaseDir', 'DirectoryType', 'FileRelativePath',
        'GbQ30NoDupsNoClip', 'InputDir', 'md5checksum',
        'nBases_samtools', 'perc_bases_ge_15x_mapQ_ge11'
    ]

    def __init__(self, **kwargs):
        self.BaseDir = kwargs.get(
            'BaseDir', None)
        self.DirectoryType = kwargs.get(
            'DirectoryType', None)
        self.FileRelativePath = kwargs.get(
            'FileRelativePath', None)
        self.GbQ30NoDupsNoClip = kwargs.get(
            'GbQ30NoDupsNoClip', None)
        self.InputDir = kwargs.get(
            'InputDir', None)
        self.md5checksum = kwargs.get(
            'md5checksum', None)
        self.nBases_samtools = kwargs.get(
            'nBases_samtools', None)
        self.perc_bases_ge_15x_mapQ_ge11 = kwargs.get(
            'perc_bases_ge_15x_mapQ_ge11', None)


class IlluminaSummaryCancerV2(ProtocolElement):
    """
    This is the summary provided by illumina for Somatic calls in V2
    (current) of their pipeline Fields of interest include
    `PURITY_TUMOR_PURITY` and `PURITY_TUMOR_PLOIDY`
    """
    _schemaSource = """
{"type": "record", "name": "IlluminaSummaryCancerV2", "namespace": "org.gel.models.report.avro",
"doc": "", "fields": [{"name": "illumina_version", "type": {"type": "enum", "name":
"IlluminaVersion", "symbols": ["IlluminaSummaryV1", "IlluminaSummaryV2", "IlluminaSummaryV4",
"IlluminaSummaryCancerV2", "IlluminaSummaryCancerV4"]}}, {"name": "VARIANTSTATS_STOP_GAINED_SNVS",
"type": "double"}, {"name": "VARIANTSTATS_MATURE_MIRNA_DELETIONS", "type": "double"}, {"name":
"VARIANTSTATS_SYNONYMOUS_SNVS", "type": "double"}, {"name": "BAMSTATS_NORMAL_PERCENT_BASES_GE_Q30",
"type": "double"}, {"name": "VARIANTSTATS_NON_SYNONYMOUS_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_SYNONYMOUS_INSERTIONS", "type": "double"}, {"name":
"BAMSTATS_TUMOR_PERCENT_BASES_GE_Q30", "type": "double"}, {"name": "PURITY_TUMOR_PLOIDY", "type":
["null", "double"]}, {"name": "SVSTATS_TANDEM_DUPLICATION_TOTAL", "type": "double"}, {"name":
"SVSTATS_INSERTION_NUMBER_IN_GENES", "type": "double"}, {"name": "VARIANTSTATS_TOTAL_DELETIONS",
"type": "double"}, {"name": "VARIANTSTATS_NUMBER_IN_CODING_REGIONS_SNVS", "type": "double"},
{"name": "VARIANTSTATS_FRAMESHIFT_INSERTIONS", "type": "double"}, {"name": "PURITY_TUMOR_PURITY",
"type": ["null", "double"]}, {"name": "SVSTATS_DELETION_NUMBER_IN_GENES", "type": "double"},
{"name": "VARIANTSTATS_TOTAL_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_NON_SYNONYMOUS_SNVS", "type": "double"}, {"name": "VARIANTSTATS_MATURE_MIRNA_SNVS",
"type": "double"}, {"name": "VARIANTSTATS_STOP_GAINED_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_FRAMESHIFT_DELETIONS", "type": "double"}, {"name":
"SVSTATS_TANDEM_DUPLICATION_NUMBER_IN_GENES", "type": "double"}, {"name":
"VARIANTSTATS_NUMBER_IN_EXONS_DELETIONS", "type": "double"}, {"name":
"VARIANTSTATS_NUMBER_IN_GENES_DELETIONS", "type": "double"}, {"name":
"VARIANTSTATS_UTR_REGION_DELETIONS", "type": "double"}, {"name":
"BAMSTATS_TUMOR_GIGABASES_PASSING_FILTER", "type": "double"}, {"name":
"VARIANTSTATS_DBSNP_INSERTIONS", "type": "double"}, {"name": "SVSTATS_CNV_TOTAL", "type": "double"},
{"name": "VARIANTSTATS_STOP_LOST_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_SPLICE_SITE_REGION_INSERTIONS", "type": "double"}, {"name": "SVSTATS_INVERSION_TOTAL",
"type": "double"}, {"name": "VARIANTSTATS_SYNONYMOUS_DELETIONS", "type": "double"}, {"name":
"VARIANTSTATS_STOP_LOST_SNVS", "type": "double"}, {"name":
"BAMSTATS_NORMAL_GIGABASES_PASSING_FILTER", "type": "double"}, {"name":
"VARIANTSTATS_MATURE_MIRNA_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_SPLICE_SITE_REGION_SNVS", "type": "double"}, {"name":
"VARIANTSTATS_NUMBER_IN_CODING_REGIONS_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_NUMBER_IN_GENES_SNVS", "type": "double"}, {"name":
"VARIANTSTATS_STOP_GAINED_DELETIONS", "type": "double"}, {"name":
"VARIANTSTATS_STOP_LOST_DELETIONS", "type": "double"}, {"name": "NORMAL_ID", "type": "string"},
{"name": "VARIANTSTATS_SPLICE_SITE_REGION_DELETIONS", "type": "double"}, {"name":
"VARIANTSTATS_UTR_REGION_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_NUMBER_IN_CODING_REGIONS_DELETIONS", "type": "double"}, {"name":
"SVSTATS_TRANSLOCATION_BREAKEND_TOTAL", "type": "double"}, {"name": "SVSTATS_CNV_NUMBER_IN_GENES",
"type": "double"}, {"name": "VARIANTSTATS_UTR_REGION_SNVS", "type": "double"}, {"name":
"VARIANTSTATS_NUMBER_IN_EXONS_INSERTIONS", "type": "double"}, {"name": "VARIANTSTATS_DBSNP_SNVS",
"type": "double"}, {"name": "VARIANTSTATS_DBSNP_DELETIONS", "type": "double"}, {"name":
"VARIANTSTATS_FRAMESHIFT_SNVS", "type": "double"}, {"name": "VARIANTSTATS_NUMBER_IN_EXONS_SNVS",
"type": "double"}, {"name": "VARIANTSTATS_NUMBER_IN_GENES_INSERTIONS", "type": "double"}, {"name":
"VARIANTSTATS_TOTAL_SNVS", "type": "double"}, {"name": "SVSTATS_DELETION_TOTAL", "type": "double"},
{"name": "SVSTATS_INVERSION_NUMBER_IN_GENES", "type": "double"}, {"name": "TUMOR_ID", "type":
"string"}, {"name": "SVSTATS_INSERTION_TOTAL", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "BAMSTATS_NORMAL_GIGABASES_PASSING_FILTER",
        "BAMSTATS_NORMAL_PERCENT_BASES_GE_Q30",
        "BAMSTATS_TUMOR_GIGABASES_PASSING_FILTER",
        "BAMSTATS_TUMOR_PERCENT_BASES_GE_Q30",
        "NORMAL_ID",
        "PURITY_TUMOR_PLOIDY",
        "PURITY_TUMOR_PURITY",
        "SVSTATS_CNV_NUMBER_IN_GENES",
        "SVSTATS_CNV_TOTAL",
        "SVSTATS_DELETION_NUMBER_IN_GENES",
        "SVSTATS_DELETION_TOTAL",
        "SVSTATS_INSERTION_NUMBER_IN_GENES",
        "SVSTATS_INSERTION_TOTAL",
        "SVSTATS_INVERSION_NUMBER_IN_GENES",
        "SVSTATS_INVERSION_TOTAL",
        "SVSTATS_TANDEM_DUPLICATION_NUMBER_IN_GENES",
        "SVSTATS_TANDEM_DUPLICATION_TOTAL",
        "SVSTATS_TRANSLOCATION_BREAKEND_TOTAL",
        "TUMOR_ID",
        "VARIANTSTATS_DBSNP_DELETIONS",
        "VARIANTSTATS_DBSNP_INSERTIONS",
        "VARIANTSTATS_DBSNP_SNVS",
        "VARIANTSTATS_FRAMESHIFT_DELETIONS",
        "VARIANTSTATS_FRAMESHIFT_INSERTIONS",
        "VARIANTSTATS_FRAMESHIFT_SNVS",
        "VARIANTSTATS_MATURE_MIRNA_DELETIONS",
        "VARIANTSTATS_MATURE_MIRNA_INSERTIONS",
        "VARIANTSTATS_MATURE_MIRNA_SNVS",
        "VARIANTSTATS_NON_SYNONYMOUS_INSERTIONS",
        "VARIANTSTATS_NON_SYNONYMOUS_SNVS",
        "VARIANTSTATS_NUMBER_IN_CODING_REGIONS_DELETIONS",
        "VARIANTSTATS_NUMBER_IN_CODING_REGIONS_INSERTIONS",
        "VARIANTSTATS_NUMBER_IN_CODING_REGIONS_SNVS",
        "VARIANTSTATS_NUMBER_IN_EXONS_DELETIONS",
        "VARIANTSTATS_NUMBER_IN_EXONS_INSERTIONS",
        "VARIANTSTATS_NUMBER_IN_EXONS_SNVS",
        "VARIANTSTATS_NUMBER_IN_GENES_DELETIONS",
        "VARIANTSTATS_NUMBER_IN_GENES_INSERTIONS",
        "VARIANTSTATS_NUMBER_IN_GENES_SNVS",
        "VARIANTSTATS_SPLICE_SITE_REGION_DELETIONS",
        "VARIANTSTATS_SPLICE_SITE_REGION_INSERTIONS",
        "VARIANTSTATS_SPLICE_SITE_REGION_SNVS",
        "VARIANTSTATS_STOP_GAINED_DELETIONS",
        "VARIANTSTATS_STOP_GAINED_INSERTIONS",
        "VARIANTSTATS_STOP_GAINED_SNVS",
        "VARIANTSTATS_STOP_LOST_DELETIONS",
        "VARIANTSTATS_STOP_LOST_INSERTIONS",
        "VARIANTSTATS_STOP_LOST_SNVS",
        "VARIANTSTATS_SYNONYMOUS_DELETIONS",
        "VARIANTSTATS_SYNONYMOUS_INSERTIONS",
        "VARIANTSTATS_SYNONYMOUS_SNVS",
        "VARIANTSTATS_TOTAL_DELETIONS",
        "VARIANTSTATS_TOTAL_INSERTIONS",
        "VARIANTSTATS_TOTAL_SNVS",
        "VARIANTSTATS_UTR_REGION_DELETIONS",
        "VARIANTSTATS_UTR_REGION_INSERTIONS",
        "VARIANTSTATS_UTR_REGION_SNVS",
        "illumina_version",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'BAMSTATS_NORMAL_GIGABASES_PASSING_FILTER',
        'BAMSTATS_NORMAL_PERCENT_BASES_GE_Q30',
        'BAMSTATS_TUMOR_GIGABASES_PASSING_FILTER',
        'BAMSTATS_TUMOR_PERCENT_BASES_GE_Q30', 'NORMAL_ID',
        'PURITY_TUMOR_PLOIDY', 'PURITY_TUMOR_PURITY',
        'SVSTATS_CNV_NUMBER_IN_GENES', 'SVSTATS_CNV_TOTAL',
        'SVSTATS_DELETION_NUMBER_IN_GENES', 'SVSTATS_DELETION_TOTAL',
        'SVSTATS_INSERTION_NUMBER_IN_GENES',
        'SVSTATS_INSERTION_TOTAL',
        'SVSTATS_INVERSION_NUMBER_IN_GENES',
        'SVSTATS_INVERSION_TOTAL',
        'SVSTATS_TANDEM_DUPLICATION_NUMBER_IN_GENES',
        'SVSTATS_TANDEM_DUPLICATION_TOTAL',
        'SVSTATS_TRANSLOCATION_BREAKEND_TOTAL', 'TUMOR_ID',
        'VARIANTSTATS_DBSNP_DELETIONS',
        'VARIANTSTATS_DBSNP_INSERTIONS', 'VARIANTSTATS_DBSNP_SNVS',
        'VARIANTSTATS_FRAMESHIFT_DELETIONS',
        'VARIANTSTATS_FRAMESHIFT_INSERTIONS',
        'VARIANTSTATS_FRAMESHIFT_SNVS',
        'VARIANTSTATS_MATURE_MIRNA_DELETIONS',
        'VARIANTSTATS_MATURE_MIRNA_INSERTIONS',
        'VARIANTSTATS_MATURE_MIRNA_SNVS',
        'VARIANTSTATS_NON_SYNONYMOUS_INSERTIONS',
        'VARIANTSTATS_NON_SYNONYMOUS_SNVS',
        'VARIANTSTATS_NUMBER_IN_CODING_REGIONS_DELETIONS',
        'VARIANTSTATS_NUMBER_IN_CODING_REGIONS_INSERTIONS',
        'VARIANTSTATS_NUMBER_IN_CODING_REGIONS_SNVS',
        'VARIANTSTATS_NUMBER_IN_EXONS_DELETIONS',
        'VARIANTSTATS_NUMBER_IN_EXONS_INSERTIONS',
        'VARIANTSTATS_NUMBER_IN_EXONS_SNVS',
        'VARIANTSTATS_NUMBER_IN_GENES_DELETIONS',
        'VARIANTSTATS_NUMBER_IN_GENES_INSERTIONS',
        'VARIANTSTATS_NUMBER_IN_GENES_SNVS',
        'VARIANTSTATS_SPLICE_SITE_REGION_DELETIONS',
        'VARIANTSTATS_SPLICE_SITE_REGION_INSERTIONS',
        'VARIANTSTATS_SPLICE_SITE_REGION_SNVS',
        'VARIANTSTATS_STOP_GAINED_DELETIONS',
        'VARIANTSTATS_STOP_GAINED_INSERTIONS',
        'VARIANTSTATS_STOP_GAINED_SNVS',
        'VARIANTSTATS_STOP_LOST_DELETIONS',
        'VARIANTSTATS_STOP_LOST_INSERTIONS',
        'VARIANTSTATS_STOP_LOST_SNVS',
        'VARIANTSTATS_SYNONYMOUS_DELETIONS',
        'VARIANTSTATS_SYNONYMOUS_INSERTIONS',
        'VARIANTSTATS_SYNONYMOUS_SNVS',
        'VARIANTSTATS_TOTAL_DELETIONS',
        'VARIANTSTATS_TOTAL_INSERTIONS', 'VARIANTSTATS_TOTAL_SNVS',
        'VARIANTSTATS_UTR_REGION_DELETIONS',
        'VARIANTSTATS_UTR_REGION_INSERTIONS',
        'VARIANTSTATS_UTR_REGION_SNVS', 'illumina_version'
    ]

    def __init__(self, **kwargs):
        self.BAMSTATS_NORMAL_GIGABASES_PASSING_FILTER = kwargs.get(
            'BAMSTATS_NORMAL_GIGABASES_PASSING_FILTER', None)
        self.BAMSTATS_NORMAL_PERCENT_BASES_GE_Q30 = kwargs.get(
            'BAMSTATS_NORMAL_PERCENT_BASES_GE_Q30', None)
        self.BAMSTATS_TUMOR_GIGABASES_PASSING_FILTER = kwargs.get(
            'BAMSTATS_TUMOR_GIGABASES_PASSING_FILTER', None)
        self.BAMSTATS_TUMOR_PERCENT_BASES_GE_Q30 = kwargs.get(
            'BAMSTATS_TUMOR_PERCENT_BASES_GE_Q30', None)
        self.NORMAL_ID = kwargs.get(
            'NORMAL_ID', None)
        self.PURITY_TUMOR_PLOIDY = kwargs.get(
            'PURITY_TUMOR_PLOIDY', None)
        self.PURITY_TUMOR_PURITY = kwargs.get(
            'PURITY_TUMOR_PURITY', None)
        self.SVSTATS_CNV_NUMBER_IN_GENES = kwargs.get(
            'SVSTATS_CNV_NUMBER_IN_GENES', None)
        self.SVSTATS_CNV_TOTAL = kwargs.get(
            'SVSTATS_CNV_TOTAL', None)
        self.SVSTATS_DELETION_NUMBER_IN_GENES = kwargs.get(
            'SVSTATS_DELETION_NUMBER_IN_GENES', None)
        self.SVSTATS_DELETION_TOTAL = kwargs.get(
            'SVSTATS_DELETION_TOTAL', None)
        self.SVSTATS_INSERTION_NUMBER_IN_GENES = kwargs.get(
            'SVSTATS_INSERTION_NUMBER_IN_GENES', None)
        self.SVSTATS_INSERTION_TOTAL = kwargs.get(
            'SVSTATS_INSERTION_TOTAL', None)
        self.SVSTATS_INVERSION_NUMBER_IN_GENES = kwargs.get(
            'SVSTATS_INVERSION_NUMBER_IN_GENES', None)
        self.SVSTATS_INVERSION_TOTAL = kwargs.get(
            'SVSTATS_INVERSION_TOTAL', None)
        self.SVSTATS_TANDEM_DUPLICATION_NUMBER_IN_GENES = kwargs.get(
            'SVSTATS_TANDEM_DUPLICATION_NUMBER_IN_GENES', None)
        self.SVSTATS_TANDEM_DUPLICATION_TOTAL = kwargs.get(
            'SVSTATS_TANDEM_DUPLICATION_TOTAL', None)
        self.SVSTATS_TRANSLOCATION_BREAKEND_TOTAL = kwargs.get(
            'SVSTATS_TRANSLOCATION_BREAKEND_TOTAL', None)
        self.TUMOR_ID = kwargs.get(
            'TUMOR_ID', None)
        self.VARIANTSTATS_DBSNP_DELETIONS = kwargs.get(
            'VARIANTSTATS_DBSNP_DELETIONS', None)
        self.VARIANTSTATS_DBSNP_INSERTIONS = kwargs.get(
            'VARIANTSTATS_DBSNP_INSERTIONS', None)
        self.VARIANTSTATS_DBSNP_SNVS = kwargs.get(
            'VARIANTSTATS_DBSNP_SNVS', None)
        self.VARIANTSTATS_FRAMESHIFT_DELETIONS = kwargs.get(
            'VARIANTSTATS_FRAMESHIFT_DELETIONS', None)
        self.VARIANTSTATS_FRAMESHIFT_INSERTIONS = kwargs.get(
            'VARIANTSTATS_FRAMESHIFT_INSERTIONS', None)
        self.VARIANTSTATS_FRAMESHIFT_SNVS = kwargs.get(
            'VARIANTSTATS_FRAMESHIFT_SNVS', None)
        self.VARIANTSTATS_MATURE_MIRNA_DELETIONS = kwargs.get(
            'VARIANTSTATS_MATURE_MIRNA_DELETIONS', None)
        self.VARIANTSTATS_MATURE_MIRNA_INSERTIONS = kwargs.get(
            'VARIANTSTATS_MATURE_MIRNA_INSERTIONS', None)
        self.VARIANTSTATS_MATURE_MIRNA_SNVS = kwargs.get(
            'VARIANTSTATS_MATURE_MIRNA_SNVS', None)
        self.VARIANTSTATS_NON_SYNONYMOUS_INSERTIONS = kwargs.get(
            'VARIANTSTATS_NON_SYNONYMOUS_INSERTIONS', None)
        self.VARIANTSTATS_NON_SYNONYMOUS_SNVS = kwargs.get(
            'VARIANTSTATS_NON_SYNONYMOUS_SNVS', None)
        self.VARIANTSTATS_NUMBER_IN_CODING_REGIONS_DELETIONS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_CODING_REGIONS_DELETIONS', None)
        self.VARIANTSTATS_NUMBER_IN_CODING_REGIONS_INSERTIONS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_CODING_REGIONS_INSERTIONS', None)
        self.VARIANTSTATS_NUMBER_IN_CODING_REGIONS_SNVS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_CODING_REGIONS_SNVS', None)
        self.VARIANTSTATS_NUMBER_IN_EXONS_DELETIONS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_EXONS_DELETIONS', None)
        self.VARIANTSTATS_NUMBER_IN_EXONS_INSERTIONS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_EXONS_INSERTIONS', None)
        self.VARIANTSTATS_NUMBER_IN_EXONS_SNVS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_EXONS_SNVS', None)
        self.VARIANTSTATS_NUMBER_IN_GENES_DELETIONS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_GENES_DELETIONS', None)
        self.VARIANTSTATS_NUMBER_IN_GENES_INSERTIONS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_GENES_INSERTIONS', None)
        self.VARIANTSTATS_NUMBER_IN_GENES_SNVS = kwargs.get(
            'VARIANTSTATS_NUMBER_IN_GENES_SNVS', None)
        self.VARIANTSTATS_SPLICE_SITE_REGION_DELETIONS = kwargs.get(
            'VARIANTSTATS_SPLICE_SITE_REGION_DELETIONS', None)
        self.VARIANTSTATS_SPLICE_SITE_REGION_INSERTIONS = kwargs.get(
            'VARIANTSTATS_SPLICE_SITE_REGION_INSERTIONS', None)
        self.VARIANTSTATS_SPLICE_SITE_REGION_SNVS = kwargs.get(
            'VARIANTSTATS_SPLICE_SITE_REGION_SNVS', None)
        self.VARIANTSTATS_STOP_GAINED_DELETIONS = kwargs.get(
            'VARIANTSTATS_STOP_GAINED_DELETIONS', None)
        self.VARIANTSTATS_STOP_GAINED_INSERTIONS = kwargs.get(
            'VARIANTSTATS_STOP_GAINED_INSERTIONS', None)
        self.VARIANTSTATS_STOP_GAINED_SNVS = kwargs.get(
            'VARIANTSTATS_STOP_GAINED_SNVS', None)
        self.VARIANTSTATS_STOP_LOST_DELETIONS = kwargs.get(
            'VARIANTSTATS_STOP_LOST_DELETIONS', None)
        self.VARIANTSTATS_STOP_LOST_INSERTIONS = kwargs.get(
            'VARIANTSTATS_STOP_LOST_INSERTIONS', None)
        self.VARIANTSTATS_STOP_LOST_SNVS = kwargs.get(
            'VARIANTSTATS_STOP_LOST_SNVS', None)
        self.VARIANTSTATS_SYNONYMOUS_DELETIONS = kwargs.get(
            'VARIANTSTATS_SYNONYMOUS_DELETIONS', None)
        self.VARIANTSTATS_SYNONYMOUS_INSERTIONS = kwargs.get(
            'VARIANTSTATS_SYNONYMOUS_INSERTIONS', None)
        self.VARIANTSTATS_SYNONYMOUS_SNVS = kwargs.get(
            'VARIANTSTATS_SYNONYMOUS_SNVS', None)
        self.VARIANTSTATS_TOTAL_DELETIONS = kwargs.get(
            'VARIANTSTATS_TOTAL_DELETIONS', None)
        self.VARIANTSTATS_TOTAL_INSERTIONS = kwargs.get(
            'VARIANTSTATS_TOTAL_INSERTIONS', None)
        self.VARIANTSTATS_TOTAL_SNVS = kwargs.get(
            'VARIANTSTATS_TOTAL_SNVS', None)
        self.VARIANTSTATS_UTR_REGION_DELETIONS = kwargs.get(
            'VARIANTSTATS_UTR_REGION_DELETIONS', None)
        self.VARIANTSTATS_UTR_REGION_INSERTIONS = kwargs.get(
            'VARIANTSTATS_UTR_REGION_INSERTIONS', None)
        self.VARIANTSTATS_UTR_REGION_SNVS = kwargs.get(
            'VARIANTSTATS_UTR_REGION_SNVS', None)
        self.illumina_version = kwargs.get(
            'illumina_version', None)


class IlluminaSummaryCancerV4(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "IlluminaSummaryCancerV4", "namespace": "org.gel.models.report.avro",
"fields": [{"name": "illumina_version", "type": {"type": "enum", "name": "IlluminaVersion",
"symbols": ["IlluminaSummaryV1", "IlluminaSummaryV2", "IlluminaSummaryV4",
"IlluminaSummaryCancerV2", "IlluminaSummaryCancerV4"]}}, {"name": "NORMAL_TOTAL_PF_READS", "type":
"long"}, {"name": "NORMAL_PERCENT_ALIGNED_BASES_READ_2", "type": "double"}, {"name":
"NORMAL_PERCENT_ALIGNED_BASES_READ_1", "type": "double"}, {"name":
"TUMOR_MEDIAN_READ_LENGTH_READ_1", "type": "string"}, {"name": "TUMOR_MEDIAN_READ_LENGTH_READ_2",
"type": "string"}, {"name": "NORMAL_TOTAL_PF_BASES_READ_2", "type": "long"}, {"name":
"NORMAL_PERCENT_DUPLICATE_ALIGNED_READS", "type": "double"}, {"name":
"SOMATIC_DELETIONS_IN_MATURE_MIRNA", "type": "long"}, {"name": "NORMAL_TOTAL_PF_BASES_READ_1",
"type": "long"}, {"name": "TUMOR_SAMPLE_NAME", "type": "string"}, {"name":
"SOMATIC_SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES", "type": "double"}, {"name":
"NORMAL_MISMATCH_RATE", "type": "double"}, {"name": "NORMAL_TOTAL_PROPER_READ_PAIRS", "type":
"long"}, {"name": "FRAMESHIFT_SOMATIC_INSERTIONS", "type": "long"}, {"name":
"NORMAL_PERCENT_SOFT_CLIPPED_BASES", "type": "double"}, {"name": "SOMATIC_DELETIONS_IN_GENES",
"type": "long"}, {"name": "SOMATIC_INSERTIONS_IN_MATURE_MIRNA", "type": "long"}, {"name":
"NORMAL_PERCENT_Q30_BASES_READ_2", "type": "double"}, {"name":
"TUMOR_PERCENT_DUPLICATE_PROPER_READ_PAIRS", "type": "double"}, {"name":
"NORMAL_PERCENT_Q30_BASES_READ_1", "type": "double"}, {"name":
"SOMATIC_SV_PERCENT_BREAKENDS_IN_GENES", "type": "double"}, {"name":
"TUMOR_PERCENT_DUPLICATE_ALIGNED_READS", "type": "double"}, {"name": "SOMATIC_SV_DELETIONS", "type":
"long"}, {"name": "SOMATIC_INSERTIONS_IN_GENES", "type": "long"}, {"name":
"SOMATIC_INSERTIONS_IN_EXONS", "type": "long"}, {"name": "TUMOR_COVERAGE_AT_15X", "type": "double"},
{"name": "TUMOR_TOTAL_ALIGNED_READ_PAIRS", "type": "long"}, {"name": "OVERALL_PLOIDY", "type":
"double"}, {"name": "SOMATIC_INDELS", "type": "long"}, {"name": "TUMOR_MEAN_COVERAGE", "type":
"double"}, {"name": "NORMAL_MISMATCH_RATE_READ_2", "type": "double"}, {"name":
"NORMAL_PERCENT_GC_DROPOUT", "type": "double"}, {"name": "NORMAL_MISMATCH_RATE_READ_1", "type":
"double"}, {"name": "SOMATIC_INDELS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"SOMATIC_SNVS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"SOMATIC_DELETIONS_IN_SPLICE_SITE_REGIONS", "type": "long"}, {"name": "NORMAL_TOTAL_ALIGNED_READ_1",
"type": "long"}, {"name": "NORMAL_TOTAL_ALIGNED_READ_2", "type": "long"}, {"name":
"SOMATIC_SNV_TS_TV_RATIO", "type": "double"}, {"name": "SOMATIC_SV_INVERSIONS", "type": "long"},
{"name": "SOMATIC_INSERTIONS_IN_UTR_REGIONS", "type": "long"}, {"name":
"TUMOR_READ_ENRICHMENT_AT_80_GC", "type": "double"}, {"name": "SYNONYMOUS_SOMATIC_SNVS", "type":
"long"}, {"name": "SOMATIC_INSERTIONS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"MEAN_SOMATIC_SNV_FREQUENCY", "type": "double"}, {"name": "SOMATIC_SNVS_IN_SPLICE_SITE_REGIONS",
"type": "long"}, {"name": "SOMATIC_DELETIONS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"SOMATIC_SNVS_IN_EXONS", "type": "long"}, {"name": "SOMATIC_INSERTIONS_ALL", "type": "long"},
{"name": "SOMATIC_SV_BREAKENDS_ALL", "type": "long"}, {"name":
"SOMATIC_SV_TANDEM_DUPLICATIONS_IN_GENES", "type": "long"}, {"name": "TUMOR_MISMATCH_RATE", "type":
"double"}, {"name": "NORMAL_TOTAL_ALIGNED_READ_PAIRS", "type": "long"}, {"name":
"TUMOR_PERCENT_Q25_BASES_READ_1", "type": "double"}, {"name": "TUMOR_PERCENT_Q25_BASES_READ_2",
"type": "double"}, {"name": "TUMOR_PERCENT_ALIGNED_BASES_READ_1", "type": "double"}, {"name":
"SOMATIC_SV_BREAKENDS_IN_GENES", "type": "long"}, {"name": "STOP_LOST_SOMATIC_DELETIONS", "type":
"long"}, {"name": "NORMAL_TOTAL_DUPLICATE_PROPER_READ_PAIRS", "type": "long"}, {"name":
"NON_SYNONYMOUS_SOMATIC_INSERTIONS", "type": "long"}, {"name": "SOMATIC_SV_TANDEM_DUPLICATIONS",
"type": "long"}, {"name": "SOMATIC_SNVS_IN_CODING_REGIONS", "type": "long"}, {"name":
"STOP_GAINED_SOMATIC_DELETIONS", "type": "long"}, {"name": "ESTIMATED_CHROMOSOME_COUNT", "type":
"double"}, {"name": "NORMAL_TOTAL_PF_READ_1", "type": "long"}, {"name":
"NORMAL_TOTAL_MAPQ_GT_10_READS", "type": "long"}, {"name": "NORMAL_TOTAL_PF_READ_2", "type":
"long"}, {"name": "SOMATIC_SV_INSERTIONS_IN_GENES", "type": "long"}, {"name":
"TUMOR_PERCENT_ALIGNED_BASES", "type": "double"}, {"name": "TUMOR_READ_ENRICHMENT_AT_75_GC", "type":
"double"}, {"name": "SOMATIC_DELETIONS_IN_CODING_REGIONS", "type": "long"}, {"name":
"SOMATIC_SNVS_IN_UTR_REGIONS", "type": "long"}, {"name": "NORMAL_SAMPLE_ID", "type": "string"},
{"name": "NORMAL_COVERAGE_AT_1X", "type": "double"}, {"name": "TUMOR_TOTAL_PROPER_READ_PAIRS",
"type": "long"}, {"name": "NORMAL_PERCENT_Q25_BASES_READ_1", "type": "double"}, {"name":
"NORMAL_PERCENT_Q25_BASES_READ_2", "type": "double"}, {"name": "TUMOR_MEDIAN_READ_LENGTH", "type":
"string"}, {"name": "NORMAL_COVERAGE_AT_15X", "type": "double"}, {"name":
"STOP_GAINED_SOMATIC_SNVS", "type": "long"}, {"name": "TUMOR_TOTAL_PF_READ_2", "type": "long"},
{"name": "NORMAL_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS", "type": "double"}, {"name":
"TUMOR_TOTAL_PF_READ_1", "type": "long"}, {"name": "TUMOR_MISMATCH_RATE_READ_2", "type": "double"},
{"name": "TUMOR_MISMATCH_RATE_READ_1", "type": "double"}, {"name": "TUMOR_PERCENT_ALIGNED_READS",
"type": "double"}, {"name": "TUMOR_TOTAL_PF_BASES", "type": "long"}, {"name": "SOMATIC_CNVS_ALL",
"type": "long"}, {"name": "SOMATIC_SV_INVERSIONS_ALL", "type": "long"}, {"name": "SOMATIC_CNVS",
"type": "long"}, {"name": "NORMAL_PERCENT_ALIGNED_READS", "type": "double"}, {"name":
"TUMOR_PERCENT_Q30_BASES_READ_2", "type": "double"}, {"name": "TUMOR_PERCENT_Q30_BASES_READ_1",
"type": "double"}, {"name": "NORMAL_MEDIAN_READ_LENGTH", "type": "string"}, {"name":
"STOP_LOST_SOMATIC_INSERTIONS", "type": "long"}, {"name": "SOMATIC_DELETIONS_IN_EXONS", "type":
"long"}, {"name": "SOMATIC_INSERTIONS", "type": "long"}, {"name": "TUMOR_PERCENT_GC_DROPOUT",
"type": "double"}, {"name": "NORMAL_TOTAL_PF_BASES", "type": "long"}, {"name":
"NORMAL_PERCENT_ALIGNED_READ_1", "type": "double"}, {"name": "TUMOR_PERCENT_Q30_BASES", "type":
"double"}, {"name": "NORMAL_PERCENT_ALIGNED_READ_2", "type": "double"}, {"name":
"SOMATIC_SV_INSERTIONS", "type": "long"}, {"name": "NORMAL_UNIQUE_ALIGNED_READS", "type": "long"},
{"name": "NORMAL_COVERAGE_AT_10X", "type": "double"}, {"name": "TUMOR_TOTAL_ALIGNED_READ_1", "type":
"long"}, {"name": "SOMATIC_DELETIONS_IN_UTR_REGIONS", "type": "long"}, {"name":
"TUMOR_TOTAL_ALIGNED_READ_2", "type": "long"}, {"name": "NORMAL_READ_ENRICHMENT_AT_75_GC", "type":
"double"}, {"name": "NORMAL_PERCENT_DUPLICATE_PROPER_READ_PAIRS", "type": "double"}, {"name":
"TUMOR_TOTAL_DUPLICATE_ALIGNED_READS", "type": "long"}, {"name": "SOMATIC_DELETIONS_ALL", "type":
"long"}, {"name": "STOP_LOST_SOMATIC_SNVS", "type": "long"}, {"name": "SOMATIC_SNVS_ALL", "type":
"long"}, {"name": "NON_SYNONYMOUS_SOMATIC_SNVS", "type": "long"}, {"name":
"TUMOR_TOTAL_PF_BASES_READ_1", "type": "long"}, {"name": "TUMOR_TOTAL_PF_BASES_READ_2", "type":
"long"}, {"name": "SOMATIC_SV_INSERTIONS_ALL", "type": "long"}, {"name":
"NORMAL_PERCENT_AT_DROPOUT", "type": "double"}, {"name": "SOMATIC_SNVS_IN_GENES", "type": "long"},
{"name": "TUMOR_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS", "type": "double"}, {"name":
"NORMAL_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES", "type": "double"}, {"name":
"SOMATIC_DELETIONS", "type": "long"}, {"name": "TUMOR_SAMPLE_ID", "type": "string"}, {"name":
"NORMAL_MEDIAN_READ_LENGTH_READ_2", "type": "string"}, {"name": "PERCENT_SOMATIC_CNVS_IN_GENES",
"type": "double"}, {"name": "NORMAL_MEDIAN_READ_LENGTH_READ_1", "type": "string"}, {"name":
"SOMATIC_SV_INVERSIONS_IN_GENES", "type": "long"}, {"name": "NORMAL_TOTAL_ALIGNED_BASES_READ_2",
"type": "long"}, {"name": "NORMAL_TOTAL_ALIGNED_BASES_READ_1", "type": "long"}, {"name":
"TUMOR_PERCENT_AT_DROPOUT", "type": "double"}, {"name": "SOMATIC_CNVS_IN_GENES", "type": "long"},
{"name": "TUMOR_COVERAGE_AT_10X", "type": "double"}, {"name": "TUMOR_TOTAL_ALIGNED_BASES_READ_2",
"type": "long"}, {"name": "TUMOR_TOTAL_MAPQ_GT_10_READS", "type": "long"}, {"name":
"TUMOR_TOTAL_ALIGNED_BASES_READ_1", "type": "long"}, {"name": "SOMATIC_SNVS", "type": "long"},
{"name": "NORMAL_PERCENT_Q30_BASES", "type": "double"}, {"name": "TUMOR_UNIQUE_ALIGNED_READS",
"type": "long"}, {"name": "SOMATIC_INSERTIONS_IN_CODING_REGIONS", "type": "long"}, {"name":
"TUMOR_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES", "type": "long"}, {"name":
"NORMAL_SAMPLE_NAME", "type": "string"}, {"name": "NORMAL_TOTAL_ALIGNED_READS", "type": "long"},
{"name": "TUMOR_TOTAL_ALIGNED_READS", "type": "long"}, {"name": "SOMATIC_INDELS_ALL", "type":
"long"}, {"name": "NORMAL_MEAN_COVERAGE", "type": "double"}, {"name": "SOMATIC_SV_BREAKENDS",
"type": "long"}, {"name": "SOMATIC_SV_PERCENT_INSERTIONS_IN_GENES", "type": "double"}, {"name":
"NON_SYNONYMOUS_SOMATIC_DELETIONS", "type": "long"}, {"name": "TUMOR_COVERAGE_AT_1X", "type":
"double"}, {"name": "TUMOR_TOTAL_ALIGNED_BASES", "type": "long"}, {"name":
"SOMATIC_SV_PERCENT_DELETIONS_IN_GENES", "type": "double"}, {"name": "SOMATIC_SV_DELETIONS_ALL",
"type": "long"}, {"name": "ESTIMATED_PURITY", "type": "long"}, {"name":
"TUMOR_PERCENT_ALIGNED_BASES_READ_2", "type": "double"}, {"name":
"TUMOR_TOTAL_DUPLICATE_PROPER_READ_PAIRS", "type": "long"}, {"name": "SOMATIC_SNVS_IN_MATURE_MIRNA",
"type": "long"}, {"name": "TUMOR_TOTAL_PF_READS", "type": "long"}, {"name":
"SOMATIC_SV_TANDEM_DUPLICATIONS_ALL", "type": "long"}, {"name": "NORMAL_PERCENT_ALIGNED_BASES",
"type": "double"}, {"name": "TUMOR_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES", "type":
"double"}, {"name": "SOMATIC_INSERTIONS_IN_SPLICE_SITE_REGIONS", "type": "long"}, {"name":
"SOMATIC_SV_PERCENT_INVERSIONS_IN_GENES", "type": "double"}, {"name":
"TUMOR_PERCENT_SOFT_CLIPPED_BASES", "type": "double"}, {"name": "NORMAL_READ_ENRICHMENT_AT_80_GC",
"type": "double"}, {"name": "FRAMESHIFT_SOMATIC_DELETIONS", "type": "long"}, {"name":
"TUMOR_PERCENT_ALIGNED_READ_1", "type": "double"}, {"name": "TUMOR_PERCENT_ALIGNED_READ_2", "type":
"double"}, {"name": "NORMAL_TOTAL_ALIGNED_BASES", "type": "long"}, {"name":
"SOMATIC_SV_DELETIONS_IN_GENES", "type": "long"}, {"name": "STOP_GAINED_SOMATIC_INSERTIONS", "type":
"long"}, {"name": "NORMAL_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES", "type": "long"},
{"name": "MEDIAN_SOMATIC_SNV_DISTANCE", "type": "double"}, {"name":
"NORMAL_TOTAL_DUPLICATE_ALIGNED_READS", "type": "long"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "ESTIMATED_CHROMOSOME_COUNT",
        "ESTIMATED_PURITY",
        "FRAMESHIFT_SOMATIC_DELETIONS",
        "FRAMESHIFT_SOMATIC_INSERTIONS",
        "MEAN_SOMATIC_SNV_FREQUENCY",
        "MEDIAN_SOMATIC_SNV_DISTANCE",
        "NON_SYNONYMOUS_SOMATIC_DELETIONS",
        "NON_SYNONYMOUS_SOMATIC_INSERTIONS",
        "NON_SYNONYMOUS_SOMATIC_SNVS",
        "NORMAL_COVERAGE_AT_10X",
        "NORMAL_COVERAGE_AT_15X",
        "NORMAL_COVERAGE_AT_1X",
        "NORMAL_MEAN_COVERAGE",
        "NORMAL_MEDIAN_READ_LENGTH",
        "NORMAL_MEDIAN_READ_LENGTH_READ_1",
        "NORMAL_MEDIAN_READ_LENGTH_READ_2",
        "NORMAL_MISMATCH_RATE",
        "NORMAL_MISMATCH_RATE_READ_1",
        "NORMAL_MISMATCH_RATE_READ_2",
        "NORMAL_PERCENT_ALIGNED_BASES",
        "NORMAL_PERCENT_ALIGNED_BASES_READ_1",
        "NORMAL_PERCENT_ALIGNED_BASES_READ_2",
        "NORMAL_PERCENT_ALIGNED_READS",
        "NORMAL_PERCENT_ALIGNED_READ_1",
        "NORMAL_PERCENT_ALIGNED_READ_2",
        "NORMAL_PERCENT_AT_DROPOUT",
        "NORMAL_PERCENT_DUPLICATE_ALIGNED_READS",
        "NORMAL_PERCENT_DUPLICATE_PROPER_READ_PAIRS",
        "NORMAL_PERCENT_GC_DROPOUT",
        "NORMAL_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS",
        "NORMAL_PERCENT_Q25_BASES_READ_1",
        "NORMAL_PERCENT_Q25_BASES_READ_2",
        "NORMAL_PERCENT_Q30_BASES",
        "NORMAL_PERCENT_Q30_BASES_READ_1",
        "NORMAL_PERCENT_Q30_BASES_READ_2",
        "NORMAL_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES",
        "NORMAL_PERCENT_SOFT_CLIPPED_BASES",
        "NORMAL_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES",
        "NORMAL_READ_ENRICHMENT_AT_75_GC",
        "NORMAL_READ_ENRICHMENT_AT_80_GC",
        "NORMAL_SAMPLE_ID",
        "NORMAL_SAMPLE_NAME",
        "NORMAL_TOTAL_ALIGNED_BASES",
        "NORMAL_TOTAL_ALIGNED_BASES_READ_1",
        "NORMAL_TOTAL_ALIGNED_BASES_READ_2",
        "NORMAL_TOTAL_ALIGNED_READS",
        "NORMAL_TOTAL_ALIGNED_READ_1",
        "NORMAL_TOTAL_ALIGNED_READ_2",
        "NORMAL_TOTAL_ALIGNED_READ_PAIRS",
        "NORMAL_TOTAL_DUPLICATE_ALIGNED_READS",
        "NORMAL_TOTAL_DUPLICATE_PROPER_READ_PAIRS",
        "NORMAL_TOTAL_MAPQ_GT_10_READS",
        "NORMAL_TOTAL_PF_BASES",
        "NORMAL_TOTAL_PF_BASES_READ_1",
        "NORMAL_TOTAL_PF_BASES_READ_2",
        "NORMAL_TOTAL_PF_READS",
        "NORMAL_TOTAL_PF_READ_1",
        "NORMAL_TOTAL_PF_READ_2",
        "NORMAL_TOTAL_PROPER_READ_PAIRS",
        "NORMAL_UNIQUE_ALIGNED_READS",
        "OVERALL_PLOIDY",
        "PERCENT_SOMATIC_CNVS_IN_GENES",
        "SOMATIC_CNVS",
        "SOMATIC_CNVS_ALL",
        "SOMATIC_CNVS_IN_GENES",
        "SOMATIC_DELETIONS",
        "SOMATIC_DELETIONS_ALL",
        "SOMATIC_DELETIONS_IN_CODING_REGIONS",
        "SOMATIC_DELETIONS_IN_EXONS",
        "SOMATIC_DELETIONS_IN_GENES",
        "SOMATIC_DELETIONS_IN_MATURE_MIRNA",
        "SOMATIC_DELETIONS_IN_SPLICE_SITE_REGIONS",
        "SOMATIC_DELETIONS_IN_UTR_REGIONS",
        "SOMATIC_DELETIONS_PERCENT_FOUND_IN_DBSNP",
        "SOMATIC_INDELS",
        "SOMATIC_INDELS_ALL",
        "SOMATIC_INDELS_PERCENT_FOUND_IN_DBSNP",
        "SOMATIC_INSERTIONS",
        "SOMATIC_INSERTIONS_ALL",
        "SOMATIC_INSERTIONS_IN_CODING_REGIONS",
        "SOMATIC_INSERTIONS_IN_EXONS",
        "SOMATIC_INSERTIONS_IN_GENES",
        "SOMATIC_INSERTIONS_IN_MATURE_MIRNA",
        "SOMATIC_INSERTIONS_IN_SPLICE_SITE_REGIONS",
        "SOMATIC_INSERTIONS_IN_UTR_REGIONS",
        "SOMATIC_INSERTIONS_PERCENT_FOUND_IN_DBSNP",
        "SOMATIC_SNVS",
        "SOMATIC_SNVS_ALL",
        "SOMATIC_SNVS_IN_CODING_REGIONS",
        "SOMATIC_SNVS_IN_EXONS",
        "SOMATIC_SNVS_IN_GENES",
        "SOMATIC_SNVS_IN_MATURE_MIRNA",
        "SOMATIC_SNVS_IN_SPLICE_SITE_REGIONS",
        "SOMATIC_SNVS_IN_UTR_REGIONS",
        "SOMATIC_SNVS_PERCENT_FOUND_IN_DBSNP",
        "SOMATIC_SNV_TS_TV_RATIO",
        "SOMATIC_SV_BREAKENDS",
        "SOMATIC_SV_BREAKENDS_ALL",
        "SOMATIC_SV_BREAKENDS_IN_GENES",
        "SOMATIC_SV_DELETIONS",
        "SOMATIC_SV_DELETIONS_ALL",
        "SOMATIC_SV_DELETIONS_IN_GENES",
        "SOMATIC_SV_INSERTIONS",
        "SOMATIC_SV_INSERTIONS_ALL",
        "SOMATIC_SV_INSERTIONS_IN_GENES",
        "SOMATIC_SV_INVERSIONS",
        "SOMATIC_SV_INVERSIONS_ALL",
        "SOMATIC_SV_INVERSIONS_IN_GENES",
        "SOMATIC_SV_PERCENT_BREAKENDS_IN_GENES",
        "SOMATIC_SV_PERCENT_DELETIONS_IN_GENES",
        "SOMATIC_SV_PERCENT_INSERTIONS_IN_GENES",
        "SOMATIC_SV_PERCENT_INVERSIONS_IN_GENES",
        "SOMATIC_SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES",
        "SOMATIC_SV_TANDEM_DUPLICATIONS",
        "SOMATIC_SV_TANDEM_DUPLICATIONS_ALL",
        "SOMATIC_SV_TANDEM_DUPLICATIONS_IN_GENES",
        "STOP_GAINED_SOMATIC_DELETIONS",
        "STOP_GAINED_SOMATIC_INSERTIONS",
        "STOP_GAINED_SOMATIC_SNVS",
        "STOP_LOST_SOMATIC_DELETIONS",
        "STOP_LOST_SOMATIC_INSERTIONS",
        "STOP_LOST_SOMATIC_SNVS",
        "SYNONYMOUS_SOMATIC_SNVS",
        "TUMOR_COVERAGE_AT_10X",
        "TUMOR_COVERAGE_AT_15X",
        "TUMOR_COVERAGE_AT_1X",
        "TUMOR_MEAN_COVERAGE",
        "TUMOR_MEDIAN_READ_LENGTH",
        "TUMOR_MEDIAN_READ_LENGTH_READ_1",
        "TUMOR_MEDIAN_READ_LENGTH_READ_2",
        "TUMOR_MISMATCH_RATE",
        "TUMOR_MISMATCH_RATE_READ_1",
        "TUMOR_MISMATCH_RATE_READ_2",
        "TUMOR_PERCENT_ALIGNED_BASES",
        "TUMOR_PERCENT_ALIGNED_BASES_READ_1",
        "TUMOR_PERCENT_ALIGNED_BASES_READ_2",
        "TUMOR_PERCENT_ALIGNED_READS",
        "TUMOR_PERCENT_ALIGNED_READ_1",
        "TUMOR_PERCENT_ALIGNED_READ_2",
        "TUMOR_PERCENT_AT_DROPOUT",
        "TUMOR_PERCENT_DUPLICATE_ALIGNED_READS",
        "TUMOR_PERCENT_DUPLICATE_PROPER_READ_PAIRS",
        "TUMOR_PERCENT_GC_DROPOUT",
        "TUMOR_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS",
        "TUMOR_PERCENT_Q25_BASES_READ_1",
        "TUMOR_PERCENT_Q25_BASES_READ_2",
        "TUMOR_PERCENT_Q30_BASES",
        "TUMOR_PERCENT_Q30_BASES_READ_1",
        "TUMOR_PERCENT_Q30_BASES_READ_2",
        "TUMOR_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES",
        "TUMOR_PERCENT_SOFT_CLIPPED_BASES",
        "TUMOR_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES",
        "TUMOR_READ_ENRICHMENT_AT_75_GC",
        "TUMOR_READ_ENRICHMENT_AT_80_GC",
        "TUMOR_SAMPLE_ID",
        "TUMOR_SAMPLE_NAME",
        "TUMOR_TOTAL_ALIGNED_BASES",
        "TUMOR_TOTAL_ALIGNED_BASES_READ_1",
        "TUMOR_TOTAL_ALIGNED_BASES_READ_2",
        "TUMOR_TOTAL_ALIGNED_READS",
        "TUMOR_TOTAL_ALIGNED_READ_1",
        "TUMOR_TOTAL_ALIGNED_READ_2",
        "TUMOR_TOTAL_ALIGNED_READ_PAIRS",
        "TUMOR_TOTAL_DUPLICATE_ALIGNED_READS",
        "TUMOR_TOTAL_DUPLICATE_PROPER_READ_PAIRS",
        "TUMOR_TOTAL_MAPQ_GT_10_READS",
        "TUMOR_TOTAL_PF_BASES",
        "TUMOR_TOTAL_PF_BASES_READ_1",
        "TUMOR_TOTAL_PF_BASES_READ_2",
        "TUMOR_TOTAL_PF_READS",
        "TUMOR_TOTAL_PF_READ_1",
        "TUMOR_TOTAL_PF_READ_2",
        "TUMOR_TOTAL_PROPER_READ_PAIRS",
        "TUMOR_UNIQUE_ALIGNED_READS",
        "illumina_version",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'ESTIMATED_CHROMOSOME_COUNT', 'ESTIMATED_PURITY',
        'FRAMESHIFT_SOMATIC_DELETIONS',
        'FRAMESHIFT_SOMATIC_INSERTIONS', 'MEAN_SOMATIC_SNV_FREQUENCY',
        'MEDIAN_SOMATIC_SNV_DISTANCE',
        'NON_SYNONYMOUS_SOMATIC_DELETIONS',
        'NON_SYNONYMOUS_SOMATIC_INSERTIONS',
        'NON_SYNONYMOUS_SOMATIC_SNVS', 'NORMAL_COVERAGE_AT_10X',
        'NORMAL_COVERAGE_AT_15X', 'NORMAL_COVERAGE_AT_1X',
        'NORMAL_MEAN_COVERAGE', 'NORMAL_MEDIAN_READ_LENGTH',
        'NORMAL_MEDIAN_READ_LENGTH_READ_1',
        'NORMAL_MEDIAN_READ_LENGTH_READ_2', 'NORMAL_MISMATCH_RATE',
        'NORMAL_MISMATCH_RATE_READ_1', 'NORMAL_MISMATCH_RATE_READ_2',
        'NORMAL_PERCENT_ALIGNED_BASES',
        'NORMAL_PERCENT_ALIGNED_BASES_READ_1',
        'NORMAL_PERCENT_ALIGNED_BASES_READ_2',
        'NORMAL_PERCENT_ALIGNED_READS',
        'NORMAL_PERCENT_ALIGNED_READ_1',
        'NORMAL_PERCENT_ALIGNED_READ_2', 'NORMAL_PERCENT_AT_DROPOUT',
        'NORMAL_PERCENT_DUPLICATE_ALIGNED_READS',
        'NORMAL_PERCENT_DUPLICATE_PROPER_READ_PAIRS',
        'NORMAL_PERCENT_GC_DROPOUT',
        'NORMAL_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS',
        'NORMAL_PERCENT_Q25_BASES_READ_1',
        'NORMAL_PERCENT_Q25_BASES_READ_2', 'NORMAL_PERCENT_Q30_BASES',
        'NORMAL_PERCENT_Q30_BASES_READ_1',
        'NORMAL_PERCENT_Q30_BASES_READ_2',
        'NORMAL_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES',
        'NORMAL_PERCENT_SOFT_CLIPPED_BASES',
        'NORMAL_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES',
        'NORMAL_READ_ENRICHMENT_AT_75_GC',
        'NORMAL_READ_ENRICHMENT_AT_80_GC', 'NORMAL_SAMPLE_ID',
        'NORMAL_SAMPLE_NAME', 'NORMAL_TOTAL_ALIGNED_BASES',
        'NORMAL_TOTAL_ALIGNED_BASES_READ_1',
        'NORMAL_TOTAL_ALIGNED_BASES_READ_2',
        'NORMAL_TOTAL_ALIGNED_READS', 'NORMAL_TOTAL_ALIGNED_READ_1',
        'NORMAL_TOTAL_ALIGNED_READ_2',
        'NORMAL_TOTAL_ALIGNED_READ_PAIRS',
        'NORMAL_TOTAL_DUPLICATE_ALIGNED_READS',
        'NORMAL_TOTAL_DUPLICATE_PROPER_READ_PAIRS',
        'NORMAL_TOTAL_MAPQ_GT_10_READS', 'NORMAL_TOTAL_PF_BASES',
        'NORMAL_TOTAL_PF_BASES_READ_1',
        'NORMAL_TOTAL_PF_BASES_READ_2', 'NORMAL_TOTAL_PF_READS',
        'NORMAL_TOTAL_PF_READ_1', 'NORMAL_TOTAL_PF_READ_2',
        'NORMAL_TOTAL_PROPER_READ_PAIRS',
        'NORMAL_UNIQUE_ALIGNED_READS', 'OVERALL_PLOIDY',
        'PERCENT_SOMATIC_CNVS_IN_GENES', 'SOMATIC_CNVS',
        'SOMATIC_CNVS_ALL', 'SOMATIC_CNVS_IN_GENES',
        'SOMATIC_DELETIONS', 'SOMATIC_DELETIONS_ALL',
        'SOMATIC_DELETIONS_IN_CODING_REGIONS',
        'SOMATIC_DELETIONS_IN_EXONS', 'SOMATIC_DELETIONS_IN_GENES',
        'SOMATIC_DELETIONS_IN_MATURE_MIRNA',
        'SOMATIC_DELETIONS_IN_SPLICE_SITE_REGIONS',
        'SOMATIC_DELETIONS_IN_UTR_REGIONS',
        'SOMATIC_DELETIONS_PERCENT_FOUND_IN_DBSNP', 'SOMATIC_INDELS',
        'SOMATIC_INDELS_ALL', 'SOMATIC_INDELS_PERCENT_FOUND_IN_DBSNP',
        'SOMATIC_INSERTIONS', 'SOMATIC_INSERTIONS_ALL',
        'SOMATIC_INSERTIONS_IN_CODING_REGIONS',
        'SOMATIC_INSERTIONS_IN_EXONS', 'SOMATIC_INSERTIONS_IN_GENES',
        'SOMATIC_INSERTIONS_IN_MATURE_MIRNA',
        'SOMATIC_INSERTIONS_IN_SPLICE_SITE_REGIONS',
        'SOMATIC_INSERTIONS_IN_UTR_REGIONS',
        'SOMATIC_INSERTIONS_PERCENT_FOUND_IN_DBSNP', 'SOMATIC_SNVS',
        'SOMATIC_SNVS_ALL', 'SOMATIC_SNVS_IN_CODING_REGIONS',
        'SOMATIC_SNVS_IN_EXONS', 'SOMATIC_SNVS_IN_GENES',
        'SOMATIC_SNVS_IN_MATURE_MIRNA',
        'SOMATIC_SNVS_IN_SPLICE_SITE_REGIONS',
        'SOMATIC_SNVS_IN_UTR_REGIONS',
        'SOMATIC_SNVS_PERCENT_FOUND_IN_DBSNP',
        'SOMATIC_SNV_TS_TV_RATIO', 'SOMATIC_SV_BREAKENDS',
        'SOMATIC_SV_BREAKENDS_ALL', 'SOMATIC_SV_BREAKENDS_IN_GENES',
        'SOMATIC_SV_DELETIONS', 'SOMATIC_SV_DELETIONS_ALL',
        'SOMATIC_SV_DELETIONS_IN_GENES', 'SOMATIC_SV_INSERTIONS',
        'SOMATIC_SV_INSERTIONS_ALL', 'SOMATIC_SV_INSERTIONS_IN_GENES',
        'SOMATIC_SV_INVERSIONS', 'SOMATIC_SV_INVERSIONS_ALL',
        'SOMATIC_SV_INVERSIONS_IN_GENES',
        'SOMATIC_SV_PERCENT_BREAKENDS_IN_GENES',
        'SOMATIC_SV_PERCENT_DELETIONS_IN_GENES',
        'SOMATIC_SV_PERCENT_INSERTIONS_IN_GENES',
        'SOMATIC_SV_PERCENT_INVERSIONS_IN_GENES',
        'SOMATIC_SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES',
        'SOMATIC_SV_TANDEM_DUPLICATIONS',
        'SOMATIC_SV_TANDEM_DUPLICATIONS_ALL',
        'SOMATIC_SV_TANDEM_DUPLICATIONS_IN_GENES',
        'STOP_GAINED_SOMATIC_DELETIONS',
        'STOP_GAINED_SOMATIC_INSERTIONS', 'STOP_GAINED_SOMATIC_SNVS',
        'STOP_LOST_SOMATIC_DELETIONS', 'STOP_LOST_SOMATIC_INSERTIONS',
        'STOP_LOST_SOMATIC_SNVS', 'SYNONYMOUS_SOMATIC_SNVS',
        'TUMOR_COVERAGE_AT_10X', 'TUMOR_COVERAGE_AT_15X',
        'TUMOR_COVERAGE_AT_1X', 'TUMOR_MEAN_COVERAGE',
        'TUMOR_MEDIAN_READ_LENGTH', 'TUMOR_MEDIAN_READ_LENGTH_READ_1',
        'TUMOR_MEDIAN_READ_LENGTH_READ_2', 'TUMOR_MISMATCH_RATE',
        'TUMOR_MISMATCH_RATE_READ_1', 'TUMOR_MISMATCH_RATE_READ_2',
        'TUMOR_PERCENT_ALIGNED_BASES',
        'TUMOR_PERCENT_ALIGNED_BASES_READ_1',
        'TUMOR_PERCENT_ALIGNED_BASES_READ_2',
        'TUMOR_PERCENT_ALIGNED_READS', 'TUMOR_PERCENT_ALIGNED_READ_1',
        'TUMOR_PERCENT_ALIGNED_READ_2', 'TUMOR_PERCENT_AT_DROPOUT',
        'TUMOR_PERCENT_DUPLICATE_ALIGNED_READS',
        'TUMOR_PERCENT_DUPLICATE_PROPER_READ_PAIRS',
        'TUMOR_PERCENT_GC_DROPOUT',
        'TUMOR_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS',
        'TUMOR_PERCENT_Q25_BASES_READ_1',
        'TUMOR_PERCENT_Q25_BASES_READ_2', 'TUMOR_PERCENT_Q30_BASES',
        'TUMOR_PERCENT_Q30_BASES_READ_1',
        'TUMOR_PERCENT_Q30_BASES_READ_2',
        'TUMOR_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES',
        'TUMOR_PERCENT_SOFT_CLIPPED_BASES',
        'TUMOR_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES',
        'TUMOR_READ_ENRICHMENT_AT_75_GC',
        'TUMOR_READ_ENRICHMENT_AT_80_GC', 'TUMOR_SAMPLE_ID',
        'TUMOR_SAMPLE_NAME', 'TUMOR_TOTAL_ALIGNED_BASES',
        'TUMOR_TOTAL_ALIGNED_BASES_READ_1',
        'TUMOR_TOTAL_ALIGNED_BASES_READ_2',
        'TUMOR_TOTAL_ALIGNED_READS', 'TUMOR_TOTAL_ALIGNED_READ_1',
        'TUMOR_TOTAL_ALIGNED_READ_2',
        'TUMOR_TOTAL_ALIGNED_READ_PAIRS',
        'TUMOR_TOTAL_DUPLICATE_ALIGNED_READS',
        'TUMOR_TOTAL_DUPLICATE_PROPER_READ_PAIRS',
        'TUMOR_TOTAL_MAPQ_GT_10_READS', 'TUMOR_TOTAL_PF_BASES',
        'TUMOR_TOTAL_PF_BASES_READ_1', 'TUMOR_TOTAL_PF_BASES_READ_2',
        'TUMOR_TOTAL_PF_READS', 'TUMOR_TOTAL_PF_READ_1',
        'TUMOR_TOTAL_PF_READ_2', 'TUMOR_TOTAL_PROPER_READ_PAIRS',
        'TUMOR_UNIQUE_ALIGNED_READS', 'illumina_version'
    ]

    def __init__(self, **kwargs):
        self.ESTIMATED_CHROMOSOME_COUNT = kwargs.get(
            'ESTIMATED_CHROMOSOME_COUNT', None)
        self.ESTIMATED_PURITY = kwargs.get(
            'ESTIMATED_PURITY', None)
        self.FRAMESHIFT_SOMATIC_DELETIONS = kwargs.get(
            'FRAMESHIFT_SOMATIC_DELETIONS', None)
        self.FRAMESHIFT_SOMATIC_INSERTIONS = kwargs.get(
            'FRAMESHIFT_SOMATIC_INSERTIONS', None)
        self.MEAN_SOMATIC_SNV_FREQUENCY = kwargs.get(
            'MEAN_SOMATIC_SNV_FREQUENCY', None)
        self.MEDIAN_SOMATIC_SNV_DISTANCE = kwargs.get(
            'MEDIAN_SOMATIC_SNV_DISTANCE', None)
        self.NON_SYNONYMOUS_SOMATIC_DELETIONS = kwargs.get(
            'NON_SYNONYMOUS_SOMATIC_DELETIONS', None)
        self.NON_SYNONYMOUS_SOMATIC_INSERTIONS = kwargs.get(
            'NON_SYNONYMOUS_SOMATIC_INSERTIONS', None)
        self.NON_SYNONYMOUS_SOMATIC_SNVS = kwargs.get(
            'NON_SYNONYMOUS_SOMATIC_SNVS', None)
        self.NORMAL_COVERAGE_AT_10X = kwargs.get(
            'NORMAL_COVERAGE_AT_10X', None)
        self.NORMAL_COVERAGE_AT_15X = kwargs.get(
            'NORMAL_COVERAGE_AT_15X', None)
        self.NORMAL_COVERAGE_AT_1X = kwargs.get(
            'NORMAL_COVERAGE_AT_1X', None)
        self.NORMAL_MEAN_COVERAGE = kwargs.get(
            'NORMAL_MEAN_COVERAGE', None)
        self.NORMAL_MEDIAN_READ_LENGTH = kwargs.get(
            'NORMAL_MEDIAN_READ_LENGTH', None)
        self.NORMAL_MEDIAN_READ_LENGTH_READ_1 = kwargs.get(
            'NORMAL_MEDIAN_READ_LENGTH_READ_1', None)
        self.NORMAL_MEDIAN_READ_LENGTH_READ_2 = kwargs.get(
            'NORMAL_MEDIAN_READ_LENGTH_READ_2', None)
        self.NORMAL_MISMATCH_RATE = kwargs.get(
            'NORMAL_MISMATCH_RATE', None)
        self.NORMAL_MISMATCH_RATE_READ_1 = kwargs.get(
            'NORMAL_MISMATCH_RATE_READ_1', None)
        self.NORMAL_MISMATCH_RATE_READ_2 = kwargs.get(
            'NORMAL_MISMATCH_RATE_READ_2', None)
        self.NORMAL_PERCENT_ALIGNED_BASES = kwargs.get(
            'NORMAL_PERCENT_ALIGNED_BASES', None)
        self.NORMAL_PERCENT_ALIGNED_BASES_READ_1 = kwargs.get(
            'NORMAL_PERCENT_ALIGNED_BASES_READ_1', None)
        self.NORMAL_PERCENT_ALIGNED_BASES_READ_2 = kwargs.get(
            'NORMAL_PERCENT_ALIGNED_BASES_READ_2', None)
        self.NORMAL_PERCENT_ALIGNED_READS = kwargs.get(
            'NORMAL_PERCENT_ALIGNED_READS', None)
        self.NORMAL_PERCENT_ALIGNED_READ_1 = kwargs.get(
            'NORMAL_PERCENT_ALIGNED_READ_1', None)
        self.NORMAL_PERCENT_ALIGNED_READ_2 = kwargs.get(
            'NORMAL_PERCENT_ALIGNED_READ_2', None)
        self.NORMAL_PERCENT_AT_DROPOUT = kwargs.get(
            'NORMAL_PERCENT_AT_DROPOUT', None)
        self.NORMAL_PERCENT_DUPLICATE_ALIGNED_READS = kwargs.get(
            'NORMAL_PERCENT_DUPLICATE_ALIGNED_READS', None)
        self.NORMAL_PERCENT_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'NORMAL_PERCENT_DUPLICATE_PROPER_READ_PAIRS', None)
        self.NORMAL_PERCENT_GC_DROPOUT = kwargs.get(
            'NORMAL_PERCENT_GC_DROPOUT', None)
        self.NORMAL_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS = kwargs.get(
            'NORMAL_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS', None)
        self.NORMAL_PERCENT_Q25_BASES_READ_1 = kwargs.get(
            'NORMAL_PERCENT_Q25_BASES_READ_1', None)
        self.NORMAL_PERCENT_Q25_BASES_READ_2 = kwargs.get(
            'NORMAL_PERCENT_Q25_BASES_READ_2', None)
        self.NORMAL_PERCENT_Q30_BASES = kwargs.get(
            'NORMAL_PERCENT_Q30_BASES', None)
        self.NORMAL_PERCENT_Q30_BASES_READ_1 = kwargs.get(
            'NORMAL_PERCENT_Q30_BASES_READ_1', None)
        self.NORMAL_PERCENT_Q30_BASES_READ_2 = kwargs.get(
            'NORMAL_PERCENT_Q30_BASES_READ_2', None)
        self.NORMAL_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES = kwargs.get(
            'NORMAL_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES', None)
        self.NORMAL_PERCENT_SOFT_CLIPPED_BASES = kwargs.get(
            'NORMAL_PERCENT_SOFT_CLIPPED_BASES', None)
        self.NORMAL_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES = kwargs.get(
            'NORMAL_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES', None)
        self.NORMAL_READ_ENRICHMENT_AT_75_GC = kwargs.get(
            'NORMAL_READ_ENRICHMENT_AT_75_GC', None)
        self.NORMAL_READ_ENRICHMENT_AT_80_GC = kwargs.get(
            'NORMAL_READ_ENRICHMENT_AT_80_GC', None)
        self.NORMAL_SAMPLE_ID = kwargs.get(
            'NORMAL_SAMPLE_ID', None)
        self.NORMAL_SAMPLE_NAME = kwargs.get(
            'NORMAL_SAMPLE_NAME', None)
        self.NORMAL_TOTAL_ALIGNED_BASES = kwargs.get(
            'NORMAL_TOTAL_ALIGNED_BASES', None)
        self.NORMAL_TOTAL_ALIGNED_BASES_READ_1 = kwargs.get(
            'NORMAL_TOTAL_ALIGNED_BASES_READ_1', None)
        self.NORMAL_TOTAL_ALIGNED_BASES_READ_2 = kwargs.get(
            'NORMAL_TOTAL_ALIGNED_BASES_READ_2', None)
        self.NORMAL_TOTAL_ALIGNED_READS = kwargs.get(
            'NORMAL_TOTAL_ALIGNED_READS', None)
        self.NORMAL_TOTAL_ALIGNED_READ_1 = kwargs.get(
            'NORMAL_TOTAL_ALIGNED_READ_1', None)
        self.NORMAL_TOTAL_ALIGNED_READ_2 = kwargs.get(
            'NORMAL_TOTAL_ALIGNED_READ_2', None)
        self.NORMAL_TOTAL_ALIGNED_READ_PAIRS = kwargs.get(
            'NORMAL_TOTAL_ALIGNED_READ_PAIRS', None)
        self.NORMAL_TOTAL_DUPLICATE_ALIGNED_READS = kwargs.get(
            'NORMAL_TOTAL_DUPLICATE_ALIGNED_READS', None)
        self.NORMAL_TOTAL_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'NORMAL_TOTAL_DUPLICATE_PROPER_READ_PAIRS', None)
        self.NORMAL_TOTAL_MAPQ_GT_10_READS = kwargs.get(
            'NORMAL_TOTAL_MAPQ_GT_10_READS', None)
        self.NORMAL_TOTAL_PF_BASES = kwargs.get(
            'NORMAL_TOTAL_PF_BASES', None)
        self.NORMAL_TOTAL_PF_BASES_READ_1 = kwargs.get(
            'NORMAL_TOTAL_PF_BASES_READ_1', None)
        self.NORMAL_TOTAL_PF_BASES_READ_2 = kwargs.get(
            'NORMAL_TOTAL_PF_BASES_READ_2', None)
        self.NORMAL_TOTAL_PF_READS = kwargs.get(
            'NORMAL_TOTAL_PF_READS', None)
        self.NORMAL_TOTAL_PF_READ_1 = kwargs.get(
            'NORMAL_TOTAL_PF_READ_1', None)
        self.NORMAL_TOTAL_PF_READ_2 = kwargs.get(
            'NORMAL_TOTAL_PF_READ_2', None)
        self.NORMAL_TOTAL_PROPER_READ_PAIRS = kwargs.get(
            'NORMAL_TOTAL_PROPER_READ_PAIRS', None)
        self.NORMAL_UNIQUE_ALIGNED_READS = kwargs.get(
            'NORMAL_UNIQUE_ALIGNED_READS', None)
        self.OVERALL_PLOIDY = kwargs.get(
            'OVERALL_PLOIDY', None)
        self.PERCENT_SOMATIC_CNVS_IN_GENES = kwargs.get(
            'PERCENT_SOMATIC_CNVS_IN_GENES', None)
        self.SOMATIC_CNVS = kwargs.get(
            'SOMATIC_CNVS', None)
        self.SOMATIC_CNVS_ALL = kwargs.get(
            'SOMATIC_CNVS_ALL', None)
        self.SOMATIC_CNVS_IN_GENES = kwargs.get(
            'SOMATIC_CNVS_IN_GENES', None)
        self.SOMATIC_DELETIONS = kwargs.get(
            'SOMATIC_DELETIONS', None)
        self.SOMATIC_DELETIONS_ALL = kwargs.get(
            'SOMATIC_DELETIONS_ALL', None)
        self.SOMATIC_DELETIONS_IN_CODING_REGIONS = kwargs.get(
            'SOMATIC_DELETIONS_IN_CODING_REGIONS', None)
        self.SOMATIC_DELETIONS_IN_EXONS = kwargs.get(
            'SOMATIC_DELETIONS_IN_EXONS', None)
        self.SOMATIC_DELETIONS_IN_GENES = kwargs.get(
            'SOMATIC_DELETIONS_IN_GENES', None)
        self.SOMATIC_DELETIONS_IN_MATURE_MIRNA = kwargs.get(
            'SOMATIC_DELETIONS_IN_MATURE_MIRNA', None)
        self.SOMATIC_DELETIONS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'SOMATIC_DELETIONS_IN_SPLICE_SITE_REGIONS', None)
        self.SOMATIC_DELETIONS_IN_UTR_REGIONS = kwargs.get(
            'SOMATIC_DELETIONS_IN_UTR_REGIONS', None)
        self.SOMATIC_DELETIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'SOMATIC_DELETIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.SOMATIC_INDELS = kwargs.get(
            'SOMATIC_INDELS', None)
        self.SOMATIC_INDELS_ALL = kwargs.get(
            'SOMATIC_INDELS_ALL', None)
        self.SOMATIC_INDELS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'SOMATIC_INDELS_PERCENT_FOUND_IN_DBSNP', None)
        self.SOMATIC_INSERTIONS = kwargs.get(
            'SOMATIC_INSERTIONS', None)
        self.SOMATIC_INSERTIONS_ALL = kwargs.get(
            'SOMATIC_INSERTIONS_ALL', None)
        self.SOMATIC_INSERTIONS_IN_CODING_REGIONS = kwargs.get(
            'SOMATIC_INSERTIONS_IN_CODING_REGIONS', None)
        self.SOMATIC_INSERTIONS_IN_EXONS = kwargs.get(
            'SOMATIC_INSERTIONS_IN_EXONS', None)
        self.SOMATIC_INSERTIONS_IN_GENES = kwargs.get(
            'SOMATIC_INSERTIONS_IN_GENES', None)
        self.SOMATIC_INSERTIONS_IN_MATURE_MIRNA = kwargs.get(
            'SOMATIC_INSERTIONS_IN_MATURE_MIRNA', None)
        self.SOMATIC_INSERTIONS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'SOMATIC_INSERTIONS_IN_SPLICE_SITE_REGIONS', None)
        self.SOMATIC_INSERTIONS_IN_UTR_REGIONS = kwargs.get(
            'SOMATIC_INSERTIONS_IN_UTR_REGIONS', None)
        self.SOMATIC_INSERTIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'SOMATIC_INSERTIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.SOMATIC_SNVS = kwargs.get(
            'SOMATIC_SNVS', None)
        self.SOMATIC_SNVS_ALL = kwargs.get(
            'SOMATIC_SNVS_ALL', None)
        self.SOMATIC_SNVS_IN_CODING_REGIONS = kwargs.get(
            'SOMATIC_SNVS_IN_CODING_REGIONS', None)
        self.SOMATIC_SNVS_IN_EXONS = kwargs.get(
            'SOMATIC_SNVS_IN_EXONS', None)
        self.SOMATIC_SNVS_IN_GENES = kwargs.get(
            'SOMATIC_SNVS_IN_GENES', None)
        self.SOMATIC_SNVS_IN_MATURE_MIRNA = kwargs.get(
            'SOMATIC_SNVS_IN_MATURE_MIRNA', None)
        self.SOMATIC_SNVS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'SOMATIC_SNVS_IN_SPLICE_SITE_REGIONS', None)
        self.SOMATIC_SNVS_IN_UTR_REGIONS = kwargs.get(
            'SOMATIC_SNVS_IN_UTR_REGIONS', None)
        self.SOMATIC_SNVS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'SOMATIC_SNVS_PERCENT_FOUND_IN_DBSNP', None)
        self.SOMATIC_SNV_TS_TV_RATIO = kwargs.get(
            'SOMATIC_SNV_TS_TV_RATIO', None)
        self.SOMATIC_SV_BREAKENDS = kwargs.get(
            'SOMATIC_SV_BREAKENDS', None)
        self.SOMATIC_SV_BREAKENDS_ALL = kwargs.get(
            'SOMATIC_SV_BREAKENDS_ALL', None)
        self.SOMATIC_SV_BREAKENDS_IN_GENES = kwargs.get(
            'SOMATIC_SV_BREAKENDS_IN_GENES', None)
        self.SOMATIC_SV_DELETIONS = kwargs.get(
            'SOMATIC_SV_DELETIONS', None)
        self.SOMATIC_SV_DELETIONS_ALL = kwargs.get(
            'SOMATIC_SV_DELETIONS_ALL', None)
        self.SOMATIC_SV_DELETIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_DELETIONS_IN_GENES', None)
        self.SOMATIC_SV_INSERTIONS = kwargs.get(
            'SOMATIC_SV_INSERTIONS', None)
        self.SOMATIC_SV_INSERTIONS_ALL = kwargs.get(
            'SOMATIC_SV_INSERTIONS_ALL', None)
        self.SOMATIC_SV_INSERTIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_INSERTIONS_IN_GENES', None)
        self.SOMATIC_SV_INVERSIONS = kwargs.get(
            'SOMATIC_SV_INVERSIONS', None)
        self.SOMATIC_SV_INVERSIONS_ALL = kwargs.get(
            'SOMATIC_SV_INVERSIONS_ALL', None)
        self.SOMATIC_SV_INVERSIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_INVERSIONS_IN_GENES', None)
        self.SOMATIC_SV_PERCENT_BREAKENDS_IN_GENES = kwargs.get(
            'SOMATIC_SV_PERCENT_BREAKENDS_IN_GENES', None)
        self.SOMATIC_SV_PERCENT_DELETIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_PERCENT_DELETIONS_IN_GENES', None)
        self.SOMATIC_SV_PERCENT_INSERTIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_PERCENT_INSERTIONS_IN_GENES', None)
        self.SOMATIC_SV_PERCENT_INVERSIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_PERCENT_INVERSIONS_IN_GENES', None)
        self.SOMATIC_SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES', None)
        self.SOMATIC_SV_TANDEM_DUPLICATIONS = kwargs.get(
            'SOMATIC_SV_TANDEM_DUPLICATIONS', None)
        self.SOMATIC_SV_TANDEM_DUPLICATIONS_ALL = kwargs.get(
            'SOMATIC_SV_TANDEM_DUPLICATIONS_ALL', None)
        self.SOMATIC_SV_TANDEM_DUPLICATIONS_IN_GENES = kwargs.get(
            'SOMATIC_SV_TANDEM_DUPLICATIONS_IN_GENES', None)
        self.STOP_GAINED_SOMATIC_DELETIONS = kwargs.get(
            'STOP_GAINED_SOMATIC_DELETIONS', None)
        self.STOP_GAINED_SOMATIC_INSERTIONS = kwargs.get(
            'STOP_GAINED_SOMATIC_INSERTIONS', None)
        self.STOP_GAINED_SOMATIC_SNVS = kwargs.get(
            'STOP_GAINED_SOMATIC_SNVS', None)
        self.STOP_LOST_SOMATIC_DELETIONS = kwargs.get(
            'STOP_LOST_SOMATIC_DELETIONS', None)
        self.STOP_LOST_SOMATIC_INSERTIONS = kwargs.get(
            'STOP_LOST_SOMATIC_INSERTIONS', None)
        self.STOP_LOST_SOMATIC_SNVS = kwargs.get(
            'STOP_LOST_SOMATIC_SNVS', None)
        self.SYNONYMOUS_SOMATIC_SNVS = kwargs.get(
            'SYNONYMOUS_SOMATIC_SNVS', None)
        self.TUMOR_COVERAGE_AT_10X = kwargs.get(
            'TUMOR_COVERAGE_AT_10X', None)
        self.TUMOR_COVERAGE_AT_15X = kwargs.get(
            'TUMOR_COVERAGE_AT_15X', None)
        self.TUMOR_COVERAGE_AT_1X = kwargs.get(
            'TUMOR_COVERAGE_AT_1X', None)
        self.TUMOR_MEAN_COVERAGE = kwargs.get(
            'TUMOR_MEAN_COVERAGE', None)
        self.TUMOR_MEDIAN_READ_LENGTH = kwargs.get(
            'TUMOR_MEDIAN_READ_LENGTH', None)
        self.TUMOR_MEDIAN_READ_LENGTH_READ_1 = kwargs.get(
            'TUMOR_MEDIAN_READ_LENGTH_READ_1', None)
        self.TUMOR_MEDIAN_READ_LENGTH_READ_2 = kwargs.get(
            'TUMOR_MEDIAN_READ_LENGTH_READ_2', None)
        self.TUMOR_MISMATCH_RATE = kwargs.get(
            'TUMOR_MISMATCH_RATE', None)
        self.TUMOR_MISMATCH_RATE_READ_1 = kwargs.get(
            'TUMOR_MISMATCH_RATE_READ_1', None)
        self.TUMOR_MISMATCH_RATE_READ_2 = kwargs.get(
            'TUMOR_MISMATCH_RATE_READ_2', None)
        self.TUMOR_PERCENT_ALIGNED_BASES = kwargs.get(
            'TUMOR_PERCENT_ALIGNED_BASES', None)
        self.TUMOR_PERCENT_ALIGNED_BASES_READ_1 = kwargs.get(
            'TUMOR_PERCENT_ALIGNED_BASES_READ_1', None)
        self.TUMOR_PERCENT_ALIGNED_BASES_READ_2 = kwargs.get(
            'TUMOR_PERCENT_ALIGNED_BASES_READ_2', None)
        self.TUMOR_PERCENT_ALIGNED_READS = kwargs.get(
            'TUMOR_PERCENT_ALIGNED_READS', None)
        self.TUMOR_PERCENT_ALIGNED_READ_1 = kwargs.get(
            'TUMOR_PERCENT_ALIGNED_READ_1', None)
        self.TUMOR_PERCENT_ALIGNED_READ_2 = kwargs.get(
            'TUMOR_PERCENT_ALIGNED_READ_2', None)
        self.TUMOR_PERCENT_AT_DROPOUT = kwargs.get(
            'TUMOR_PERCENT_AT_DROPOUT', None)
        self.TUMOR_PERCENT_DUPLICATE_ALIGNED_READS = kwargs.get(
            'TUMOR_PERCENT_DUPLICATE_ALIGNED_READS', None)
        self.TUMOR_PERCENT_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'TUMOR_PERCENT_DUPLICATE_PROPER_READ_PAIRS', None)
        self.TUMOR_PERCENT_GC_DROPOUT = kwargs.get(
            'TUMOR_PERCENT_GC_DROPOUT', None)
        self.TUMOR_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS = kwargs.get(
            'TUMOR_PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS', None)
        self.TUMOR_PERCENT_Q25_BASES_READ_1 = kwargs.get(
            'TUMOR_PERCENT_Q25_BASES_READ_1', None)
        self.TUMOR_PERCENT_Q25_BASES_READ_2 = kwargs.get(
            'TUMOR_PERCENT_Q25_BASES_READ_2', None)
        self.TUMOR_PERCENT_Q30_BASES = kwargs.get(
            'TUMOR_PERCENT_Q30_BASES', None)
        self.TUMOR_PERCENT_Q30_BASES_READ_1 = kwargs.get(
            'TUMOR_PERCENT_Q30_BASES_READ_1', None)
        self.TUMOR_PERCENT_Q30_BASES_READ_2 = kwargs.get(
            'TUMOR_PERCENT_Q30_BASES_READ_2', None)
        self.TUMOR_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES = kwargs.get(
            'TUMOR_PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES', None)
        self.TUMOR_PERCENT_SOFT_CLIPPED_BASES = kwargs.get(
            'TUMOR_PERCENT_SOFT_CLIPPED_BASES', None)
        self.TUMOR_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES = kwargs.get(
            'TUMOR_Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES', None)
        self.TUMOR_READ_ENRICHMENT_AT_75_GC = kwargs.get(
            'TUMOR_READ_ENRICHMENT_AT_75_GC', None)
        self.TUMOR_READ_ENRICHMENT_AT_80_GC = kwargs.get(
            'TUMOR_READ_ENRICHMENT_AT_80_GC', None)
        self.TUMOR_SAMPLE_ID = kwargs.get(
            'TUMOR_SAMPLE_ID', None)
        self.TUMOR_SAMPLE_NAME = kwargs.get(
            'TUMOR_SAMPLE_NAME', None)
        self.TUMOR_TOTAL_ALIGNED_BASES = kwargs.get(
            'TUMOR_TOTAL_ALIGNED_BASES', None)
        self.TUMOR_TOTAL_ALIGNED_BASES_READ_1 = kwargs.get(
            'TUMOR_TOTAL_ALIGNED_BASES_READ_1', None)
        self.TUMOR_TOTAL_ALIGNED_BASES_READ_2 = kwargs.get(
            'TUMOR_TOTAL_ALIGNED_BASES_READ_2', None)
        self.TUMOR_TOTAL_ALIGNED_READS = kwargs.get(
            'TUMOR_TOTAL_ALIGNED_READS', None)
        self.TUMOR_TOTAL_ALIGNED_READ_1 = kwargs.get(
            'TUMOR_TOTAL_ALIGNED_READ_1', None)
        self.TUMOR_TOTAL_ALIGNED_READ_2 = kwargs.get(
            'TUMOR_TOTAL_ALIGNED_READ_2', None)
        self.TUMOR_TOTAL_ALIGNED_READ_PAIRS = kwargs.get(
            'TUMOR_TOTAL_ALIGNED_READ_PAIRS', None)
        self.TUMOR_TOTAL_DUPLICATE_ALIGNED_READS = kwargs.get(
            'TUMOR_TOTAL_DUPLICATE_ALIGNED_READS', None)
        self.TUMOR_TOTAL_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'TUMOR_TOTAL_DUPLICATE_PROPER_READ_PAIRS', None)
        self.TUMOR_TOTAL_MAPQ_GT_10_READS = kwargs.get(
            'TUMOR_TOTAL_MAPQ_GT_10_READS', None)
        self.TUMOR_TOTAL_PF_BASES = kwargs.get(
            'TUMOR_TOTAL_PF_BASES', None)
        self.TUMOR_TOTAL_PF_BASES_READ_1 = kwargs.get(
            'TUMOR_TOTAL_PF_BASES_READ_1', None)
        self.TUMOR_TOTAL_PF_BASES_READ_2 = kwargs.get(
            'TUMOR_TOTAL_PF_BASES_READ_2', None)
        self.TUMOR_TOTAL_PF_READS = kwargs.get(
            'TUMOR_TOTAL_PF_READS', None)
        self.TUMOR_TOTAL_PF_READ_1 = kwargs.get(
            'TUMOR_TOTAL_PF_READ_1', None)
        self.TUMOR_TOTAL_PF_READ_2 = kwargs.get(
            'TUMOR_TOTAL_PF_READ_2', None)
        self.TUMOR_TOTAL_PROPER_READ_PAIRS = kwargs.get(
            'TUMOR_TOTAL_PROPER_READ_PAIRS', None)
        self.TUMOR_UNIQUE_ALIGNED_READS = kwargs.get(
            'TUMOR_UNIQUE_ALIGNED_READS', None)
        self.illumina_version = kwargs.get(
            'illumina_version', None)


class IlluminaSummaryCancerV4_CancerStats(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "IlluminaSummaryCancerV4_CancerStats", "namespace":
"org.gel.models.report.avro", "fields": [{"name": "SAMPLE_ID", "type": "string"}, {"name":
"SAMPLE_NAME", "type": "string"}, {"name": "RUN_FOLDER", "type": "string"}, {"name":
"REFERENCE_GENOME", "type": "string"}, {"name": "PAIRED_END", "type": "boolean"}, {"name":
"METRICS_VERSION", "type": "string"}, {"name": "METRICS_DELIVERABLE", "type": "string"}, {"name":
"DIVERSITY", "type": "long"}, {"name": "AUTOSOME_MEAN_COVERAGE", "type": "double"}, {"name":
"AUTOSOME_COVERAGE_AT_1X", "type": "double"}, {"name": "AUTOSOME_COVERAGE_AT_10X", "type":
"double"}, {"name": "AUTOSOME_COVERAGE_AT_15X", "type": "double"}, {"name":
"AUTOSOME_EXON_MEAN_COVERAGE", "type": "double"}, {"name": "AUTOSOME_EXON_COVERAGE_AT_1X", "type":
"double"}, {"name": "AUTOSOME_EXON_COVERAGE_AT_10X", "type": "double"}, {"name":
"AUTOSOME_EXON_COVERAGE_AT_15X", "type": "double"}, {"name":
"MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X", "type": "double"}, {"name":
"MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE", "type": "double"}, {"name":
"MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X", "type": "double"}, {"name": "TOTAL_PF_READS", "type":
"long"}, {"name": "TOTAL_PF_READ_1", "type": "long"}, {"name": "TOTAL_PF_READ_2", "type": "long"},
{"name": "MEDIAN_READ_LENGTH", "type": "string"}, {"name": "MEDIAN_READ_LENGTH_READ_1", "type":
"string"}, {"name": "MEDIAN_READ_LENGTH_READ_2", "type": "string"}, {"name":
"TOTAL_MAPQ_GT_10_READS", "type": "long"}, {"name": "TOTAL_ALIGNED_READS", "type": "long"}, {"name":
"UNIQUE_ALIGNED_READS", "type": "long"}, {"name": "TOTAL_DUPLICATE_ALIGNED_READS", "type": "long"},
{"name": "PERCENT_DUPLICATE_ALIGNED_READS", "type": "double"}, {"name": "TOTAL_ALIGNED_READ_1",
"type": "long"}, {"name": "TOTAL_ALIGNED_READ_2", "type": "long"}, {"name": "PERCENT_ALIGNED_READS",
"type": "double"}, {"name": "PERCENT_ALIGNED_READ_1", "type": "double"}, {"name":
"PERCENT_ALIGNED_READ_2", "type": "double"}, {"name": "TOTAL_PROPER_READ_PAIRS", "type": "long"},
{"name": "TOTAL_DUPLICATE_PROPER_READ_PAIRS", "type": "long"}, {"name":
"PERCENT_DUPLICATE_PROPER_READ_PAIRS", "type": "double"}, {"name":
"PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS", "type": "double"}, {"name": "TOTAL_ALIGNED_READ_PAIRS",
"type": "long"}, {"name": "PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES", "type": "double"},
{"name": "PERCENT_AT_DROPOUT", "type": "double"}, {"name": "PERCENT_GC_DROPOUT", "type": "double"},
{"name": "READ_ENRICHMENT_AT_75_GC", "type": "double"}, {"name": "READ_ENRICHMENT_AT_80_GC", "type":
"double"}, {"name": "TOTAL_PF_BASES", "type": "long"}, {"name": "TOTAL_PF_BASES_READ_1", "type":
"long"}, {"name": "TOTAL_PF_BASES_READ_2", "type": "long"}, {"name": "PERCENT_SOFT_CLIPPED_BASES",
"type": "double"}, {"name": "PERCENT_Q25_BASES_READ_1", "type": "double"}, {"name":
"PERCENT_Q25_BASES_READ_2", "type": "double"}, {"name": "PERCENT_Q30_BASES", "type": "double"},
{"name": "PERCENT_Q30_BASES_READ_1", "type": "double"}, {"name": "PERCENT_Q30_BASES_READ_2", "type":
"double"}, {"name": "TOTAL_ALIGNED_BASES", "type": "long"}, {"name": "TOTAL_ALIGNED_BASES_READ_1",
"type": "long"}, {"name": "TOTAL_ALIGNED_BASES_READ_2", "type": "long"}, {"name":
"PERCENT_ALIGNED_BASES", "type": "double"}, {"name": "PERCENT_ALIGNED_BASES_READ_1", "type":
"double"}, {"name": "PERCENT_ALIGNED_BASES_READ_2", "type": "double"}, {"name": "MISMATCH_RATE",
"type": "double"}, {"name": "MISMATCH_RATE_READ_1", "type": "double"}, {"name":
"MISMATCH_RATE_READ_2", "type": "double"}, {"name":
"Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES", "type": "long"}, {"name": "MEAN_COVERAGE",
"type": "double"}, {"name": "COVERAGE_AT_1X", "type": "double"}, {"name": "COVERAGE_AT_10X", "type":
"double"}, {"name": "COVERAGE_AT_15X", "type": "double"}, {"name": "FRAGMENT_LENGTH_MEDIAN", "type":
"long"}, {"name": "FRAGMENT_LENGTH_MIN", "type": "long"}, {"name": "FRAGMENT_LENGTH_MAX", "type":
"long"}, {"name": "FRAGMENT_LENGTH_SD", "type": "long"}, {"name": "PERCENT_OVERLAPPING_BASES",
"type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "AUTOSOME_COVERAGE_AT_10X",
        "AUTOSOME_COVERAGE_AT_15X",
        "AUTOSOME_COVERAGE_AT_1X",
        "AUTOSOME_EXON_COVERAGE_AT_10X",
        "AUTOSOME_EXON_COVERAGE_AT_15X",
        "AUTOSOME_EXON_COVERAGE_AT_1X",
        "AUTOSOME_EXON_MEAN_COVERAGE",
        "AUTOSOME_MEAN_COVERAGE",
        "COVERAGE_AT_10X",
        "COVERAGE_AT_15X",
        "COVERAGE_AT_1X",
        "DIVERSITY",
        "FRAGMENT_LENGTH_MAX",
        "FRAGMENT_LENGTH_MEDIAN",
        "FRAGMENT_LENGTH_MIN",
        "FRAGMENT_LENGTH_SD",
        "MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X",
        "MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X",
        "MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE",
        "MEAN_COVERAGE",
        "MEDIAN_READ_LENGTH",
        "MEDIAN_READ_LENGTH_READ_1",
        "MEDIAN_READ_LENGTH_READ_2",
        "METRICS_DELIVERABLE",
        "METRICS_VERSION",
        "MISMATCH_RATE",
        "MISMATCH_RATE_READ_1",
        "MISMATCH_RATE_READ_2",
        "PAIRED_END",
        "PERCENT_ALIGNED_BASES",
        "PERCENT_ALIGNED_BASES_READ_1",
        "PERCENT_ALIGNED_BASES_READ_2",
        "PERCENT_ALIGNED_READS",
        "PERCENT_ALIGNED_READ_1",
        "PERCENT_ALIGNED_READ_2",
        "PERCENT_AT_DROPOUT",
        "PERCENT_DUPLICATE_ALIGNED_READS",
        "PERCENT_DUPLICATE_PROPER_READ_PAIRS",
        "PERCENT_GC_DROPOUT",
        "PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS",
        "PERCENT_OVERLAPPING_BASES",
        "PERCENT_Q25_BASES_READ_1",
        "PERCENT_Q25_BASES_READ_2",
        "PERCENT_Q30_BASES",
        "PERCENT_Q30_BASES_READ_1",
        "PERCENT_Q30_BASES_READ_2",
        "PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES",
        "PERCENT_SOFT_CLIPPED_BASES",
        "Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES",
        "READ_ENRICHMENT_AT_75_GC",
        "READ_ENRICHMENT_AT_80_GC",
        "REFERENCE_GENOME",
        "RUN_FOLDER",
        "SAMPLE_ID",
        "SAMPLE_NAME",
        "TOTAL_ALIGNED_BASES",
        "TOTAL_ALIGNED_BASES_READ_1",
        "TOTAL_ALIGNED_BASES_READ_2",
        "TOTAL_ALIGNED_READS",
        "TOTAL_ALIGNED_READ_1",
        "TOTAL_ALIGNED_READ_2",
        "TOTAL_ALIGNED_READ_PAIRS",
        "TOTAL_DUPLICATE_ALIGNED_READS",
        "TOTAL_DUPLICATE_PROPER_READ_PAIRS",
        "TOTAL_MAPQ_GT_10_READS",
        "TOTAL_PF_BASES",
        "TOTAL_PF_BASES_READ_1",
        "TOTAL_PF_BASES_READ_2",
        "TOTAL_PF_READS",
        "TOTAL_PF_READ_1",
        "TOTAL_PF_READ_2",
        "TOTAL_PROPER_READ_PAIRS",
        "UNIQUE_ALIGNED_READS",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'AUTOSOME_COVERAGE_AT_10X', 'AUTOSOME_COVERAGE_AT_15X',
        'AUTOSOME_COVERAGE_AT_1X', 'AUTOSOME_EXON_COVERAGE_AT_10X',
        'AUTOSOME_EXON_COVERAGE_AT_15X',
        'AUTOSOME_EXON_COVERAGE_AT_1X', 'AUTOSOME_EXON_MEAN_COVERAGE',
        'AUTOSOME_MEAN_COVERAGE', 'COVERAGE_AT_10X',
        'COVERAGE_AT_15X', 'COVERAGE_AT_1X', 'DIVERSITY',
        'FRAGMENT_LENGTH_MAX', 'FRAGMENT_LENGTH_MEDIAN',
        'FRAGMENT_LENGTH_MIN', 'FRAGMENT_LENGTH_SD',
        'MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X',
        'MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X',
        'MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE', 'MEAN_COVERAGE',
        'MEDIAN_READ_LENGTH', 'MEDIAN_READ_LENGTH_READ_1',
        'MEDIAN_READ_LENGTH_READ_2', 'METRICS_DELIVERABLE',
        'METRICS_VERSION', 'MISMATCH_RATE', 'MISMATCH_RATE_READ_1',
        'MISMATCH_RATE_READ_2', 'PAIRED_END', 'PERCENT_ALIGNED_BASES',
        'PERCENT_ALIGNED_BASES_READ_1',
        'PERCENT_ALIGNED_BASES_READ_2', 'PERCENT_ALIGNED_READS',
        'PERCENT_ALIGNED_READ_1', 'PERCENT_ALIGNED_READ_2',
        'PERCENT_AT_DROPOUT', 'PERCENT_DUPLICATE_ALIGNED_READS',
        'PERCENT_DUPLICATE_PROPER_READ_PAIRS', 'PERCENT_GC_DROPOUT',
        'PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS',
        'PERCENT_OVERLAPPING_BASES', 'PERCENT_Q25_BASES_READ_1',
        'PERCENT_Q25_BASES_READ_2', 'PERCENT_Q30_BASES',
        'PERCENT_Q30_BASES_READ_1', 'PERCENT_Q30_BASES_READ_2',
        'PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES',
        'PERCENT_SOFT_CLIPPED_BASES',
        'Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES',
        'READ_ENRICHMENT_AT_75_GC', 'READ_ENRICHMENT_AT_80_GC',
        'REFERENCE_GENOME', 'RUN_FOLDER', 'SAMPLE_ID', 'SAMPLE_NAME',
        'TOTAL_ALIGNED_BASES', 'TOTAL_ALIGNED_BASES_READ_1',
        'TOTAL_ALIGNED_BASES_READ_2', 'TOTAL_ALIGNED_READS',
        'TOTAL_ALIGNED_READ_1', 'TOTAL_ALIGNED_READ_2',
        'TOTAL_ALIGNED_READ_PAIRS', 'TOTAL_DUPLICATE_ALIGNED_READS',
        'TOTAL_DUPLICATE_PROPER_READ_PAIRS', 'TOTAL_MAPQ_GT_10_READS',
        'TOTAL_PF_BASES', 'TOTAL_PF_BASES_READ_1',
        'TOTAL_PF_BASES_READ_2', 'TOTAL_PF_READS', 'TOTAL_PF_READ_1',
        'TOTAL_PF_READ_2', 'TOTAL_PROPER_READ_PAIRS',
        'UNIQUE_ALIGNED_READS'
    ]

    def __init__(self, **kwargs):
        self.AUTOSOME_COVERAGE_AT_10X = kwargs.get(
            'AUTOSOME_COVERAGE_AT_10X', None)
        self.AUTOSOME_COVERAGE_AT_15X = kwargs.get(
            'AUTOSOME_COVERAGE_AT_15X', None)
        self.AUTOSOME_COVERAGE_AT_1X = kwargs.get(
            'AUTOSOME_COVERAGE_AT_1X', None)
        self.AUTOSOME_EXON_COVERAGE_AT_10X = kwargs.get(
            'AUTOSOME_EXON_COVERAGE_AT_10X', None)
        self.AUTOSOME_EXON_COVERAGE_AT_15X = kwargs.get(
            'AUTOSOME_EXON_COVERAGE_AT_15X', None)
        self.AUTOSOME_EXON_COVERAGE_AT_1X = kwargs.get(
            'AUTOSOME_EXON_COVERAGE_AT_1X', None)
        self.AUTOSOME_EXON_MEAN_COVERAGE = kwargs.get(
            'AUTOSOME_EXON_MEAN_COVERAGE', None)
        self.AUTOSOME_MEAN_COVERAGE = kwargs.get(
            'AUTOSOME_MEAN_COVERAGE', None)
        self.COVERAGE_AT_10X = kwargs.get(
            'COVERAGE_AT_10X', None)
        self.COVERAGE_AT_15X = kwargs.get(
            'COVERAGE_AT_15X', None)
        self.COVERAGE_AT_1X = kwargs.get(
            'COVERAGE_AT_1X', None)
        self.DIVERSITY = kwargs.get(
            'DIVERSITY', None)
        self.FRAGMENT_LENGTH_MAX = kwargs.get(
            'FRAGMENT_LENGTH_MAX', None)
        self.FRAGMENT_LENGTH_MEDIAN = kwargs.get(
            'FRAGMENT_LENGTH_MEDIAN', None)
        self.FRAGMENT_LENGTH_MIN = kwargs.get(
            'FRAGMENT_LENGTH_MIN', None)
        self.FRAGMENT_LENGTH_SD = kwargs.get(
            'FRAGMENT_LENGTH_SD', None)
        self.MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X = kwargs.get(
            'MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X', None)
        self.MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X = kwargs.get(
            'MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X', None)
        self.MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE = kwargs.get(
            'MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE', None)
        self.MEAN_COVERAGE = kwargs.get(
            'MEAN_COVERAGE', None)
        self.MEDIAN_READ_LENGTH = kwargs.get(
            'MEDIAN_READ_LENGTH', None)
        self.MEDIAN_READ_LENGTH_READ_1 = kwargs.get(
            'MEDIAN_READ_LENGTH_READ_1', None)
        self.MEDIAN_READ_LENGTH_READ_2 = kwargs.get(
            'MEDIAN_READ_LENGTH_READ_2', None)
        self.METRICS_DELIVERABLE = kwargs.get(
            'METRICS_DELIVERABLE', None)
        self.METRICS_VERSION = kwargs.get(
            'METRICS_VERSION', None)
        self.MISMATCH_RATE = kwargs.get(
            'MISMATCH_RATE', None)
        self.MISMATCH_RATE_READ_1 = kwargs.get(
            'MISMATCH_RATE_READ_1', None)
        self.MISMATCH_RATE_READ_2 = kwargs.get(
            'MISMATCH_RATE_READ_2', None)
        self.PAIRED_END = kwargs.get(
            'PAIRED_END', None)
        self.PERCENT_ALIGNED_BASES = kwargs.get(
            'PERCENT_ALIGNED_BASES', None)
        self.PERCENT_ALIGNED_BASES_READ_1 = kwargs.get(
            'PERCENT_ALIGNED_BASES_READ_1', None)
        self.PERCENT_ALIGNED_BASES_READ_2 = kwargs.get(
            'PERCENT_ALIGNED_BASES_READ_2', None)
        self.PERCENT_ALIGNED_READS = kwargs.get(
            'PERCENT_ALIGNED_READS', None)
        self.PERCENT_ALIGNED_READ_1 = kwargs.get(
            'PERCENT_ALIGNED_READ_1', None)
        self.PERCENT_ALIGNED_READ_2 = kwargs.get(
            'PERCENT_ALIGNED_READ_2', None)
        self.PERCENT_AT_DROPOUT = kwargs.get(
            'PERCENT_AT_DROPOUT', None)
        self.PERCENT_DUPLICATE_ALIGNED_READS = kwargs.get(
            'PERCENT_DUPLICATE_ALIGNED_READS', None)
        self.PERCENT_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'PERCENT_DUPLICATE_PROPER_READ_PAIRS', None)
        self.PERCENT_GC_DROPOUT = kwargs.get(
            'PERCENT_GC_DROPOUT', None)
        self.PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS = kwargs.get(
            'PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS', None)
        self.PERCENT_OVERLAPPING_BASES = kwargs.get(
            'PERCENT_OVERLAPPING_BASES', None)
        self.PERCENT_Q25_BASES_READ_1 = kwargs.get(
            'PERCENT_Q25_BASES_READ_1', None)
        self.PERCENT_Q25_BASES_READ_2 = kwargs.get(
            'PERCENT_Q25_BASES_READ_2', None)
        self.PERCENT_Q30_BASES = kwargs.get(
            'PERCENT_Q30_BASES', None)
        self.PERCENT_Q30_BASES_READ_1 = kwargs.get(
            'PERCENT_Q30_BASES_READ_1', None)
        self.PERCENT_Q30_BASES_READ_2 = kwargs.get(
            'PERCENT_Q30_BASES_READ_2', None)
        self.PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES = kwargs.get(
            'PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES', None)
        self.PERCENT_SOFT_CLIPPED_BASES = kwargs.get(
            'PERCENT_SOFT_CLIPPED_BASES', None)
        self.Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES = kwargs.get(
            'Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES', None)
        self.READ_ENRICHMENT_AT_75_GC = kwargs.get(
            'READ_ENRICHMENT_AT_75_GC', None)
        self.READ_ENRICHMENT_AT_80_GC = kwargs.get(
            'READ_ENRICHMENT_AT_80_GC', None)
        self.REFERENCE_GENOME = kwargs.get(
            'REFERENCE_GENOME', None)
        self.RUN_FOLDER = kwargs.get(
            'RUN_FOLDER', None)
        self.SAMPLE_ID = kwargs.get(
            'SAMPLE_ID', None)
        self.SAMPLE_NAME = kwargs.get(
            'SAMPLE_NAME', None)
        self.TOTAL_ALIGNED_BASES = kwargs.get(
            'TOTAL_ALIGNED_BASES', None)
        self.TOTAL_ALIGNED_BASES_READ_1 = kwargs.get(
            'TOTAL_ALIGNED_BASES_READ_1', None)
        self.TOTAL_ALIGNED_BASES_READ_2 = kwargs.get(
            'TOTAL_ALIGNED_BASES_READ_2', None)
        self.TOTAL_ALIGNED_READS = kwargs.get(
            'TOTAL_ALIGNED_READS', None)
        self.TOTAL_ALIGNED_READ_1 = kwargs.get(
            'TOTAL_ALIGNED_READ_1', None)
        self.TOTAL_ALIGNED_READ_2 = kwargs.get(
            'TOTAL_ALIGNED_READ_2', None)
        self.TOTAL_ALIGNED_READ_PAIRS = kwargs.get(
            'TOTAL_ALIGNED_READ_PAIRS', None)
        self.TOTAL_DUPLICATE_ALIGNED_READS = kwargs.get(
            'TOTAL_DUPLICATE_ALIGNED_READS', None)
        self.TOTAL_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'TOTAL_DUPLICATE_PROPER_READ_PAIRS', None)
        self.TOTAL_MAPQ_GT_10_READS = kwargs.get(
            'TOTAL_MAPQ_GT_10_READS', None)
        self.TOTAL_PF_BASES = kwargs.get(
            'TOTAL_PF_BASES', None)
        self.TOTAL_PF_BASES_READ_1 = kwargs.get(
            'TOTAL_PF_BASES_READ_1', None)
        self.TOTAL_PF_BASES_READ_2 = kwargs.get(
            'TOTAL_PF_BASES_READ_2', None)
        self.TOTAL_PF_READS = kwargs.get(
            'TOTAL_PF_READS', None)
        self.TOTAL_PF_READ_1 = kwargs.get(
            'TOTAL_PF_READ_1', None)
        self.TOTAL_PF_READ_2 = kwargs.get(
            'TOTAL_PF_READ_2', None)
        self.TOTAL_PROPER_READ_PAIRS = kwargs.get(
            'TOTAL_PROPER_READ_PAIRS', None)
        self.UNIQUE_ALIGNED_READS = kwargs.get(
            'UNIQUE_ALIGNED_READS', None)


class IlluminaSummaryV1(ProtocolElement):
    """
    This is the summary provided by illumina for all V1 (old version)
    of their pipeline
    """
    _schemaSource = """
{"type": "record", "name": "IlluminaSummaryV1", "namespace": "org.gel.models.report.avro", "doc":
"", "fields": [{"name": "illumina_version", "type": {"type": "enum", "name": "IlluminaVersion",
"symbols": ["IlluminaSummaryV1", "IlluminaSummaryV2", "IlluminaSummaryV4",
"IlluminaSummaryCancerV2", "IlluminaSummaryCancerV4"]}}, {"name": "PERCENT_Q30_R1", "type":
"double"}, {"name": "PERCENT_Q30_R2", "type": "double"}, {"name": "PERCENT_ALIGNED_R1", "type":
"double"}, {"name": "INVERSIONCOUNT", "type": "double"}, {"name":
"DELETIONS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name": "PERCENT_ALIGNED_R2", "type":
"double"}, {"name": "INDELS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name": "STOPGAINEDINS",
"type": "double"}, {"name": "SYNONYMOUSSNVS", "type": "double"}, {"name": "SPLICESITEREGIONDEL",
"type": "double"}, {"name": "STOPLOSTSNVS", "type": "double"}, {"name": "SYNONYMOUSINS", "type":
"double"}, {"name": "SYNONYMOUSDEL", "type": "double"}, {"name": "NUMSNVSINCODINGREGIONS", "type":
"double"}, {"name": "STOPGAINEDSNVS", "type": "double"}, {"name": "SAMPLE_ID", "type": "string"},
{"name": "NUMDELINEXONS", "type": "double"}, {"name": "TANDEMDUPLICATIONPERCENTINGENES", "type":
"double"}, {"name": "SNVS_ALL", "type": "double"}, {"name": "CNVNUMBERINGENES", "type": "double"},
{"name": "CNVPERCENTINGENES", "type": "double"}, {"name": "NUMDELINGENES", "type": "double"},
{"name": "NUMSNVSINGENES", "type": "double"}, {"name": "INSERTIONS_PERCENT_FOUND_IN_DBSNP", "type":
"double"}, {"name": "SPLICESITEREGIONSNVS", "type": "double"}, {"name": "INSERTIONS", "type":
"double"}, {"name": "FRAGMENT_LENGTH_MIN", "type": "double"}, {"name": "STOPLOSTDEL", "type":
"double"}, {"name": "FRAGMENT_LENGTH_SD", "type": "double"}, {"name": "NONSYNONYMOUSINS", "type":
"double"}, {"name": "FRAGMENT_LENGTH_MAX", "type": "double"}, {"name": "FRAMESHIFTDEL", "type":
"double"}, {"name": "DELETIONPERCENTINGENES", "type": "double"}, {"name": "INDEL_HET_HOM_RATIO",
"type": "double"}, {"name": "UTRREGIONDEL", "type": "double"}, {"name": "RUNFOLDER", "type":
"string"}, {"name": "MATUREMIRNAINS", "type": "double"}, {"name": "INVERSIONNUMBERINGENES", "type":
"double"}, {"name": "NUMINSINCODINGREGIONS", "type": "double"}, {"name": "INSERTIONPERCENTINGENES",
"type": "double"}, {"name": "CALLABLE_AUTOSOMAL_FRACTION", "type": "double"}, {"name":
"NONSYNONYMOUSDEL", "type": "double"}, {"name": "FRAMESHIFTSNVS", "type": "double"}, {"name":
"SVSTATISTICSFLAG", "type": "string"}, {"name": "CNVCOUNT", "type": "double"}, {"name":
"NONSYNONYMOUSSNVS", "type": "double"}, {"name": "DELETIONCOUNT", "type": "double"}, {"name":
"CNVSTATISTICSFLAG", "type": "string"}, {"name": "INSERTIONNUMBERINGENES", "type": "double"},
{"name": "STOPGAINEDDEL", "type": "double"}, {"name": "MISMATCHRATE_R1", "type": "double"}, {"name":
"SNVS", "type": "double"}, {"name": "SNV_HET_HOM_RATIO", "type": "double"}, {"name":
"SPLICESITEREGIONINS", "type": "double"}, {"name": "NUMINSINEXONS", "type": "double"}, {"name":
"MISMATCHRATE_R2", "type": "double"}, {"name": "NUMDELINCODINGREGIONS", "type": "double"}, {"name":
"INSERTION_HET_HOM_RATIO", "type": "double"}, {"name": "NUMINSINGENES", "type": "double"}, {"name":
"SNV_TS_TV_RATIO", "type": "double"}, {"name": "TANDEMDUPLICATIONNUMBERINGENES", "type": "double"},
{"name": "SNVS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name": "UTRREGIONINS", "type":
"double"}, {"name": "MATUREMIRNASNVS", "type": "double"}, {"name": "DELETIONNUMBERINGENES", "type":
"double"}, {"name": "DELETIONS", "type": "double"}, {"name": "TOTALNUMBERINS", "type": "double"},
{"name": "TANDEMDUPLICATIONCOUNT", "type": "double"}, {"name": "PAIRED_END", "type": "string"},
{"name": "UTRREGIONSNVS", "type": "double"}, {"name": "INDELS", "type": "double"}, {"name":
"NUMSNVSINEXONS", "type": "double"}, {"name": "FRAMESHIFTINS", "type": "double"}, {"name":
"TOTALNUMBERSNVS", "type": "double"}, {"name": "DELETIONS_HET_HOM_RATIO", "type": "double"},
{"name": "FRAGMENT_LENGTH_MEDIAN", "type": "double"}, {"name": "REFERENCE_GENOME", "type":
"string"}, {"name": "SMALLVARIANTSTATISTICSFLAG", "type": "string"}, {"name": "TOTALNUMBERDEL",
"type": "double"}, {"name": "MATUREMIRNADEL", "type": "double"}, {"name": "INVERSIONPERCENTINGENES",
"type": "double"}, {"name": "STOPLOSTINS", "type": "double"}, {"name": "INSERTIONCOUNT", "type":
"double"}, {"name": "PERCENT_DUPLICATE_PAIRED_READS", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "CALLABLE_AUTOSOMAL_FRACTION",
        "CNVCOUNT",
        "CNVNUMBERINGENES",
        "CNVPERCENTINGENES",
        "CNVSTATISTICSFLAG",
        "DELETIONCOUNT",
        "DELETIONNUMBERINGENES",
        "DELETIONPERCENTINGENES",
        "DELETIONS",
        "DELETIONS_HET_HOM_RATIO",
        "DELETIONS_PERCENT_FOUND_IN_DBSNP",
        "FRAGMENT_LENGTH_MAX",
        "FRAGMENT_LENGTH_MEDIAN",
        "FRAGMENT_LENGTH_MIN",
        "FRAGMENT_LENGTH_SD",
        "FRAMESHIFTDEL",
        "FRAMESHIFTINS",
        "FRAMESHIFTSNVS",
        "INDELS",
        "INDELS_PERCENT_FOUND_IN_DBSNP",
        "INDEL_HET_HOM_RATIO",
        "INSERTIONCOUNT",
        "INSERTIONNUMBERINGENES",
        "INSERTIONPERCENTINGENES",
        "INSERTIONS",
        "INSERTIONS_PERCENT_FOUND_IN_DBSNP",
        "INSERTION_HET_HOM_RATIO",
        "INVERSIONCOUNT",
        "INVERSIONNUMBERINGENES",
        "INVERSIONPERCENTINGENES",
        "MATUREMIRNADEL",
        "MATUREMIRNAINS",
        "MATUREMIRNASNVS",
        "MISMATCHRATE_R1",
        "MISMATCHRATE_R2",
        "NONSYNONYMOUSDEL",
        "NONSYNONYMOUSINS",
        "NONSYNONYMOUSSNVS",
        "NUMDELINCODINGREGIONS",
        "NUMDELINEXONS",
        "NUMDELINGENES",
        "NUMINSINCODINGREGIONS",
        "NUMINSINEXONS",
        "NUMINSINGENES",
        "NUMSNVSINCODINGREGIONS",
        "NUMSNVSINEXONS",
        "NUMSNVSINGENES",
        "PAIRED_END",
        "PERCENT_ALIGNED_R1",
        "PERCENT_ALIGNED_R2",
        "PERCENT_DUPLICATE_PAIRED_READS",
        "PERCENT_Q30_R1",
        "PERCENT_Q30_R2",
        "REFERENCE_GENOME",
        "RUNFOLDER",
        "SAMPLE_ID",
        "SMALLVARIANTSTATISTICSFLAG",
        "SNVS",
        "SNVS_ALL",
        "SNVS_PERCENT_FOUND_IN_DBSNP",
        "SNV_HET_HOM_RATIO",
        "SNV_TS_TV_RATIO",
        "SPLICESITEREGIONDEL",
        "SPLICESITEREGIONINS",
        "SPLICESITEREGIONSNVS",
        "STOPGAINEDDEL",
        "STOPGAINEDINS",
        "STOPGAINEDSNVS",
        "STOPLOSTDEL",
        "STOPLOSTINS",
        "STOPLOSTSNVS",
        "SVSTATISTICSFLAG",
        "SYNONYMOUSDEL",
        "SYNONYMOUSINS",
        "SYNONYMOUSSNVS",
        "TANDEMDUPLICATIONCOUNT",
        "TANDEMDUPLICATIONNUMBERINGENES",
        "TANDEMDUPLICATIONPERCENTINGENES",
        "TOTALNUMBERDEL",
        "TOTALNUMBERINS",
        "TOTALNUMBERSNVS",
        "UTRREGIONDEL",
        "UTRREGIONINS",
        "UTRREGIONSNVS",
        "illumina_version",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'CALLABLE_AUTOSOMAL_FRACTION', 'CNVCOUNT', 'CNVNUMBERINGENES',
        'CNVPERCENTINGENES', 'CNVSTATISTICSFLAG', 'DELETIONCOUNT',
        'DELETIONNUMBERINGENES', 'DELETIONPERCENTINGENES',
        'DELETIONS', 'DELETIONS_HET_HOM_RATIO',
        'DELETIONS_PERCENT_FOUND_IN_DBSNP', 'FRAGMENT_LENGTH_MAX',
        'FRAGMENT_LENGTH_MEDIAN', 'FRAGMENT_LENGTH_MIN',
        'FRAGMENT_LENGTH_SD', 'FRAMESHIFTDEL', 'FRAMESHIFTINS',
        'FRAMESHIFTSNVS', 'INDELS', 'INDELS_PERCENT_FOUND_IN_DBSNP',
        'INDEL_HET_HOM_RATIO', 'INSERTIONCOUNT',
        'INSERTIONNUMBERINGENES', 'INSERTIONPERCENTINGENES',
        'INSERTIONS', 'INSERTIONS_PERCENT_FOUND_IN_DBSNP',
        'INSERTION_HET_HOM_RATIO', 'INVERSIONCOUNT',
        'INVERSIONNUMBERINGENES', 'INVERSIONPERCENTINGENES',
        'MATUREMIRNADEL', 'MATUREMIRNAINS', 'MATUREMIRNASNVS',
        'MISMATCHRATE_R1', 'MISMATCHRATE_R2', 'NONSYNONYMOUSDEL',
        'NONSYNONYMOUSINS', 'NONSYNONYMOUSSNVS',
        'NUMDELINCODINGREGIONS', 'NUMDELINEXONS', 'NUMDELINGENES',
        'NUMINSINCODINGREGIONS', 'NUMINSINEXONS', 'NUMINSINGENES',
        'NUMSNVSINCODINGREGIONS', 'NUMSNVSINEXONS', 'NUMSNVSINGENES',
        'PAIRED_END', 'PERCENT_ALIGNED_R1', 'PERCENT_ALIGNED_R2',
        'PERCENT_DUPLICATE_PAIRED_READS', 'PERCENT_Q30_R1',
        'PERCENT_Q30_R2', 'REFERENCE_GENOME', 'RUNFOLDER',
        'SAMPLE_ID', 'SMALLVARIANTSTATISTICSFLAG', 'SNVS', 'SNVS_ALL',
        'SNVS_PERCENT_FOUND_IN_DBSNP', 'SNV_HET_HOM_RATIO',
        'SNV_TS_TV_RATIO', 'SPLICESITEREGIONDEL',
        'SPLICESITEREGIONINS', 'SPLICESITEREGIONSNVS',
        'STOPGAINEDDEL', 'STOPGAINEDINS', 'STOPGAINEDSNVS',
        'STOPLOSTDEL', 'STOPLOSTINS', 'STOPLOSTSNVS',
        'SVSTATISTICSFLAG', 'SYNONYMOUSDEL', 'SYNONYMOUSINS',
        'SYNONYMOUSSNVS', 'TANDEMDUPLICATIONCOUNT',
        'TANDEMDUPLICATIONNUMBERINGENES',
        'TANDEMDUPLICATIONPERCENTINGENES', 'TOTALNUMBERDEL',
        'TOTALNUMBERINS', 'TOTALNUMBERSNVS', 'UTRREGIONDEL',
        'UTRREGIONINS', 'UTRREGIONSNVS', 'illumina_version'
    ]

    def __init__(self, **kwargs):
        self.CALLABLE_AUTOSOMAL_FRACTION = kwargs.get(
            'CALLABLE_AUTOSOMAL_FRACTION', None)
        self.CNVCOUNT = kwargs.get(
            'CNVCOUNT', None)
        self.CNVNUMBERINGENES = kwargs.get(
            'CNVNUMBERINGENES', None)
        self.CNVPERCENTINGENES = kwargs.get(
            'CNVPERCENTINGENES', None)
        self.CNVSTATISTICSFLAG = kwargs.get(
            'CNVSTATISTICSFLAG', None)
        self.DELETIONCOUNT = kwargs.get(
            'DELETIONCOUNT', None)
        self.DELETIONNUMBERINGENES = kwargs.get(
            'DELETIONNUMBERINGENES', None)
        self.DELETIONPERCENTINGENES = kwargs.get(
            'DELETIONPERCENTINGENES', None)
        self.DELETIONS = kwargs.get(
            'DELETIONS', None)
        self.DELETIONS_HET_HOM_RATIO = kwargs.get(
            'DELETIONS_HET_HOM_RATIO', None)
        self.DELETIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'DELETIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.FRAGMENT_LENGTH_MAX = kwargs.get(
            'FRAGMENT_LENGTH_MAX', None)
        self.FRAGMENT_LENGTH_MEDIAN = kwargs.get(
            'FRAGMENT_LENGTH_MEDIAN', None)
        self.FRAGMENT_LENGTH_MIN = kwargs.get(
            'FRAGMENT_LENGTH_MIN', None)
        self.FRAGMENT_LENGTH_SD = kwargs.get(
            'FRAGMENT_LENGTH_SD', None)
        self.FRAMESHIFTDEL = kwargs.get(
            'FRAMESHIFTDEL', None)
        self.FRAMESHIFTINS = kwargs.get(
            'FRAMESHIFTINS', None)
        self.FRAMESHIFTSNVS = kwargs.get(
            'FRAMESHIFTSNVS', None)
        self.INDELS = kwargs.get(
            'INDELS', None)
        self.INDELS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'INDELS_PERCENT_FOUND_IN_DBSNP', None)
        self.INDEL_HET_HOM_RATIO = kwargs.get(
            'INDEL_HET_HOM_RATIO', None)
        self.INSERTIONCOUNT = kwargs.get(
            'INSERTIONCOUNT', None)
        self.INSERTIONNUMBERINGENES = kwargs.get(
            'INSERTIONNUMBERINGENES', None)
        self.INSERTIONPERCENTINGENES = kwargs.get(
            'INSERTIONPERCENTINGENES', None)
        self.INSERTIONS = kwargs.get(
            'INSERTIONS', None)
        self.INSERTIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'INSERTIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.INSERTION_HET_HOM_RATIO = kwargs.get(
            'INSERTION_HET_HOM_RATIO', None)
        self.INVERSIONCOUNT = kwargs.get(
            'INVERSIONCOUNT', None)
        self.INVERSIONNUMBERINGENES = kwargs.get(
            'INVERSIONNUMBERINGENES', None)
        self.INVERSIONPERCENTINGENES = kwargs.get(
            'INVERSIONPERCENTINGENES', None)
        self.MATUREMIRNADEL = kwargs.get(
            'MATUREMIRNADEL', None)
        self.MATUREMIRNAINS = kwargs.get(
            'MATUREMIRNAINS', None)
        self.MATUREMIRNASNVS = kwargs.get(
            'MATUREMIRNASNVS', None)
        self.MISMATCHRATE_R1 = kwargs.get(
            'MISMATCHRATE_R1', None)
        self.MISMATCHRATE_R2 = kwargs.get(
            'MISMATCHRATE_R2', None)
        self.NONSYNONYMOUSDEL = kwargs.get(
            'NONSYNONYMOUSDEL', None)
        self.NONSYNONYMOUSINS = kwargs.get(
            'NONSYNONYMOUSINS', None)
        self.NONSYNONYMOUSSNVS = kwargs.get(
            'NONSYNONYMOUSSNVS', None)
        self.NUMDELINCODINGREGIONS = kwargs.get(
            'NUMDELINCODINGREGIONS', None)
        self.NUMDELINEXONS = kwargs.get(
            'NUMDELINEXONS', None)
        self.NUMDELINGENES = kwargs.get(
            'NUMDELINGENES', None)
        self.NUMINSINCODINGREGIONS = kwargs.get(
            'NUMINSINCODINGREGIONS', None)
        self.NUMINSINEXONS = kwargs.get(
            'NUMINSINEXONS', None)
        self.NUMINSINGENES = kwargs.get(
            'NUMINSINGENES', None)
        self.NUMSNVSINCODINGREGIONS = kwargs.get(
            'NUMSNVSINCODINGREGIONS', None)
        self.NUMSNVSINEXONS = kwargs.get(
            'NUMSNVSINEXONS', None)
        self.NUMSNVSINGENES = kwargs.get(
            'NUMSNVSINGENES', None)
        self.PAIRED_END = kwargs.get(
            'PAIRED_END', None)
        self.PERCENT_ALIGNED_R1 = kwargs.get(
            'PERCENT_ALIGNED_R1', None)
        self.PERCENT_ALIGNED_R2 = kwargs.get(
            'PERCENT_ALIGNED_R2', None)
        self.PERCENT_DUPLICATE_PAIRED_READS = kwargs.get(
            'PERCENT_DUPLICATE_PAIRED_READS', None)
        self.PERCENT_Q30_R1 = kwargs.get(
            'PERCENT_Q30_R1', None)
        self.PERCENT_Q30_R2 = kwargs.get(
            'PERCENT_Q30_R2', None)
        self.REFERENCE_GENOME = kwargs.get(
            'REFERENCE_GENOME', None)
        self.RUNFOLDER = kwargs.get(
            'RUNFOLDER', None)
        self.SAMPLE_ID = kwargs.get(
            'SAMPLE_ID', None)
        self.SMALLVARIANTSTATISTICSFLAG = kwargs.get(
            'SMALLVARIANTSTATISTICSFLAG', None)
        self.SNVS = kwargs.get(
            'SNVS', None)
        self.SNVS_ALL = kwargs.get(
            'SNVS_ALL', None)
        self.SNVS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'SNVS_PERCENT_FOUND_IN_DBSNP', None)
        self.SNV_HET_HOM_RATIO = kwargs.get(
            'SNV_HET_HOM_RATIO', None)
        self.SNV_TS_TV_RATIO = kwargs.get(
            'SNV_TS_TV_RATIO', None)
        self.SPLICESITEREGIONDEL = kwargs.get(
            'SPLICESITEREGIONDEL', None)
        self.SPLICESITEREGIONINS = kwargs.get(
            'SPLICESITEREGIONINS', None)
        self.SPLICESITEREGIONSNVS = kwargs.get(
            'SPLICESITEREGIONSNVS', None)
        self.STOPGAINEDDEL = kwargs.get(
            'STOPGAINEDDEL', None)
        self.STOPGAINEDINS = kwargs.get(
            'STOPGAINEDINS', None)
        self.STOPGAINEDSNVS = kwargs.get(
            'STOPGAINEDSNVS', None)
        self.STOPLOSTDEL = kwargs.get(
            'STOPLOSTDEL', None)
        self.STOPLOSTINS = kwargs.get(
            'STOPLOSTINS', None)
        self.STOPLOSTSNVS = kwargs.get(
            'STOPLOSTSNVS', None)
        self.SVSTATISTICSFLAG = kwargs.get(
            'SVSTATISTICSFLAG', None)
        self.SYNONYMOUSDEL = kwargs.get(
            'SYNONYMOUSDEL', None)
        self.SYNONYMOUSINS = kwargs.get(
            'SYNONYMOUSINS', None)
        self.SYNONYMOUSSNVS = kwargs.get(
            'SYNONYMOUSSNVS', None)
        self.TANDEMDUPLICATIONCOUNT = kwargs.get(
            'TANDEMDUPLICATIONCOUNT', None)
        self.TANDEMDUPLICATIONNUMBERINGENES = kwargs.get(
            'TANDEMDUPLICATIONNUMBERINGENES', None)
        self.TANDEMDUPLICATIONPERCENTINGENES = kwargs.get(
            'TANDEMDUPLICATIONPERCENTINGENES', None)
        self.TOTALNUMBERDEL = kwargs.get(
            'TOTALNUMBERDEL', None)
        self.TOTALNUMBERINS = kwargs.get(
            'TOTALNUMBERINS', None)
        self.TOTALNUMBERSNVS = kwargs.get(
            'TOTALNUMBERSNVS', None)
        self.UTRREGIONDEL = kwargs.get(
            'UTRREGIONDEL', None)
        self.UTRREGIONINS = kwargs.get(
            'UTRREGIONINS', None)
        self.UTRREGIONSNVS = kwargs.get(
            'UTRREGIONSNVS', None)
        self.illumina_version = kwargs.get(
            'illumina_version', None)


class IlluminaSummaryV2(ProtocolElement):
    """
    This is the summary provided by Illumina V2 germline samples
    """
    _schemaSource = """
{"type": "record", "name": "IlluminaSummaryV2", "namespace": "org.gel.models.report.avro", "doc":
"", "fields": [{"name": "illumina_version", "type": {"type": "enum", "name": "IlluminaVersion",
"symbols": ["IlluminaSummaryV1", "IlluminaSummaryV2", "IlluminaSummaryV4",
"IlluminaSummaryCancerV2", "IlluminaSummaryCancerV4"]}}, {"name": "STOP_LOST_SNVS", "type": "long"},
{"name": "SV_INSERTIONS_IN_GENES", "type": "long"}, {"name": "SAMPLE_ID", "type": "string"},
{"name": "DELETION_HET_HOM_RATIO", "type": "double"}, {"name": "STOP_GAINED_DELETIONS", "type":
"long"}, {"name": "INSERTIONS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"FRAGMENT_LENGTH_SD", "type": "long"}, {"name": "PERCENT_Q30_BASES_READ_1", "type": "double"},
{"name": "PERCENT_Q30_BASES_READ_2", "type": "double"}, {"name": "STOP_GAINED_SNVS", "type":
"long"}, {"name": "CNV_IN_GENES", "type": "long"}, {"name": "TOTAL_PF_READS", "type": "long"},
{"name": "DELETIONS_IN_GENES", "type": "long"}, {"name": "DELETIONS_IN_SPLICE_SITE_REGIONS", "type":
"long"}, {"name": "PERCENT_Q30_BASES", "type": "double"}, {"name": "TOTAL_ALIGNED_BASES_READ_1",
"type": "long"}, {"name": "TOTAL_ALIGNED_BASES_READ_2", "type": "long"}, {"name":
"SV_INVERSIONS_IN_GENES", "type": "long"}, {"name": "SNV_TS_TV_RATIO", "type": "double"}, {"name":
"INSERTIONS_IN_MATURE_MIRNA", "type": "long"}, {"name": "DELETIONS", "type": "long"}, {"name":
"PERCENT_ALIGNED_BASES_READ_1", "type": "double"}, {"name": "INDELS_ALL", "type": "long"}, {"name":
"PERCENT_ALIGNED_BASES_READ_2", "type": "double"}, {"name": "NON_SYNONYMOUS_DELETIONS", "type":
"long"}, {"name": "TOTAL_PF_BASES", "type": "long"}, {"name": "PERCENT_DUPLICATE_PAIRED_READS",
"type": "double"}, {"name": "PERCENT_ALIGNED_READ_2", "type": "double"}, {"name":
"PERCENT_ALIGNED_READ_1", "type": "double"}, {"name": "NON_SYNONYMOUS_SNVS", "type": "long"},
{"name": "SV_PERCENT_DELETIONS_IN_GENES", "type": "double"}, {"name": "MISMATCH_RATE_READ_1",
"type": "double"}, {"name": "SV_DELETIONS_IN_GENES", "type": "long"}, {"name":
"DELETIONS_IN_CODING_REGIONS", "type": "long"}, {"name": "INSERTIONS_IN_SPLICE_SITE_REGIONS",
"type": "long"}, {"name": "SV_DELETIONS", "type": "long"}, {"name": "INSERTIONS", "type": "long"},
{"name": "FRAGMENT_LENGTH_MIN", "type": "long"}, {"name": "FRAGMENT_LENGTH_MAX", "type": "long"},
{"name": "RUNFOLDER", "type": "string"}, {"name": "SAMPLE_NAME", "type": "string"}, {"name":
"INSERTIONS_IN_GENES", "type": "long"}, {"name": "SV_PERCENT_INVERSIONS_IN_GENES", "type":
"double"}, {"name": "DELETIONS_IN_EXONS", "type": "long"}, {"name": "STOP_LOST_DELETIONS", "type":
"long"}, {"name": "SNVS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"NON_SYNONYMOUS_INSERTIONS", "type": "long"}, {"name": "SNVS_IN_MATURE_MIRNA", "type": "long"},
{"name": "FRAMESHIFT_DELETIONS", "type": "long"}, {"name": "FRAGMENT_LENGTH_MEDIAN", "type":
"long"}, {"name": "SNVS_IN_UTR_REGIONS", "type": "long"}, {"name":
"SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES", "type": "double"}, {"name": "SV_INVERSIONS", "type":
"long"}, {"name": "SV_TANDEM_DUPLICATIONS_IN_GENES", "type": "long"}, {"name":
"DELETIONS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name": "SV_TANDEM_DUPLICATIONS", "type":
"long"}, {"name": "INDELS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"SV_PERCENT_INSERTIONS_IN_GENES", "type": "double"}, {"name": "STOP_GAINED_INSERTIONS", "type":
"long"}, {"name": "MISMATCH_RATE_READ_2", "type": "double"}, {"name": "DELETIONS_ALL", "type":
"long"}, {"name": "TOTAL_PF_BASES_READ_2", "type": "long"}, {"name": "TOTAL_PF_BASES_READ_1",
"type": "long"}, {"name": "INDEL_HET_HOM_RATIO", "type": "double"}, {"name": "SYNONYMOUS_SNVS",
"type": "long"}, {"name": "DELETIONS_IN_MATURE_MIRNA", "type": "long"}, {"name":
"SNV_HET_HOM_RATIO", "type": "double"}, {"name": "INSERTIONS_IN_CODING_REGIONS", "type": "long"},
{"name": "SNVS_IN_GENES", "type": "long"}, {"name": "STOP_LOST_INSERTIONS", "type": "long"},
{"name": "PAIRED_END", "type": "boolean"}, {"name": "DIVERSITY", "type": "long"}, {"name":
"REFERENCE_GENOME", "type": "string"}, {"name": "SNVS_IN_EXONS", "type": "long"}, {"name":
"SNVS_IN_SPLICE_SITE_REGIONS", "type": "long"}, {"name": "FRAMESHIFT_INSERTIONS", "type": "long"},
{"name": "INSERTIONS_ALL", "type": "long"}, {"name": "SNVS_ALL", "type": "long"}, {"name":
"INSERTIONS_IN_UTR_REGIONS", "type": "long"}, {"name": "CNV_PERCENT_IN_GENES", "type": "double"},
{"name": "MEAN_COVERAGE", "type": "double"}, {"name": "CNV", "type": "long"}, {"name":
"SV_INSERTIONS", "type": "long"}, {"name": "SNVS_IN_CODING_REGIONS", "type": "long"}, {"name":
"SNVS", "type": "long"}, {"name": "INSERTION_HET_HOM_RATIO", "type": "double"}, {"name": "INDELS",
"type": "long"}, {"name": "TOTAL_ALIGNED_READ_2", "type": "long"}, {"name": "TOTAL_ALIGNED_READ_1",
"type": "long"}, {"name": "DELETIONS_IN_UTR_REGIONS", "type": "long"}, {"name":
"INSERTIONS_IN_EXONS", "type": "long"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "CNV",
        "CNV_IN_GENES",
        "CNV_PERCENT_IN_GENES",
        "DELETIONS",
        "DELETIONS_ALL",
        "DELETIONS_IN_CODING_REGIONS",
        "DELETIONS_IN_EXONS",
        "DELETIONS_IN_GENES",
        "DELETIONS_IN_MATURE_MIRNA",
        "DELETIONS_IN_SPLICE_SITE_REGIONS",
        "DELETIONS_IN_UTR_REGIONS",
        "DELETIONS_PERCENT_FOUND_IN_DBSNP",
        "DELETION_HET_HOM_RATIO",
        "DIVERSITY",
        "FRAGMENT_LENGTH_MAX",
        "FRAGMENT_LENGTH_MEDIAN",
        "FRAGMENT_LENGTH_MIN",
        "FRAGMENT_LENGTH_SD",
        "FRAMESHIFT_DELETIONS",
        "FRAMESHIFT_INSERTIONS",
        "INDELS",
        "INDELS_ALL",
        "INDELS_PERCENT_FOUND_IN_DBSNP",
        "INDEL_HET_HOM_RATIO",
        "INSERTIONS",
        "INSERTIONS_ALL",
        "INSERTIONS_IN_CODING_REGIONS",
        "INSERTIONS_IN_EXONS",
        "INSERTIONS_IN_GENES",
        "INSERTIONS_IN_MATURE_MIRNA",
        "INSERTIONS_IN_SPLICE_SITE_REGIONS",
        "INSERTIONS_IN_UTR_REGIONS",
        "INSERTIONS_PERCENT_FOUND_IN_DBSNP",
        "INSERTION_HET_HOM_RATIO",
        "MEAN_COVERAGE",
        "MISMATCH_RATE_READ_1",
        "MISMATCH_RATE_READ_2",
        "NON_SYNONYMOUS_DELETIONS",
        "NON_SYNONYMOUS_INSERTIONS",
        "NON_SYNONYMOUS_SNVS",
        "PAIRED_END",
        "PERCENT_ALIGNED_BASES_READ_1",
        "PERCENT_ALIGNED_BASES_READ_2",
        "PERCENT_ALIGNED_READ_1",
        "PERCENT_ALIGNED_READ_2",
        "PERCENT_DUPLICATE_PAIRED_READS",
        "PERCENT_Q30_BASES",
        "PERCENT_Q30_BASES_READ_1",
        "PERCENT_Q30_BASES_READ_2",
        "REFERENCE_GENOME",
        "RUNFOLDER",
        "SAMPLE_ID",
        "SAMPLE_NAME",
        "SNVS",
        "SNVS_ALL",
        "SNVS_IN_CODING_REGIONS",
        "SNVS_IN_EXONS",
        "SNVS_IN_GENES",
        "SNVS_IN_MATURE_MIRNA",
        "SNVS_IN_SPLICE_SITE_REGIONS",
        "SNVS_IN_UTR_REGIONS",
        "SNVS_PERCENT_FOUND_IN_DBSNP",
        "SNV_HET_HOM_RATIO",
        "SNV_TS_TV_RATIO",
        "STOP_GAINED_DELETIONS",
        "STOP_GAINED_INSERTIONS",
        "STOP_GAINED_SNVS",
        "STOP_LOST_DELETIONS",
        "STOP_LOST_INSERTIONS",
        "STOP_LOST_SNVS",
        "SV_DELETIONS",
        "SV_DELETIONS_IN_GENES",
        "SV_INSERTIONS",
        "SV_INSERTIONS_IN_GENES",
        "SV_INVERSIONS",
        "SV_INVERSIONS_IN_GENES",
        "SV_PERCENT_DELETIONS_IN_GENES",
        "SV_PERCENT_INSERTIONS_IN_GENES",
        "SV_PERCENT_INVERSIONS_IN_GENES",
        "SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES",
        "SV_TANDEM_DUPLICATIONS",
        "SV_TANDEM_DUPLICATIONS_IN_GENES",
        "SYNONYMOUS_SNVS",
        "TOTAL_ALIGNED_BASES_READ_1",
        "TOTAL_ALIGNED_BASES_READ_2",
        "TOTAL_ALIGNED_READ_1",
        "TOTAL_ALIGNED_READ_2",
        "TOTAL_PF_BASES",
        "TOTAL_PF_BASES_READ_1",
        "TOTAL_PF_BASES_READ_2",
        "TOTAL_PF_READS",
        "illumina_version",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'CNV', 'CNV_IN_GENES', 'CNV_PERCENT_IN_GENES', 'DELETIONS',
        'DELETIONS_ALL', 'DELETIONS_IN_CODING_REGIONS',
        'DELETIONS_IN_EXONS', 'DELETIONS_IN_GENES',
        'DELETIONS_IN_MATURE_MIRNA',
        'DELETIONS_IN_SPLICE_SITE_REGIONS',
        'DELETIONS_IN_UTR_REGIONS',
        'DELETIONS_PERCENT_FOUND_IN_DBSNP', 'DELETION_HET_HOM_RATIO',
        'DIVERSITY', 'FRAGMENT_LENGTH_MAX', 'FRAGMENT_LENGTH_MEDIAN',
        'FRAGMENT_LENGTH_MIN', 'FRAGMENT_LENGTH_SD',
        'FRAMESHIFT_DELETIONS', 'FRAMESHIFT_INSERTIONS', 'INDELS',
        'INDELS_ALL', 'INDELS_PERCENT_FOUND_IN_DBSNP',
        'INDEL_HET_HOM_RATIO', 'INSERTIONS', 'INSERTIONS_ALL',
        'INSERTIONS_IN_CODING_REGIONS', 'INSERTIONS_IN_EXONS',
        'INSERTIONS_IN_GENES', 'INSERTIONS_IN_MATURE_MIRNA',
        'INSERTIONS_IN_SPLICE_SITE_REGIONS',
        'INSERTIONS_IN_UTR_REGIONS',
        'INSERTIONS_PERCENT_FOUND_IN_DBSNP',
        'INSERTION_HET_HOM_RATIO', 'MEAN_COVERAGE',
        'MISMATCH_RATE_READ_1', 'MISMATCH_RATE_READ_2',
        'NON_SYNONYMOUS_DELETIONS', 'NON_SYNONYMOUS_INSERTIONS',
        'NON_SYNONYMOUS_SNVS', 'PAIRED_END',
        'PERCENT_ALIGNED_BASES_READ_1',
        'PERCENT_ALIGNED_BASES_READ_2', 'PERCENT_ALIGNED_READ_1',
        'PERCENT_ALIGNED_READ_2', 'PERCENT_DUPLICATE_PAIRED_READS',
        'PERCENT_Q30_BASES', 'PERCENT_Q30_BASES_READ_1',
        'PERCENT_Q30_BASES_READ_2', 'REFERENCE_GENOME', 'RUNFOLDER',
        'SAMPLE_ID', 'SAMPLE_NAME', 'SNVS', 'SNVS_ALL',
        'SNVS_IN_CODING_REGIONS', 'SNVS_IN_EXONS', 'SNVS_IN_GENES',
        'SNVS_IN_MATURE_MIRNA', 'SNVS_IN_SPLICE_SITE_REGIONS',
        'SNVS_IN_UTR_REGIONS', 'SNVS_PERCENT_FOUND_IN_DBSNP',
        'SNV_HET_HOM_RATIO', 'SNV_TS_TV_RATIO',
        'STOP_GAINED_DELETIONS', 'STOP_GAINED_INSERTIONS',
        'STOP_GAINED_SNVS', 'STOP_LOST_DELETIONS',
        'STOP_LOST_INSERTIONS', 'STOP_LOST_SNVS', 'SV_DELETIONS',
        'SV_DELETIONS_IN_GENES', 'SV_INSERTIONS',
        'SV_INSERTIONS_IN_GENES', 'SV_INVERSIONS',
        'SV_INVERSIONS_IN_GENES', 'SV_PERCENT_DELETIONS_IN_GENES',
        'SV_PERCENT_INSERTIONS_IN_GENES',
        'SV_PERCENT_INVERSIONS_IN_GENES',
        'SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES',
        'SV_TANDEM_DUPLICATIONS', 'SV_TANDEM_DUPLICATIONS_IN_GENES',
        'SYNONYMOUS_SNVS', 'TOTAL_ALIGNED_BASES_READ_1',
        'TOTAL_ALIGNED_BASES_READ_2', 'TOTAL_ALIGNED_READ_1',
        'TOTAL_ALIGNED_READ_2', 'TOTAL_PF_BASES',
        'TOTAL_PF_BASES_READ_1', 'TOTAL_PF_BASES_READ_2',
        'TOTAL_PF_READS', 'illumina_version'
    ]

    def __init__(self, **kwargs):
        self.CNV = kwargs.get(
            'CNV', None)
        self.CNV_IN_GENES = kwargs.get(
            'CNV_IN_GENES', None)
        self.CNV_PERCENT_IN_GENES = kwargs.get(
            'CNV_PERCENT_IN_GENES', None)
        self.DELETIONS = kwargs.get(
            'DELETIONS', None)
        self.DELETIONS_ALL = kwargs.get(
            'DELETIONS_ALL', None)
        self.DELETIONS_IN_CODING_REGIONS = kwargs.get(
            'DELETIONS_IN_CODING_REGIONS', None)
        self.DELETIONS_IN_EXONS = kwargs.get(
            'DELETIONS_IN_EXONS', None)
        self.DELETIONS_IN_GENES = kwargs.get(
            'DELETIONS_IN_GENES', None)
        self.DELETIONS_IN_MATURE_MIRNA = kwargs.get(
            'DELETIONS_IN_MATURE_MIRNA', None)
        self.DELETIONS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'DELETIONS_IN_SPLICE_SITE_REGIONS', None)
        self.DELETIONS_IN_UTR_REGIONS = kwargs.get(
            'DELETIONS_IN_UTR_REGIONS', None)
        self.DELETIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'DELETIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.DELETION_HET_HOM_RATIO = kwargs.get(
            'DELETION_HET_HOM_RATIO', None)
        self.DIVERSITY = kwargs.get(
            'DIVERSITY', None)
        self.FRAGMENT_LENGTH_MAX = kwargs.get(
            'FRAGMENT_LENGTH_MAX', None)
        self.FRAGMENT_LENGTH_MEDIAN = kwargs.get(
            'FRAGMENT_LENGTH_MEDIAN', None)
        self.FRAGMENT_LENGTH_MIN = kwargs.get(
            'FRAGMENT_LENGTH_MIN', None)
        self.FRAGMENT_LENGTH_SD = kwargs.get(
            'FRAGMENT_LENGTH_SD', None)
        self.FRAMESHIFT_DELETIONS = kwargs.get(
            'FRAMESHIFT_DELETIONS', None)
        self.FRAMESHIFT_INSERTIONS = kwargs.get(
            'FRAMESHIFT_INSERTIONS', None)
        self.INDELS = kwargs.get(
            'INDELS', None)
        self.INDELS_ALL = kwargs.get(
            'INDELS_ALL', None)
        self.INDELS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'INDELS_PERCENT_FOUND_IN_DBSNP', None)
        self.INDEL_HET_HOM_RATIO = kwargs.get(
            'INDEL_HET_HOM_RATIO', None)
        self.INSERTIONS = kwargs.get(
            'INSERTIONS', None)
        self.INSERTIONS_ALL = kwargs.get(
            'INSERTIONS_ALL', None)
        self.INSERTIONS_IN_CODING_REGIONS = kwargs.get(
            'INSERTIONS_IN_CODING_REGIONS', None)
        self.INSERTIONS_IN_EXONS = kwargs.get(
            'INSERTIONS_IN_EXONS', None)
        self.INSERTIONS_IN_GENES = kwargs.get(
            'INSERTIONS_IN_GENES', None)
        self.INSERTIONS_IN_MATURE_MIRNA = kwargs.get(
            'INSERTIONS_IN_MATURE_MIRNA', None)
        self.INSERTIONS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'INSERTIONS_IN_SPLICE_SITE_REGIONS', None)
        self.INSERTIONS_IN_UTR_REGIONS = kwargs.get(
            'INSERTIONS_IN_UTR_REGIONS', None)
        self.INSERTIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'INSERTIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.INSERTION_HET_HOM_RATIO = kwargs.get(
            'INSERTION_HET_HOM_RATIO', None)
        self.MEAN_COVERAGE = kwargs.get(
            'MEAN_COVERAGE', None)
        self.MISMATCH_RATE_READ_1 = kwargs.get(
            'MISMATCH_RATE_READ_1', None)
        self.MISMATCH_RATE_READ_2 = kwargs.get(
            'MISMATCH_RATE_READ_2', None)
        self.NON_SYNONYMOUS_DELETIONS = kwargs.get(
            'NON_SYNONYMOUS_DELETIONS', None)
        self.NON_SYNONYMOUS_INSERTIONS = kwargs.get(
            'NON_SYNONYMOUS_INSERTIONS', None)
        self.NON_SYNONYMOUS_SNVS = kwargs.get(
            'NON_SYNONYMOUS_SNVS', None)
        self.PAIRED_END = kwargs.get(
            'PAIRED_END', None)
        self.PERCENT_ALIGNED_BASES_READ_1 = kwargs.get(
            'PERCENT_ALIGNED_BASES_READ_1', None)
        self.PERCENT_ALIGNED_BASES_READ_2 = kwargs.get(
            'PERCENT_ALIGNED_BASES_READ_2', None)
        self.PERCENT_ALIGNED_READ_1 = kwargs.get(
            'PERCENT_ALIGNED_READ_1', None)
        self.PERCENT_ALIGNED_READ_2 = kwargs.get(
            'PERCENT_ALIGNED_READ_2', None)
        self.PERCENT_DUPLICATE_PAIRED_READS = kwargs.get(
            'PERCENT_DUPLICATE_PAIRED_READS', None)
        self.PERCENT_Q30_BASES = kwargs.get(
            'PERCENT_Q30_BASES', None)
        self.PERCENT_Q30_BASES_READ_1 = kwargs.get(
            'PERCENT_Q30_BASES_READ_1', None)
        self.PERCENT_Q30_BASES_READ_2 = kwargs.get(
            'PERCENT_Q30_BASES_READ_2', None)
        self.REFERENCE_GENOME = kwargs.get(
            'REFERENCE_GENOME', None)
        self.RUNFOLDER = kwargs.get(
            'RUNFOLDER', None)
        self.SAMPLE_ID = kwargs.get(
            'SAMPLE_ID', None)
        self.SAMPLE_NAME = kwargs.get(
            'SAMPLE_NAME', None)
        self.SNVS = kwargs.get(
            'SNVS', None)
        self.SNVS_ALL = kwargs.get(
            'SNVS_ALL', None)
        self.SNVS_IN_CODING_REGIONS = kwargs.get(
            'SNVS_IN_CODING_REGIONS', None)
        self.SNVS_IN_EXONS = kwargs.get(
            'SNVS_IN_EXONS', None)
        self.SNVS_IN_GENES = kwargs.get(
            'SNVS_IN_GENES', None)
        self.SNVS_IN_MATURE_MIRNA = kwargs.get(
            'SNVS_IN_MATURE_MIRNA', None)
        self.SNVS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'SNVS_IN_SPLICE_SITE_REGIONS', None)
        self.SNVS_IN_UTR_REGIONS = kwargs.get(
            'SNVS_IN_UTR_REGIONS', None)
        self.SNVS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'SNVS_PERCENT_FOUND_IN_DBSNP', None)
        self.SNV_HET_HOM_RATIO = kwargs.get(
            'SNV_HET_HOM_RATIO', None)
        self.SNV_TS_TV_RATIO = kwargs.get(
            'SNV_TS_TV_RATIO', None)
        self.STOP_GAINED_DELETIONS = kwargs.get(
            'STOP_GAINED_DELETIONS', None)
        self.STOP_GAINED_INSERTIONS = kwargs.get(
            'STOP_GAINED_INSERTIONS', None)
        self.STOP_GAINED_SNVS = kwargs.get(
            'STOP_GAINED_SNVS', None)
        self.STOP_LOST_DELETIONS = kwargs.get(
            'STOP_LOST_DELETIONS', None)
        self.STOP_LOST_INSERTIONS = kwargs.get(
            'STOP_LOST_INSERTIONS', None)
        self.STOP_LOST_SNVS = kwargs.get(
            'STOP_LOST_SNVS', None)
        self.SV_DELETIONS = kwargs.get(
            'SV_DELETIONS', None)
        self.SV_DELETIONS_IN_GENES = kwargs.get(
            'SV_DELETIONS_IN_GENES', None)
        self.SV_INSERTIONS = kwargs.get(
            'SV_INSERTIONS', None)
        self.SV_INSERTIONS_IN_GENES = kwargs.get(
            'SV_INSERTIONS_IN_GENES', None)
        self.SV_INVERSIONS = kwargs.get(
            'SV_INVERSIONS', None)
        self.SV_INVERSIONS_IN_GENES = kwargs.get(
            'SV_INVERSIONS_IN_GENES', None)
        self.SV_PERCENT_DELETIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_DELETIONS_IN_GENES', None)
        self.SV_PERCENT_INSERTIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_INSERTIONS_IN_GENES', None)
        self.SV_PERCENT_INVERSIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_INVERSIONS_IN_GENES', None)
        self.SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES', None)
        self.SV_TANDEM_DUPLICATIONS = kwargs.get(
            'SV_TANDEM_DUPLICATIONS', None)
        self.SV_TANDEM_DUPLICATIONS_IN_GENES = kwargs.get(
            'SV_TANDEM_DUPLICATIONS_IN_GENES', None)
        self.SYNONYMOUS_SNVS = kwargs.get(
            'SYNONYMOUS_SNVS', None)
        self.TOTAL_ALIGNED_BASES_READ_1 = kwargs.get(
            'TOTAL_ALIGNED_BASES_READ_1', None)
        self.TOTAL_ALIGNED_BASES_READ_2 = kwargs.get(
            'TOTAL_ALIGNED_BASES_READ_2', None)
        self.TOTAL_ALIGNED_READ_1 = kwargs.get(
            'TOTAL_ALIGNED_READ_1', None)
        self.TOTAL_ALIGNED_READ_2 = kwargs.get(
            'TOTAL_ALIGNED_READ_2', None)
        self.TOTAL_PF_BASES = kwargs.get(
            'TOTAL_PF_BASES', None)
        self.TOTAL_PF_BASES_READ_1 = kwargs.get(
            'TOTAL_PF_BASES_READ_1', None)
        self.TOTAL_PF_BASES_READ_2 = kwargs.get(
            'TOTAL_PF_BASES_READ_2', None)
        self.TOTAL_PF_READS = kwargs.get(
            'TOTAL_PF_READS', None)
        self.illumina_version = kwargs.get(
            'illumina_version', None)


class IlluminaSummaryV4(ProtocolElement):
    """
    This is the summary provided by Illumina V4 germline samples in
    file SAMPLE_ID.summary.csv
    """
    _schemaSource = """
{"type": "record", "name": "IlluminaSummaryV4", "namespace": "org.gel.models.report.avro", "doc":
"", "fields": [{"name": "illumina_version", "type": {"type": "enum", "name": "IlluminaVersion",
"symbols": ["IlluminaSummaryV1", "IlluminaSummaryV2", "IlluminaSummaryV4",
"IlluminaSummaryCancerV2", "IlluminaSummaryCancerV4"]}}, {"name": "ARRAY_CONCORDANCE", "type":
["null", "double"]}, {"name": "ARRAY_CONCORDANCE_USAGE", "type": ["null", "double"]}, {"name":
"AUTOSOME_CALLABILITY", "type": "double"}, {"name": "AUTOSOME_COVERAGE_AT_10X", "type": "double"},
{"name": "AUTOSOME_COVERAGE_AT_15X", "type": "double"}, {"name": "AUTOSOME_COVERAGE_AT_1X", "type":
"double"}, {"name": "AUTOSOME_EXON_CALLABILITY", "type": "double"}, {"name":
"AUTOSOME_EXON_COVERAGE_AT_10X", "type": "double"}, {"name": "AUTOSOME_EXON_COVERAGE_AT_15X",
"type": "double"}, {"name": "AUTOSOME_EXON_COVERAGE_AT_1X", "type": "double"}, {"name":
"AUTOSOME_EXON_MEAN_COVERAGE", "type": "double"}, {"name": "AUTOSOME_MEAN_COVERAGE", "type":
"double"}, {"name": "CALLABILITY", "type": "double"}, {"name": "CNVS", "type": "long"}, {"name":
"CNVS_ALL", "type": "long"}, {"name": "CNVS_IN_GENES", "type": "long"}, {"name": "CONTAMINATION",
"type": "double"}, {"name": "COVERAGE_AT_10X", "type": "double"}, {"name": "COVERAGE_AT_15X",
"type": "double"}, {"name": "COVERAGE_AT_1X", "type": "double"}, {"name": "DELETIONS", "type":
"long"}, {"name": "DELETIONS_ALL", "type": "long"}, {"name": "DELETIONS_IN_CODING_REGIONS", "type":
"long"}, {"name": "DELETIONS_IN_EXONS", "type": "long"}, {"name": "DELETIONS_IN_GENES", "type":
"long"}, {"name": "DELETIONS_IN_MATURE_MIRNA", "type": "long"}, {"name":
"DELETIONS_IN_SPLICE_SITE_REGIONS", "type": "long"}, {"name": "DELETIONS_IN_UTR_REGIONS", "type":
"long"}, {"name": "DELETIONS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name":
"DELETION_HET_HOM_RATIO", "type": "double"}, {"name": "DIVERSITY", "type": "long"}, {"name":
"FRAGMENT_LENGTH_MAX", "type": "long"}, {"name": "FRAGMENT_LENGTH_MEDIAN", "type": "long"}, {"name":
"FRAGMENT_LENGTH_MIN", "type": "long"}, {"name": "FRAGMENT_LENGTH_SD", "type": "long"}, {"name":
"FRAMESHIFT_DELETIONS", "type": "long"}, {"name": "FRAMESHIFT_INSERTIONS", "type": "long"}, {"name":
"INDELS", "type": "long"}, {"name": "INDELS_ALL", "type": "long"}, {"name":
"INDELS_PERCENT_FOUND_IN_DBSNP", "type": "double"}, {"name": "INDEL_HET_HOM_RATIO", "type":
"double"}, {"name": "INSERTIONS", "type": "long"}, {"name": "INSERTIONS_ALL", "type": "long"},
{"name": "INSERTIONS_IN_CODING_REGIONS", "type": "long"}, {"name": "INSERTIONS_IN_EXONS", "type":
"long"}, {"name": "INSERTIONS_IN_GENES", "type": "long"}, {"name": "INSERTIONS_IN_MATURE_MIRNA",
"type": "long"}, {"name": "INSERTIONS_IN_SPLICE_SITE_REGIONS", "type": "long"}, {"name":
"INSERTIONS_IN_UTR_REGIONS", "type": "long"}, {"name": "INSERTIONS_PERCENT_FOUND_IN_DBSNP", "type":
"double"}, {"name": "INSERTION_HET_HOM_RATIO", "type": "double"}, {"name":
"MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X", "type": "double"}, {"name":
"MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X", "type": "double"}, {"name":
"MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE", "type": "double"}, {"name": "MEAN_COVERAGE", "type":
"double"}, {"name": "MEDIAN_READ_LENGTH", "type": "string"}, {"name": "MEDIAN_READ_LENGTH_READ_1",
"type": "string"}, {"name": "MEDIAN_READ_LENGTH_READ_2", "type": "string"}, {"name":
"METRICS_DELIVERABLE", "type": "string"}, {"name": "METRICS_VERSION", "type": "string"}, {"name":
"MISMATCH_RATE", "type": "double"}, {"name": "MISMATCH_RATE_READ_1", "type": "double"}, {"name":
"MISMATCH_RATE_READ_2", "type": "double"}, {"name": "NON_SYNONYMOUS_DELETIONS", "type": "long"},
{"name": "NON_SYNONYMOUS_INSERTIONS", "type": "long"}, {"name": "NON_SYNONYMOUS_SNVS", "type":
"long"}, {"name": "PAIRED_END", "type": "boolean"}, {"name": "PERCENT_ALIGNED_BASES", "type":
"double"}, {"name": "PERCENT_ALIGNED_BASES_READ_1", "type": "double"}, {"name":
"PERCENT_ALIGNED_BASES_READ_2", "type": "double"}, {"name": "PERCENT_ALIGNED_READS", "type":
"double"}, {"name": "PERCENT_ALIGNED_READ_1", "type": "double"}, {"name": "PERCENT_ALIGNED_READ_2",
"type": "double"}, {"name": "PERCENT_AT_DROPOUT", "type": "double"}, {"name":
"PERCENT_CNVS_IN_GENES", "type": "double"}, {"name": "PERCENT_DUPLICATE_ALIGNED_READS", "type":
"double"}, {"name": "PERCENT_DUPLICATE_PROPER_READ_PAIRS", "type": "double"}, {"name":
"PERCENT_GC_DROPOUT", "type": "double"}, {"name": "PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS",
"type": "double"}, {"name": "PERCENT_OVERLAPPING_BASES", "type": "double"}, {"name":
"PERCENT_Q25_BASES_READ_1", "type": "double"}, {"name": "PERCENT_Q25_BASES_READ_2", "type":
"double"}, {"name": "PERCENT_Q30_BASES", "type": "double"}, {"name": "PERCENT_Q30_BASES_READ_1",
"type": "double"}, {"name": "PERCENT_Q30_BASES_READ_2", "type": "double"}, {"name":
"PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES", "type": "double"}, {"name":
"PERCENT_SOFT_CLIPPED_BASES", "type": "double"}, {"name":
"Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES", "type": "long"}, {"name":
"READ_ENRICHMENT_AT_75_GC", "type": "double"}, {"name": "READ_ENRICHMENT_AT_80_GC", "type":
"double"}, {"name": "REFERENCE_GENOME", "type": "string"}, {"name": "RUN_FOLDER", "type": "string"},
{"name": "SAMPLE_ID", "type": "string"}, {"name": "SAMPLE_NAME", "type": "string"}, {"name": "SNVS",
"type": "long"}, {"name": "SNVS_ALL", "type": "long"}, {"name": "SNVS_IN_CODING_REGIONS", "type":
"long"}, {"name": "SNVS_IN_EXONS", "type": "long"}, {"name": "SNVS_IN_GENES", "type": "long"},
{"name": "SNVS_IN_MATURE_MIRNA", "type": "long"}, {"name": "SNVS_IN_SPLICE_SITE_REGIONS", "type":
"long"}, {"name": "SNVS_IN_UTR_REGIONS", "type": "long"}, {"name": "SNVS_PERCENT_FOUND_IN_DBSNP",
"type": "double"}, {"name": "SNV_HET_HOM_RATIO", "type": "double"}, {"name": "SNV_TS_TV_RATIO",
"type": "double"}, {"name": "STOP_GAINED_DELETIONS", "type": "long"}, {"name":
"STOP_GAINED_INSERTIONS", "type": "long"}, {"name": "STOP_GAINED_SNVS", "type": "long"}, {"name":
"STOP_LOST_DELETIONS", "type": "long"}, {"name": "STOP_LOST_INSERTIONS", "type": "long"}, {"name":
"STOP_LOST_SNVS", "type": "long"}, {"name": "SV_BREAKENDS", "type": "long"}, {"name":
"SV_BREAKENDS_ALL", "type": "long"}, {"name": "SV_BREAKENDS_IN_GENES", "type": "long"}, {"name":
"SV_DELETIONS", "type": "long"}, {"name": "SV_DELETIONS_ALL", "type": "long"}, {"name":
"SV_DELETIONS_IN_GENES", "type": "long"}, {"name": "SV_INSERTIONS", "type": "long"}, {"name":
"SV_INSERTIONS_ALL", "type": "long"}, {"name": "SV_INSERTIONS_IN_GENES", "type": "long"}, {"name":
"SV_INVERSIONS", "type": "long"}, {"name": "SV_INVERSIONS_ALL", "type": "long"}, {"name":
"SV_INVERSIONS_IN_GENES", "type": "long"}, {"name": "SV_PERCENT_BREAKENDS_IN_GENES", "type":
"double"}, {"name": "SV_PERCENT_DELETIONS_IN_GENES", "type": "double"}, {"name":
"SV_PERCENT_INSERTIONS_IN_GENES", "type": "double"}, {"name": "SV_PERCENT_INVERSIONS_IN_GENES",
"type": "double"}, {"name": "SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES", "type": "double"}, {"name":
"SV_TANDEM_DUPLICATIONS", "type": "long"}, {"name": "SV_TANDEM_DUPLICATIONS_ALL", "type": "long"},
{"name": "SV_TANDEM_DUPLICATIONS_IN_GENES", "type": "long"}, {"name": "SYNONYMOUS_SNVS", "type":
"long"}, {"name": "TOTAL_ALIGNED_BASES", "type": "long"}, {"name": "TOTAL_ALIGNED_BASES_READ_1",
"type": "long"}, {"name": "TOTAL_ALIGNED_BASES_READ_2", "type": "long"}, {"name":
"TOTAL_ALIGNED_READS", "type": "long"}, {"name": "TOTAL_ALIGNED_READ_1", "type": "long"}, {"name":
"TOTAL_ALIGNED_READ_2", "type": "long"}, {"name": "TOTAL_ALIGNED_READ_PAIRS", "type": "long"},
{"name": "TOTAL_DUPLICATE_ALIGNED_READS", "type": "long"}, {"name":
"TOTAL_DUPLICATE_PROPER_READ_PAIRS", "type": "long"}, {"name": "TOTAL_MAPQ_GT_10_READS", "type":
"long"}, {"name": "TOTAL_PF_BASES", "type": "long"}, {"name": "TOTAL_PF_BASES_READ_1", "type":
"long"}, {"name": "TOTAL_PF_BASES_READ_2", "type": "long"}, {"name": "TOTAL_PF_READS", "type":
"long"}, {"name": "TOTAL_PF_READ_1", "type": "long"}, {"name": "TOTAL_PF_READ_2", "type": "long"},
{"name": "TOTAL_PROPER_READ_PAIRS", "type": "long"}, {"name": "UNIQUE_ALIGNED_READS", "type":
"long"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "ARRAY_CONCORDANCE",
        "ARRAY_CONCORDANCE_USAGE",
        "AUTOSOME_CALLABILITY",
        "AUTOSOME_COVERAGE_AT_10X",
        "AUTOSOME_COVERAGE_AT_15X",
        "AUTOSOME_COVERAGE_AT_1X",
        "AUTOSOME_EXON_CALLABILITY",
        "AUTOSOME_EXON_COVERAGE_AT_10X",
        "AUTOSOME_EXON_COVERAGE_AT_15X",
        "AUTOSOME_EXON_COVERAGE_AT_1X",
        "AUTOSOME_EXON_MEAN_COVERAGE",
        "AUTOSOME_MEAN_COVERAGE",
        "CALLABILITY",
        "CNVS",
        "CNVS_ALL",
        "CNVS_IN_GENES",
        "CONTAMINATION",
        "COVERAGE_AT_10X",
        "COVERAGE_AT_15X",
        "COVERAGE_AT_1X",
        "DELETIONS",
        "DELETIONS_ALL",
        "DELETIONS_IN_CODING_REGIONS",
        "DELETIONS_IN_EXONS",
        "DELETIONS_IN_GENES",
        "DELETIONS_IN_MATURE_MIRNA",
        "DELETIONS_IN_SPLICE_SITE_REGIONS",
        "DELETIONS_IN_UTR_REGIONS",
        "DELETIONS_PERCENT_FOUND_IN_DBSNP",
        "DELETION_HET_HOM_RATIO",
        "DIVERSITY",
        "FRAGMENT_LENGTH_MAX",
        "FRAGMENT_LENGTH_MEDIAN",
        "FRAGMENT_LENGTH_MIN",
        "FRAGMENT_LENGTH_SD",
        "FRAMESHIFT_DELETIONS",
        "FRAMESHIFT_INSERTIONS",
        "INDELS",
        "INDELS_ALL",
        "INDELS_PERCENT_FOUND_IN_DBSNP",
        "INDEL_HET_HOM_RATIO",
        "INSERTIONS",
        "INSERTIONS_ALL",
        "INSERTIONS_IN_CODING_REGIONS",
        "INSERTIONS_IN_EXONS",
        "INSERTIONS_IN_GENES",
        "INSERTIONS_IN_MATURE_MIRNA",
        "INSERTIONS_IN_SPLICE_SITE_REGIONS",
        "INSERTIONS_IN_UTR_REGIONS",
        "INSERTIONS_PERCENT_FOUND_IN_DBSNP",
        "INSERTION_HET_HOM_RATIO",
        "MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X",
        "MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X",
        "MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE",
        "MEAN_COVERAGE",
        "MEDIAN_READ_LENGTH",
        "MEDIAN_READ_LENGTH_READ_1",
        "MEDIAN_READ_LENGTH_READ_2",
        "METRICS_DELIVERABLE",
        "METRICS_VERSION",
        "MISMATCH_RATE",
        "MISMATCH_RATE_READ_1",
        "MISMATCH_RATE_READ_2",
        "NON_SYNONYMOUS_DELETIONS",
        "NON_SYNONYMOUS_INSERTIONS",
        "NON_SYNONYMOUS_SNVS",
        "PAIRED_END",
        "PERCENT_ALIGNED_BASES",
        "PERCENT_ALIGNED_BASES_READ_1",
        "PERCENT_ALIGNED_BASES_READ_2",
        "PERCENT_ALIGNED_READS",
        "PERCENT_ALIGNED_READ_1",
        "PERCENT_ALIGNED_READ_2",
        "PERCENT_AT_DROPOUT",
        "PERCENT_CNVS_IN_GENES",
        "PERCENT_DUPLICATE_ALIGNED_READS",
        "PERCENT_DUPLICATE_PROPER_READ_PAIRS",
        "PERCENT_GC_DROPOUT",
        "PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS",
        "PERCENT_OVERLAPPING_BASES",
        "PERCENT_Q25_BASES_READ_1",
        "PERCENT_Q25_BASES_READ_2",
        "PERCENT_Q30_BASES",
        "PERCENT_Q30_BASES_READ_1",
        "PERCENT_Q30_BASES_READ_2",
        "PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES",
        "PERCENT_SOFT_CLIPPED_BASES",
        "Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES",
        "READ_ENRICHMENT_AT_75_GC",
        "READ_ENRICHMENT_AT_80_GC",
        "REFERENCE_GENOME",
        "RUN_FOLDER",
        "SAMPLE_ID",
        "SAMPLE_NAME",
        "SNVS",
        "SNVS_ALL",
        "SNVS_IN_CODING_REGIONS",
        "SNVS_IN_EXONS",
        "SNVS_IN_GENES",
        "SNVS_IN_MATURE_MIRNA",
        "SNVS_IN_SPLICE_SITE_REGIONS",
        "SNVS_IN_UTR_REGIONS",
        "SNVS_PERCENT_FOUND_IN_DBSNP",
        "SNV_HET_HOM_RATIO",
        "SNV_TS_TV_RATIO",
        "STOP_GAINED_DELETIONS",
        "STOP_GAINED_INSERTIONS",
        "STOP_GAINED_SNVS",
        "STOP_LOST_DELETIONS",
        "STOP_LOST_INSERTIONS",
        "STOP_LOST_SNVS",
        "SV_BREAKENDS",
        "SV_BREAKENDS_ALL",
        "SV_BREAKENDS_IN_GENES",
        "SV_DELETIONS",
        "SV_DELETIONS_ALL",
        "SV_DELETIONS_IN_GENES",
        "SV_INSERTIONS",
        "SV_INSERTIONS_ALL",
        "SV_INSERTIONS_IN_GENES",
        "SV_INVERSIONS",
        "SV_INVERSIONS_ALL",
        "SV_INVERSIONS_IN_GENES",
        "SV_PERCENT_BREAKENDS_IN_GENES",
        "SV_PERCENT_DELETIONS_IN_GENES",
        "SV_PERCENT_INSERTIONS_IN_GENES",
        "SV_PERCENT_INVERSIONS_IN_GENES",
        "SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES",
        "SV_TANDEM_DUPLICATIONS",
        "SV_TANDEM_DUPLICATIONS_ALL",
        "SV_TANDEM_DUPLICATIONS_IN_GENES",
        "SYNONYMOUS_SNVS",
        "TOTAL_ALIGNED_BASES",
        "TOTAL_ALIGNED_BASES_READ_1",
        "TOTAL_ALIGNED_BASES_READ_2",
        "TOTAL_ALIGNED_READS",
        "TOTAL_ALIGNED_READ_1",
        "TOTAL_ALIGNED_READ_2",
        "TOTAL_ALIGNED_READ_PAIRS",
        "TOTAL_DUPLICATE_ALIGNED_READS",
        "TOTAL_DUPLICATE_PROPER_READ_PAIRS",
        "TOTAL_MAPQ_GT_10_READS",
        "TOTAL_PF_BASES",
        "TOTAL_PF_BASES_READ_1",
        "TOTAL_PF_BASES_READ_2",
        "TOTAL_PF_READS",
        "TOTAL_PF_READ_1",
        "TOTAL_PF_READ_2",
        "TOTAL_PROPER_READ_PAIRS",
        "UNIQUE_ALIGNED_READS",
        "illumina_version",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'ARRAY_CONCORDANCE', 'ARRAY_CONCORDANCE_USAGE',
        'AUTOSOME_CALLABILITY', 'AUTOSOME_COVERAGE_AT_10X',
        'AUTOSOME_COVERAGE_AT_15X', 'AUTOSOME_COVERAGE_AT_1X',
        'AUTOSOME_EXON_CALLABILITY', 'AUTOSOME_EXON_COVERAGE_AT_10X',
        'AUTOSOME_EXON_COVERAGE_AT_15X',
        'AUTOSOME_EXON_COVERAGE_AT_1X', 'AUTOSOME_EXON_MEAN_COVERAGE',
        'AUTOSOME_MEAN_COVERAGE', 'CALLABILITY', 'CNVS', 'CNVS_ALL',
        'CNVS_IN_GENES', 'CONTAMINATION', 'COVERAGE_AT_10X',
        'COVERAGE_AT_15X', 'COVERAGE_AT_1X', 'DELETIONS',
        'DELETIONS_ALL', 'DELETIONS_IN_CODING_REGIONS',
        'DELETIONS_IN_EXONS', 'DELETIONS_IN_GENES',
        'DELETIONS_IN_MATURE_MIRNA',
        'DELETIONS_IN_SPLICE_SITE_REGIONS',
        'DELETIONS_IN_UTR_REGIONS',
        'DELETIONS_PERCENT_FOUND_IN_DBSNP', 'DELETION_HET_HOM_RATIO',
        'DIVERSITY', 'FRAGMENT_LENGTH_MAX', 'FRAGMENT_LENGTH_MEDIAN',
        'FRAGMENT_LENGTH_MIN', 'FRAGMENT_LENGTH_SD',
        'FRAMESHIFT_DELETIONS', 'FRAMESHIFT_INSERTIONS', 'INDELS',
        'INDELS_ALL', 'INDELS_PERCENT_FOUND_IN_DBSNP',
        'INDEL_HET_HOM_RATIO', 'INSERTIONS', 'INSERTIONS_ALL',
        'INSERTIONS_IN_CODING_REGIONS', 'INSERTIONS_IN_EXONS',
        'INSERTIONS_IN_GENES', 'INSERTIONS_IN_MATURE_MIRNA',
        'INSERTIONS_IN_SPLICE_SITE_REGIONS',
        'INSERTIONS_IN_UTR_REGIONS',
        'INSERTIONS_PERCENT_FOUND_IN_DBSNP',
        'INSERTION_HET_HOM_RATIO',
        'MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X',
        'MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X',
        'MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE', 'MEAN_COVERAGE',
        'MEDIAN_READ_LENGTH', 'MEDIAN_READ_LENGTH_READ_1',
        'MEDIAN_READ_LENGTH_READ_2', 'METRICS_DELIVERABLE',
        'METRICS_VERSION', 'MISMATCH_RATE', 'MISMATCH_RATE_READ_1',
        'MISMATCH_RATE_READ_2', 'NON_SYNONYMOUS_DELETIONS',
        'NON_SYNONYMOUS_INSERTIONS', 'NON_SYNONYMOUS_SNVS',
        'PAIRED_END', 'PERCENT_ALIGNED_BASES',
        'PERCENT_ALIGNED_BASES_READ_1',
        'PERCENT_ALIGNED_BASES_READ_2', 'PERCENT_ALIGNED_READS',
        'PERCENT_ALIGNED_READ_1', 'PERCENT_ALIGNED_READ_2',
        'PERCENT_AT_DROPOUT', 'PERCENT_CNVS_IN_GENES',
        'PERCENT_DUPLICATE_ALIGNED_READS',
        'PERCENT_DUPLICATE_PROPER_READ_PAIRS', 'PERCENT_GC_DROPOUT',
        'PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS',
        'PERCENT_OVERLAPPING_BASES', 'PERCENT_Q25_BASES_READ_1',
        'PERCENT_Q25_BASES_READ_2', 'PERCENT_Q30_BASES',
        'PERCENT_Q30_BASES_READ_1', 'PERCENT_Q30_BASES_READ_2',
        'PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES',
        'PERCENT_SOFT_CLIPPED_BASES',
        'Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES',
        'READ_ENRICHMENT_AT_75_GC', 'READ_ENRICHMENT_AT_80_GC',
        'REFERENCE_GENOME', 'RUN_FOLDER', 'SAMPLE_ID', 'SAMPLE_NAME',
        'SNVS', 'SNVS_ALL', 'SNVS_IN_CODING_REGIONS', 'SNVS_IN_EXONS',
        'SNVS_IN_GENES', 'SNVS_IN_MATURE_MIRNA',
        'SNVS_IN_SPLICE_SITE_REGIONS', 'SNVS_IN_UTR_REGIONS',
        'SNVS_PERCENT_FOUND_IN_DBSNP', 'SNV_HET_HOM_RATIO',
        'SNV_TS_TV_RATIO', 'STOP_GAINED_DELETIONS',
        'STOP_GAINED_INSERTIONS', 'STOP_GAINED_SNVS',
        'STOP_LOST_DELETIONS', 'STOP_LOST_INSERTIONS',
        'STOP_LOST_SNVS', 'SV_BREAKENDS', 'SV_BREAKENDS_ALL',
        'SV_BREAKENDS_IN_GENES', 'SV_DELETIONS', 'SV_DELETIONS_ALL',
        'SV_DELETIONS_IN_GENES', 'SV_INSERTIONS', 'SV_INSERTIONS_ALL',
        'SV_INSERTIONS_IN_GENES', 'SV_INVERSIONS',
        'SV_INVERSIONS_ALL', 'SV_INVERSIONS_IN_GENES',
        'SV_PERCENT_BREAKENDS_IN_GENES',
        'SV_PERCENT_DELETIONS_IN_GENES',
        'SV_PERCENT_INSERTIONS_IN_GENES',
        'SV_PERCENT_INVERSIONS_IN_GENES',
        'SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES',
        'SV_TANDEM_DUPLICATIONS', 'SV_TANDEM_DUPLICATIONS_ALL',
        'SV_TANDEM_DUPLICATIONS_IN_GENES', 'SYNONYMOUS_SNVS',
        'TOTAL_ALIGNED_BASES', 'TOTAL_ALIGNED_BASES_READ_1',
        'TOTAL_ALIGNED_BASES_READ_2', 'TOTAL_ALIGNED_READS',
        'TOTAL_ALIGNED_READ_1', 'TOTAL_ALIGNED_READ_2',
        'TOTAL_ALIGNED_READ_PAIRS', 'TOTAL_DUPLICATE_ALIGNED_READS',
        'TOTAL_DUPLICATE_PROPER_READ_PAIRS', 'TOTAL_MAPQ_GT_10_READS',
        'TOTAL_PF_BASES', 'TOTAL_PF_BASES_READ_1',
        'TOTAL_PF_BASES_READ_2', 'TOTAL_PF_READS', 'TOTAL_PF_READ_1',
        'TOTAL_PF_READ_2', 'TOTAL_PROPER_READ_PAIRS',
        'UNIQUE_ALIGNED_READS', 'illumina_version'
    ]

    def __init__(self, **kwargs):
        self.ARRAY_CONCORDANCE = kwargs.get(
            'ARRAY_CONCORDANCE', None)
        self.ARRAY_CONCORDANCE_USAGE = kwargs.get(
            'ARRAY_CONCORDANCE_USAGE', None)
        self.AUTOSOME_CALLABILITY = kwargs.get(
            'AUTOSOME_CALLABILITY', None)
        self.AUTOSOME_COVERAGE_AT_10X = kwargs.get(
            'AUTOSOME_COVERAGE_AT_10X', None)
        self.AUTOSOME_COVERAGE_AT_15X = kwargs.get(
            'AUTOSOME_COVERAGE_AT_15X', None)
        self.AUTOSOME_COVERAGE_AT_1X = kwargs.get(
            'AUTOSOME_COVERAGE_AT_1X', None)
        self.AUTOSOME_EXON_CALLABILITY = kwargs.get(
            'AUTOSOME_EXON_CALLABILITY', None)
        self.AUTOSOME_EXON_COVERAGE_AT_10X = kwargs.get(
            'AUTOSOME_EXON_COVERAGE_AT_10X', None)
        self.AUTOSOME_EXON_COVERAGE_AT_15X = kwargs.get(
            'AUTOSOME_EXON_COVERAGE_AT_15X', None)
        self.AUTOSOME_EXON_COVERAGE_AT_1X = kwargs.get(
            'AUTOSOME_EXON_COVERAGE_AT_1X', None)
        self.AUTOSOME_EXON_MEAN_COVERAGE = kwargs.get(
            'AUTOSOME_EXON_MEAN_COVERAGE', None)
        self.AUTOSOME_MEAN_COVERAGE = kwargs.get(
            'AUTOSOME_MEAN_COVERAGE', None)
        self.CALLABILITY = kwargs.get(
            'CALLABILITY', None)
        self.CNVS = kwargs.get(
            'CNVS', None)
        self.CNVS_ALL = kwargs.get(
            'CNVS_ALL', None)
        self.CNVS_IN_GENES = kwargs.get(
            'CNVS_IN_GENES', None)
        self.CONTAMINATION = kwargs.get(
            'CONTAMINATION', None)
        self.COVERAGE_AT_10X = kwargs.get(
            'COVERAGE_AT_10X', None)
        self.COVERAGE_AT_15X = kwargs.get(
            'COVERAGE_AT_15X', None)
        self.COVERAGE_AT_1X = kwargs.get(
            'COVERAGE_AT_1X', None)
        self.DELETIONS = kwargs.get(
            'DELETIONS', None)
        self.DELETIONS_ALL = kwargs.get(
            'DELETIONS_ALL', None)
        self.DELETIONS_IN_CODING_REGIONS = kwargs.get(
            'DELETIONS_IN_CODING_REGIONS', None)
        self.DELETIONS_IN_EXONS = kwargs.get(
            'DELETIONS_IN_EXONS', None)
        self.DELETIONS_IN_GENES = kwargs.get(
            'DELETIONS_IN_GENES', None)
        self.DELETIONS_IN_MATURE_MIRNA = kwargs.get(
            'DELETIONS_IN_MATURE_MIRNA', None)
        self.DELETIONS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'DELETIONS_IN_SPLICE_SITE_REGIONS', None)
        self.DELETIONS_IN_UTR_REGIONS = kwargs.get(
            'DELETIONS_IN_UTR_REGIONS', None)
        self.DELETIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'DELETIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.DELETION_HET_HOM_RATIO = kwargs.get(
            'DELETION_HET_HOM_RATIO', None)
        self.DIVERSITY = kwargs.get(
            'DIVERSITY', None)
        self.FRAGMENT_LENGTH_MAX = kwargs.get(
            'FRAGMENT_LENGTH_MAX', None)
        self.FRAGMENT_LENGTH_MEDIAN = kwargs.get(
            'FRAGMENT_LENGTH_MEDIAN', None)
        self.FRAGMENT_LENGTH_MIN = kwargs.get(
            'FRAGMENT_LENGTH_MIN', None)
        self.FRAGMENT_LENGTH_SD = kwargs.get(
            'FRAGMENT_LENGTH_SD', None)
        self.FRAMESHIFT_DELETIONS = kwargs.get(
            'FRAMESHIFT_DELETIONS', None)
        self.FRAMESHIFT_INSERTIONS = kwargs.get(
            'FRAMESHIFT_INSERTIONS', None)
        self.INDELS = kwargs.get(
            'INDELS', None)
        self.INDELS_ALL = kwargs.get(
            'INDELS_ALL', None)
        self.INDELS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'INDELS_PERCENT_FOUND_IN_DBSNP', None)
        self.INDEL_HET_HOM_RATIO = kwargs.get(
            'INDEL_HET_HOM_RATIO', None)
        self.INSERTIONS = kwargs.get(
            'INSERTIONS', None)
        self.INSERTIONS_ALL = kwargs.get(
            'INSERTIONS_ALL', None)
        self.INSERTIONS_IN_CODING_REGIONS = kwargs.get(
            'INSERTIONS_IN_CODING_REGIONS', None)
        self.INSERTIONS_IN_EXONS = kwargs.get(
            'INSERTIONS_IN_EXONS', None)
        self.INSERTIONS_IN_GENES = kwargs.get(
            'INSERTIONS_IN_GENES', None)
        self.INSERTIONS_IN_MATURE_MIRNA = kwargs.get(
            'INSERTIONS_IN_MATURE_MIRNA', None)
        self.INSERTIONS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'INSERTIONS_IN_SPLICE_SITE_REGIONS', None)
        self.INSERTIONS_IN_UTR_REGIONS = kwargs.get(
            'INSERTIONS_IN_UTR_REGIONS', None)
        self.INSERTIONS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'INSERTIONS_PERCENT_FOUND_IN_DBSNP', None)
        self.INSERTION_HET_HOM_RATIO = kwargs.get(
            'INSERTION_HET_HOM_RATIO', None)
        self.MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X = kwargs.get(
            'MAPQ_GT_10_AUTOSOME_COVERAGE_AT_15X', None)
        self.MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X = kwargs.get(
            'MAPQ_GT_10_AUTOSOME_EXON_COVERAGE_AT_15X', None)
        self.MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE = kwargs.get(
            'MAPQ_GT_10_AUTOSOME_MEDIAN_COVERAGE', None)
        self.MEAN_COVERAGE = kwargs.get(
            'MEAN_COVERAGE', None)
        self.MEDIAN_READ_LENGTH = kwargs.get(
            'MEDIAN_READ_LENGTH', None)
        self.MEDIAN_READ_LENGTH_READ_1 = kwargs.get(
            'MEDIAN_READ_LENGTH_READ_1', None)
        self.MEDIAN_READ_LENGTH_READ_2 = kwargs.get(
            'MEDIAN_READ_LENGTH_READ_2', None)
        self.METRICS_DELIVERABLE = kwargs.get(
            'METRICS_DELIVERABLE', None)
        self.METRICS_VERSION = kwargs.get(
            'METRICS_VERSION', None)
        self.MISMATCH_RATE = kwargs.get(
            'MISMATCH_RATE', None)
        self.MISMATCH_RATE_READ_1 = kwargs.get(
            'MISMATCH_RATE_READ_1', None)
        self.MISMATCH_RATE_READ_2 = kwargs.get(
            'MISMATCH_RATE_READ_2', None)
        self.NON_SYNONYMOUS_DELETIONS = kwargs.get(
            'NON_SYNONYMOUS_DELETIONS', None)
        self.NON_SYNONYMOUS_INSERTIONS = kwargs.get(
            'NON_SYNONYMOUS_INSERTIONS', None)
        self.NON_SYNONYMOUS_SNVS = kwargs.get(
            'NON_SYNONYMOUS_SNVS', None)
        self.PAIRED_END = kwargs.get(
            'PAIRED_END', None)
        self.PERCENT_ALIGNED_BASES = kwargs.get(
            'PERCENT_ALIGNED_BASES', None)
        self.PERCENT_ALIGNED_BASES_READ_1 = kwargs.get(
            'PERCENT_ALIGNED_BASES_READ_1', None)
        self.PERCENT_ALIGNED_BASES_READ_2 = kwargs.get(
            'PERCENT_ALIGNED_BASES_READ_2', None)
        self.PERCENT_ALIGNED_READS = kwargs.get(
            'PERCENT_ALIGNED_READS', None)
        self.PERCENT_ALIGNED_READ_1 = kwargs.get(
            'PERCENT_ALIGNED_READ_1', None)
        self.PERCENT_ALIGNED_READ_2 = kwargs.get(
            'PERCENT_ALIGNED_READ_2', None)
        self.PERCENT_AT_DROPOUT = kwargs.get(
            'PERCENT_AT_DROPOUT', None)
        self.PERCENT_CNVS_IN_GENES = kwargs.get(
            'PERCENT_CNVS_IN_GENES', None)
        self.PERCENT_DUPLICATE_ALIGNED_READS = kwargs.get(
            'PERCENT_DUPLICATE_ALIGNED_READS', None)
        self.PERCENT_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'PERCENT_DUPLICATE_PROPER_READ_PAIRS', None)
        self.PERCENT_GC_DROPOUT = kwargs.get(
            'PERCENT_GC_DROPOUT', None)
        self.PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS = kwargs.get(
            'PERCENT_NON_SPATIAL_DUPLICATE_READ_PAIRS', None)
        self.PERCENT_OVERLAPPING_BASES = kwargs.get(
            'PERCENT_OVERLAPPING_BASES', None)
        self.PERCENT_Q25_BASES_READ_1 = kwargs.get(
            'PERCENT_Q25_BASES_READ_1', None)
        self.PERCENT_Q25_BASES_READ_2 = kwargs.get(
            'PERCENT_Q25_BASES_READ_2', None)
        self.PERCENT_Q30_BASES = kwargs.get(
            'PERCENT_Q30_BASES', None)
        self.PERCENT_Q30_BASES_READ_1 = kwargs.get(
            'PERCENT_Q30_BASES_READ_1', None)
        self.PERCENT_Q30_BASES_READ_2 = kwargs.get(
            'PERCENT_Q30_BASES_READ_2', None)
        self.PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES = kwargs.get(
            'PERCENT_READ_PAIRS_ALIGNED_TO_DIFFERENT_CHROMOSOMES', None)
        self.PERCENT_SOFT_CLIPPED_BASES = kwargs.get(
            'PERCENT_SOFT_CLIPPED_BASES', None)
        self.Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES = kwargs.get(
            'Q30_BASES_EXCLUDING_CLIPPED_AND_DUPLICATE_READ_BASES', None)
        self.READ_ENRICHMENT_AT_75_GC = kwargs.get(
            'READ_ENRICHMENT_AT_75_GC', None)
        self.READ_ENRICHMENT_AT_80_GC = kwargs.get(
            'READ_ENRICHMENT_AT_80_GC', None)
        self.REFERENCE_GENOME = kwargs.get(
            'REFERENCE_GENOME', None)
        self.RUN_FOLDER = kwargs.get(
            'RUN_FOLDER', None)
        self.SAMPLE_ID = kwargs.get(
            'SAMPLE_ID', None)
        self.SAMPLE_NAME = kwargs.get(
            'SAMPLE_NAME', None)
        self.SNVS = kwargs.get(
            'SNVS', None)
        self.SNVS_ALL = kwargs.get(
            'SNVS_ALL', None)
        self.SNVS_IN_CODING_REGIONS = kwargs.get(
            'SNVS_IN_CODING_REGIONS', None)
        self.SNVS_IN_EXONS = kwargs.get(
            'SNVS_IN_EXONS', None)
        self.SNVS_IN_GENES = kwargs.get(
            'SNVS_IN_GENES', None)
        self.SNVS_IN_MATURE_MIRNA = kwargs.get(
            'SNVS_IN_MATURE_MIRNA', None)
        self.SNVS_IN_SPLICE_SITE_REGIONS = kwargs.get(
            'SNVS_IN_SPLICE_SITE_REGIONS', None)
        self.SNVS_IN_UTR_REGIONS = kwargs.get(
            'SNVS_IN_UTR_REGIONS', None)
        self.SNVS_PERCENT_FOUND_IN_DBSNP = kwargs.get(
            'SNVS_PERCENT_FOUND_IN_DBSNP', None)
        self.SNV_HET_HOM_RATIO = kwargs.get(
            'SNV_HET_HOM_RATIO', None)
        self.SNV_TS_TV_RATIO = kwargs.get(
            'SNV_TS_TV_RATIO', None)
        self.STOP_GAINED_DELETIONS = kwargs.get(
            'STOP_GAINED_DELETIONS', None)
        self.STOP_GAINED_INSERTIONS = kwargs.get(
            'STOP_GAINED_INSERTIONS', None)
        self.STOP_GAINED_SNVS = kwargs.get(
            'STOP_GAINED_SNVS', None)
        self.STOP_LOST_DELETIONS = kwargs.get(
            'STOP_LOST_DELETIONS', None)
        self.STOP_LOST_INSERTIONS = kwargs.get(
            'STOP_LOST_INSERTIONS', None)
        self.STOP_LOST_SNVS = kwargs.get(
            'STOP_LOST_SNVS', None)
        self.SV_BREAKENDS = kwargs.get(
            'SV_BREAKENDS', None)
        self.SV_BREAKENDS_ALL = kwargs.get(
            'SV_BREAKENDS_ALL', None)
        self.SV_BREAKENDS_IN_GENES = kwargs.get(
            'SV_BREAKENDS_IN_GENES', None)
        self.SV_DELETIONS = kwargs.get(
            'SV_DELETIONS', None)
        self.SV_DELETIONS_ALL = kwargs.get(
            'SV_DELETIONS_ALL', None)
        self.SV_DELETIONS_IN_GENES = kwargs.get(
            'SV_DELETIONS_IN_GENES', None)
        self.SV_INSERTIONS = kwargs.get(
            'SV_INSERTIONS', None)
        self.SV_INSERTIONS_ALL = kwargs.get(
            'SV_INSERTIONS_ALL', None)
        self.SV_INSERTIONS_IN_GENES = kwargs.get(
            'SV_INSERTIONS_IN_GENES', None)
        self.SV_INVERSIONS = kwargs.get(
            'SV_INVERSIONS', None)
        self.SV_INVERSIONS_ALL = kwargs.get(
            'SV_INVERSIONS_ALL', None)
        self.SV_INVERSIONS_IN_GENES = kwargs.get(
            'SV_INVERSIONS_IN_GENES', None)
        self.SV_PERCENT_BREAKENDS_IN_GENES = kwargs.get(
            'SV_PERCENT_BREAKENDS_IN_GENES', None)
        self.SV_PERCENT_DELETIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_DELETIONS_IN_GENES', None)
        self.SV_PERCENT_INSERTIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_INSERTIONS_IN_GENES', None)
        self.SV_PERCENT_INVERSIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_INVERSIONS_IN_GENES', None)
        self.SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES = kwargs.get(
            'SV_PERCENT_TANDEM_DUPLICATIONS_IN_GENES', None)
        self.SV_TANDEM_DUPLICATIONS = kwargs.get(
            'SV_TANDEM_DUPLICATIONS', None)
        self.SV_TANDEM_DUPLICATIONS_ALL = kwargs.get(
            'SV_TANDEM_DUPLICATIONS_ALL', None)
        self.SV_TANDEM_DUPLICATIONS_IN_GENES = kwargs.get(
            'SV_TANDEM_DUPLICATIONS_IN_GENES', None)
        self.SYNONYMOUS_SNVS = kwargs.get(
            'SYNONYMOUS_SNVS', None)
        self.TOTAL_ALIGNED_BASES = kwargs.get(
            'TOTAL_ALIGNED_BASES', None)
        self.TOTAL_ALIGNED_BASES_READ_1 = kwargs.get(
            'TOTAL_ALIGNED_BASES_READ_1', None)
        self.TOTAL_ALIGNED_BASES_READ_2 = kwargs.get(
            'TOTAL_ALIGNED_BASES_READ_2', None)
        self.TOTAL_ALIGNED_READS = kwargs.get(
            'TOTAL_ALIGNED_READS', None)
        self.TOTAL_ALIGNED_READ_1 = kwargs.get(
            'TOTAL_ALIGNED_READ_1', None)
        self.TOTAL_ALIGNED_READ_2 = kwargs.get(
            'TOTAL_ALIGNED_READ_2', None)
        self.TOTAL_ALIGNED_READ_PAIRS = kwargs.get(
            'TOTAL_ALIGNED_READ_PAIRS', None)
        self.TOTAL_DUPLICATE_ALIGNED_READS = kwargs.get(
            'TOTAL_DUPLICATE_ALIGNED_READS', None)
        self.TOTAL_DUPLICATE_PROPER_READ_PAIRS = kwargs.get(
            'TOTAL_DUPLICATE_PROPER_READ_PAIRS', None)
        self.TOTAL_MAPQ_GT_10_READS = kwargs.get(
            'TOTAL_MAPQ_GT_10_READS', None)
        self.TOTAL_PF_BASES = kwargs.get(
            'TOTAL_PF_BASES', None)
        self.TOTAL_PF_BASES_READ_1 = kwargs.get(
            'TOTAL_PF_BASES_READ_1', None)
        self.TOTAL_PF_BASES_READ_2 = kwargs.get(
            'TOTAL_PF_BASES_READ_2', None)
        self.TOTAL_PF_READS = kwargs.get(
            'TOTAL_PF_READS', None)
        self.TOTAL_PF_READ_1 = kwargs.get(
            'TOTAL_PF_READ_1', None)
        self.TOTAL_PF_READ_2 = kwargs.get(
            'TOTAL_PF_READ_2', None)
        self.TOTAL_PROPER_READ_PAIRS = kwargs.get(
            'TOTAL_PROPER_READ_PAIRS', None)
        self.UNIQUE_ALIGNED_READS = kwargs.get(
            'UNIQUE_ALIGNED_READS', None)
        self.illumina_version = kwargs.get(
            'illumina_version', None)


class IlluminaVersion(object):
    """
    No documentation
    """
    IlluminaSummaryV1 = "IlluminaSummaryV1"
    IlluminaSummaryV2 = "IlluminaSummaryV2"
    IlluminaSummaryV4 = "IlluminaSummaryV4"
    IlluminaSummaryCancerV2 = "IlluminaSummaryCancerV2"
    IlluminaSummaryCancerV4 = "IlluminaSummaryCancerV4"

    def __hash__(self):
        return str(self).__hash__()


class InbreedingCoefficientEstimates(ProtocolElement):
    """
    Inbreeding coefficient estimates
    """
    _schemaSource = """
{"type": "record", "name": "InbreedingCoefficientEstimates", "namespace":
"org.gel.models.report.avro", "doc": "", "fields": [{"name": "FID", "type": "string"}, {"name":
"IID", "type": "string"}, {"name": "O_HOM", "type": "double"}, {"name": "E_HOM", "type": "double"},
{"name": "N_NM", "type": "double"}, {"name": "F", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "E_HOM",
        "F",
        "FID",
        "IID",
        "N_NM",
        "O_HOM",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'E_HOM', 'F', 'FID', 'IID', 'N_NM', 'O_HOM'
    ]

    def __init__(self, **kwargs):
        self.E_HOM = kwargs.get(
            'E_HOM', None)
        self.F = kwargs.get(
            'F', None)
        self.FID = kwargs.get(
            'FID', None)
        self.IID = kwargs.get(
            'IID', None)
        self.N_NM = kwargs.get(
            'N_NM', None)
        self.O_HOM = kwargs.get(
            'O_HOM', None)


class IndividualState(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "IndividualState", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "state", "type": {"type": "enum", "name": "State", "symbols": ["ready", "pending", "hold",
"fail", "caution", "blocked"]}}, {"name": "reason", "type": ["null", {"type": "enum", "name":
"Reason", "symbols": ["duplicate", "consent", "pedigree", "contamination", "quality", "plinksex",
"inbreedingcoefficient", "in_qc"]}]}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "reason",
        "state",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'reason', 'state'
    ]

    def __init__(self, **kwargs):
        self.reason = kwargs.get(
            'reason', None)
        self.state = kwargs.get(
            'state', None)


class IndividualTests(ProtocolElement):
    """
    This is the master state for this sample, for example
    caution,quality could be used to say that a sample under this
    individual has quality issues.  See sample level for full details
    """
    _schemaSource = """
{"type": "record", "name": "IndividualTests", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "plinksex", "type": "boolean"}, {"name": "inbreedingcoefficient", "type":
"boolean"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "inbreedingcoefficient",
        "plinksex",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'inbreedingcoefficient', 'plinksex'
    ]

    def __init__(self, **kwargs):
        self.inbreedingcoefficient = kwargs.get(
            'inbreedingcoefficient', None)
        self.plinksex = kwargs.get(
            'plinksex', None)


class InsertSizeGel(ProtocolElement):
    """
    GEL Insert size calculation
    """
    _schemaSource = """
{"type": "record", "name": "InsertSizeGel", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "median_inward", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "median_inward",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'median_inward'
    ]

    def __init__(self, **kwargs):
        self.median_inward = kwargs.get(
            'median_inward', None)


class Machine(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "Machine", "namespace": "org.gel.models.report.avro", "fields": [{"name":
"DATE", "type": "double"}, {"name": "MACHINE", "type": "string"}, {"name": "FLOWCELL", "type":
"string"}, {"name": "RUN", "type": "string"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "DATE",
        "FLOWCELL",
        "MACHINE",
        "RUN",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'DATE', 'FLOWCELL', 'MACHINE', 'RUN'
    ]

    def __init__(self, **kwargs):
        self.DATE = kwargs.get(
            'DATE', None)
        self.FLOWCELL = kwargs.get(
            'FLOWCELL', None)
        self.MACHINE = kwargs.get(
            'MACHINE', None)
        self.RUN = kwargs.get(
            'RUN', None)


class MutationalSignatureContribution(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "MutationalSignatureContribution", "namespace":
"org.gel.models.report.avro", "fields": [{"name": "coefficients", "type": {"type": "map", "values":
"double"}, "doc": ""}, {"name": "rss", "type": "double", "doc": ""}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "coefficients",
        "rss",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'coefficients', 'rss'
    ]

    def __init__(self, **kwargs):
        self.coefficients = kwargs.get(
            'coefficients', None)
        self.rss = kwargs.get(
            'rss', None)


class PlinkROH(ProtocolElement):
    """
    Plink runs of homozygosity
    """
    _schemaSource = """
{"type": "record", "name": "PlinkROH", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "FID", "type": "string"}, {"name": "IID", "type": "string"}, {"name": "PHE",
"type": "double"}, {"name": "NSEG", "type": "double"}, {"name": "KB", "type": "double"}, {"name":
"KBAVG", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "FID",
        "IID",
        "KB",
        "KBAVG",
        "NSEG",
        "PHE",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'FID', 'IID', 'KB', 'KBAVG', 'NSEG', 'PHE'
    ]

    def __init__(self, **kwargs):
        self.FID = kwargs.get(
            'FID', None)
        self.IID = kwargs.get(
            'IID', None)
        self.KB = kwargs.get(
            'KB', None)
        self.KBAVG = kwargs.get(
            'KBAVG', None)
        self.NSEG = kwargs.get(
            'NSEG', None)
        self.PHE = kwargs.get(
            'PHE', None)


class PlinkSexCheck(ProtocolElement):
    """
    Plink sex check
    """
    _schemaSource = """
{"type": "record", "name": "PlinkSexCheck", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "FID", "type": "string"}, {"name": "IID", "type": "string"}, {"name": "F",
"type": "double"}, {"name": "YCOUNT", "type": "double"}, {"name": "STATUS", "type": "string"},
{"name": "SNPSEX", "type": "double"}, {"name": "PEDSEX", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "F",
        "FID",
        "IID",
        "PEDSEX",
        "SNPSEX",
        "STATUS",
        "YCOUNT",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'F', 'FID', 'IID', 'PEDSEX', 'SNPSEX', 'STATUS', 'YCOUNT'
    ]

    def __init__(self, **kwargs):
        self.F = kwargs.get(
            'F', None)
        self.FID = kwargs.get(
            'FID', None)
        self.IID = kwargs.get(
            'IID', None)
        self.PEDSEX = kwargs.get(
            'PEDSEX', None)
        self.SNPSEX = kwargs.get(
            'SNPSEX', None)
        self.STATUS = kwargs.get(
            'STATUS', None)
        self.YCOUNT = kwargs.get(
            'YCOUNT', None)


class RareDiseaseInterpretationStatus(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "RareDiseaseInterpretationStatus", "namespace":
"org.gel.models.metrics.avro", "fields": [{"name": "groupId", "type": "string"}, {"name":
"piepelineId", "type": "string"}, {"name": "pipelineMainFolder", "type": "string"}, {"name":
"cohortName", "type": "string"}, {"name": "startDate", "type": "string"}, {"name": "lastStepDate",
"type": ["null", "string"]}, {"name": "pipelineParameters", "type": {"type": "map", "values":
"string"}}, {"name": "tieringConfigurationFile", "type": "string"}, {"name": "softwareVersions",
"type": ["null", {"type": "map", "values": "string"}]}, {"name": "dataBaseVersions", "type":
["null", {"type": "map", "values": "string"}]}, {"name": "listOfSamples", "type": ["null", {"type":
"array", "items": "string"}]}, {"name": "readyToDispatch", "type": "boolean"}, {"name": "steps",
"type": ["null", {"type": "array", "items": {"type": "record", "name": "Step", "fields": [{"name":
"stepName", "type": "string"}, {"name": "date", "type": "string"}, {"name": "status", "type":
{"type": "enum", "name": "StepStatus", "symbols": ["failed", "ready"]}}]}}]}, {"name":
"listOfFilesToDispatch", "type": ["null", {"type": "array", "items": {"type": "record", "name":
"File", "doc": "", "fields": [{"name": "SampleId", "type": ["null", "string", {"type": "array",
"items": "string"}], "doc": ""}, {"name": "URIFile", "type": "string", "doc": ""}, {"name":
"fileType", "type": {"type": "enum", "name": "FileType", "symbols": ["BAM", "gVCF", "VCF_small",
"VCF_somatic_small", "VCF_CNV", "VCF_somatic_CNV", "VCF_SV", "VCF_somatic_SV", "VCF_SV_CNV", "SVG",
"ANN", "BigWig", "MD5Sum", "ROH", "OTHER"]}}, {"name": "md5Sum", "type": ["null", "string"]}]}}]}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "cohortName",
        "dataBaseVersions",
        "groupId",
        "lastStepDate",
        "listOfFilesToDispatch",
        "listOfSamples",
        "piepelineId",
        "pipelineMainFolder",
        "pipelineParameters",
        "readyToDispatch",
        "softwareVersions",
        "startDate",
        "steps",
        "tieringConfigurationFile",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'listOfFilesToDispatch': File,
            'steps': Step,
        }
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'listOfFilesToDispatch': File,
            'steps': Step,
        }

        return embeddedTypes[fieldName]

    __slots__ = [
        'cohortName', 'dataBaseVersions', 'groupId', 'lastStepDate',
        'listOfFilesToDispatch', 'listOfSamples', 'piepelineId',
        'pipelineMainFolder', 'pipelineParameters', 'readyToDispatch',
        'softwareVersions', 'startDate', 'steps',
        'tieringConfigurationFile'
    ]

    def __init__(self, **kwargs):
        self.cohortName = kwargs.get(
            'cohortName', None)
        self.dataBaseVersions = kwargs.get(
            'dataBaseVersions', None)
        self.groupId = kwargs.get(
            'groupId', None)
        self.lastStepDate = kwargs.get(
            'lastStepDate', None)
        self.listOfFilesToDispatch = kwargs.get(
            'listOfFilesToDispatch', None)
        self.listOfSamples = kwargs.get(
            'listOfSamples', None)
        self.piepelineId = kwargs.get(
            'piepelineId', None)
        self.pipelineMainFolder = kwargs.get(
            'pipelineMainFolder', None)
        self.pipelineParameters = kwargs.get(
            'pipelineParameters', None)
        self.readyToDispatch = kwargs.get(
            'readyToDispatch', None)
        self.softwareVersions = kwargs.get(
            'softwareVersions', None)
        self.startDate = kwargs.get(
            'startDate', None)
        self.steps = kwargs.get(
            'steps', None)
        self.tieringConfigurationFile = kwargs.get(
            'tieringConfigurationFile', None)


class Reason(object):
    """
    No documentation
    """
    duplicate = "duplicate"
    consent = "consent"
    pedigree = "pedigree"
    contamination = "contamination"
    quality = "quality"
    plinksex = "plinksex"
    inbreedingcoefficient = "inbreedingcoefficient"
    in_qc = "in_qc"

    def __hash__(self):
        return str(self).__hash__()


class SamtoolsScope(object):
    """
    No documentation
    """
    all = "all"
    filtered = "filtered"

    def __hash__(self):
        return str(self).__hash__()


class SamtoolsStats(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "SamtoolsStats", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "samtoolsScope", "type": {"type": "enum", "name": "SamtoolsScope", "symbols": ["all",
"filtered"]}}, {"name": "SAMTOOLS_1ST_FRAGMENTS", "type": "double"}, {"name":
"SAMTOOLS_AVERAGE_LENGTH", "type": "double"}, {"name": "SAMTOOLS_AVERAGE_QUALITY", "type":
"double"}, {"name": "SAMTOOLS_BASES_DUPLICATED", "type": "double"}, {"name":
"SAMTOOLS_BASES_MAPPED", "type": "double"}, {"name": "SAMTOOLS_BASES_MAPPED_CIGAR", "type":
"double"}, {"name": "SAMTOOLS_BASES_TRIMMED", "type": "double"}, {"name": "SAMTOOLS_ERROR_RATE",
"type": "double"}, {"name": "SAMTOOLS_FILTERED_SEQUENCES", "type": "double"}, {"name":
"SAMTOOLS_INSERT_SIZE_AVERAGE", "type": "double"}, {"name":
"SAMTOOLS_INSERT_SIZE_STANDARD_DEVIATION", "type": "double"}, {"name":
"SAMTOOLS_INWARD_ORIENTED_PAIRS", "type": "double"}, {"name": "SAMTOOLS_IS_SORTED", "type":
"double"}, {"name": "SAMTOOLS_LAST_FRAGMENTS", "type": "double"}, {"name":
"SAMTOOLS_MAXIMUM_LENGTH", "type": "double"}, {"name": "SAMTOOLS_MISMATCHES", "type": "double"},
{"name": "SAMTOOLS_NON_PRIMARY_ALIGNMENTS", "type": "double"}, {"name":
"SAMTOOLS_OUTWARD_ORIENTED_PAIRS", "type": "double"}, {"name":
"SAMTOOLS_PAIRS_ON_DIFFERENT_CHROMOSOMES", "type": "double"}, {"name":
"SAMTOOLS_PAIRS_WITH_OTHER_ORIENTATION", "type": "double"}, {"name": "SAMTOOLS_RAW_TOTAL_SEQUENCES",
"type": "double"}, {"name": "SAMTOOLS_READS_DUPLICATED", "type": "double"}, {"name":
"SAMTOOLS_READS_MAPPED", "type": "double"}, {"name": "SAMTOOLS_READS_MAPPED_AND_PAIRED", "type":
"double"}, {"name": "SAMTOOLS_READS_MQ0", "type": "double"}, {"name": "SAMTOOLS_READS_PAIRED",
"type": "double"}, {"name": "SAMTOOLS_READS_PROPERLY_PAIRED", "type": "double"}, {"name":
"SAMTOOLS_READS_QC_FAILED", "type": "double"}, {"name": "SAMTOOLS_READS_UNMAPPED", "type":
"double"}, {"name": "SAMTOOLS_SEQUENCES", "type": "double"}, {"name": "SAMTOOLS_TOTAL_LENGTH",
"type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "SAMTOOLS_1ST_FRAGMENTS",
        "SAMTOOLS_AVERAGE_LENGTH",
        "SAMTOOLS_AVERAGE_QUALITY",
        "SAMTOOLS_BASES_DUPLICATED",
        "SAMTOOLS_BASES_MAPPED",
        "SAMTOOLS_BASES_MAPPED_CIGAR",
        "SAMTOOLS_BASES_TRIMMED",
        "SAMTOOLS_ERROR_RATE",
        "SAMTOOLS_FILTERED_SEQUENCES",
        "SAMTOOLS_INSERT_SIZE_AVERAGE",
        "SAMTOOLS_INSERT_SIZE_STANDARD_DEVIATION",
        "SAMTOOLS_INWARD_ORIENTED_PAIRS",
        "SAMTOOLS_IS_SORTED",
        "SAMTOOLS_LAST_FRAGMENTS",
        "SAMTOOLS_MAXIMUM_LENGTH",
        "SAMTOOLS_MISMATCHES",
        "SAMTOOLS_NON_PRIMARY_ALIGNMENTS",
        "SAMTOOLS_OUTWARD_ORIENTED_PAIRS",
        "SAMTOOLS_PAIRS_ON_DIFFERENT_CHROMOSOMES",
        "SAMTOOLS_PAIRS_WITH_OTHER_ORIENTATION",
        "SAMTOOLS_RAW_TOTAL_SEQUENCES",
        "SAMTOOLS_READS_DUPLICATED",
        "SAMTOOLS_READS_MAPPED",
        "SAMTOOLS_READS_MAPPED_AND_PAIRED",
        "SAMTOOLS_READS_MQ0",
        "SAMTOOLS_READS_PAIRED",
        "SAMTOOLS_READS_PROPERLY_PAIRED",
        "SAMTOOLS_READS_QC_FAILED",
        "SAMTOOLS_READS_UNMAPPED",
        "SAMTOOLS_SEQUENCES",
        "SAMTOOLS_TOTAL_LENGTH",
        "samtoolsScope",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'SAMTOOLS_1ST_FRAGMENTS', 'SAMTOOLS_AVERAGE_LENGTH',
        'SAMTOOLS_AVERAGE_QUALITY', 'SAMTOOLS_BASES_DUPLICATED',
        'SAMTOOLS_BASES_MAPPED', 'SAMTOOLS_BASES_MAPPED_CIGAR',
        'SAMTOOLS_BASES_TRIMMED', 'SAMTOOLS_ERROR_RATE',
        'SAMTOOLS_FILTERED_SEQUENCES', 'SAMTOOLS_INSERT_SIZE_AVERAGE',
        'SAMTOOLS_INSERT_SIZE_STANDARD_DEVIATION',
        'SAMTOOLS_INWARD_ORIENTED_PAIRS', 'SAMTOOLS_IS_SORTED',
        'SAMTOOLS_LAST_FRAGMENTS', 'SAMTOOLS_MAXIMUM_LENGTH',
        'SAMTOOLS_MISMATCHES', 'SAMTOOLS_NON_PRIMARY_ALIGNMENTS',
        'SAMTOOLS_OUTWARD_ORIENTED_PAIRS',
        'SAMTOOLS_PAIRS_ON_DIFFERENT_CHROMOSOMES',
        'SAMTOOLS_PAIRS_WITH_OTHER_ORIENTATION',
        'SAMTOOLS_RAW_TOTAL_SEQUENCES', 'SAMTOOLS_READS_DUPLICATED',
        'SAMTOOLS_READS_MAPPED', 'SAMTOOLS_READS_MAPPED_AND_PAIRED',
        'SAMTOOLS_READS_MQ0', 'SAMTOOLS_READS_PAIRED',
        'SAMTOOLS_READS_PROPERLY_PAIRED', 'SAMTOOLS_READS_QC_FAILED',
        'SAMTOOLS_READS_UNMAPPED', 'SAMTOOLS_SEQUENCES',
        'SAMTOOLS_TOTAL_LENGTH', 'samtoolsScope'
    ]

    def __init__(self, **kwargs):
        self.SAMTOOLS_1ST_FRAGMENTS = kwargs.get(
            'SAMTOOLS_1ST_FRAGMENTS', None)
        self.SAMTOOLS_AVERAGE_LENGTH = kwargs.get(
            'SAMTOOLS_AVERAGE_LENGTH', None)
        self.SAMTOOLS_AVERAGE_QUALITY = kwargs.get(
            'SAMTOOLS_AVERAGE_QUALITY', None)
        self.SAMTOOLS_BASES_DUPLICATED = kwargs.get(
            'SAMTOOLS_BASES_DUPLICATED', None)
        self.SAMTOOLS_BASES_MAPPED = kwargs.get(
            'SAMTOOLS_BASES_MAPPED', None)
        self.SAMTOOLS_BASES_MAPPED_CIGAR = kwargs.get(
            'SAMTOOLS_BASES_MAPPED_CIGAR', None)
        self.SAMTOOLS_BASES_TRIMMED = kwargs.get(
            'SAMTOOLS_BASES_TRIMMED', None)
        self.SAMTOOLS_ERROR_RATE = kwargs.get(
            'SAMTOOLS_ERROR_RATE', None)
        self.SAMTOOLS_FILTERED_SEQUENCES = kwargs.get(
            'SAMTOOLS_FILTERED_SEQUENCES', None)
        self.SAMTOOLS_INSERT_SIZE_AVERAGE = kwargs.get(
            'SAMTOOLS_INSERT_SIZE_AVERAGE', None)
        self.SAMTOOLS_INSERT_SIZE_STANDARD_DEVIATION = kwargs.get(
            'SAMTOOLS_INSERT_SIZE_STANDARD_DEVIATION', None)
        self.SAMTOOLS_INWARD_ORIENTED_PAIRS = kwargs.get(
            'SAMTOOLS_INWARD_ORIENTED_PAIRS', None)
        self.SAMTOOLS_IS_SORTED = kwargs.get(
            'SAMTOOLS_IS_SORTED', None)
        self.SAMTOOLS_LAST_FRAGMENTS = kwargs.get(
            'SAMTOOLS_LAST_FRAGMENTS', None)
        self.SAMTOOLS_MAXIMUM_LENGTH = kwargs.get(
            'SAMTOOLS_MAXIMUM_LENGTH', None)
        self.SAMTOOLS_MISMATCHES = kwargs.get(
            'SAMTOOLS_MISMATCHES', None)
        self.SAMTOOLS_NON_PRIMARY_ALIGNMENTS = kwargs.get(
            'SAMTOOLS_NON_PRIMARY_ALIGNMENTS', None)
        self.SAMTOOLS_OUTWARD_ORIENTED_PAIRS = kwargs.get(
            'SAMTOOLS_OUTWARD_ORIENTED_PAIRS', None)
        self.SAMTOOLS_PAIRS_ON_DIFFERENT_CHROMOSOMES = kwargs.get(
            'SAMTOOLS_PAIRS_ON_DIFFERENT_CHROMOSOMES', None)
        self.SAMTOOLS_PAIRS_WITH_OTHER_ORIENTATION = kwargs.get(
            'SAMTOOLS_PAIRS_WITH_OTHER_ORIENTATION', None)
        self.SAMTOOLS_RAW_TOTAL_SEQUENCES = kwargs.get(
            'SAMTOOLS_RAW_TOTAL_SEQUENCES', None)
        self.SAMTOOLS_READS_DUPLICATED = kwargs.get(
            'SAMTOOLS_READS_DUPLICATED', None)
        self.SAMTOOLS_READS_MAPPED = kwargs.get(
            'SAMTOOLS_READS_MAPPED', None)
        self.SAMTOOLS_READS_MAPPED_AND_PAIRED = kwargs.get(
            'SAMTOOLS_READS_MAPPED_AND_PAIRED', None)
        self.SAMTOOLS_READS_MQ0 = kwargs.get(
            'SAMTOOLS_READS_MQ0', None)
        self.SAMTOOLS_READS_PAIRED = kwargs.get(
            'SAMTOOLS_READS_PAIRED', None)
        self.SAMTOOLS_READS_PROPERLY_PAIRED = kwargs.get(
            'SAMTOOLS_READS_PROPERLY_PAIRED', None)
        self.SAMTOOLS_READS_QC_FAILED = kwargs.get(
            'SAMTOOLS_READS_QC_FAILED', None)
        self.SAMTOOLS_READS_UNMAPPED = kwargs.get(
            'SAMTOOLS_READS_UNMAPPED', None)
        self.SAMTOOLS_SEQUENCES = kwargs.get(
            'SAMTOOLS_SEQUENCES', None)
        self.SAMTOOLS_TOTAL_LENGTH = kwargs.get(
            'SAMTOOLS_TOTAL_LENGTH', None)
        self.samtoolsScope = kwargs.get(
            'samtoolsScope', None)


class State(object):
    """
    No documentation
    """
    ready = "ready"
    pending = "pending"
    hold = "hold"
    fail = "fail"
    caution = "caution"
    blocked = "blocked"

    def __hash__(self):
        return str(self).__hash__()


class Step(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "Step", "namespace": "org.gel.models.metrics.avro", "fields": [{"name":
"stepName", "type": "string"}, {"name": "date", "type": "string"}, {"name": "status", "type":
{"type": "enum", "name": "StepStatus", "symbols": ["failed", "ready"]}}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "date",
        "status",
        "stepName",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'date', 'status', 'stepName'
    ]

    def __init__(self, **kwargs):
        self.date = kwargs.get(
            'date', None)
        self.status = kwargs.get(
            'status', None)
        self.stepName = kwargs.get(
            'stepName', None)


class StepStatus(object):
    """
    No documentation
    """
    failed = "failed"
    ready = "ready"

    def __hash__(self):
        return str(self).__hash__()


class SupplementaryAnalysisResults(ProtocolElement):
    """
    This is the record for results of supplementary analysis
    """
    _schemaSource = """
{"type": "record", "name": "SupplementaryAnalysisResults", "namespace":
"org.gel.models.report.avro", "doc": "", "fields": [{"name": "numberOfSomaticVariants", "type":
"int"}, {"name": "numberOfSomaticSnvsPerMb", "type": "double"}, {"name":
"numberOfNonsynSomaticSnvsPerMb", "type": "double"}, {"name":
"ContextualAnalysisSubstitutionsCounts", "type": {"type": "map", "values": "int"}}, {"name":
"MutationalSignatureContribution", "type": {"type": "map", "values": "double"}}, {"name":
"GenomicRegionsOfHypermutation", "type": {"type": "array", "items": "string"}}, {"name":
"SNValleleFrequencyHistogramCounts", "type": {"type": "map", "values": "int"}}, {"name":
"IndelAlleleFrequencyHistogramCounts", "type": {"type": "map", "values": "int"}}, {"name":
"IndelLengthHistogramCounts", "type": {"type": "map", "values": "int"}}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "ContextualAnalysisSubstitutionsCounts",
        "GenomicRegionsOfHypermutation",
        "IndelAlleleFrequencyHistogramCounts",
        "IndelLengthHistogramCounts",
        "MutationalSignatureContribution",
        "SNValleleFrequencyHistogramCounts",
        "numberOfNonsynSomaticSnvsPerMb",
        "numberOfSomaticSnvsPerMb",
        "numberOfSomaticVariants",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'ContextualAnalysisSubstitutionsCounts',
        'GenomicRegionsOfHypermutation',
        'IndelAlleleFrequencyHistogramCounts',
        'IndelLengthHistogramCounts',
        'MutationalSignatureContribution',
        'SNValleleFrequencyHistogramCounts',
        'numberOfNonsynSomaticSnvsPerMb', 'numberOfSomaticSnvsPerMb',
        'numberOfSomaticVariants'
    ]

    def __init__(self, **kwargs):
        self.ContextualAnalysisSubstitutionsCounts = kwargs.get(
            'ContextualAnalysisSubstitutionsCounts', None)
        self.GenomicRegionsOfHypermutation = kwargs.get(
            'GenomicRegionsOfHypermutation', None)
        self.IndelAlleleFrequencyHistogramCounts = kwargs.get(
            'IndelAlleleFrequencyHistogramCounts', None)
        self.IndelLengthHistogramCounts = kwargs.get(
            'IndelLengthHistogramCounts', None)
        self.MutationalSignatureContribution = kwargs.get(
            'MutationalSignatureContribution', None)
        self.SNValleleFrequencyHistogramCounts = kwargs.get(
            'SNValleleFrequencyHistogramCounts', None)
        self.numberOfNonsynSomaticSnvsPerMb = kwargs.get(
            'numberOfNonsynSomaticSnvsPerMb', None)
        self.numberOfSomaticSnvsPerMb = kwargs.get(
            'numberOfSomaticSnvsPerMb', None)
        self.numberOfSomaticVariants = kwargs.get(
            'numberOfSomaticVariants', None)


class TumorChecks(ProtocolElement):
    """
    Tumor contamination check results  We ask whether somatic calls
    are common in 1000G project.  Common is defined as 0.01.  The
    percentage of these variants gives an indication of the
    contamination level of the sample.  If another sample contaminates
    or the germline is swapped then the percentage of somatic variants
    in 1000G will be high.  * `well_id`: Individual sample ID *
    `num_variants_gt_filter`: The number of somatic variants that are
    common in 1000G * `num_variants_lt_filter`: The number of somatic
    variants rare or non-existant in 1000G *
    `perc_variants_gt_filter`: The percentage of somatic variants that
    are common in 1000G
    """
    _schemaSource = """
{"type": "record", "name": "TumorChecks", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "well_id", "type": "string"}, {"name": "num_variants_gt_filter", "type":
"double"}, {"name": "num_variants_lt_filter", "type": "double"}, {"name": "perc_variants_gt_filter",
"type": "double"}, {"name": "TumorContaminationContEst", "type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "TumorContaminationContEst",
        "num_variants_gt_filter",
        "num_variants_lt_filter",
        "perc_variants_gt_filter",
        "well_id",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'TumorContaminationContEst', 'num_variants_gt_filter',
        'num_variants_lt_filter', 'perc_variants_gt_filter', 'well_id'
    ]

    def __init__(self, **kwargs):
        self.TumorContaminationContEst = kwargs.get(
            'TumorContaminationContEst', None)
        self.num_variants_gt_filter = kwargs.get(
            'num_variants_gt_filter', None)
        self.num_variants_lt_filter = kwargs.get(
            'num_variants_lt_filter', None)
        self.perc_variants_gt_filter = kwargs.get(
            'perc_variants_gt_filter', None)
        self.well_id = kwargs.get(
            'well_id', None)


class VariantsCoverage(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "VariantsCoverage", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "bedName", "type": "string"}, {"name": "coverageSummary", "type": {"type": "array",
"items": {"type": "record", "name": "CoverageSummary", "fields": [{"name": "avg", "type": "double",
"doc": ""}, {"name": "med", "type": "double", "doc": ""}, {"name": "bases", "type": "double", "doc":
""}, {"name": "pct25", "type": ["null", "double"], "doc": ""}, {"name": "pct75", "type": ["null",
"double"], "doc": ""}, {"name": "lt15x", "type": ["null", "double"], "doc": ""}, {"name": "gte15x",
"type": ["null", "double"], "doc": ""}, {"name": "gte30x", "type": ["null", "double"], "doc": ""},
{"name": "gte50x", "type": ["null", "double"], "doc": ""}, {"name": "sd", "type": ["null",
"double"], "doc": ""}, {"name": "localRMSD", "type": ["null", "double"], "doc": ""}, {"name":
"scope", "type": "string", "doc": ""}]}}}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "bedName",
        "coverageSummary",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'coverageSummary': CoverageSummary,
        }
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'coverageSummary': CoverageSummary,
        }

        return embeddedTypes[fieldName]

    __slots__ = [
        'bedName', 'coverageSummary'
    ]

    def __init__(self, **kwargs):
        self.bedName = kwargs.get(
            'bedName', None)
        self.coverageSummary = kwargs.get(
            'coverageSummary', None)


class VcfMetrics(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "VcfMetrics", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "NUMBER_OF_SAMPLES", "type": "double"}, {"name": "NUMBER_OF_INDELS", "type": "double"},
{"name": "NUMBER_OF_MNPS", "type": "double"}, {"name": "NUMBER_OF_MULTIALLELIC_SNP_SITES", "type":
"double"}, {"name": "NUMBER_OF_SNPS", "type": "double"}, {"name": "NUMBER_OF_RECORDS", "type":
"double"}, {"name": "NUMBER_OF_OTHERS", "type": "double"}, {"name": "NUMBER_OF_MULTIALLELIC_SITES",
"type": "double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "NUMBER_OF_INDELS",
        "NUMBER_OF_MNPS",
        "NUMBER_OF_MULTIALLELIC_SITES",
        "NUMBER_OF_MULTIALLELIC_SNP_SITES",
        "NUMBER_OF_OTHERS",
        "NUMBER_OF_RECORDS",
        "NUMBER_OF_SAMPLES",
        "NUMBER_OF_SNPS",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'NUMBER_OF_INDELS', 'NUMBER_OF_MNPS',
        'NUMBER_OF_MULTIALLELIC_SITES',
        'NUMBER_OF_MULTIALLELIC_SNP_SITES', 'NUMBER_OF_OTHERS',
        'NUMBER_OF_RECORDS', 'NUMBER_OF_SAMPLES', 'NUMBER_OF_SNPS'
    ]

    def __init__(self, **kwargs):
        self.NUMBER_OF_INDELS = kwargs.get(
            'NUMBER_OF_INDELS', None)
        self.NUMBER_OF_MNPS = kwargs.get(
            'NUMBER_OF_MNPS', None)
        self.NUMBER_OF_MULTIALLELIC_SITES = kwargs.get(
            'NUMBER_OF_MULTIALLELIC_SITES', None)
        self.NUMBER_OF_MULTIALLELIC_SNP_SITES = kwargs.get(
            'NUMBER_OF_MULTIALLELIC_SNP_SITES', None)
        self.NUMBER_OF_OTHERS = kwargs.get(
            'NUMBER_OF_OTHERS', None)
        self.NUMBER_OF_RECORDS = kwargs.get(
            'NUMBER_OF_RECORDS', None)
        self.NUMBER_OF_SAMPLES = kwargs.get(
            'NUMBER_OF_SAMPLES', None)
        self.NUMBER_OF_SNPS = kwargs.get(
            'NUMBER_OF_SNPS', None)


class VcfTSTV(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "VcfTSTV", "namespace": "org.gel.models.report.avro", "fields": [{"name":
"TS_1", "type": "double"}, {"name": "TV", "type": "double"}, {"name": "TS", "type": "double"},
{"name": "TS_TV", "type": "double"}, {"name": "TV_1", "type": "double"}, {"name": "TS_TV_1", "type":
"double"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "TS",
        "TS_1",
        "TS_TV",
        "TS_TV_1",
        "TV",
        "TV_1",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'TS', 'TS_1', 'TS_TV', 'TS_TV_1', 'TV', 'TV_1'
    ]

    def __init__(self, **kwargs):
        self.TS = kwargs.get(
            'TS', None)
        self.TS_1 = kwargs.get(
            'TS_1', None)
        self.TS_TV = kwargs.get(
            'TS_TV', None)
        self.TS_TV_1 = kwargs.get(
            'TS_TV_1', None)
        self.TV = kwargs.get(
            'TV', None)
        self.TV_1 = kwargs.get(
            'TV_1', None)


class VerifyBamId(ProtocolElement):
    """
    Verify Bam ID  This is only run on germline samples  * `SEQ_ID`: *
    `CHIP_ID`: * `SNPS`: * `READS`: * `AVG_DP`: * `FREEMIX`: *
    `FREELK1`: * `FREELK0`: * `FREE_RH`: * `FREE_RA`: * `CHIPMIX`: *
    `CHIPLK1`: * `CHIPLK0`: * `CHIP_RA`: * `DPREF`: * `RDPHET`: *
    `RDPALT`:
    """
    _schemaSource = """
{"type": "record", "name": "VerifyBamId", "namespace": "org.gel.models.report.avro", "doc": "",
"fields": [{"name": "SEQ_ID", "type": "string"}, {"name": "CHIP_ID", "type": "string"}, {"name":
"SNPS", "type": "double"}, {"name": "READS", "type": "double"}, {"name": "AVG_DP", "type":
"double"}, {"name": "FREEMIX", "type": "double"}, {"name": "FREELK1", "type": "double"}, {"name":
"FREELK0", "type": "double"}, {"name": "FREE_RH", "type": "string"}, {"name": "FREE_RA", "type":
"string"}, {"name": "CHIPMIX", "type": "string"}, {"name": "CHIPLK1", "type": "string"}, {"name":
"CHIPLK0", "type": "string"}, {"name": "CHIP_RA", "type": "string"}, {"name": "DPREF", "type":
"string"}, {"name": "RDPHET", "type": "string"}, {"name": "RDPALT", "type": "string"}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "AVG_DP",
        "CHIPLK0",
        "CHIPLK1",
        "CHIPMIX",
        "CHIP_ID",
        "CHIP_RA",
        "DPREF",
        "FREELK0",
        "FREELK1",
        "FREEMIX",
        "FREE_RA",
        "FREE_RH",
        "RDPALT",
        "RDPHET",
        "READS",
        "SEQ_ID",
        "SNPS",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'AVG_DP', 'CHIPLK0', 'CHIPLK1', 'CHIPMIX', 'CHIP_ID',
        'CHIP_RA', 'DPREF', 'FREELK0', 'FREELK1', 'FREEMIX',
        'FREE_RA', 'FREE_RH', 'RDPALT', 'RDPHET', 'READS', 'SEQ_ID',
        'SNPS'
    ]

    def __init__(self, **kwargs):
        self.AVG_DP = kwargs.get(
            'AVG_DP', None)
        self.CHIPLK0 = kwargs.get(
            'CHIPLK0', None)
        self.CHIPLK1 = kwargs.get(
            'CHIPLK1', None)
        self.CHIPMIX = kwargs.get(
            'CHIPMIX', None)
        self.CHIP_ID = kwargs.get(
            'CHIP_ID', None)
        self.CHIP_RA = kwargs.get(
            'CHIP_RA', None)
        self.DPREF = kwargs.get(
            'DPREF', None)
        self.FREELK0 = kwargs.get(
            'FREELK0', None)
        self.FREELK1 = kwargs.get(
            'FREELK1', None)
        self.FREEMIX = kwargs.get(
            'FREEMIX', None)
        self.FREE_RA = kwargs.get(
            'FREE_RA', None)
        self.FREE_RH = kwargs.get(
            'FREE_RH', None)
        self.RDPALT = kwargs.get(
            'RDPALT', None)
        self.RDPHET = kwargs.get(
            'RDPHET', None)
        self.READS = kwargs.get(
            'READS', None)
        self.SEQ_ID = kwargs.get(
            'SEQ_ID', None)
        self.SNPS = kwargs.get(
            'SNPS', None)


class WholeGenomeCoverage(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "WholeGenomeCoverage", "namespace": "org.gel.models.report.avro",
"fields": [{"name": "coverageSummary", "type": {"type": "array", "items": {"type": "record", "name":
"CoverageSummary", "fields": [{"name": "avg", "type": "double", "doc": ""}, {"name": "med", "type":
"double", "doc": ""}, {"name": "bases", "type": "double", "doc": ""}, {"name": "pct25", "type":
["null", "double"], "doc": ""}, {"name": "pct75", "type": ["null", "double"], "doc": ""}, {"name":
"lt15x", "type": ["null", "double"], "doc": ""}, {"name": "gte15x", "type": ["null", "double"],
"doc": ""}, {"name": "gte30x", "type": ["null", "double"], "doc": ""}, {"name": "gte50x", "type":
["null", "double"], "doc": ""}, {"name": "sd", "type": ["null", "double"], "doc": ""}, {"name":
"localRMSD", "type": ["null", "double"], "doc": ""}, {"name": "scope", "type": "string", "doc":
""}]}}}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "coverageSummary",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'coverageSummary': CoverageSummary,
        }
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {
            'coverageSummary': CoverageSummary,
        }

        return embeddedTypes[fieldName]

    __slots__ = [
        'coverageSummary'
    ]

    def __init__(self, **kwargs):
        self.coverageSummary = kwargs.get(
            'coverageSummary', None)


class sampleState(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "sampleState", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "state", "type": ["null", {"type": "enum", "name": "State", "doc": "", "symbols":
["ready", "warning", "pending", "hold", "fail", "caution"]}]}, {"name": "reason", "type": {"type":
"array", "items": {"type": "enum", "name": "Reason", "symbols": ["median_coverage", "in_analysis",
"duplicate", "pedigree_mendelian_errors", "pedigree_ibd_sharing", "contamination", "quality",
"sex_query", "perc_bases_ge_15x_mapQ_ge11", "GbQ30NoDupsNoClip", "arrayconcordance", "high_cnv",
"in_qc", "pass_qc", "other"]}}}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "reason",
        "state",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'reason', 'state'
    ]

    def __init__(self, **kwargs):
        self.reason = kwargs.get(
            'reason', None)
        self.state = kwargs.get(
            'state', None)


class sampleTests(ProtocolElement):
    """
    No documentation
    """
    _schemaSource = """
{"type": "record", "name": "sampleTests", "namespace": "org.gel.models.report.avro", "fields":
[{"name": "verifybamid", "type": ["null", "boolean"]}, {"name": "arrayconcordance", "type": ["null",
"boolean"]}, {"name": "contamination", "type": ["null", "boolean"]}]}
"""
    schema = avro_parse(_schemaSource)
    requiredFields = {
        "arrayconcordance",
        "contamination",
        "verifybamid",
    }

    @classmethod
    def isEmbeddedType(cls, fieldName):
        embeddedTypes = {}
        return fieldName in embeddedTypes

    @classmethod
    def getEmbeddedType(cls, fieldName):
        embeddedTypes = {}

        return embeddedTypes[fieldName]

    __slots__ = [
        'arrayconcordance', 'contamination', 'verifybamid'
    ]

    def __init__(self, **kwargs):
        self.arrayconcordance = kwargs.get(
            'arrayconcordance', None)
        self.contamination = kwargs.get(
            'contamination', None)
        self.verifybamid = kwargs.get(
            'verifybamid', None)
