xref: /aosp_15_r20/external/googleapis/google/genomics/v1/reads.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/genomics/v1/range.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/genomics/v1/readalignment.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/genomics/v1/readgroupset.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/longrunning/operations.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/field_mask.proto";
26*d5c09012SAndroid Build Coastguard Worker
27*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true;
28*d5c09012SAndroid Build Coastguard Workeroption go_package = "google.golang.org/genproto/googleapis/genomics/v1;genomics";
29*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
30*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ReadsProto";
31*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.genomics.v1";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Workerservice StreamingReadService {
34*d5c09012SAndroid Build Coastguard Worker  // Returns a stream of all the reads matching the search request, ordered
35*d5c09012SAndroid Build Coastguard Worker  // by reference name, position, and ID.
36*d5c09012SAndroid Build Coastguard Worker  rpc StreamReads(StreamReadsRequest) returns (stream StreamReadsResponse) {
37*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
38*d5c09012SAndroid Build Coastguard Worker      post: "/v1/reads:stream"
39*d5c09012SAndroid Build Coastguard Worker      body: "*"
40*d5c09012SAndroid Build Coastguard Worker    };
41*d5c09012SAndroid Build Coastguard Worker  }
42*d5c09012SAndroid Build Coastguard Worker}
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker// The Readstore. A data store for DNA sequencing Reads.
45*d5c09012SAndroid Build Coastguard Workerservice ReadServiceV1 {
46*d5c09012SAndroid Build Coastguard Worker  // Creates read group sets by asynchronously importing the provided
47*d5c09012SAndroid Build Coastguard Worker  // information.
48*d5c09012SAndroid Build Coastguard Worker  //
49*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
50*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
51*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
52*d5c09012SAndroid Build Coastguard Worker  //
53*d5c09012SAndroid Build Coastguard Worker  // The caller must have WRITE permissions to the dataset.
54*d5c09012SAndroid Build Coastguard Worker  //
55*d5c09012SAndroid Build Coastguard Worker  // ## Notes on [BAM](https://samtools.github.io/hts-specs/SAMv1.pdf) import
56*d5c09012SAndroid Build Coastguard Worker  //
57*d5c09012SAndroid Build Coastguard Worker  // - Tags will be converted to strings - tag types are not preserved
58*d5c09012SAndroid Build Coastguard Worker  // - Comments (`@CO`) in the input file header will not be preserved
59*d5c09012SAndroid Build Coastguard Worker  // - Original header order of references (`@SQ`) will not be preserved
60*d5c09012SAndroid Build Coastguard Worker  // - Any reverse stranded unmapped reads will be reverse complemented, and
61*d5c09012SAndroid Build Coastguard Worker  // their qualities (also the "BQ" and "OQ" tags, if any) will be reversed
62*d5c09012SAndroid Build Coastguard Worker  // - Unmapped reads will be stripped of positional information (reference name
63*d5c09012SAndroid Build Coastguard Worker  // and position)
64*d5c09012SAndroid Build Coastguard Worker  rpc ImportReadGroupSets(ImportReadGroupSetsRequest)
65*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
66*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
67*d5c09012SAndroid Build Coastguard Worker      post: "/v1/readgroupsets:import"
68*d5c09012SAndroid Build Coastguard Worker      body: "*"
69*d5c09012SAndroid Build Coastguard Worker    };
70*d5c09012SAndroid Build Coastguard Worker  }
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker  // Exports a read group set to a BAM file in Google Cloud Storage.
73*d5c09012SAndroid Build Coastguard Worker  //
74*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
75*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
76*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
77*d5c09012SAndroid Build Coastguard Worker  //
78*d5c09012SAndroid Build Coastguard Worker  // Note that currently there may be some differences between exported BAM
79*d5c09012SAndroid Build Coastguard Worker  // files and the original BAM file at the time of import. See
80*d5c09012SAndroid Build Coastguard Worker  // [ImportReadGroupSets][google.genomics.v1.ReadServiceV1.ImportReadGroupSets]
81*d5c09012SAndroid Build Coastguard Worker  // for caveats.
82*d5c09012SAndroid Build Coastguard Worker  rpc ExportReadGroupSet(ExportReadGroupSetRequest)
83*d5c09012SAndroid Build Coastguard Worker      returns (google.longrunning.Operation) {
84*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
85*d5c09012SAndroid Build Coastguard Worker      post: "/v1/readgroupsets/{read_group_set_id}:export"
86*d5c09012SAndroid Build Coastguard Worker      body: "*"
87*d5c09012SAndroid Build Coastguard Worker    };
88*d5c09012SAndroid Build Coastguard Worker  }
89*d5c09012SAndroid Build Coastguard Worker
90*d5c09012SAndroid Build Coastguard Worker  // Searches for read group sets matching the criteria.
91*d5c09012SAndroid Build Coastguard Worker  //
92*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
93*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
94*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
95*d5c09012SAndroid Build Coastguard Worker  //
96*d5c09012SAndroid Build Coastguard Worker  // Implements
97*d5c09012SAndroid Build Coastguard Worker  // [GlobalAllianceApi.searchReadGroupSets](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L135).
98*d5c09012SAndroid Build Coastguard Worker  rpc SearchReadGroupSets(SearchReadGroupSetsRequest)
99*d5c09012SAndroid Build Coastguard Worker      returns (SearchReadGroupSetsResponse) {
100*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
101*d5c09012SAndroid Build Coastguard Worker      post: "/v1/readgroupsets/search"
102*d5c09012SAndroid Build Coastguard Worker      body: "*"
103*d5c09012SAndroid Build Coastguard Worker    };
104*d5c09012SAndroid Build Coastguard Worker  }
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker  // Updates a read group set.
107*d5c09012SAndroid Build Coastguard Worker  //
108*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
109*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
110*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
111*d5c09012SAndroid Build Coastguard Worker  //
112*d5c09012SAndroid Build Coastguard Worker  // This method supports patch semantics.
113*d5c09012SAndroid Build Coastguard Worker  rpc UpdateReadGroupSet(UpdateReadGroupSetRequest) returns (ReadGroupSet) {
114*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
115*d5c09012SAndroid Build Coastguard Worker      patch: "/v1/readgroupsets/{read_group_set_id}"
116*d5c09012SAndroid Build Coastguard Worker      body: "read_group_set"
117*d5c09012SAndroid Build Coastguard Worker    };
118*d5c09012SAndroid Build Coastguard Worker  }
119*d5c09012SAndroid Build Coastguard Worker
120*d5c09012SAndroid Build Coastguard Worker  // Deletes a read group set.
121*d5c09012SAndroid Build Coastguard Worker  //
122*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
123*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
124*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
125*d5c09012SAndroid Build Coastguard Worker  rpc DeleteReadGroupSet(DeleteReadGroupSetRequest)
126*d5c09012SAndroid Build Coastguard Worker      returns (google.protobuf.Empty) {
127*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
128*d5c09012SAndroid Build Coastguard Worker      delete: "/v1/readgroupsets/{read_group_set_id}"
129*d5c09012SAndroid Build Coastguard Worker    };
130*d5c09012SAndroid Build Coastguard Worker  }
131*d5c09012SAndroid Build Coastguard Worker
132*d5c09012SAndroid Build Coastguard Worker  // Gets a read group set by ID.
133*d5c09012SAndroid Build Coastguard Worker  //
134*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
135*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
136*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
137*d5c09012SAndroid Build Coastguard Worker  rpc GetReadGroupSet(GetReadGroupSetRequest) returns (ReadGroupSet) {
138*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
139*d5c09012SAndroid Build Coastguard Worker      get: "/v1/readgroupsets/{read_group_set_id}"
140*d5c09012SAndroid Build Coastguard Worker    };
141*d5c09012SAndroid Build Coastguard Worker  }
142*d5c09012SAndroid Build Coastguard Worker
143*d5c09012SAndroid Build Coastguard Worker  // Lists fixed width coverage buckets for a read group set, each of which
144*d5c09012SAndroid Build Coastguard Worker  // correspond to a range of a reference sequence. Each bucket summarizes
145*d5c09012SAndroid Build Coastguard Worker  // coverage information across its corresponding genomic range.
146*d5c09012SAndroid Build Coastguard Worker  //
147*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
148*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
149*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
150*d5c09012SAndroid Build Coastguard Worker  //
151*d5c09012SAndroid Build Coastguard Worker  // Coverage is defined as the number of reads which are aligned to a given
152*d5c09012SAndroid Build Coastguard Worker  // base in the reference sequence. Coverage buckets are available at several
153*d5c09012SAndroid Build Coastguard Worker  // precomputed bucket widths, enabling retrieval of various coverage 'zoom
154*d5c09012SAndroid Build Coastguard Worker  // levels'. The caller must have READ permissions for the target read group
155*d5c09012SAndroid Build Coastguard Worker  // set.
156*d5c09012SAndroid Build Coastguard Worker  rpc ListCoverageBuckets(ListCoverageBucketsRequest)
157*d5c09012SAndroid Build Coastguard Worker      returns (ListCoverageBucketsResponse) {
158*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
159*d5c09012SAndroid Build Coastguard Worker      get: "/v1/readgroupsets/{read_group_set_id}/coveragebuckets"
160*d5c09012SAndroid Build Coastguard Worker    };
161*d5c09012SAndroid Build Coastguard Worker  }
162*d5c09012SAndroid Build Coastguard Worker
163*d5c09012SAndroid Build Coastguard Worker  // Gets a list of reads for one or more read group sets.
164*d5c09012SAndroid Build Coastguard Worker  //
165*d5c09012SAndroid Build Coastguard Worker  // For the definitions of read group sets and other genomics resources, see
166*d5c09012SAndroid Build Coastguard Worker  // [Fundamentals of Google
167*d5c09012SAndroid Build Coastguard Worker  // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
168*d5c09012SAndroid Build Coastguard Worker  //
169*d5c09012SAndroid Build Coastguard Worker  // Reads search operates over a genomic coordinate space of reference sequence
170*d5c09012SAndroid Build Coastguard Worker  // & position defined over the reference sequences to which the requested
171*d5c09012SAndroid Build Coastguard Worker  // read group sets are aligned.
172*d5c09012SAndroid Build Coastguard Worker  //
173*d5c09012SAndroid Build Coastguard Worker  // If a target positional range is specified, search returns all reads whose
174*d5c09012SAndroid Build Coastguard Worker  // alignment to the reference genome overlap the range. A query which
175*d5c09012SAndroid Build Coastguard Worker  // specifies only read group set IDs yields all reads in those read group
176*d5c09012SAndroid Build Coastguard Worker  // sets, including unmapped reads.
177*d5c09012SAndroid Build Coastguard Worker  //
178*d5c09012SAndroid Build Coastguard Worker  // All reads returned (including reads on subsequent pages) are ordered by
179*d5c09012SAndroid Build Coastguard Worker  // genomic coordinate (by reference sequence, then position). Reads with
180*d5c09012SAndroid Build Coastguard Worker  // equivalent genomic coordinates are returned in an unspecified order. This
181*d5c09012SAndroid Build Coastguard Worker  // order is consistent, such that two queries for the same content (regardless
182*d5c09012SAndroid Build Coastguard Worker  // of page size) yield reads in the same order across their respective streams
183*d5c09012SAndroid Build Coastguard Worker  // of paginated responses.
184*d5c09012SAndroid Build Coastguard Worker  //
185*d5c09012SAndroid Build Coastguard Worker  // Implements
186*d5c09012SAndroid Build Coastguard Worker  // [GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).
187*d5c09012SAndroid Build Coastguard Worker  rpc SearchReads(SearchReadsRequest) returns (SearchReadsResponse) {
188*d5c09012SAndroid Build Coastguard Worker    option (google.api.http) = {
189*d5c09012SAndroid Build Coastguard Worker      post: "/v1/reads/search"
190*d5c09012SAndroid Build Coastguard Worker      body: "*"
191*d5c09012SAndroid Build Coastguard Worker    };
192*d5c09012SAndroid Build Coastguard Worker  }
193*d5c09012SAndroid Build Coastguard Worker}
194*d5c09012SAndroid Build Coastguard Worker
195*d5c09012SAndroid Build Coastguard Worker// The read group set search request.
196*d5c09012SAndroid Build Coastguard Workermessage SearchReadGroupSetsRequest {
197*d5c09012SAndroid Build Coastguard Worker  // Restricts this query to read group sets within the given datasets. At least
198*d5c09012SAndroid Build Coastguard Worker  // one ID must be provided.
199*d5c09012SAndroid Build Coastguard Worker  repeated string dataset_ids = 1;
200*d5c09012SAndroid Build Coastguard Worker
201*d5c09012SAndroid Build Coastguard Worker  // Only return read group sets for which a substring of the name matches this
202*d5c09012SAndroid Build Coastguard Worker  // string.
203*d5c09012SAndroid Build Coastguard Worker  string name = 3;
204*d5c09012SAndroid Build Coastguard Worker
205*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
206*d5c09012SAndroid Build Coastguard Worker  // To get the next page of results, set this parameter to the value of
207*d5c09012SAndroid Build Coastguard Worker  // `nextPageToken` from the previous response.
208*d5c09012SAndroid Build Coastguard Worker  string page_token = 2;
209*d5c09012SAndroid Build Coastguard Worker
210*d5c09012SAndroid Build Coastguard Worker  // The maximum number of results to return in a single page. If unspecified,
211*d5c09012SAndroid Build Coastguard Worker  // defaults to 256. The maximum value is 1024.
212*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 4;
213*d5c09012SAndroid Build Coastguard Worker}
214*d5c09012SAndroid Build Coastguard Worker
215*d5c09012SAndroid Build Coastguard Worker// The read group set search response.
216*d5c09012SAndroid Build Coastguard Workermessage SearchReadGroupSetsResponse {
217*d5c09012SAndroid Build Coastguard Worker  // The list of matching read group sets.
218*d5c09012SAndroid Build Coastguard Worker  repeated ReadGroupSet read_group_sets = 1;
219*d5c09012SAndroid Build Coastguard Worker
220*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
221*d5c09012SAndroid Build Coastguard Worker  // Provide this value in a subsequent request to return the next page of
222*d5c09012SAndroid Build Coastguard Worker  // results. This field will be empty if there aren't any additional results.
223*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
224*d5c09012SAndroid Build Coastguard Worker}
225*d5c09012SAndroid Build Coastguard Worker
226*d5c09012SAndroid Build Coastguard Worker// The read group set import request.
227*d5c09012SAndroid Build Coastguard Workermessage ImportReadGroupSetsRequest {
228*d5c09012SAndroid Build Coastguard Worker  enum PartitionStrategy {
229*d5c09012SAndroid Build Coastguard Worker    PARTITION_STRATEGY_UNSPECIFIED = 0;
230*d5c09012SAndroid Build Coastguard Worker
231*d5c09012SAndroid Build Coastguard Worker    // In most cases, this strategy yields one read group set per file. This is
232*d5c09012SAndroid Build Coastguard Worker    // the default behavior.
233*d5c09012SAndroid Build Coastguard Worker    //
234*d5c09012SAndroid Build Coastguard Worker    // Allocate one read group set per file per sample. For BAM files, read
235*d5c09012SAndroid Build Coastguard Worker    // groups are considered to share a sample if they have identical sample
236*d5c09012SAndroid Build Coastguard Worker    // names. Furthermore, all reads for each file which do not belong to a read
237*d5c09012SAndroid Build Coastguard Worker    // group, if any, will be grouped into a single read group set per-file.
238*d5c09012SAndroid Build Coastguard Worker    PER_FILE_PER_SAMPLE = 1;
239*d5c09012SAndroid Build Coastguard Worker
240*d5c09012SAndroid Build Coastguard Worker    // Includes all read groups in all imported files into a single read group
241*d5c09012SAndroid Build Coastguard Worker    // set. Requires that the headers for all imported files are equivalent. All
242*d5c09012SAndroid Build Coastguard Worker    // reads which do not belong to a read group, if any, will be grouped into a
243*d5c09012SAndroid Build Coastguard Worker    // separate read group set.
244*d5c09012SAndroid Build Coastguard Worker    MERGE_ALL = 2;
245*d5c09012SAndroid Build Coastguard Worker  }
246*d5c09012SAndroid Build Coastguard Worker
247*d5c09012SAndroid Build Coastguard Worker  // Required. The ID of the dataset these read group sets will belong to. The
248*d5c09012SAndroid Build Coastguard Worker  // caller must have WRITE permissions to this dataset.
249*d5c09012SAndroid Build Coastguard Worker  string dataset_id = 1;
250*d5c09012SAndroid Build Coastguard Worker
251*d5c09012SAndroid Build Coastguard Worker  // The reference set to which the imported read group sets are aligned to, if
252*d5c09012SAndroid Build Coastguard Worker  // any. The reference names of this reference set must be a superset of those
253*d5c09012SAndroid Build Coastguard Worker  // found in the imported file headers. If no reference set id is provided, a
254*d5c09012SAndroid Build Coastguard Worker  // best effort is made to associate with a matching reference set.
255*d5c09012SAndroid Build Coastguard Worker  string reference_set_id = 4;
256*d5c09012SAndroid Build Coastguard Worker
257*d5c09012SAndroid Build Coastguard Worker  // A list of URIs pointing at [BAM
258*d5c09012SAndroid Build Coastguard Worker  // files](https://samtools.github.io/hts-specs/SAMv1.pdf)
259*d5c09012SAndroid Build Coastguard Worker  // in Google Cloud Storage.
260*d5c09012SAndroid Build Coastguard Worker  // Those URIs can include wildcards (*), but do not add or remove
261*d5c09012SAndroid Build Coastguard Worker  // matching files before import has completed.
262*d5c09012SAndroid Build Coastguard Worker  //
263*d5c09012SAndroid Build Coastguard Worker  // Note that Google Cloud Storage object listing is only eventually
264*d5c09012SAndroid Build Coastguard Worker  // consistent: files added may be not be immediately visible to
265*d5c09012SAndroid Build Coastguard Worker  // everyone. Thus, if using a wildcard it is preferable not to start
266*d5c09012SAndroid Build Coastguard Worker  // the import immediately after the files are created.
267*d5c09012SAndroid Build Coastguard Worker  repeated string source_uris = 2;
268*d5c09012SAndroid Build Coastguard Worker
269*d5c09012SAndroid Build Coastguard Worker  // The partition strategy describes how read groups are partitioned into read
270*d5c09012SAndroid Build Coastguard Worker  // group sets.
271*d5c09012SAndroid Build Coastguard Worker  PartitionStrategy partition_strategy = 5;
272*d5c09012SAndroid Build Coastguard Worker}
273*d5c09012SAndroid Build Coastguard Worker
274*d5c09012SAndroid Build Coastguard Worker// The read group set import response.
275*d5c09012SAndroid Build Coastguard Workermessage ImportReadGroupSetsResponse {
276*d5c09012SAndroid Build Coastguard Worker  // IDs of the read group sets that were created.
277*d5c09012SAndroid Build Coastguard Worker  repeated string read_group_set_ids = 1;
278*d5c09012SAndroid Build Coastguard Worker}
279*d5c09012SAndroid Build Coastguard Worker
280*d5c09012SAndroid Build Coastguard Worker// The read group set export request.
281*d5c09012SAndroid Build Coastguard Workermessage ExportReadGroupSetRequest {
282*d5c09012SAndroid Build Coastguard Worker  // Required. The Google Cloud project ID that owns this
283*d5c09012SAndroid Build Coastguard Worker  // export. The caller must have WRITE access to this project.
284*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
285*d5c09012SAndroid Build Coastguard Worker
286*d5c09012SAndroid Build Coastguard Worker  // Required. A Google Cloud Storage URI for the exported BAM file.
287*d5c09012SAndroid Build Coastguard Worker  // The currently authenticated user must have write access to the new file.
288*d5c09012SAndroid Build Coastguard Worker  // An error will be returned if the URI already contains data.
289*d5c09012SAndroid Build Coastguard Worker  string export_uri = 2;
290*d5c09012SAndroid Build Coastguard Worker
291*d5c09012SAndroid Build Coastguard Worker  // Required. The ID of the read group set to export. The caller must have
292*d5c09012SAndroid Build Coastguard Worker  // READ access to this read group set.
293*d5c09012SAndroid Build Coastguard Worker  string read_group_set_id = 3;
294*d5c09012SAndroid Build Coastguard Worker
295*d5c09012SAndroid Build Coastguard Worker  // The reference names to export. If this is not specified, all reference
296*d5c09012SAndroid Build Coastguard Worker  // sequences, including unmapped reads, are exported.
297*d5c09012SAndroid Build Coastguard Worker  // Use `*` to export only unmapped reads.
298*d5c09012SAndroid Build Coastguard Worker  repeated string reference_names = 4;
299*d5c09012SAndroid Build Coastguard Worker}
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Workermessage UpdateReadGroupSetRequest {
302*d5c09012SAndroid Build Coastguard Worker  // The ID of the read group set to be updated. The caller must have WRITE
303*d5c09012SAndroid Build Coastguard Worker  // permissions to the dataset associated with this read group set.
304*d5c09012SAndroid Build Coastguard Worker  string read_group_set_id = 1;
305*d5c09012SAndroid Build Coastguard Worker
306*d5c09012SAndroid Build Coastguard Worker  // The new read group set data. See `updateMask` for details on mutability of
307*d5c09012SAndroid Build Coastguard Worker  // fields.
308*d5c09012SAndroid Build Coastguard Worker  ReadGroupSet read_group_set = 2;
309*d5c09012SAndroid Build Coastguard Worker
310*d5c09012SAndroid Build Coastguard Worker  // An optional mask specifying which fields to update. Supported fields:
311*d5c09012SAndroid Build Coastguard Worker  //
312*d5c09012SAndroid Build Coastguard Worker  // * [name][google.genomics.v1.ReadGroupSet.name].
313*d5c09012SAndroid Build Coastguard Worker  // * [referenceSetId][google.genomics.v1.ReadGroupSet.reference_set_id].
314*d5c09012SAndroid Build Coastguard Worker  //
315*d5c09012SAndroid Build Coastguard Worker  // Leaving `updateMask` unset is equivalent to specifying all mutable
316*d5c09012SAndroid Build Coastguard Worker  // fields.
317*d5c09012SAndroid Build Coastguard Worker  google.protobuf.FieldMask update_mask = 3;
318*d5c09012SAndroid Build Coastguard Worker}
319*d5c09012SAndroid Build Coastguard Worker
320*d5c09012SAndroid Build Coastguard Workermessage DeleteReadGroupSetRequest {
321*d5c09012SAndroid Build Coastguard Worker  // The ID of the read group set to be deleted. The caller must have WRITE
322*d5c09012SAndroid Build Coastguard Worker  // permissions to the dataset associated with this read group set.
323*d5c09012SAndroid Build Coastguard Worker  string read_group_set_id = 1;
324*d5c09012SAndroid Build Coastguard Worker}
325*d5c09012SAndroid Build Coastguard Worker
326*d5c09012SAndroid Build Coastguard Workermessage GetReadGroupSetRequest {
327*d5c09012SAndroid Build Coastguard Worker  // The ID of the read group set.
328*d5c09012SAndroid Build Coastguard Worker  string read_group_set_id = 1;
329*d5c09012SAndroid Build Coastguard Worker}
330*d5c09012SAndroid Build Coastguard Worker
331*d5c09012SAndroid Build Coastguard Workermessage ListCoverageBucketsRequest {
332*d5c09012SAndroid Build Coastguard Worker  // Required. The ID of the read group set over which coverage is requested.
333*d5c09012SAndroid Build Coastguard Worker  string read_group_set_id = 1;
334*d5c09012SAndroid Build Coastguard Worker
335*d5c09012SAndroid Build Coastguard Worker  // The name of the reference to query, within the reference set associated
336*d5c09012SAndroid Build Coastguard Worker  // with this query. Optional.
337*d5c09012SAndroid Build Coastguard Worker  string reference_name = 3;
338*d5c09012SAndroid Build Coastguard Worker
339*d5c09012SAndroid Build Coastguard Worker  // The start position of the range on the reference, 0-based inclusive. If
340*d5c09012SAndroid Build Coastguard Worker  // specified, `referenceName` must also be specified. Defaults to 0.
341*d5c09012SAndroid Build Coastguard Worker  int64 start = 4;
342*d5c09012SAndroid Build Coastguard Worker
343*d5c09012SAndroid Build Coastguard Worker  // The end position of the range on the reference, 0-based exclusive. If
344*d5c09012SAndroid Build Coastguard Worker  // specified, `referenceName` must also be specified. If unset or 0, defaults
345*d5c09012SAndroid Build Coastguard Worker  // to the length of the reference.
346*d5c09012SAndroid Build Coastguard Worker  int64 end = 5;
347*d5c09012SAndroid Build Coastguard Worker
348*d5c09012SAndroid Build Coastguard Worker  // The desired width of each reported coverage bucket in base pairs. This
349*d5c09012SAndroid Build Coastguard Worker  // will be rounded down to the nearest precomputed bucket width; the value
350*d5c09012SAndroid Build Coastguard Worker  // of which is returned as `bucketWidth` in the response. Defaults
351*d5c09012SAndroid Build Coastguard Worker  // to infinity (each bucket spans an entire reference sequence) or the length
352*d5c09012SAndroid Build Coastguard Worker  // of the target range, if specified. The smallest precomputed
353*d5c09012SAndroid Build Coastguard Worker  // `bucketWidth` is currently 2048 base pairs; this is subject to
354*d5c09012SAndroid Build Coastguard Worker  // change.
355*d5c09012SAndroid Build Coastguard Worker  int64 target_bucket_width = 6;
356*d5c09012SAndroid Build Coastguard Worker
357*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
358*d5c09012SAndroid Build Coastguard Worker  // To get the next page of results, set this parameter to the value of
359*d5c09012SAndroid Build Coastguard Worker  // `nextPageToken` from the previous response.
360*d5c09012SAndroid Build Coastguard Worker  string page_token = 7;
361*d5c09012SAndroid Build Coastguard Worker
362*d5c09012SAndroid Build Coastguard Worker  // The maximum number of results to return in a single page. If unspecified,
363*d5c09012SAndroid Build Coastguard Worker  // defaults to 1024. The maximum value is 2048.
364*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 8;
365*d5c09012SAndroid Build Coastguard Worker}
366*d5c09012SAndroid Build Coastguard Worker
367*d5c09012SAndroid Build Coastguard Worker// A bucket over which read coverage has been precomputed. A bucket corresponds
368*d5c09012SAndroid Build Coastguard Worker// to a specific range of the reference sequence.
369*d5c09012SAndroid Build Coastguard Workermessage CoverageBucket {
370*d5c09012SAndroid Build Coastguard Worker  // The genomic coordinate range spanned by this bucket.
371*d5c09012SAndroid Build Coastguard Worker  Range range = 1;
372*d5c09012SAndroid Build Coastguard Worker
373*d5c09012SAndroid Build Coastguard Worker  // The average number of reads which are aligned to each individual
374*d5c09012SAndroid Build Coastguard Worker  // reference base in this bucket.
375*d5c09012SAndroid Build Coastguard Worker  float mean_coverage = 2;
376*d5c09012SAndroid Build Coastguard Worker}
377*d5c09012SAndroid Build Coastguard Worker
378*d5c09012SAndroid Build Coastguard Workermessage ListCoverageBucketsResponse {
379*d5c09012SAndroid Build Coastguard Worker  // The length of each coverage bucket in base pairs. Note that buckets at the
380*d5c09012SAndroid Build Coastguard Worker  // end of a reference sequence may be shorter. This value is omitted if the
381*d5c09012SAndroid Build Coastguard Worker  // bucket width is infinity (the default behaviour, with no range or
382*d5c09012SAndroid Build Coastguard Worker  // `targetBucketWidth`).
383*d5c09012SAndroid Build Coastguard Worker  int64 bucket_width = 1;
384*d5c09012SAndroid Build Coastguard Worker
385*d5c09012SAndroid Build Coastguard Worker  // The coverage buckets. The list of buckets is sparse; a bucket with 0
386*d5c09012SAndroid Build Coastguard Worker  // overlapping reads is not returned. A bucket never crosses more than one
387*d5c09012SAndroid Build Coastguard Worker  // reference sequence. Each bucket has width `bucketWidth`, unless
388*d5c09012SAndroid Build Coastguard Worker  // its end is the end of the reference sequence.
389*d5c09012SAndroid Build Coastguard Worker  repeated CoverageBucket coverage_buckets = 2;
390*d5c09012SAndroid Build Coastguard Worker
391*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
392*d5c09012SAndroid Build Coastguard Worker  // Provide this value in a subsequent request to return the next page of
393*d5c09012SAndroid Build Coastguard Worker  // results. This field will be empty if there aren't any additional results.
394*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 3;
395*d5c09012SAndroid Build Coastguard Worker}
396*d5c09012SAndroid Build Coastguard Worker
397*d5c09012SAndroid Build Coastguard Worker// The read search request.
398*d5c09012SAndroid Build Coastguard Workermessage SearchReadsRequest {
399*d5c09012SAndroid Build Coastguard Worker  // The IDs of the read groups sets within which to search for reads. All
400*d5c09012SAndroid Build Coastguard Worker  // specified read group sets must be aligned against a common set of reference
401*d5c09012SAndroid Build Coastguard Worker  // sequences; this defines the genomic coordinates for the query. Must specify
402*d5c09012SAndroid Build Coastguard Worker  // one of `readGroupSetIds` or `readGroupIds`.
403*d5c09012SAndroid Build Coastguard Worker  repeated string read_group_set_ids = 1;
404*d5c09012SAndroid Build Coastguard Worker
405*d5c09012SAndroid Build Coastguard Worker  // The IDs of the read groups within which to search for reads. All specified
406*d5c09012SAndroid Build Coastguard Worker  // read groups must belong to the same read group sets. Must specify one of
407*d5c09012SAndroid Build Coastguard Worker  // `readGroupSetIds` or `readGroupIds`.
408*d5c09012SAndroid Build Coastguard Worker  repeated string read_group_ids = 5;
409*d5c09012SAndroid Build Coastguard Worker
410*d5c09012SAndroid Build Coastguard Worker  // The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to
411*d5c09012SAndroid Build Coastguard Worker  // `*`, only unmapped reads are returned. If unspecified, all reads (mapped
412*d5c09012SAndroid Build Coastguard Worker  // and unmapped) are returned.
413*d5c09012SAndroid Build Coastguard Worker  string reference_name = 7;
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker  // The start position of the range on the reference, 0-based inclusive. If
416*d5c09012SAndroid Build Coastguard Worker  // specified, `referenceName` must also be specified.
417*d5c09012SAndroid Build Coastguard Worker  int64 start = 8;
418*d5c09012SAndroid Build Coastguard Worker
419*d5c09012SAndroid Build Coastguard Worker  // The end position of the range on the reference, 0-based exclusive. If
420*d5c09012SAndroid Build Coastguard Worker  // specified, `referenceName` must also be specified.
421*d5c09012SAndroid Build Coastguard Worker  int64 end = 9;
422*d5c09012SAndroid Build Coastguard Worker
423*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
424*d5c09012SAndroid Build Coastguard Worker  // To get the next page of results, set this parameter to the value of
425*d5c09012SAndroid Build Coastguard Worker  // `nextPageToken` from the previous response.
426*d5c09012SAndroid Build Coastguard Worker  string page_token = 3;
427*d5c09012SAndroid Build Coastguard Worker
428*d5c09012SAndroid Build Coastguard Worker  // The maximum number of results to return in a single page. If unspecified,
429*d5c09012SAndroid Build Coastguard Worker  // defaults to 256. The maximum value is 2048.
430*d5c09012SAndroid Build Coastguard Worker  int32 page_size = 4;
431*d5c09012SAndroid Build Coastguard Worker}
432*d5c09012SAndroid Build Coastguard Worker
433*d5c09012SAndroid Build Coastguard Worker// The read search response.
434*d5c09012SAndroid Build Coastguard Workermessage SearchReadsResponse {
435*d5c09012SAndroid Build Coastguard Worker  // The list of matching alignments sorted by mapped genomic coordinate,
436*d5c09012SAndroid Build Coastguard Worker  // if any, ascending in position within the same reference. Unmapped reads,
437*d5c09012SAndroid Build Coastguard Worker  // which have no position, are returned contiguously and are sorted in
438*d5c09012SAndroid Build Coastguard Worker  // ascending lexicographic order by fragment name.
439*d5c09012SAndroid Build Coastguard Worker  repeated Read alignments = 1;
440*d5c09012SAndroid Build Coastguard Worker
441*d5c09012SAndroid Build Coastguard Worker  // The continuation token, which is used to page through large result sets.
442*d5c09012SAndroid Build Coastguard Worker  // Provide this value in a subsequent request to return the next page of
443*d5c09012SAndroid Build Coastguard Worker  // results. This field will be empty if there aren't any additional results.
444*d5c09012SAndroid Build Coastguard Worker  string next_page_token = 2;
445*d5c09012SAndroid Build Coastguard Worker}
446*d5c09012SAndroid Build Coastguard Worker
447*d5c09012SAndroid Build Coastguard Worker// The stream reads request.
448*d5c09012SAndroid Build Coastguard Workermessage StreamReadsRequest {
449*d5c09012SAndroid Build Coastguard Worker  // The Google Cloud project ID which will be billed
450*d5c09012SAndroid Build Coastguard Worker  // for this access. The caller must have WRITE access to this project.
451*d5c09012SAndroid Build Coastguard Worker  // Required.
452*d5c09012SAndroid Build Coastguard Worker  string project_id = 1;
453*d5c09012SAndroid Build Coastguard Worker
454*d5c09012SAndroid Build Coastguard Worker  // The ID of the read group set from which to stream reads.
455*d5c09012SAndroid Build Coastguard Worker  string read_group_set_id = 2;
456*d5c09012SAndroid Build Coastguard Worker
457*d5c09012SAndroid Build Coastguard Worker  // The reference sequence name, for example `chr1`,
458*d5c09012SAndroid Build Coastguard Worker  // `1`, or `chrX`. If set to *, only unmapped reads are
459*d5c09012SAndroid Build Coastguard Worker  // returned.
460*d5c09012SAndroid Build Coastguard Worker  string reference_name = 3;
461*d5c09012SAndroid Build Coastguard Worker
462*d5c09012SAndroid Build Coastguard Worker  // The start position of the range on the reference, 0-based inclusive. If
463*d5c09012SAndroid Build Coastguard Worker  // specified, `referenceName` must also be specified.
464*d5c09012SAndroid Build Coastguard Worker  int64 start = 4;
465*d5c09012SAndroid Build Coastguard Worker
466*d5c09012SAndroid Build Coastguard Worker  // The end position of the range on the reference, 0-based exclusive. If
467*d5c09012SAndroid Build Coastguard Worker  // specified, `referenceName` must also be specified.
468*d5c09012SAndroid Build Coastguard Worker  int64 end = 5;
469*d5c09012SAndroid Build Coastguard Worker
470*d5c09012SAndroid Build Coastguard Worker  // Restricts results to a shard containing approximately `1/totalShards`
471*d5c09012SAndroid Build Coastguard Worker  // of the normal response payload for this query. Results from a sharded
472*d5c09012SAndroid Build Coastguard Worker  // request are disjoint from those returned by all queries which differ only
473*d5c09012SAndroid Build Coastguard Worker  // in their shard parameter. A shard may yield 0 results; this is especially
474*d5c09012SAndroid Build Coastguard Worker  // likely for large values of `totalShards`.
475*d5c09012SAndroid Build Coastguard Worker  //
476*d5c09012SAndroid Build Coastguard Worker  // Valid values are `[0, totalShards)`.
477*d5c09012SAndroid Build Coastguard Worker  int32 shard = 6;
478*d5c09012SAndroid Build Coastguard Worker
479*d5c09012SAndroid Build Coastguard Worker  // Specifying `totalShards` causes a disjoint subset of the normal response
480*d5c09012SAndroid Build Coastguard Worker  // payload to be returned for each query with a unique `shard` parameter
481*d5c09012SAndroid Build Coastguard Worker  // specified. A best effort is made to yield equally sized shards. Sharding
482*d5c09012SAndroid Build Coastguard Worker  // can be used to distribute processing amongst workers, where each worker is
483*d5c09012SAndroid Build Coastguard Worker  // assigned a unique `shard` number and all workers specify the same
484*d5c09012SAndroid Build Coastguard Worker  // `totalShards` number. The union of reads returned for all sharded queries
485*d5c09012SAndroid Build Coastguard Worker  // `[0, totalShards)` is equal to those returned by a single unsharded query.
486*d5c09012SAndroid Build Coastguard Worker  //
487*d5c09012SAndroid Build Coastguard Worker  // Queries for different values of `totalShards` with common divisors will
488*d5c09012SAndroid Build Coastguard Worker  // share shard boundaries. For example, streaming `shard` 2 of 5
489*d5c09012SAndroid Build Coastguard Worker  // `totalShards` yields the same results as streaming `shard`s 4 and 5 of 10
490*d5c09012SAndroid Build Coastguard Worker  // `totalShards`. This property can be leveraged for adaptive retries.
491*d5c09012SAndroid Build Coastguard Worker  int32 total_shards = 7;
492*d5c09012SAndroid Build Coastguard Worker}
493*d5c09012SAndroid Build Coastguard Worker
494*d5c09012SAndroid Build Coastguard Workermessage StreamReadsResponse {
495*d5c09012SAndroid Build Coastguard Worker  repeated Read alignments = 1;
496*d5c09012SAndroid Build Coastguard Worker}
497