# Genomics API . variants

## Instance Methods

Creates a new variant.

Deletes a variant.

Exports variant data to an external destination.

Gets a variant by ID.

Creates variant data by asynchronously importing the provided information. The variants for import will be merged with any existing data and each other according to the behavior of mergeVariants. In particular, this means for merged VCF variants that have conflicting INFO fields, some data will be arbitrarily discarded. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a VariantSet.

Gets a list of variants matching the criteria.

Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.

### Method Details

`create(body)`

    Creates a new variant.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # A Variant represents a change in DNA sequence relative to some reference. For example, a Variant could represent a SNP or an insertion. Variants belong to a variant set.
      "info": { # A map of additional variant information.
        "a_key": [ # A string which maps to an array of values.
          "A String",
        ],
      },
      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
        { # A Call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a Call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
          "info": { # A map of additional variant call information.
            "a_key": [ # A string which maps to an array of values.
              "A String",
            ],
          },
          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
            42,
          ],
          "callSetId": "A String", # The ID of the call set this variant call belongs to.
          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec.
            3.14,
          ],
          "callSetName": "A String", # The name of the call set this variant call belongs to.
        },
      ],
      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
        "A String",
      ],
      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
      "names": [ # Names for the variant, for example a RefSNP ID.
        "A String",
      ],
      "alternateBases": [ # The bases that appear instead of the reference bases.
        "A String",
      ],
      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
      "id": "A String", # The Google generated ID of the variant, immutable.
    }

    Returns:
      An object of the form:

        { # A Variant represents a change in DNA sequence relative to some reference. For example, a Variant could represent a SNP or an insertion. Variants belong to a variant set.
        "info": { # A map of additional variant information.
          "a_key": [ # A string which maps to an array of values.
            "A String",
          ],
        },
        "variantSetId": "A String", # The ID of the variant set this variant belongs to.
        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
        "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
          { # A Call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a Call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
            "info": { # A map of additional variant call information.
              "a_key": [ # A string which maps to an array of values.
                "A String",
              ],
            },
            "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
              42,
            ],
            "callSetId": "A String", # The ID of the call set this variant call belongs to.
            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec.
              3.14,
            ],
            "callSetName": "A String", # The name of the call set this variant call belongs to.
          },
        ],
        "created": "A String", # The date this variant was created, in milliseconds from the epoch.
        "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
        "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
          "A String",
        ],
        "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
        "names": [ # Names for the variant, for example a RefSNP ID.
          "A String",
        ],
        "alternateBases": [ # The bases that appear instead of the reference bases.
          "A String",
        ],
        "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
        "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
        "id": "A String", # The Google generated ID of the variant, immutable.
      }

`delete(variantId)`

    Deletes a variant.

    Args:
      variantId: string, The ID of the variant to be deleted. (required)

`export(body)`

    Exports variant data to an external destination.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # The variant data export request.
        "variantSetId": "A String", # Required. The ID of the variant set that contains variant data which should be exported. The caller must have READ access to this variant set.
        "format": "A String", # The format for the exported data.
        "projectId": "A String", # The Google Cloud project number that owns the destination BigQuery dataset. The caller must have WRITE access to this project. This project will also own the resulting export job.
        "callSetIds": [ # If provided, only variant call information from the specified call sets will be exported. By default all variant calls are exported.
          "A String",
        ],
        "bigqueryDataset": "A String", # The BigQuery dataset to export data to. Note that this is distinct from the Genomics concept of "dataset".
        "bigqueryTable": "A String", # The BigQuery table to export data to. If the table doesn't exist, it will be created. If it already exists, it will be overwritten.
      }

    Returns:
      An object of the form:

        { # The variant data export response.
        "jobId": "A String", # A job ID that can be used to get status information.
      }

