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