xref: /aosp_15_r20/external/googleapis/google/genomics/v1/annotations.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2016 Google Inc.
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.genomics.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/wrappers.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
25*d5c09012SAndroid Build Coastguard Worker
26*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
27*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/genomics/v1;genomics";
28*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
29*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "AnnotationsProto";
30*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.genomics.v1";
31*d5c09012SAndroid Build Coastguard Worker
32*d5c09012SAndroid Build Coastguard Worker// This service provides storage and positional retrieval of genomic
33*d5c09012SAndroid Build Coastguard Worker// reference annotations, including variant annotations.
34*d5c09012SAndroid Build Coastguard Workerservice AnnotationServiceV1 {
35*d5c09012SAndroid Build Coastguard Worker  // Creates a new annotation set. Caller must have WRITE permission for the
36*d5c09012SAndroid Build Coastguard Worker  // associated dataset.
37*d5c09012SAndroid Build Coastguard Worker  //
38*d5c09012SAndroid Build Coastguard Worker  // The following fields are required:
39*d5c09012SAndroid Build Coastguard Worker  //
40*d5c09012SAndroid Build Coastguard Worker  //   * [datasetId][google.genomics.v1.AnnotationSet.dataset_id]
41*d5c09012SAndroid Build Coastguard Worker  //   * [referenceSetId][google.genomics.v1.AnnotationSet.reference_set_id]
42*d5c09012SAndroid Build Coastguard Worker  //
43*d5c09012SAndroid Build Coastguard Worker  // All other fields may be optionally specified, unless documented as being
44*d5c09012SAndroid Build Coastguard Worker  // server-generated (for example, the `id` field).
45*d5c09012SAndroid Build Coastguard Worker  rpc CreateAnnotationSet(CreateAnnotationSetRequest) returns (AnnotationSet) {
46*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
47*d5c09012SAndroid Build Coastguard Worker      post: "/v1/annotationsets"
48*d5c09012SAndroid Build Coastguard Worker      body: "annotation_set"
49*d5c09012SAndroid Build Coastguard Worker    };
50*d5c09012SAndroid Build Coastguard Worker  }
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard Worker  // Gets an annotation set. Caller must have READ permission for
53*d5c09012SAndroid Build Coastguard Worker  // the associated dataset.
54*d5c09012SAndroid Build Coastguard Worker  rpc GetAnnotationSet(GetAnnotationSetRequest) returns (AnnotationSet) {
55*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
56*d5c09012SAndroid Build Coastguard Worker      get: "/v1/annotationsets/{annotation_set_id}"
57*d5c09012SAndroid Build Coastguard Worker    };
58*d5c09012SAndroid Build Coastguard Worker  }
59*d5c09012SAndroid Build Coastguard Worker
60*d5c09012SAndroid Build Coastguard Worker  // Updates an annotation set. The update must respect all mutability
61*d5c09012SAndroid Build Coastguard Worker  // restrictions and other invariants described on the annotation set resource.
62*d5c09012SAndroid Build Coastguard Worker  // Caller must have WRITE permission for the associated dataset.
63*d5c09012SAndroid Build Coastguard Worker  rpc UpdateAnnotationSet(UpdateAnnotationSetRequest) returns (AnnotationSet) {
64*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
65*d5c09012SAndroid Build Coastguard Worker      put: "/v1/annotationsets/{annotation_set_id}"
66*d5c09012SAndroid Build Coastguard Worker      body: "annotation_set"
67*d5c09012SAndroid Build Coastguard Worker    };
68*d5c09012SAndroid Build Coastguard Worker  }
69*d5c09012SAndroid Build Coastguard Worker
70*d5c09012SAndroid Build Coastguard Worker  // Deletes an annotation set. Caller must have WRITE permission
71*d5c09012SAndroid Build Coastguard Worker  // for the associated annotation set.
72*d5c09012SAndroid Build Coastguard Worker  rpc DeleteAnnotationSet(DeleteAnnotationSetRequest)
73*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
74*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
75*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/annotationsets/{annotation_set_id}"
76*d5c09012SAndroid Build Coastguard Worker    };
77*d5c09012SAndroid Build Coastguard Worker  }
78*d5c09012SAndroid Build Coastguard Worker
79*d5c09012SAndroid Build Coastguard Worker  // Searches for annotation sets that match the given criteria. Annotation sets
80*d5c09012SAndroid Build Coastguard Worker  // are returned in an unspecified order. This order is consistent, such that
81*d5c09012SAndroid Build Coastguard Worker  // two queries for the same content (regardless of page size) yield annotation
82*d5c09012SAndroid Build Coastguard Worker  // sets in the same order across their respective streams of paginated
83*d5c09012SAndroid Build Coastguard Worker  // responses. Caller must have READ permission for the queried datasets.
84*d5c09012SAndroid Build Coastguard Worker  rpc SearchAnnotationSets(SearchAnnotationSetsRequest)
85*d5c09012SAndroid Build Coastguard Worker      returns (SearchAnnotationSetsResponse) {
86*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
87*d5c09012SAndroid Build Coastguard Worker      post: "/v1/annotationsets/search"
88*d5c09012SAndroid Build Coastguard Worker      body: "*"
89*d5c09012SAndroid Build Coastguard Worker    };
90*d5c09012SAndroid Build Coastguard Worker  }
91*d5c09012SAndroid Build Coastguard Worker
92*d5c09012SAndroid Build Coastguard Worker  // Creates a new annotation. Caller must have WRITE permission
93*d5c09012SAndroid Build Coastguard Worker  // for the associated annotation set.
94*d5c09012SAndroid Build Coastguard Worker  //
95*d5c09012SAndroid Build Coastguard Worker  // The following fields are required:
96*d5c09012SAndroid Build Coastguard Worker  //
97*d5c09012SAndroid Build Coastguard Worker  // * [annotationSetId][google.genomics.v1.Annotation.annotation_set_id]
98*d5c09012SAndroid Build Coastguard Worker  // * [referenceName][google.genomics.v1.Annotation.reference_name] or
99*d5c09012SAndroid Build Coastguard Worker  //   [referenceId][google.genomics.v1.Annotation.reference_id]
100*d5c09012SAndroid Build Coastguard Worker  //
101*d5c09012SAndroid Build Coastguard Worker  // ### Transcripts
102*d5c09012SAndroid Build Coastguard Worker  //
103*d5c09012SAndroid Build Coastguard Worker  // For annotations of type TRANSCRIPT, the following fields of
104*d5c09012SAndroid Build Coastguard Worker  // [transcript][google.genomics.v1.Annotation.transcript] must be provided:
105*d5c09012SAndroid Build Coastguard Worker  //
106*d5c09012SAndroid Build Coastguard Worker  // * [exons.start][google.genomics.v1.Transcript.Exon.start]
107*d5c09012SAndroid Build Coastguard Worker  // * [exons.end][google.genomics.v1.Transcript.Exon.end]
108*d5c09012SAndroid Build Coastguard Worker  //
109*d5c09012SAndroid Build Coastguard Worker  // All other fields may be optionally specified, unless documented as being
110*d5c09012SAndroid Build Coastguard Worker  // server-generated (for example, the `id` field). The annotated
111*d5c09012SAndroid Build Coastguard Worker  // range must be no longer than 100Mbp (mega base pairs). See the
112*d5c09012SAndroid Build Coastguard Worker  // [Annotation resource][google.genomics.v1.Annotation]
113*d5c09012SAndroid Build Coastguard Worker  // for additional restrictions on each field.
114*d5c09012SAndroid Build Coastguard Worker  rpc CreateAnnotation(CreateAnnotationRequest) returns (Annotation) {
115*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
116*d5c09012SAndroid Build Coastguard Worker      post: "/v1/annotations"
117*d5c09012SAndroid Build Coastguard Worker      body: "annotation"
118*d5c09012SAndroid Build Coastguard Worker    };
119*d5c09012SAndroid Build Coastguard Worker  }
120*d5c09012SAndroid Build Coastguard Worker
121*d5c09012SAndroid Build Coastguard Worker  // Creates one or more new annotations atomically. All annotations must
122*d5c09012SAndroid Build Coastguard Worker  // belong to the same annotation set. Caller must have WRITE
123*d5c09012SAndroid Build Coastguard Worker  // permission for this annotation set. For optimal performance, batch
124*d5c09012SAndroid Build Coastguard Worker  // positionally adjacent annotations together.
125*d5c09012SAndroid Build Coastguard Worker  //
126*d5c09012SAndroid Build Coastguard Worker  // If the request has a systemic issue, such as an attempt to write to
127*d5c09012SAndroid Build Coastguard Worker  // an inaccessible annotation set, the entire RPC will fail accordingly. For
128*d5c09012SAndroid Build Coastguard Worker  // lesser data issues, when possible an error will be isolated to the
129*d5c09012SAndroid Build Coastguard Worker  // corresponding batch entry in the response; the remaining well formed
130*d5c09012SAndroid Build Coastguard Worker  // annotations will be created normally.
131*d5c09012SAndroid Build Coastguard Worker  //
132*d5c09012SAndroid Build Coastguard Worker  // For details on the requirements for each individual annotation resource,
133*d5c09012SAndroid Build Coastguard Worker  // see
134*d5c09012SAndroid Build Coastguard Worker  // [CreateAnnotation][google.genomics.v1.AnnotationServiceV1.CreateAnnotation].
135*d5c09012SAndroid Build Coastguard Worker  rpc BatchCreateAnnotations(BatchCreateAnnotationsRequest)
136*d5c09012SAndroid Build Coastguard Worker      returns (BatchCreateAnnotationsResponse) {
137*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
138*d5c09012SAndroid Build Coastguard Worker      post: "/v1/annotations:batchCreate"
139*d5c09012SAndroid Build Coastguard Worker      body: "*"
140*d5c09012SAndroid Build Coastguard Worker    };
141*d5c09012SAndroid Build Coastguard Worker  }
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker  // Gets an annotation. Caller must have READ permission
144*d5c09012SAndroid Build Coastguard Worker  // for the associated annotation set.
145*d5c09012SAndroid Build Coastguard Worker  rpc GetAnnotation(GetAnnotationRequest) returns (Annotation) {
146*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
147*d5c09012SAndroid Build Coastguard Worker      get: "/v1/annotations/{annotation_id}"
148*d5c09012SAndroid Build Coastguard Worker    };
149*d5c09012SAndroid Build Coastguard Worker  }
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // Updates an annotation. Caller must have
152*d5c09012SAndroid Build Coastguard Worker  // WRITE permission for the associated dataset.
153*d5c09012SAndroid Build Coastguard Worker  rpc UpdateAnnotation(UpdateAnnotationRequest) returns (Annotation) {
154*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
155*d5c09012SAndroid Build Coastguard Worker      put: "/v1/annotations/{annotation_id}"
156*d5c09012SAndroid Build Coastguard Worker      body: "annotation"
157*d5c09012SAndroid Build Coastguard Worker    };
158*d5c09012SAndroid Build Coastguard Worker  }
159*d5c09012SAndroid Build Coastguard Worker
160*d5c09012SAndroid Build Coastguard Worker  // Deletes an annotation. Caller must have WRITE permission for
161*d5c09012SAndroid Build Coastguard Worker  // the associated annotation set.
162*d5c09012SAndroid Build Coastguard Worker  rpc DeleteAnnotation(DeleteAnnotationRequest)
163*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
164*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
165*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/annotations/{annotation_id}"
166*d5c09012SAndroid Build Coastguard Worker    };
167*d5c09012SAndroid Build Coastguard Worker  }
168*d5c09012SAndroid Build Coastguard Worker
169*d5c09012SAndroid Build Coastguard Worker  // Searches for annotations that match the given criteria. Results are
170*d5c09012SAndroid Build Coastguard Worker  // ordered by genomic coordinate (by reference sequence, then position).
171*d5c09012SAndroid Build Coastguard Worker  // Annotations with equivalent genomic coordinates are returned in an
172*d5c09012SAndroid Build Coastguard Worker  // unspecified order. This order is consistent, such that two queries for the
173*d5c09012SAndroid Build Coastguard Worker  // same content (regardless of page size) yield annotations in the same order
174*d5c09012SAndroid Build Coastguard Worker  // across their respective streams of paginated responses. Caller must have
175*d5c09012SAndroid Build Coastguard Worker  // READ permission for the queried annotation sets.
176*d5c09012SAndroid Build Coastguard Worker  rpc SearchAnnotations(SearchAnnotationsRequest)
177*d5c09012SAndroid Build Coastguard Worker      returns (SearchAnnotationsResponse) {
178*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
179*d5c09012SAndroid Build Coastguard Worker      post: "/v1/annotations/search"
180*d5c09012SAndroid Build Coastguard Worker      body: "*"
181*d5c09012SAndroid Build Coastguard Worker    };
182*d5c09012SAndroid Build Coastguard Worker  }
183*d5c09012SAndroid Build Coastguard Worker}
184*d5c09012SAndroid Build Coastguard Worker
185*d5c09012SAndroid Build Coastguard Worker// An annotation set is a logical grouping of annotations that share consistent
186*d5c09012SAndroid Build Coastguard Worker// type information and provenance. Examples of annotation sets include 'all
187*d5c09012SAndroid Build Coastguard Worker// genes from refseq', and 'all variant annotations from ClinVar'.
188*d5c09012SAndroid Build Coastguard Workermessage AnnotationSet {
189*d5c09012SAndroid Build Coastguard Worker  // The server-generated annotation set ID, unique across all annotation sets.
190*d5c09012SAndroid Build Coastguard Worker  string id = 1;
191*d5c09012SAndroid Build Coastguard Worker
192*d5c09012SAndroid Build Coastguard Worker  // The dataset to which this annotation set belongs.
193*d5c09012SAndroid Build Coastguard Worker  string dataset_id = 2;
194*d5c09012SAndroid Build Coastguard Worker
195*d5c09012SAndroid Build Coastguard Worker  // The ID of the reference set that defines the coordinate space for this
196*d5c09012SAndroid Build Coastguard Worker  // set's annotations.
197*d5c09012SAndroid Build Coastguard Worker  string reference_set_id = 3;
198*d5c09012SAndroid Build Coastguard Worker
199*d5c09012SAndroid Build Coastguard Worker  // The display name for this annotation set.
200*d5c09012SAndroid Build Coastguard Worker  string name = 4;
201*d5c09012SAndroid Build Coastguard Worker
202*d5c09012SAndroid Build Coastguard Worker  // The source URI describing the file from which this annotation set was
203*d5c09012SAndroid Build Coastguard Worker  // generated, if any.
204*d5c09012SAndroid Build Coastguard Worker  string source_uri = 5;
205*d5c09012SAndroid Build Coastguard Worker
206*d5c09012SAndroid Build Coastguard Worker  // The type of annotations contained within this set.
207*d5c09012SAndroid Build Coastguard Worker  AnnotationType type = 6;
208*d5c09012SAndroid Build Coastguard Worker
209*d5c09012SAndroid Build Coastguard Worker  // A map of additional read alignment information. This must be of the form
210*d5c09012SAndroid Build Coastguard Worker  // map<string, string[]> (string key mapping to a list of string values).
211*d5c09012SAndroid Build Coastguard Worker  map<string, google.protobuf.ListValue> info = 17;
212*d5c09012SAndroid Build Coastguard Worker}
213*d5c09012SAndroid Build Coastguard Worker
214*d5c09012SAndroid Build Coastguard Worker// An annotation describes a region of reference genome. The value of an
215*d5c09012SAndroid Build Coastguard Worker// annotation may be one of several canonical types, supplemented by arbitrary
216*d5c09012SAndroid Build Coastguard Worker// info tags. An annotation is not inherently associated with a specific
217*d5c09012SAndroid Build Coastguard Worker// sample or individual (though a client could choose to use annotations in
218*d5c09012SAndroid Build Coastguard Worker// this way). Example canonical annotation types are `GENE` and
219*d5c09012SAndroid Build Coastguard Worker// `VARIANT`.
220*d5c09012SAndroid Build Coastguard Workermessage Annotation {
221*d5c09012SAndroid Build Coastguard Worker  // The server-generated annotation ID, unique across all annotations.
222*d5c09012SAndroid Build Coastguard Worker  string id = 1;
223*d5c09012SAndroid Build Coastguard Worker
224*d5c09012SAndroid Build Coastguard Worker  // The annotation set to which this annotation belongs.
225*d5c09012SAndroid Build Coastguard Worker  string annotation_set_id = 2;
226*d5c09012SAndroid Build Coastguard Worker
227*d5c09012SAndroid Build Coastguard Worker  // The display name of this annotation.
228*d5c09012SAndroid Build Coastguard Worker  string name = 3;
229*d5c09012SAndroid Build Coastguard Worker
230*d5c09012SAndroid Build Coastguard Worker  // The ID of the Google Genomics reference associated with this range.
231*d5c09012SAndroid Build Coastguard Worker  string reference_id = 4;
232*d5c09012SAndroid Build Coastguard Worker
233*d5c09012SAndroid Build Coastguard Worker  // The display name corresponding to the reference specified by
234*d5c09012SAndroid Build Coastguard Worker  // `referenceId`, for example `chr1`, `1`, or `chrX`.
235*d5c09012SAndroid Build Coastguard Worker  string reference_name = 5;
236*d5c09012SAndroid Build Coastguard Worker
237*d5c09012SAndroid Build Coastguard Worker  // The start position of the range on the reference, 0-based inclusive.
238*d5c09012SAndroid Build Coastguard Worker  int64 start = 6;
239*d5c09012SAndroid Build Coastguard Worker
240*d5c09012SAndroid Build Coastguard Worker  // The end position of the range on the reference, 0-based exclusive.
241*d5c09012SAndroid Build Coastguard Worker  int64 end = 7;
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker  // Whether this range refers to the reverse strand, as opposed to the forward
244*d5c09012SAndroid Build Coastguard Worker  // strand. Note that regardless of this field, the start/end position of the
245*d5c09012SAndroid Build Coastguard Worker  // range always refer to the forward strand.
246*d5c09012SAndroid Build Coastguard Worker  bool reverse_strand = 8;
247*d5c09012SAndroid Build Coastguard Worker
248*d5c09012SAndroid Build Coastguard Worker  // The data type for this annotation. Must match the containing annotation
249*d5c09012SAndroid Build Coastguard Worker  // set's type.
250*d5c09012SAndroid Build Coastguard Worker  AnnotationType type = 9;
251*d5c09012SAndroid Build Coastguard Worker
252*d5c09012SAndroid Build Coastguard Worker  oneof value {
253*d5c09012SAndroid Build Coastguard Worker    // A variant annotation, which describes the effect of a variant on the
254*d5c09012SAndroid Build Coastguard Worker    // genome, the coding sequence, and/or higher level consequences at the
255*d5c09012SAndroid Build Coastguard Worker    // organism level e.g. pathogenicity. This field is only set for annotations
256*d5c09012SAndroid Build Coastguard Worker    // of type `VARIANT`.
257*d5c09012SAndroid Build Coastguard Worker    VariantAnnotation variant = 10;
258*d5c09012SAndroid Build Coastguard Worker
259*d5c09012SAndroid Build Coastguard Worker    // A transcript value represents the assertion that a particular region of
260*d5c09012SAndroid Build Coastguard Worker    // the reference genome may be transcribed as RNA. An alternative splicing
261*d5c09012SAndroid Build Coastguard Worker    // pattern would be represented as a separate transcript object. This field
262*d5c09012SAndroid Build Coastguard Worker    // is only set for annotations of type `TRANSCRIPT`.
263*d5c09012SAndroid Build Coastguard Worker    Transcript transcript = 11;
264*d5c09012SAndroid Build Coastguard Worker  }
265*d5c09012SAndroid Build Coastguard Worker
266*d5c09012SAndroid Build Coastguard Worker  // A map of additional read alignment information. This must be of the form
267*d5c09012SAndroid Build Coastguard Worker  // map<string, string[]> (string key mapping to a list of string values).
268*d5c09012SAndroid Build Coastguard Worker  map<string, google.protobuf.ListValue> info = 12;
269*d5c09012SAndroid Build Coastguard Worker}
270*d5c09012SAndroid Build Coastguard Worker
271*d5c09012SAndroid Build Coastguard Workermessage VariantAnnotation {
272*d5c09012SAndroid Build Coastguard Worker  message ClinicalCondition {
273*d5c09012SAndroid Build Coastguard Worker    // A set of names for the condition.
274*d5c09012SAndroid Build Coastguard Worker    repeated string names = 1;
275*d5c09012SAndroid Build Coastguard Worker
276*d5c09012SAndroid Build Coastguard Worker    // The set of external IDs for this condition.
277*d5c09012SAndroid Build Coastguard Worker    repeated ExternalId external_ids = 2;
278*d5c09012SAndroid Build Coastguard Worker
279*d5c09012SAndroid Build Coastguard Worker    // The MedGen concept id associated with this gene.
280*d5c09012SAndroid Build Coastguard Worker    // Search for these IDs at http://www.ncbi.nlm.nih.gov/medgen/
281*d5c09012SAndroid Build Coastguard Worker    string concept_id = 3;
282*d5c09012SAndroid Build Coastguard Worker
283*d5c09012SAndroid Build Coastguard Worker    // The OMIM id for this condition.
284*d5c09012SAndroid Build Coastguard Worker    // Search for these IDs at http://omim.org/
285*d5c09012SAndroid Build Coastguard Worker    string omim_id = 4;
286*d5c09012SAndroid Build Coastguard Worker  }
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker  enum Type {
289*d5c09012SAndroid Build Coastguard Worker    TYPE_UNSPECIFIED = 0;
290*d5c09012SAndroid Build Coastguard Worker
291*d5c09012SAndroid Build Coastguard Worker    // `TYPE_OTHER` should be used when no other Type will suffice.
292*d5c09012SAndroid Build Coastguard Worker    // Further explanation of the variant type may be included in the
293*d5c09012SAndroid Build Coastguard Worker    // [info][google.genomics.v1.Annotation.info] field.
294*d5c09012SAndroid Build Coastguard Worker    TYPE_OTHER = 1;
295*d5c09012SAndroid Build Coastguard Worker
296*d5c09012SAndroid Build Coastguard Worker    // `INSERTION` indicates an insertion.
297*d5c09012SAndroid Build Coastguard Worker    INSERTION = 2;
298*d5c09012SAndroid Build Coastguard Worker
299*d5c09012SAndroid Build Coastguard Worker    // `DELETION` indicates a deletion.
300*d5c09012SAndroid Build Coastguard Worker    DELETION = 3;
301*d5c09012SAndroid Build Coastguard Worker
302*d5c09012SAndroid Build Coastguard Worker    // `SUBSTITUTION` indicates a block substitution of
303*d5c09012SAndroid Build Coastguard Worker    // two or more nucleotides.
304*d5c09012SAndroid Build Coastguard Worker    SUBSTITUTION = 4;
305*d5c09012SAndroid Build Coastguard Worker
306*d5c09012SAndroid Build Coastguard Worker    // `SNP` indicates a single nucleotide polymorphism.
307*d5c09012SAndroid Build Coastguard Worker    SNP = 5;
308*d5c09012SAndroid Build Coastguard Worker
309*d5c09012SAndroid Build Coastguard Worker    // `STRUCTURAL` indicates a large structural variant,
310*d5c09012SAndroid Build Coastguard Worker    // including chromosomal fusions, inversions, etc.
311*d5c09012SAndroid Build Coastguard Worker    STRUCTURAL = 6;
312*d5c09012SAndroid Build Coastguard Worker
313*d5c09012SAndroid Build Coastguard Worker    // `CNV` indicates a variation in copy number.
314*d5c09012SAndroid Build Coastguard Worker    CNV = 7;
315*d5c09012SAndroid Build Coastguard Worker  }
316*d5c09012SAndroid Build Coastguard Worker
317*d5c09012SAndroid Build Coastguard Worker  enum Effect {
318*d5c09012SAndroid Build Coastguard Worker    EFFECT_UNSPECIFIED = 0;
319*d5c09012SAndroid Build Coastguard Worker
320*d5c09012SAndroid Build Coastguard Worker    // `EFFECT_OTHER` should be used when no other Effect
321*d5c09012SAndroid Build Coastguard Worker    // will suffice.
322*d5c09012SAndroid Build Coastguard Worker    EFFECT_OTHER = 1;
323*d5c09012SAndroid Build Coastguard Worker
324*d5c09012SAndroid Build Coastguard Worker    // `FRAMESHIFT` indicates a mutation in which the insertion or
325*d5c09012SAndroid Build Coastguard Worker    // deletion of nucleotides resulted in a frameshift change.
326*d5c09012SAndroid Build Coastguard Worker    FRAMESHIFT = 2;
327*d5c09012SAndroid Build Coastguard Worker
328*d5c09012SAndroid Build Coastguard Worker    // `FRAME_PRESERVING_INDEL` indicates a mutation in which a
329*d5c09012SAndroid Build Coastguard Worker    // multiple of three nucleotides has been inserted or deleted, resulting
330*d5c09012SAndroid Build Coastguard Worker    // in no change to the reading frame of the coding sequence.
331*d5c09012SAndroid Build Coastguard Worker    FRAME_PRESERVING_INDEL = 3;
332*d5c09012SAndroid Build Coastguard Worker
333*d5c09012SAndroid Build Coastguard Worker    // `SYNONYMOUS_SNP` indicates a single nucleotide polymorphism
334*d5c09012SAndroid Build Coastguard Worker    // mutation that results in no amino acid change.
335*d5c09012SAndroid Build Coastguard Worker    SYNONYMOUS_SNP = 4;
336*d5c09012SAndroid Build Coastguard Worker
337*d5c09012SAndroid Build Coastguard Worker    // `NONSYNONYMOUS_SNP` indicates a single nucleotide
338*d5c09012SAndroid Build Coastguard Worker    // polymorphism mutation that results in an amino acid change.
339*d5c09012SAndroid Build Coastguard Worker    NONSYNONYMOUS_SNP = 5;
340*d5c09012SAndroid Build Coastguard Worker
341*d5c09012SAndroid Build Coastguard Worker    // `STOP_GAIN` indicates a mutation that leads to the creation
342*d5c09012SAndroid Build Coastguard Worker    // of a stop codon at the variant site. Frameshift mutations creating
343*d5c09012SAndroid Build Coastguard Worker    // downstream stop codons do not count as `STOP_GAIN`.
344*d5c09012SAndroid Build Coastguard Worker    STOP_GAIN = 6;
345*d5c09012SAndroid Build Coastguard Worker
346*d5c09012SAndroid Build Coastguard Worker    // `STOP_LOSS` indicates a mutation that eliminates a
347*d5c09012SAndroid Build Coastguard Worker    // stop codon at the variant site.
348*d5c09012SAndroid Build Coastguard Worker    STOP_LOSS = 7;
349*d5c09012SAndroid Build Coastguard Worker
350*d5c09012SAndroid Build Coastguard Worker    // `SPLICE_SITE_DISRUPTION` indicates that this variant is
351*d5c09012SAndroid Build Coastguard Worker    // found in a splice site for the associated transcript, and alters the
352*d5c09012SAndroid Build Coastguard Worker    // normal splicing pattern.
353*d5c09012SAndroid Build Coastguard Worker    SPLICE_SITE_DISRUPTION = 8;
354*d5c09012SAndroid Build Coastguard Worker  }
355*d5c09012SAndroid Build Coastguard Worker
356*d5c09012SAndroid Build Coastguard Worker  enum ClinicalSignificance {
357*d5c09012SAndroid Build Coastguard Worker    CLINICAL_SIGNIFICANCE_UNSPECIFIED = 0;
358*d5c09012SAndroid Build Coastguard Worker
359*d5c09012SAndroid Build Coastguard Worker    // `OTHER` should be used when no other clinical significance
360*d5c09012SAndroid Build Coastguard Worker    // value will suffice.
361*d5c09012SAndroid Build Coastguard Worker    CLINICAL_SIGNIFICANCE_OTHER = 1;
362*d5c09012SAndroid Build Coastguard Worker
363*d5c09012SAndroid Build Coastguard Worker    UNCERTAIN = 2;
364*d5c09012SAndroid Build Coastguard Worker
365*d5c09012SAndroid Build Coastguard Worker    BENIGN = 3;
366*d5c09012SAndroid Build Coastguard Worker
367*d5c09012SAndroid Build Coastguard Worker    LIKELY_BENIGN = 4;
368*d5c09012SAndroid Build Coastguard Worker
369*d5c09012SAndroid Build Coastguard Worker    LIKELY_PATHOGENIC = 5;
370*d5c09012SAndroid Build Coastguard Worker
371*d5c09012SAndroid Build Coastguard Worker    PATHOGENIC = 6;
372*d5c09012SAndroid Build Coastguard Worker
373*d5c09012SAndroid Build Coastguard Worker    DRUG_RESPONSE = 7;
374*d5c09012SAndroid Build Coastguard Worker
375*d5c09012SAndroid Build Coastguard Worker    HISTOCOMPATIBILITY = 8;
376*d5c09012SAndroid Build Coastguard Worker
377*d5c09012SAndroid Build Coastguard Worker    CONFERS_SENSITIVITY = 9;
378*d5c09012SAndroid Build Coastguard Worker
379*d5c09012SAndroid Build Coastguard Worker    RISK_FACTOR = 10;
380*d5c09012SAndroid Build Coastguard Worker
381*d5c09012SAndroid Build Coastguard Worker    ASSOCIATION = 11;
382*d5c09012SAndroid Build Coastguard Worker
383*d5c09012SAndroid Build Coastguard Worker    PROTECTIVE = 12;
384*d5c09012SAndroid Build Coastguard Worker
385*d5c09012SAndroid Build Coastguard Worker    // `MULTIPLE_REPORTED` should be used when multiple clinical
386*d5c09012SAndroid Build Coastguard Worker    // signficances are reported for a variant. The original clinical
387*d5c09012SAndroid Build Coastguard Worker    // significance values may be provided in the `info` field.
388*d5c09012SAndroid Build Coastguard Worker    MULTIPLE_REPORTED = 13;
389*d5c09012SAndroid Build Coastguard Worker  }
390*d5c09012SAndroid Build Coastguard Worker
391*d5c09012SAndroid Build Coastguard Worker  // Type has been adapted from ClinVar's list of variant types.
392*d5c09012SAndroid Build Coastguard Worker  Type type = 1;
393*d5c09012SAndroid Build Coastguard Worker
394*d5c09012SAndroid Build Coastguard Worker  // Effect of the variant on the coding sequence.
395*d5c09012SAndroid Build Coastguard Worker  Effect effect = 2;
396*d5c09012SAndroid Build Coastguard Worker
397*d5c09012SAndroid Build Coastguard Worker  // The alternate allele for this variant. If multiple alternate alleles
398*d5c09012SAndroid Build Coastguard Worker  // exist at this location, create a separate variant for each one, as they
399*d5c09012SAndroid Build Coastguard Worker  // may represent distinct conditions.
400*d5c09012SAndroid Build Coastguard Worker  string alternate_bases = 3;
401*d5c09012SAndroid Build Coastguard Worker
402*d5c09012SAndroid Build Coastguard Worker  // Google annotation ID of the gene affected by this variant. This should
403*d5c09012SAndroid Build Coastguard Worker  // be provided when the variant is created.
404*d5c09012SAndroid Build Coastguard Worker  string gene_id = 4;
405*d5c09012SAndroid Build Coastguard Worker
406*d5c09012SAndroid Build Coastguard Worker  // Google annotation IDs of the transcripts affected by this variant. These
407*d5c09012SAndroid Build Coastguard Worker  // should be provided when the variant is created.
408*d5c09012SAndroid Build Coastguard Worker  repeated string transcript_ids = 5;
409*d5c09012SAndroid Build Coastguard Worker
410*d5c09012SAndroid Build Coastguard Worker  // The set of conditions associated with this variant.
411*d5c09012SAndroid Build Coastguard Worker  // A condition describes the way a variant influences human health.
412*d5c09012SAndroid Build Coastguard Worker  repeated ClinicalCondition conditions = 6;
413*d5c09012SAndroid Build Coastguard Worker
414*d5c09012SAndroid Build Coastguard Worker  // Describes the clinical significance of a variant.
415*d5c09012SAndroid Build Coastguard Worker  // It is adapted from the ClinVar controlled vocabulary for clinical
416*d5c09012SAndroid Build Coastguard Worker  // significance described at:
417*d5c09012SAndroid Build Coastguard Worker  // http://www.ncbi.nlm.nih.gov/clinvar/docs/clinsig/
418*d5c09012SAndroid Build Coastguard Worker  ClinicalSignificance clinical_significance = 7;
419*d5c09012SAndroid Build Coastguard Worker}
420*d5c09012SAndroid Build Coastguard Worker
421*d5c09012SAndroid Build Coastguard Worker// A transcript represents the assertion that a particular region of the
422*d5c09012SAndroid Build Coastguard Worker// reference genome may be transcribed as RNA.
423*d5c09012SAndroid Build Coastguard Workermessage Transcript {
424*d5c09012SAndroid Build Coastguard Worker  message Exon {
425*d5c09012SAndroid Build Coastguard Worker    // The start position of the exon on this annotation's reference sequence,
426*d5c09012SAndroid Build Coastguard Worker    // 0-based inclusive. Note that this is relative to the reference start, and
427*d5c09012SAndroid Build Coastguard Worker    // **not** the containing annotation start.
428*d5c09012SAndroid Build Coastguard Worker    int64 start = 1;
429*d5c09012SAndroid Build Coastguard Worker
430*d5c09012SAndroid Build Coastguard Worker    // The end position of the exon on this annotation's reference sequence,
431*d5c09012SAndroid Build Coastguard Worker    // 0-based exclusive. Note that this is relative to the reference start, and
432*d5c09012SAndroid Build Coastguard Worker    // *not* the containing annotation start.
433*d5c09012SAndroid Build Coastguard Worker    int64 end = 2;
434*d5c09012SAndroid Build Coastguard Worker
435*d5c09012SAndroid Build Coastguard Worker    // The frame of this exon. Contains a value of 0, 1, or 2, which indicates
436*d5c09012SAndroid Build Coastguard Worker    // the offset of the first coding base of the exon within the reading frame
437*d5c09012SAndroid Build Coastguard Worker    // of the coding DNA sequence, if any. This field is dependent on the
438*d5c09012SAndroid Build Coastguard Worker    // strandedness of this annotation (see
439*d5c09012SAndroid Build Coastguard Worker    // [Annotation.reverse_strand][google.genomics.v1.Annotation.reverse_strand]).
440*d5c09012SAndroid Build Coastguard Worker    // For forward stranded annotations, this offset is relative to the
441*d5c09012SAndroid Build Coastguard Worker    // [exon.start][google.genomics.v1.Transcript.Exon.start]. For reverse
442*d5c09012SAndroid Build Coastguard Worker    // strand annotations, this offset is relative to the
443*d5c09012SAndroid Build Coastguard Worker    // [exon.end][google.genomics.v1.Transcript.Exon.end] `- 1`.
444*d5c09012SAndroid Build Coastguard Worker    //
445*d5c09012SAndroid Build Coastguard Worker    // Unset if this exon does not intersect the coding sequence. Upon creation
446*d5c09012SAndroid Build Coastguard Worker    // of a transcript, the frame must be populated for all or none of the
447*d5c09012SAndroid Build Coastguard Worker    // coding exons.
448*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Int32Value frame = 3;
449*d5c09012SAndroid Build Coastguard Worker  }
450*d5c09012SAndroid Build Coastguard Worker
451*d5c09012SAndroid Build Coastguard Worker  message CodingSequence {
452*d5c09012SAndroid Build Coastguard Worker    // The start of the coding sequence on this annotation's reference sequence,
453*d5c09012SAndroid Build Coastguard Worker    // 0-based inclusive. Note that this position is relative to the reference
454*d5c09012SAndroid Build Coastguard Worker    // start, and *not* the containing annotation start.
455*d5c09012SAndroid Build Coastguard Worker    int64 start = 1;
456*d5c09012SAndroid Build Coastguard Worker
457*d5c09012SAndroid Build Coastguard Worker    // The end of the coding sequence on this annotation's reference sequence,
458*d5c09012SAndroid Build Coastguard Worker    // 0-based exclusive. Note that this position is relative to the reference
459*d5c09012SAndroid Build Coastguard Worker    // start, and *not* the containing annotation start.
460*d5c09012SAndroid Build Coastguard Worker    int64 end = 2;
461*d5c09012SAndroid Build Coastguard Worker  }
462*d5c09012SAndroid Build Coastguard Worker
463*d5c09012SAndroid Build Coastguard Worker  // The annotation ID of the gene from which this transcript is transcribed.
464*d5c09012SAndroid Build Coastguard Worker  string gene_id = 1;
465*d5c09012SAndroid Build Coastguard Worker
466*d5c09012SAndroid Build Coastguard Worker  // The <a href="http://en.wikipedia.org/wiki/Exon">exons</a> that compose
467*d5c09012SAndroid Build Coastguard Worker  // this transcript. This field should be unset for genomes where transcript
468*d5c09012SAndroid Build Coastguard Worker  // splicing does not occur, for example prokaryotes.
469*d5c09012SAndroid Build Coastguard Worker  //
470*d5c09012SAndroid Build Coastguard Worker  // Introns are regions of the transcript that are not included in the
471*d5c09012SAndroid Build Coastguard Worker  // spliced RNA product. Though not explicitly modeled here, intron ranges can
472*d5c09012SAndroid Build Coastguard Worker  // be deduced; all regions of this transcript that are not exons are introns.
473*d5c09012SAndroid Build Coastguard Worker  //
474*d5c09012SAndroid Build Coastguard Worker  // Exonic sequences do not necessarily code for a translational product
475*d5c09012SAndroid Build Coastguard Worker  // (amino acids). Only the regions of exons bounded by the
476*d5c09012SAndroid Build Coastguard Worker  // [codingSequence][google.genomics.v1.Transcript.coding_sequence] correspond
477*d5c09012SAndroid Build Coastguard Worker  // to coding DNA sequence.
478*d5c09012SAndroid Build Coastguard Worker  //
479*d5c09012SAndroid Build Coastguard Worker  // Exons are ordered by start position and may not overlap.
480*d5c09012SAndroid Build Coastguard Worker  repeated Exon exons = 2;
481*d5c09012SAndroid Build Coastguard Worker
482*d5c09012SAndroid Build Coastguard Worker  // The range of the coding sequence for this transcript, if any. To determine
483*d5c09012SAndroid Build Coastguard Worker  // the exact ranges of coding sequence, intersect this range with those of the
484*d5c09012SAndroid Build Coastguard Worker  // [exons][google.genomics.v1.Transcript.exons], if any. If there are any
485*d5c09012SAndroid Build Coastguard Worker  // [exons][google.genomics.v1.Transcript.exons], the
486*d5c09012SAndroid Build Coastguard Worker  // [codingSequence][google.genomics.v1.Transcript.coding_sequence] must start
487*d5c09012SAndroid Build Coastguard Worker  // and end within them.
488*d5c09012SAndroid Build Coastguard Worker  //
489*d5c09012SAndroid Build Coastguard Worker  // Note that in some cases, the reference genome will not exactly match the
490*d5c09012SAndroid Build Coastguard Worker  // observed mRNA transcript e.g. due to variance in the source genome from
491*d5c09012SAndroid Build Coastguard Worker  // reference. In these cases,
492*d5c09012SAndroid Build Coastguard Worker  // [exon.frame][google.genomics.v1.Transcript.Exon.frame] will not necessarily
493*d5c09012SAndroid Build Coastguard Worker  // match the expected reference reading frame and coding exon reference bases
494*d5c09012SAndroid Build Coastguard Worker  // cannot necessarily be concatenated to produce the original transcript mRNA.
495*d5c09012SAndroid Build Coastguard Worker  CodingSequence coding_sequence = 3;
496*d5c09012SAndroid Build Coastguard Worker}
497*d5c09012SAndroid Build Coastguard Worker
498*d5c09012SAndroid Build Coastguard Workermessage ExternalId {
499*d5c09012SAndroid Build Coastguard Worker  // The name of the source of this data.
500*d5c09012SAndroid Build Coastguard Worker  string source_name = 1;
501*d5c09012SAndroid Build Coastguard Worker
502*d5c09012SAndroid Build Coastguard Worker  // The id used by the source of this data.
503*d5c09012SAndroid Build Coastguard Worker  string id = 2;
504*d5c09012SAndroid Build Coastguard Worker}
505*d5c09012SAndroid Build Coastguard Worker
506*d5c09012SAndroid Build Coastguard Workermessage CreateAnnotationSetRequest {
507*d5c09012SAndroid Build Coastguard Worker  // The annotation set to create.
508*d5c09012SAndroid Build Coastguard Worker  AnnotationSet annotation_set = 1;
509*d5c09012SAndroid Build Coastguard Worker}
510*d5c09012SAndroid Build Coastguard Worker
511*d5c09012SAndroid Build Coastguard Workermessage GetAnnotationSetRequest {
512*d5c09012SAndroid Build Coastguard Worker  // The ID of the annotation set to be retrieved.
513*d5c09012SAndroid Build Coastguard Worker  string annotation_set_id = 1;
514*d5c09012SAndroid Build Coastguard Worker}
515*d5c09012SAndroid Build Coastguard Worker
516*d5c09012SAndroid Build Coastguard Workermessage UpdateAnnotationSetRequest {
517*d5c09012SAndroid Build Coastguard Worker  // The ID of the annotation set to be updated.
518*d5c09012SAndroid Build Coastguard Worker  string annotation_set_id = 1;
519*d5c09012SAndroid Build Coastguard Worker
520*d5c09012SAndroid Build Coastguard Worker  // The new annotation set.
521*d5c09012SAndroid Build Coastguard Worker  AnnotationSet annotation_set = 2;
522*d5c09012SAndroid Build Coastguard Worker
523*d5c09012SAndroid Build Coastguard Worker  // An optional mask specifying which fields to update. Mutable fields are
524*d5c09012SAndroid Build Coastguard Worker  // [name][google.genomics.v1.AnnotationSet.name],
525*d5c09012SAndroid Build Coastguard Worker  // [source_uri][google.genomics.v1.AnnotationSet.source_uri], and
526*d5c09012SAndroid Build Coastguard Worker  // [info][google.genomics.v1.AnnotationSet.info]. If unspecified, all
527*d5c09012SAndroid Build Coastguard Worker  // mutable fields will be updated.
528*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
529*d5c09012SAndroid Build Coastguard Worker}
530*d5c09012SAndroid Build Coastguard Worker
531*d5c09012SAndroid Build Coastguard Workermessage DeleteAnnotationSetRequest {
532*d5c09012SAndroid Build Coastguard Worker  // The ID of the annotation set to be deleted.
533*d5c09012SAndroid Build Coastguard Worker  string annotation_set_id = 1;
534*d5c09012SAndroid Build Coastguard Worker}
535*d5c09012SAndroid Build Coastguard Worker
536*d5c09012SAndroid Build Coastguard Workermessage SearchAnnotationSetsRequest {
537*d5c09012SAndroid Build Coastguard Worker  // Required. The dataset IDs to search within. Caller must have `READ` access
538*d5c09012SAndroid Build Coastguard Worker  // to these datasets.
539*d5c09012SAndroid Build Coastguard Worker  repeated string dataset_ids = 1;
540*d5c09012SAndroid Build Coastguard Worker
541*d5c09012SAndroid Build Coastguard Worker  // If specified, only annotation sets associated with the given reference set
542*d5c09012SAndroid Build Coastguard Worker  // are returned.
543*d5c09012SAndroid Build Coastguard Worker  string reference_set_id = 2;
544*d5c09012SAndroid Build Coastguard Worker
545*d5c09012SAndroid Build Coastguard Worker  // Only return annotations sets for which a substring of the name matches this
546*d5c09012SAndroid Build Coastguard Worker  // string (case insensitive).
547*d5c09012SAndroid Build Coastguard Worker  string name = 3;
548*d5c09012SAndroid Build Coastguard Worker
549*d5c09012SAndroid Build Coastguard Worker  // If specified, only annotation sets that have any of these types are
550*d5c09012SAndroid Build Coastguard Worker  // returned.
551*d5c09012SAndroid Build Coastguard Worker  repeated AnnotationType types = 4;
552*d5c09012SAndroid Build Coastguard Worker
553*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
554*d5c09012SAndroid Build Coastguard Worker  // To get the next page of results, set this parameter to the value of
555*d5c09012SAndroid Build Coastguard Worker  // `nextPageToken` from the previous response.
556*d5c09012SAndroid Build Coastguard Worker  string page_token = 5;
557*d5c09012SAndroid Build Coastguard Worker
558*d5c09012SAndroid Build Coastguard Worker  // The maximum number of results to return in a single page. If unspecified,
559*d5c09012SAndroid Build Coastguard Worker  // defaults to 128. The maximum value is 1024.
560*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 6;
561*d5c09012SAndroid Build Coastguard Worker}
562*d5c09012SAndroid Build Coastguard Worker
563*d5c09012SAndroid Build Coastguard Workermessage SearchAnnotationSetsResponse {
564*d5c09012SAndroid Build Coastguard Worker  // The matching annotation sets.
565*d5c09012SAndroid Build Coastguard Worker  repeated AnnotationSet annotation_sets = 1;
566*d5c09012SAndroid Build Coastguard Worker
567*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
568*d5c09012SAndroid Build Coastguard Worker  // Provide this value in a subsequent request to return the next page of
569*d5c09012SAndroid Build Coastguard Worker  // results. This field will be empty if there aren't any additional results.
570*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
571*d5c09012SAndroid Build Coastguard Worker}
572*d5c09012SAndroid Build Coastguard Worker
573*d5c09012SAndroid Build Coastguard Workermessage CreateAnnotationRequest {
574*d5c09012SAndroid Build Coastguard Worker  // The annotation to be created.
575*d5c09012SAndroid Build Coastguard Worker  Annotation annotation = 1;
576*d5c09012SAndroid Build Coastguard Worker}
577*d5c09012SAndroid Build Coastguard Worker
578*d5c09012SAndroid Build Coastguard Workermessage BatchCreateAnnotationsRequest {
579*d5c09012SAndroid Build Coastguard Worker  // The annotations to be created. At most 4096 can be specified in a single
580*d5c09012SAndroid Build Coastguard Worker  // request.
581*d5c09012SAndroid Build Coastguard Worker  repeated Annotation annotations = 1;
582*d5c09012SAndroid Build Coastguard Worker
583*d5c09012SAndroid Build Coastguard Worker  // A unique request ID which enables the server to detect duplicated requests.
584*d5c09012SAndroid Build Coastguard Worker  // If provided, duplicated requests will result in the same response; if not
585*d5c09012SAndroid Build Coastguard Worker  // provided, duplicated requests may result in duplicated data. For a given
586*d5c09012SAndroid Build Coastguard Worker  // annotation set, callers should not reuse `request_id`s when writing
587*d5c09012SAndroid Build Coastguard Worker  // different batches of annotations - behavior in this case is undefined.
588*d5c09012SAndroid Build Coastguard Worker  // A common approach is to use a UUID. For batch jobs where worker crashes are
589*d5c09012SAndroid Build Coastguard Worker  // a possibility, consider using some unique variant of a worker or run ID.
590*d5c09012SAndroid Build Coastguard Worker  string request_id = 2;
591*d5c09012SAndroid Build Coastguard Worker}
592*d5c09012SAndroid Build Coastguard Worker
593*d5c09012SAndroid Build Coastguard Workermessage BatchCreateAnnotationsResponse {
594*d5c09012SAndroid Build Coastguard Worker  message Entry {
595*d5c09012SAndroid Build Coastguard Worker    // The creation status.
596*d5c09012SAndroid Build Coastguard Worker    google.rpc.Status status = 1;
597*d5c09012SAndroid Build Coastguard Worker
598*d5c09012SAndroid Build Coastguard Worker    // The created annotation, if creation was successful.
599*d5c09012SAndroid Build Coastguard Worker    Annotation annotation = 2;
600*d5c09012SAndroid Build Coastguard Worker  }
601*d5c09012SAndroid Build Coastguard Worker
602*d5c09012SAndroid Build Coastguard Worker  // The resulting per-annotation entries, ordered consistently with the
603*d5c09012SAndroid Build Coastguard Worker  // original request.
604*d5c09012SAndroid Build Coastguard Worker  repeated Entry entries = 1;
605*d5c09012SAndroid Build Coastguard Worker}
606*d5c09012SAndroid Build Coastguard Worker
607*d5c09012SAndroid Build Coastguard Workermessage GetAnnotationRequest {
608*d5c09012SAndroid Build Coastguard Worker  // The ID of the annotation to be retrieved.
609*d5c09012SAndroid Build Coastguard Worker  string annotation_id = 1;
610*d5c09012SAndroid Build Coastguard Worker}
611*d5c09012SAndroid Build Coastguard Worker
612*d5c09012SAndroid Build Coastguard Workermessage UpdateAnnotationRequest {
613*d5c09012SAndroid Build Coastguard Worker  // The ID of the annotation to be updated.
614*d5c09012SAndroid Build Coastguard Worker  string annotation_id = 1;
615*d5c09012SAndroid Build Coastguard Worker
616*d5c09012SAndroid Build Coastguard Worker  // The new annotation.
617*d5c09012SAndroid Build Coastguard Worker  Annotation annotation = 2;
618*d5c09012SAndroid Build Coastguard Worker
619*d5c09012SAndroid Build Coastguard Worker  // An optional mask specifying which fields to update. Mutable fields are
620*d5c09012SAndroid Build Coastguard Worker  // [name][google.genomics.v1.Annotation.name],
621*d5c09012SAndroid Build Coastguard Worker  // [variant][google.genomics.v1.Annotation.variant],
622*d5c09012SAndroid Build Coastguard Worker  // [transcript][google.genomics.v1.Annotation.transcript], and
623*d5c09012SAndroid Build Coastguard Worker  // [info][google.genomics.v1.Annotation.info]. If unspecified, all mutable
624*d5c09012SAndroid Build Coastguard Worker  // fields will be updated.
625*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
626*d5c09012SAndroid Build Coastguard Worker}
627*d5c09012SAndroid Build Coastguard Worker
628*d5c09012SAndroid Build Coastguard Workermessage DeleteAnnotationRequest {
629*d5c09012SAndroid Build Coastguard Worker  // The ID of the annotation to be deleted.
630*d5c09012SAndroid Build Coastguard Worker  string annotation_id = 1;
631*d5c09012SAndroid Build Coastguard Worker}
632*d5c09012SAndroid Build Coastguard Worker
633*d5c09012SAndroid Build Coastguard Workermessage SearchAnnotationsRequest {
634*d5c09012SAndroid Build Coastguard Worker  // Required. The annotation sets to search within. The caller must have
635*d5c09012SAndroid Build Coastguard Worker  // `READ` access to these annotation sets.
636*d5c09012SAndroid Build Coastguard Worker  // All queried annotation sets must have the same type.
637*d5c09012SAndroid Build Coastguard Worker  repeated string annotation_set_ids = 1;
638*d5c09012SAndroid Build Coastguard Worker
639*d5c09012SAndroid Build Coastguard Worker  // Required. `reference_id` or `reference_name` must be set.
640*d5c09012SAndroid Build Coastguard Worker  oneof reference {
641*d5c09012SAndroid Build Coastguard Worker    // The ID of the reference to query.
642*d5c09012SAndroid Build Coastguard Worker    string reference_id = 2;
643*d5c09012SAndroid Build Coastguard Worker
644*d5c09012SAndroid Build Coastguard Worker    // The name of the reference to query, within the reference set associated
645*d5c09012SAndroid Build Coastguard Worker    // with this query.
646*d5c09012SAndroid Build Coastguard Worker    string reference_name = 3;
647*d5c09012SAndroid Build Coastguard Worker  }
648*d5c09012SAndroid Build Coastguard Worker
649*d5c09012SAndroid Build Coastguard Worker  // The start position of the range on the reference, 0-based inclusive. If
650*d5c09012SAndroid Build Coastguard Worker  // specified,
651*d5c09012SAndroid Build Coastguard Worker  // [referenceId][google.genomics.v1.SearchAnnotationsRequest.reference_id] or
652*d5c09012SAndroid Build Coastguard Worker  // [referenceName][google.genomics.v1.SearchAnnotationsRequest.reference_name]
653*d5c09012SAndroid Build Coastguard Worker  // must be specified. Defaults to 0.
654*d5c09012SAndroid Build Coastguard Worker  int64 start = 4;
655*d5c09012SAndroid Build Coastguard Worker
656*d5c09012SAndroid Build Coastguard Worker  // The end position of the range on the reference, 0-based exclusive. If
657*d5c09012SAndroid Build Coastguard Worker  // [referenceId][google.genomics.v1.SearchAnnotationsRequest.reference_id] or
658*d5c09012SAndroid Build Coastguard Worker  // [referenceName][google.genomics.v1.SearchAnnotationsRequest.reference_name]
659*d5c09012SAndroid Build Coastguard Worker  // must be specified, Defaults to the length of the reference.
660*d5c09012SAndroid Build Coastguard Worker  int64 end = 5;
661*d5c09012SAndroid Build Coastguard Worker
662*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
663*d5c09012SAndroid Build Coastguard Worker  // To get the next page of results, set this parameter to the value of
664*d5c09012SAndroid Build Coastguard Worker  // `nextPageToken` from the previous response.
665*d5c09012SAndroid Build Coastguard Worker  string page_token = 6;
666*d5c09012SAndroid Build Coastguard Worker
667*d5c09012SAndroid Build Coastguard Worker  // The maximum number of results to return in a single page. If unspecified,
668*d5c09012SAndroid Build Coastguard Worker  // defaults to 256. The maximum value is 2048.
669*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 7;
670*d5c09012SAndroid Build Coastguard Worker}
671*d5c09012SAndroid Build Coastguard Worker
672*d5c09012SAndroid Build Coastguard Workermessage SearchAnnotationsResponse {
673*d5c09012SAndroid Build Coastguard Worker  // The matching annotations.
674*d5c09012SAndroid Build Coastguard Worker  repeated Annotation annotations = 1;
675*d5c09012SAndroid Build Coastguard Worker
676*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
677*d5c09012SAndroid Build Coastguard Worker  // Provide this value in a subsequent request to return the next page of
678*d5c09012SAndroid Build Coastguard Worker  // results. This field will be empty if there aren't any additional results.
679*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
680*d5c09012SAndroid Build Coastguard Worker}
681*d5c09012SAndroid Build Coastguard Worker
682*d5c09012SAndroid Build Coastguard Worker// When an [Annotation][google.genomics.v1.Annotation] or
683*d5c09012SAndroid Build Coastguard Worker// [AnnotationSet][google.genomics.v1.AnnotationSet] is created, if `type` is
684*d5c09012SAndroid Build Coastguard Worker// not specified it will be set to `GENERIC`.
685*d5c09012SAndroid Build Coastguard Workerenum AnnotationType {
686*d5c09012SAndroid Build Coastguard Worker  ANNOTATION_TYPE_UNSPECIFIED = 0;
687*d5c09012SAndroid Build Coastguard Worker
688*d5c09012SAndroid Build Coastguard Worker  // A `GENERIC` annotation type should be used when no other annotation
689*d5c09012SAndroid Build Coastguard Worker  // type will suffice. This represents an untyped annotation of the reference
690*d5c09012SAndroid Build Coastguard Worker  // genome.
691*d5c09012SAndroid Build Coastguard Worker  GENERIC = 1;
692*d5c09012SAndroid Build Coastguard Worker
693*d5c09012SAndroid Build Coastguard Worker  // A `VARIANT` annotation type.
694*d5c09012SAndroid Build Coastguard Worker  VARIANT = 2;
695*d5c09012SAndroid Build Coastguard Worker
696*d5c09012SAndroid Build Coastguard Worker  // A `GENE` annotation type represents the existence of a gene at the
697*d5c09012SAndroid Build Coastguard Worker  // associated reference coordinates. The start coordinate is typically the
698*d5c09012SAndroid Build Coastguard Worker  // gene's transcription start site and the end is typically the end of the
699*d5c09012SAndroid Build Coastguard Worker  // gene's last exon.
700*d5c09012SAndroid Build Coastguard Worker  GENE = 3;
701*d5c09012SAndroid Build Coastguard Worker
702*d5c09012SAndroid Build Coastguard Worker  // A `TRANSCRIPT` annotation type represents the assertion that a
703*d5c09012SAndroid Build Coastguard Worker  // particular region of the reference genome may be transcribed as RNA.
704*d5c09012SAndroid Build Coastguard Worker  TRANSCRIPT = 4;
705*d5c09012SAndroid Build Coastguard Worker}
706