`get(variantId)`

    Gets a variant by ID.

    Args:
      variantId: string, The ID of the variant. (required)

    Returns:
      An object of the form:

        { # A Variant represents a change in DNA sequence relative to some reference. For example, a Variant could represent a SNP or an insertion. Variants belong to a variant set.
        "info": { # A map of additional variant information.
          "a_key": [ # A string which maps to an array of values.
            "A String",
          ],
        },
        "variantSetId": "A String", # The ID of the variant set this variant belongs to.
        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
        "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
          { # A Call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a Call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
            "info": { # A map of additional variant call information.
              "a_key": [ # A string which maps to an array of values.
                "A String",
              ],
            },
            "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
              42,
            ],
            "callSetId": "A String", # The ID of the call set this variant call belongs to.
            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec.
              3.14,
            ],
            "callSetName": "A String", # The name of the call set this variant call belongs to.
          },
        ],
        "created": "A String", # The date this variant was created, in milliseconds from the epoch.
        "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
        "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
          "A String",
        ],
        "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
        "names": [ # Names for the variant, for example a RefSNP ID.
          "A String",
        ],
        "alternateBases": [ # The bases that appear instead of the reference bases.
          "A String",
        ],
        "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
        "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
        "id": "A String", # The Google generated ID of the variant, immutable.
      }

`import_(body)`

    Creates variant data by asynchronously importing the provided information. The variants for import will be merged with any existing data and each other according to the behavior of mergeVariants. In particular, this means for merged VCF variants that have conflicting INFO fields, some data will be arbitrarily discarded. As a special case, for single-sample VCF files, QUAL and FILTER fields will be moved to the call level; these are sometimes interpreted in a call-specific context. Imported VCF headers are appended to the metadata already in a VariantSet.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # The variant data import request.
        "variantSetId": "A String", # Required. The variant set to which variant data should be imported.
        "sourceUris": [ # A list of URIs pointing at VCF files in Google Cloud Storage. See the VCF Specification for more details on the input format.
          "A String",
        ],
        "format": "A String", # The format of the variant data being imported.
      }

    Returns:
      An object of the form:

        { # The variant data import response.
        "jobId": "A String", # A job ID that can be used to get status information.
      }

`search(body)`

    Gets a list of variants matching the criteria.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # The variant search request.
        "end": "A String", # Required. The end of the window (0-based, exclusive) for which overlapping variants should be returned.
        "pageSize": 42, # The maximum number of variants to return.
        "start": "A String", # Required. The beginning of the window (0-based, inclusive) for which overlapping variants should be returned.
        "maxCalls": 42, # The maximum number of calls to return. However, at least one variant will always be returned, even if it has more calls than this limit.
        "pageToken": "A String", # The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
        "callSetIds": [ # Only return variant calls which belong to call sets with these ids. Leaving this blank returns all variant calls. If a variant has no calls belonging to any of these call sets, it won't be returned at all. Currently, variants with no calls from any call set will never be returned.
          "A String",
        ],
        "variantName": "A String", # Only return variants which have exactly this name.
        "referenceName": "A String", # Required. Only return variants in this reference sequence.
        "variantSetIds": [ # Exactly one variant set ID must be provided. Only variants from this variant set will be returned.
          "A String",
        ],
      }

    Returns:
      An object of the form:

        { # The variant search response.
        "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results. This field will be empty if there aren't any additional results.
        "variants": [ # The list of matching Variants.
          { # A Variant represents a change in DNA sequence relative to some reference. For example, a Variant could represent a SNP or an insertion. Variants belong to a variant set.
            "info": { # A map of additional variant information.
              "a_key": [ # A string which maps to an array of values.
                "A String",
              ],
            },
            "variantSetId": "A String", # The ID of the variant set this variant belongs to.
            "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
            "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
              { # A Call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a Call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
                "info": { # A map of additional variant call information.
                  "a_key": [ # A string which maps to an array of values.
                    "A String",
                  ],
                },
                "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
                  42,
                ],
                "callSetId": "A String", # The ID of the call set this variant call belongs to.
                "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
                "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec.
                  3.14,
                ],
                "callSetName": "A String", # The name of the call set this variant call belongs to.
              },
            ],
            "created": "A String", # The date this variant was created, in milliseconds from the epoch.
            "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
            "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
              "A String",
            ],
            "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
            "names": [ # Names for the variant, for example a RefSNP ID.
              "A String",
            ],
            "alternateBases": [ # The bases that appear instead of the reference bases.
              "A String",
            ],
            "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
            "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
            "id": "A String", # The Google generated ID of the variant, immutable.
          },
        ],
      }

