blob: bdd80f98604ca4fd825c6bd57de13e74402a9f1d [file] [log] [blame]
// Copyright 2016 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.genomics.v1;
import "google/api/annotations.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/struct.proto";
option cc_enable_arenas = true;
option go_package = "google.golang.org/genproto/googleapis/genomics/v1;genomics";
option java_multiple_files = true;
option java_outer_classname = "VariantsProto";
option java_package = "com.google.genomics.v1";
service StreamingVariantService {
// Returns a stream of all the variants matching the search request, ordered
// by reference name, position, and ID.
rpc StreamVariants(StreamVariantsRequest) returns (stream StreamVariantsResponse) {
option (google.api.http) = { post: "/v1/variants:stream" body: "*" };
}
}
service VariantServiceV1 {
// Creates variant data by asynchronously importing the provided information.
//
// For the definitions of variant sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// The variants for import will be merged with any existing variant that
// matches its reference sequence, start, end, reference bases, and
// alternative bases. If no such variant exists, a new one will be created.
//
// When variants are merged, the call information from the new variant
// is added to the existing variant, and Variant info fields are merged
// as specified in
// [infoMergeConfig][google.genomics.v1.ImportVariantsRequest.info_merge_config].
// 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 variant set.
rpc ImportVariants(ImportVariantsRequest) returns (google.longrunning.Operation) {
option (google.api.http) = { post: "/v1/variants:import" body: "*" };
}
// Creates a new variant set.
//
// For the definitions of variant sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// The provided variant set must have a valid `datasetId` set - all other
// fields are optional. Note that the `id` field will be ignored, as this is
// assigned by the server.
rpc CreateVariantSet(CreateVariantSetRequest) returns (VariantSet) {
option (google.api.http) = { post: "/v1/variantsets" body: "variant_set" };
}
// Exports variant set data to an external destination.
//
// For the definitions of variant sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc ExportVariantSet(ExportVariantSetRequest) returns (google.longrunning.Operation) {
option (google.api.http) = { post: "/v1/variantsets/{variant_set_id}:export" body: "*" };
}
// Gets a variant set by ID.
//
// For the definitions of variant sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc GetVariantSet(GetVariantSetRequest) returns (VariantSet) {
option (google.api.http) = { get: "/v1/variantsets/{variant_set_id}" };
}
// Returns a list of all variant sets matching search criteria.
//
// For the definitions of variant sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// Implements
// [GlobalAllianceApi.searchVariantSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L49).
rpc SearchVariantSets(SearchVariantSetsRequest) returns (SearchVariantSetsResponse) {
option (google.api.http) = { post: "/v1/variantsets/search" body: "*" };
}
// Deletes a variant set including all variants, call sets, and calls within.
// This is not reversible.
//
// For the definitions of variant sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc DeleteVariantSet(DeleteVariantSetRequest) returns (google.protobuf.Empty) {
option (google.api.http) = { delete: "/v1/variantsets/{variant_set_id}" };
}
// Updates a variant set using patch semantics.
//
// For the definitions of variant sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc UpdateVariantSet(UpdateVariantSetRequest) returns (VariantSet) {
option (google.api.http) = { patch: "/v1/variantsets/{variant_set_id}" body: "variant_set" };
}
// Gets a list of variants matching the criteria.
//
// For the definitions of variants and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// Implements
// [GlobalAllianceApi.searchVariants](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L126).
rpc SearchVariants(SearchVariantsRequest) returns (SearchVariantsResponse) {
option (google.api.http) = { post: "/v1/variants/search" body: "*" };
}
// Creates a new variant.
//
// For the definitions of variants and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc CreateVariant(CreateVariantRequest) returns (Variant) {
option (google.api.http) = { post: "/v1/variants" body: "variant" };
}
// Updates a variant.
//
// For the definitions of variants and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// This method supports patch semantics. Returns the modified variant without
// its calls.
rpc UpdateVariant(UpdateVariantRequest) returns (Variant) {
option (google.api.http) = { patch: "/v1/variants/{variant_id}" body: "variant" };
}
// Deletes a variant.
//
// For the definitions of variants and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc DeleteVariant(DeleteVariantRequest) returns (google.protobuf.Empty) {
option (google.api.http) = { delete: "/v1/variants/{variant_id}" };
}
// Gets a variant by ID.
//
// For the definitions of variants and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc GetVariant(GetVariantRequest) returns (Variant) {
option (google.api.http) = { get: "/v1/variants/{variant_id}" };
}
// Merges the given variants with existing variants.
//
// For the definitions of variants and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// Each variant will be
// merged with an existing variant that matches its reference sequence,
// start, end, reference bases, and alternative bases. If no such variant
// exists, a new one will be created.
//
// When variants are merged, the call information from the new variant
// is added to the existing variant. Variant info fields are merged as
// specified in the
// [infoMergeConfig][google.genomics.v1.MergeVariantsRequest.info_merge_config]
// field of the MergeVariantsRequest.
//
// Please exercise caution when using this method! It is easy to introduce
// mistakes in existing variants and difficult to back out of them. For
// example,
// suppose you were trying to merge a new variant with an existing one and
// both
// variants contain calls that belong to callsets with the same callset ID.
//
// // Existing variant - irrelevant fields trimmed for clarity
// {
// "variantSetId": "10473108253681171589",
// "referenceName": "1",
// "start": "10582",
// "referenceBases": "G",
// "alternateBases": [
// "A"
// ],
// "calls": [
// {
// "callSetId": "10473108253681171589-0",
// "callSetName": "CALLSET0",
// "genotype": [
// 0,
// 1
// ],
// }
// ]
// }
//
// // New variant with conflicting call information
// {
// "variantSetId": "10473108253681171589",
// "referenceName": "1",
// "start": "10582",
// "referenceBases": "G",
// "alternateBases": [
// "A"
// ],
// "calls": [
// {
// "callSetId": "10473108253681171589-0",
// "callSetName": "CALLSET0",
// "genotype": [
// 1,
// 1
// ],
// }
// ]
// }
//
// The resulting merged variant would overwrite the existing calls with those
// from the new variant:
//
// {
// "variantSetId": "10473108253681171589",
// "referenceName": "1",
// "start": "10582",
// "referenceBases": "G",
// "alternateBases": [
// "A"
// ],
// "calls": [
// {
// "callSetId": "10473108253681171589-0",
// "callSetName": "CALLSET0",
// "genotype": [
// 1,
// 1
// ],
// }
// ]
// }
//
// This may be the desired outcome, but it is up to the user to determine if
// if that is indeed the case.
rpc MergeVariants(MergeVariantsRequest) returns (google.protobuf.Empty) {
option (google.api.http) = { post: "/v1/variants:merge" body: "*" };
}
// Gets a list of call sets matching the criteria.
//
// For the definitions of call sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// Implements
// [GlobalAllianceApi.searchCallSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variantmethods.avdl#L178).
rpc SearchCallSets(SearchCallSetsRequest) returns (SearchCallSetsResponse) {
option (google.api.http) = { post: "/v1/callsets/search" body: "*" };
}
// Creates a new call set.
//
// For the definitions of call sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc CreateCallSet(CreateCallSetRequest) returns (CallSet) {
option (google.api.http) = { post: "/v1/callsets" body: "call_set" };
}
// Updates a call set.
//
// For the definitions of call sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// This method supports patch semantics.
rpc UpdateCallSet(UpdateCallSetRequest) returns (CallSet) {
option (google.api.http) = { patch: "/v1/callsets/{call_set_id}" body: "call_set" };
}
// Deletes a call set.
//
// For the definitions of call sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc DeleteCallSet(DeleteCallSetRequest) returns (google.protobuf.Empty) {
option (google.api.http) = { delete: "/v1/callsets/{call_set_id}" };
}
// Gets a call set by ID.
//
// For the definitions of call sets and other genomics resources, see
// [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
rpc GetCallSet(GetCallSetRequest) returns (CallSet) {
option (google.api.http) = { get: "/v1/callsets/{call_set_id}" };
}
}
// Metadata describes a single piece of variant call metadata.
// These data include a top level key and either a single value string (value)
// or a list of key-value pairs (info.)
// Value and info are mutually exclusive.
message VariantSetMetadata {
enum Type {
TYPE_UNSPECIFIED = 0;
INTEGER = 1;
FLOAT = 2;
FLAG = 3;
CHARACTER = 4;
STRING = 5;
}
// The top-level key.
string key = 1;
// The value field for simple metadata
string value = 2;
// User-provided ID field, not enforced by this API.
// Two or more pieces of structured metadata with identical
// id and key fields are considered equivalent.
string id = 4;
// The type of data. Possible types include: Integer, Float,
// Flag, Character, and String.
Type type = 5;
// The number of values that can be included in a field described by this
// metadata.
string number = 8;
// A textual description of this metadata.
string description = 7;
// Remaining structured metadata key-value pairs. This must be of the form
// map<string, string[]> (string key mapping to a list of string values).
map<string, google.protobuf.ListValue> info = 3;
}
// A variant set is a collection of call sets and variants. It contains summary
// statistics of those contents. A variant set belongs to a dataset.
//
// For more genomics resource definitions, see [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
message VariantSet {
// The dataset to which this variant set belongs.
string dataset_id = 1;
// The server-generated variant set ID, unique across all variant sets.
string id = 2;
// The reference set to which the variant set is mapped. The reference set
// describes the alignment provenance of the variant set, while the
// `referenceBounds` describe the shape of the actual variant data. The
// reference set's reference names are a superset of those found in the
// `referenceBounds`.
//
// For example, given a variant set that is mapped to the GRCh38 reference set
// and contains a single variant on reference 'X', `referenceBounds` would
// contain only an entry for 'X', while the associated reference set
// enumerates all possible references: '1', '2', 'X', 'Y', 'MT', etc.
string reference_set_id = 6;
// A list of all references used by the variants in a variant set
// with associated coordinate upper bounds for each one.
repeated ReferenceBound reference_bounds = 5;
// The metadata associated with this variant set.
repeated VariantSetMetadata metadata = 4;
// User-specified, mutable name.
string name = 7;
// A textual description of this variant set.
string description = 8;
}
// A variant represents a change in DNA sequence relative to a reference
// sequence. For example, a variant could represent a SNP or an insertion.
// Variants belong to a variant set.
//
// For more genomics resource definitions, see [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
//
// Each of the calls on a variant represent a determination of genotype with
// respect to that variant. For example, a call might assign probability of 0.32
// to the occurrence of a SNP named rs1234 in a sample named NA12345. A call
// belongs to a call set, which contains related calls typically from one
// sample.
message Variant {
// The ID of the variant set this variant belongs to.
string variant_set_id = 15;
// The server-generated variant ID, unique across all variants.
string id = 2;
// Names for the variant, for example a RefSNP ID.
repeated string names = 3;
// The date this variant was created, in milliseconds from the epoch.
int64 created = 12;
// The reference on which this variant occurs.
// (such as `chr20` or `X`)
string reference_name = 14;
// The position at which this variant occurs (0-based).
// This corresponds to the first base of the string of reference bases.
int64 start = 16;
// 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.
int64 end = 13;
// The reference bases for this variant. They start at the given
// position.
string reference_bases = 6;
// The bases that appear instead of the reference bases.
repeated string alternate_bases = 7;
// A measure of how likely this variant is to be real.
// A higher value is better.
double quality = 8;
// A list of filters (normally quality filters) this variant has failed.
// `PASS` indicates this variant has passed all filters.
repeated string filter = 9;
// A map of additional variant information. This must be of the form
// map<string, string[]> (string key mapping to a list of string values).
map<string, google.protobuf.ListValue> info = 10;
// The variant calls for this particular variant. Each one represents the
// determination of genotype with respect to this variant.
repeated VariantCall calls = 11;
}
// 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.
message VariantCall {
// The ID of the call set this variant call belongs to.
string call_set_id = 8;
// The name of the call set this variant call belongs to.
string call_set_name = 9;
// 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.
repeated int32 genotype = 7;
// 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 `*`.
string phaseset = 5;
// 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.
// If Phred-scaled genotype likelihood scores (PL) are available and
// log10(P) genotype likelihood scores (GL) are not, PL scores are converted
// to GL scores. If both are available, PL scores are stored in `info`.
repeated double genotype_likelihood = 6;
// A map of additional variant call information. This must be of the form
// map<string, string[]> (string key mapping to a list of string values).
map<string, google.protobuf.ListValue> info = 2;
}
// A call set is a collection of variant calls, typically for one sample. It
// belongs to a variant set.
//
// For more genomics resource definitions, see [Fundamentals of Google
// Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
message CallSet {
// The server-generated call set ID, unique across all call sets.
string id = 1;
// The call set name.
string name = 2;
// The sample ID this call set corresponds to.
string sample_id = 7;
// The IDs of the variant sets this call set belongs to. This field must
// have exactly length one, as a call set belongs to a single variant set.
// This field is repeated for compatibility with the
// [GA4GH 0.5.1
// API](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/variants.avdl#L76).
repeated string variant_set_ids = 6;
// The date this call set was created in milliseconds from the epoch.
int64 created = 5;
// A map of additional call set information. This must be of the form
// map<string, string[]> (string key mapping to a list of string values).
map<string, google.protobuf.ListValue> info = 4;
}
// ReferenceBound records an upper bound for the starting coordinate of
// variants in a particular reference.
message ReferenceBound {
// The name of the reference associated with this reference bound.
string reference_name = 1;
// An upper bound (inclusive) on the starting coordinate of any
// variant in the reference sequence.
int64 upper_bound = 2;
}
// The variant data import request.
message ImportVariantsRequest {
enum Format {
FORMAT_UNSPECIFIED = 0;
// VCF (Variant Call Format). The VCF files may be gzip compressed. gVCF is
// also supported.
FORMAT_VCF = 1;
// Complete Genomics masterVarBeta format. The masterVarBeta files may
// be bzip2 compressed.
FORMAT_COMPLETE_GENOMICS = 2;
}
// Required. The variant set to which variant data should be imported.
string variant_set_id = 1;
// A list of URIs referencing variant files in Google Cloud Storage. URIs can
// include wildcards [as described
// here](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames).
// Note that recursive wildcards ('**') are not supported.
repeated string source_uris = 2;
// The format of the variant data being imported. If unspecified, defaults to
// to `VCF`.
Format format = 3;
// Convert reference names to the canonical representation.
// hg19 haploytypes (those reference names containing "_hap")
// are not modified in any way.
// All other reference names are modified according to the following rules:
// The reference name is capitalized.
// The "chr" prefix is dropped for all autosomes and sex chromsomes.
// For example "chr17" becomes "17" and "chrX" becomes "X".
// All mitochondrial chromosomes ("chrM", "chrMT", etc) become "MT".
bool normalize_reference_names = 5;
// A mapping between info field keys and the InfoMergeOperations to
// be performed on them. This is plumbed down to the MergeVariantRequests
// generated by the resulting import job.
map<string, InfoMergeOperation> info_merge_config = 6;
}
// The variant data import response.
message ImportVariantsResponse {
// IDs of the call sets created during the import.
repeated string call_set_ids = 1;
}
// The CreateVariantSet request
message CreateVariantSetRequest {
// Required. The variant set to be created. Must have a valid `datasetId`.
VariantSet variant_set = 1;
}
// The variant data export request.
message ExportVariantSetRequest {
enum Format {
FORMAT_UNSPECIFIED = 0;
// Export the data to Google BigQuery.
FORMAT_BIGQUERY = 1;
}
// 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.
string variant_set_id = 1;
// If provided, only variant call information from the specified call sets
// will be exported. By default all variant calls are exported.
repeated string call_set_ids = 2;
// Required. The Google Cloud project ID that owns the destination
// BigQuery dataset. The caller must have WRITE access to this project. This
// project will also own the resulting export job.
string project_id = 3;
// The format for the exported data.
Format format = 4;
// Required. The BigQuery dataset to export data to. This dataset must already
// exist. Note that this is distinct from the Genomics concept of "dataset".
string bigquery_dataset = 5;
// Required. 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.
string bigquery_table = 6;
}
// The variant set request.
message GetVariantSetRequest {
// Required. The ID of the variant set.
string variant_set_id = 1;
}
// The search variant sets request.
message SearchVariantSetsRequest {
// Exactly one dataset ID must be provided here. Only variant sets which
// belong to this dataset will be returned.
repeated string dataset_ids = 1;
// 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.
string page_token = 2;
// The maximum number of results to return in a single page. If unspecified,
// defaults to 1024.
int32 page_size = 3;
}
// The search variant sets response.
message SearchVariantSetsResponse {
// The variant sets belonging to the requested dataset.
repeated VariantSet variant_sets = 1;
// 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.
string next_page_token = 2;
}
// The delete variant set request.
message DeleteVariantSetRequest {
// The ID of the variant set to be deleted.
string variant_set_id = 1;
}
message UpdateVariantSetRequest {
// The ID of the variant to be updated (must already exist).
string variant_set_id = 1;
// The new variant data. Only the variant_set.metadata will be considered
// for update.
VariantSet variant_set = 2;
// An optional mask specifying which fields to update. Supported fields:
//
// * [metadata][google.genomics.v1.VariantSet.metadata].
// * [name][google.genomics.v1.VariantSet.name].
// * [description][google.genomics.v1.VariantSet.description].
//
// Leaving `updateMask` unset is equivalent to specifying all mutable
// fields.
google.protobuf.FieldMask update_mask = 5;
}
// The variant search request.
message SearchVariantsRequest {
// At most one variant set ID must be provided. Only variants from this
// variant set will be returned. If omitted, a call set id must be included in
// the request.
repeated string variant_set_ids = 1;
// Only return variants which have exactly this name.
string variant_name = 2;
// 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.
repeated string call_set_ids = 3;
// Required. Only return variants in this reference sequence.
string reference_name = 4;
// The beginning of the window (0-based, inclusive) for which
// overlapping variants should be returned. If unspecified, defaults to 0.
int64 start = 5;
// The end of the window, 0-based exclusive. If unspecified or 0, defaults to
// the length of the reference.
int64 end = 6;
// 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.
string page_token = 7;
// The maximum number of variants to return in a single page. If unspecified,
// defaults to 5000. The maximum value is 10000.
int32 page_size = 8;
// The maximum number of calls to return in a single page. Note that this
// limit may be exceeded in the event that a matching variant contains more
// calls than the requested maximum. If unspecified, defaults to 5000. The
// maximum value is 10000.
int32 max_calls = 9;
}
// The variant search response.
message SearchVariantsResponse {
// The list of matching Variants.
repeated Variant variants = 1;
// 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.
string next_page_token = 2;
}
message CreateVariantRequest {
// The variant to be created.
Variant variant = 1;
}
message UpdateVariantRequest {
// The ID of the variant to be updated.
string variant_id = 1;
// The new variant data.
Variant variant = 2;
// An optional mask specifying which fields to update. At this time, mutable
// fields are [names][google.genomics.v1.Variant.names] and
// [info][google.genomics.v1.Variant.info]. Acceptable values are "names" and
// "info". If unspecified, all mutable fields will be updated.
google.protobuf.FieldMask update_mask = 3;
}
message DeleteVariantRequest {
// The ID of the variant to be deleted.
string variant_id = 1;
}
message GetVariantRequest {
// The ID of the variant.
string variant_id = 1;
}
message MergeVariantsRequest {
// The destination variant set.
string variant_set_id = 1;
// The variants to be merged with existing variants.
repeated Variant variants = 2;
// A mapping between info field keys and the InfoMergeOperations to
// be performed on them.
map<string, InfoMergeOperation> info_merge_config = 3;
}
// The call set search request.
message SearchCallSetsRequest {
// Restrict the query to call sets within the given variant sets. At least one
// ID must be provided.
repeated string variant_set_ids = 1;
// Only return call sets for which a substring of the name matches this
// string.
string name = 2;
// 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.
string page_token = 3;
// The maximum number of results to return in a single page. If unspecified,
// defaults to 1024.
int32 page_size = 4;
}
// The call set search response.
message SearchCallSetsResponse {
// The list of matching call sets.
repeated CallSet call_sets = 1;
// 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.
string next_page_token = 2;
}
message CreateCallSetRequest {
// The call set to be created.
CallSet call_set = 1;
}
message UpdateCallSetRequest {
// The ID of the call set to be updated.
string call_set_id = 1;
// The new call set data.
CallSet call_set = 2;
// An optional mask specifying which fields to update. At this time, the only
// mutable field is [name][google.genomics.v1.CallSet.name]. The only
// acceptable value is "name". If unspecified, all mutable fields will be
// updated.
google.protobuf.FieldMask update_mask = 3;
}
message DeleteCallSetRequest {
// The ID of the call set to be deleted.
string call_set_id = 1;
}
message GetCallSetRequest {
// The ID of the call set.
string call_set_id = 1;
}
// The stream variants request.
message StreamVariantsRequest {
// The Google Cloud project ID which will be billed
// for this access. The caller must have WRITE access to this project.
// Required.
string project_id = 1;
// The variant set ID from which to stream variants.
string variant_set_id = 2;
// Only return variant calls which belong to call sets with these IDs.
// Leaving this blank returns all variant calls.
repeated string call_set_ids = 3;
// Required. Only return variants in this reference sequence.
string reference_name = 4;
// The beginning of the window (0-based, inclusive) for which
// overlapping variants should be returned.
int64 start = 5;
// The end of the window (0-based, exclusive) for which overlapping
// variants should be returned.
int64 end = 6;
}
message StreamVariantsResponse {
repeated Variant variants = 1;
}
// Operations to be performed during import on Variant info fields.
// These operations are set for each info field in the info_merge_config
// map of ImportVariantsRequest, which is plumbed down to the
// MergeVariantRequests generated by the import job.
enum InfoMergeOperation {
INFO_MERGE_OPERATION_UNSPECIFIED = 0;
// By default, Variant info fields are persisted if the Variant doesn't
// already exist in the variantset. If the Variant is equivalent to a
// Variant already in the variantset, the incoming Variant's info field
// is ignored in favor of that of the already persisted Variant.
IGNORE_NEW = 1;
// This operation removes an info field from the incoming Variant
// and persists this info field in each of the incoming Variant's Calls.
MOVE_TO_CALLS = 2;
}