`update(variantId, body)`

    Updates a variant's names and info fields. All other modifications are silently ignored. Returns the modified variant without its calls.

    Args:
      variantId: string, The ID of the variant to be updated. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # A Variant represents a change in DNA sequence relative to some reference. For example, a Variant could represent a SNP or an insertion. Variants belong to a variant set.
      "info": { # A map of additional variant information.
        "a_key": [ # A string which maps to an array of values.
          "A String",
        ],
      },
      "variantSetId": "A String", # The ID of the variant set this variant belongs to.
      "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
      "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
        { # A Call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a Call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
          "info": { # A map of additional variant call information.
            "a_key": [ # A string which maps to an array of values.
              "A String",
            ],
          },
          "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
            42,
          ],
          "callSetId": "A String", # The ID of the call set this variant call belongs to.
          "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
          "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec.
            3.14,
          ],
          "callSetName": "A String", # The name of the call set this variant call belongs to.
        },
      ],
      "created": "A String", # The date this variant was created, in milliseconds from the epoch.
      "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
      "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
        "A String",
      ],
      "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
      "names": [ # Names for the variant, for example a RefSNP ID.
        "A String",
      ],
      "alternateBases": [ # The bases that appear instead of the reference bases.
        "A String",
      ],
      "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
      "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
      "id": "A String", # The Google generated ID of the variant, immutable.
    }

    Returns:
      An object of the form:

        { # A Variant represents a change in DNA sequence relative to some reference. For example, a Variant could represent a SNP or an insertion. Variants belong to a variant set.
        "info": { # A map of additional variant information.
          "a_key": [ # A string which maps to an array of values.
            "A String",
          ],
        },
        "variantSetId": "A String", # The ID of the variant set this variant belongs to.
        "end": "A String", # The end position (0-based) of this variant. This corresponds to the first base after the last base in the reference allele. So, the length of the reference allele is (end - start). This is useful for variants that don't explicitly give alternate bases, for example large deletions.
        "calls": [ # The variant calls for this particular variant. Each one represents the determination of genotype with respect to this variant.
          { # A Call represents the determination of genotype with respect to a particular variant. It may include associated information such as quality and phasing. For example, a Call might assign a probability of 0.32 to the occurrence of a SNP named rs1234 in a call set with the name NA12345.
            "info": { # A map of additional variant call information.
              "a_key": [ # A string which maps to an array of values.
                "A String",
              ],
            },
            "genotype": [ # The genotype of this variant call. Each value represents either the value of the referenceBases field or a 1-based index into alternateBases. If a variant had a referenceBases value of T and an alternateBases value of ["A", "C"], and the genotype was [2, 1], that would mean the call represented the heterozygous value CA for this variant. If the genotype was instead [0, 1], the represented value would be TA. Ordering of the genotype values is important if the phaseset is present. If a genotype is not called (that is, a . is present in the GT string) -1 is returned.
              42,
            ],
            "callSetId": "A String", # The ID of the call set this variant call belongs to.
            "phaseset": "A String", # If this field is present, this variant call's genotype ordering implies the phase of the bases and is consistent with any other variant calls in the same reference sequence which have the same phaseset value. When importing data from VCF, if the genotype data was phased but no phase set was specified this field will be set to *.
            "genotypeLikelihood": [ # The genotype likelihoods for this variant call. Each array entry represents how likely a specific genotype is for this call. The value ordering is defined by the GL tag in the VCF spec.
              3.14,
            ],
            "callSetName": "A String", # The name of the call set this variant call belongs to.
          },
        ],
        "created": "A String", # The date this variant was created, in milliseconds from the epoch.
        "referenceBases": "A String", # The reference bases for this variant. They start at the given position.
        "filter": [ # A list of filters (normally quality filters) this variant has failed. PASS indicates this variant has passed all filters.
          "A String",
        ],
        "start": "A String", # The position at which this variant occurs (0-based). This corresponds to the first base of the string of reference bases.
        "names": [ # Names for the variant, for example a RefSNP ID.
          "A String",
        ],
        "alternateBases": [ # The bases that appear instead of the reference bases.
          "A String",
        ],
        "referenceName": "A String", # The reference on which this variant occurs. (such as chr20 or X)
        "quality": 3.14, # A measure of how likely this variant is to be real. A higher value is better.
        "id": "A String", # The Google generated ID of the variant, immutable.
      }