1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/genomics/v1/readalignment.proto
6 import proto "github.com/golang/protobuf/proto"
9 import _ "google.golang.org/genproto/googleapis/api/annotations"
10 import google_protobuf3 "github.com/golang/protobuf/ptypes/struct"
12 // Reference imports to suppress errors if they are not otherwise used.
17 // A linear alignment can be represented by one CIGAR string. Describes the
18 // mapped position and local alignment of the read to the reference.
19 type LinearAlignment struct {
20 // The position of this alignment.
21 Position *Position `protobuf:"bytes,1,opt,name=position" json:"position,omitempty"`
22 // The mapping quality of this alignment. Represents how likely
23 // the read maps to this position as opposed to other locations.
25 // Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to
26 // the nearest integer.
27 MappingQuality int32 `protobuf:"varint,2,opt,name=mapping_quality,json=mappingQuality" json:"mapping_quality,omitempty"`
28 // Represents the local alignment of this sequence (alignment matches, indels,
29 // etc) against the reference.
30 Cigar []*CigarUnit `protobuf:"bytes,3,rep,name=cigar" json:"cigar,omitempty"`
33 func (m *LinearAlignment) Reset() { *m = LinearAlignment{} }
34 func (m *LinearAlignment) String() string { return proto.CompactTextString(m) }
35 func (*LinearAlignment) ProtoMessage() {}
36 func (*LinearAlignment) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{0} }
38 func (m *LinearAlignment) GetPosition() *Position {
45 func (m *LinearAlignment) GetMappingQuality() int32 {
47 return m.MappingQuality
52 func (m *LinearAlignment) GetCigar() []*CigarUnit {
59 // A read alignment describes a linear alignment of a string of DNA to a
60 // [reference sequence][google.genomics.v1.Reference], in addition to metadata
61 // about the fragment (the molecule of DNA sequenced) and the read (the bases
62 // which were read by the sequencer). A read is equivalent to a line in a SAM
63 // file. A read belongs to exactly one read group and exactly one
64 // [read group set][google.genomics.v1.ReadGroupSet].
66 // For more genomics resource definitions, see [Fundamentals of Google
67 // Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
69 // ### Reverse-stranded reads
71 // Mapped reads (reads having a non-null `alignment`) can be aligned to either
72 // the forward or the reverse strand of their associated reference. Strandedness
73 // of a mapped read is encoded by `alignment.position.reverseStrand`.
75 // If we consider the reference to be a forward-stranded coordinate space of
76 // `[0, reference.length)` with `0` as the left-most position and
77 // `reference.length` as the right-most position, reads are always aligned left
78 // to right. That is, `alignment.position.position` always refers to the
79 // left-most reference coordinate and `alignment.cigar` describes the alignment
80 // of this read to the reference from left to right. All per-base fields such as
81 // `alignedSequence` and `alignedQuality` share this same left-to-right
82 // orientation; this is true of reads which are aligned to either strand. For
83 // reverse-stranded reads, this means that `alignedSequence` is the reverse
84 // complement of the bases that were originally reported by the sequencing
87 // ### Generating a reference-aligned sequence string
89 // When interacting with mapped reads, it's often useful to produce a string
90 // representing the local alignment of the read to reference. The following
91 // pseudocode demonstrates one way of doing this:
95 // for c in read.alignment.cigar {
96 // switch c.operation {
97 // case "ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH":
98 // out += read.alignedSequence[offset:offset+c.operationLength]
99 // offset += c.operationLength
101 // case "CLIP_SOFT", "INSERT":
102 // offset += c.operationLength
105 // out += repeat("*", c.operationLength)
108 // out += repeat("-", c.operationLength)
111 // out += repeat(" ", c.operationLength)
119 // ### Converting to SAM's CIGAR string
121 // The following pseudocode generates a SAM CIGAR string from the
122 // `cigar` field. Note that this is a lossy conversion
123 // (`cigar.referenceSequence` is lost).
126 // "ALIGNMENT_MATCH": "M",
133 // "SEQUENCE_MATCH": "=",
134 // "SEQUENCE_MISMATCH": "X",
137 // for c in read.alignment.cigar {
138 // cigarStr += c.operationLength + cigarMap[c.operation]
142 // The server-generated read ID, unique across all reads. This is different
143 // from the `fragmentName`.
144 Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
145 // The ID of the read group this read belongs to. A read belongs to exactly
146 // one read group. This is a server-generated ID which is distinct from SAM's
147 // RG tag (for that value, see
148 // [ReadGroup.name][google.genomics.v1.ReadGroup.name]).
149 ReadGroupId string `protobuf:"bytes,2,opt,name=read_group_id,json=readGroupId" json:"read_group_id,omitempty"`
150 // The ID of the read group set this read belongs to. A read belongs to
151 // exactly one read group set.
152 ReadGroupSetId string `protobuf:"bytes,3,opt,name=read_group_set_id,json=readGroupSetId" json:"read_group_set_id,omitempty"`
153 // The fragment name. Equivalent to QNAME (query template name) in SAM.
154 FragmentName string `protobuf:"bytes,4,opt,name=fragment_name,json=fragmentName" json:"fragment_name,omitempty"`
155 // The orientation and the distance between reads from the fragment are
156 // consistent with the sequencing protocol (SAM flag 0x2).
157 ProperPlacement bool `protobuf:"varint,5,opt,name=proper_placement,json=properPlacement" json:"proper_placement,omitempty"`
158 // The fragment is a PCR or optical duplicate (SAM flag 0x400).
159 DuplicateFragment bool `protobuf:"varint,6,opt,name=duplicate_fragment,json=duplicateFragment" json:"duplicate_fragment,omitempty"`
160 // The observed length of the fragment, equivalent to TLEN in SAM.
161 FragmentLength int32 `protobuf:"varint,7,opt,name=fragment_length,json=fragmentLength" json:"fragment_length,omitempty"`
162 // The read number in sequencing. 0-based and less than numberReads. This
163 // field replaces SAM flag 0x40 and 0x80.
164 ReadNumber int32 `protobuf:"varint,8,opt,name=read_number,json=readNumber" json:"read_number,omitempty"`
165 // The number of reads in the fragment (extension to SAM flag 0x1).
166 NumberReads int32 `protobuf:"varint,9,opt,name=number_reads,json=numberReads" json:"number_reads,omitempty"`
167 // Whether this read did not pass filters, such as platform or vendor quality
168 // controls (SAM flag 0x200).
169 FailedVendorQualityChecks bool `protobuf:"varint,10,opt,name=failed_vendor_quality_checks,json=failedVendorQualityChecks" json:"failed_vendor_quality_checks,omitempty"`
170 // The linear alignment for this alignment record. This field is null for
172 Alignment *LinearAlignment `protobuf:"bytes,11,opt,name=alignment" json:"alignment,omitempty"`
173 // Whether this alignment is secondary. Equivalent to SAM flag 0x100.
174 // A secondary alignment represents an alternative to the primary alignment
175 // for this read. Aligners may return secondary alignments if a read can map
176 // ambiguously to multiple coordinates in the genome. By convention, each read
177 // has one and only one alignment where both `secondaryAlignment`
178 // and `supplementaryAlignment` are false.
179 SecondaryAlignment bool `protobuf:"varint,12,opt,name=secondary_alignment,json=secondaryAlignment" json:"secondary_alignment,omitempty"`
180 // Whether this alignment is supplementary. Equivalent to SAM flag 0x800.
181 // Supplementary alignments are used in the representation of a chimeric
182 // alignment. In a chimeric alignment, a read is split into multiple
183 // linear alignments that map to different reference contigs. The first
184 // linear alignment in the read will be designated as the representative
185 // alignment; the remaining linear alignments will be designated as
186 // supplementary alignments. These alignments may have different mapping
187 // quality scores. In each linear alignment in a chimeric alignment, the read
188 // will be hard clipped. The `alignedSequence` and
189 // `alignedQuality` fields in the alignment record will only
190 // represent the bases for its respective linear alignment.
191 SupplementaryAlignment bool `protobuf:"varint,13,opt,name=supplementary_alignment,json=supplementaryAlignment" json:"supplementary_alignment,omitempty"`
192 // The bases of the read sequence contained in this alignment record,
193 // **without CIGAR operations applied** (equivalent to SEQ in SAM).
194 // `alignedSequence` and `alignedQuality` may be
195 // shorter than the full read sequence and quality. This will occur if the
196 // alignment is part of a chimeric alignment, or if the read was trimmed. When
197 // this occurs, the CIGAR for this read will begin/end with a hard clip
198 // operator that will indicate the length of the excised sequence.
199 AlignedSequence string `protobuf:"bytes,14,opt,name=aligned_sequence,json=alignedSequence" json:"aligned_sequence,omitempty"`
200 // The quality of the read sequence contained in this alignment record
201 // (equivalent to QUAL in SAM).
202 // `alignedSequence` and `alignedQuality` may be shorter than the full read
203 // sequence and quality. This will occur if the alignment is part of a
204 // chimeric alignment, or if the read was trimmed. When this occurs, the CIGAR
205 // for this read will begin/end with a hard clip operator that will indicate
206 // the length of the excised sequence.
207 AlignedQuality []int32 `protobuf:"varint,15,rep,packed,name=aligned_quality,json=alignedQuality" json:"aligned_quality,omitempty"`
208 // The mapping of the primary alignment of the
209 // `(readNumber+1)%numberReads` read in the fragment. It replaces
210 // mate position and mate strand in SAM.
211 NextMatePosition *Position `protobuf:"bytes,16,opt,name=next_mate_position,json=nextMatePosition" json:"next_mate_position,omitempty"`
212 // A map of additional read alignment information. This must be of the form
213 // map<string, string[]> (string key mapping to a list of string values).
214 Info map[string]*google_protobuf3.ListValue `protobuf:"bytes,17,rep,name=info" json:"info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
217 func (m *Read) Reset() { *m = Read{} }
218 func (m *Read) String() string { return proto.CompactTextString(m) }
219 func (*Read) ProtoMessage() {}
220 func (*Read) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{1} }
222 func (m *Read) GetId() string {
229 func (m *Read) GetReadGroupId() string {
236 func (m *Read) GetReadGroupSetId() string {
238 return m.ReadGroupSetId
243 func (m *Read) GetFragmentName() string {
245 return m.FragmentName
250 func (m *Read) GetProperPlacement() bool {
252 return m.ProperPlacement
257 func (m *Read) GetDuplicateFragment() bool {
259 return m.DuplicateFragment
264 func (m *Read) GetFragmentLength() int32 {
266 return m.FragmentLength
271 func (m *Read) GetReadNumber() int32 {
278 func (m *Read) GetNumberReads() int32 {
285 func (m *Read) GetFailedVendorQualityChecks() bool {
287 return m.FailedVendorQualityChecks
292 func (m *Read) GetAlignment() *LinearAlignment {
299 func (m *Read) GetSecondaryAlignment() bool {
301 return m.SecondaryAlignment
306 func (m *Read) GetSupplementaryAlignment() bool {
308 return m.SupplementaryAlignment
313 func (m *Read) GetAlignedSequence() string {
315 return m.AlignedSequence
320 func (m *Read) GetAlignedQuality() []int32 {
322 return m.AlignedQuality
327 func (m *Read) GetNextMatePosition() *Position {
329 return m.NextMatePosition
334 func (m *Read) GetInfo() map[string]*google_protobuf3.ListValue {
342 proto.RegisterType((*LinearAlignment)(nil), "google.genomics.v1.LinearAlignment")
343 proto.RegisterType((*Read)(nil), "google.genomics.v1.Read")
346 func init() { proto.RegisterFile("google/genomics/v1/readalignment.proto", fileDescriptor6) }
348 var fileDescriptor6 = []byte{
349 // 683 bytes of a gzipped FileDescriptorProto
350 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xcd, 0x4e, 0xdb, 0x4a,
351 0x14, 0xc7, 0xe5, 0x84, 0x70, 0xc9, 0x09, 0x24, 0x61, 0xae, 0xc4, 0xf5, 0x8d, 0xb8, 0xb7, 0x21,
352 0x48, 0x6d, 0x58, 0xd4, 0x2e, 0x20, 0xb5, 0x88, 0x2e, 0x2a, 0x40, 0x6d, 0x45, 0x45, 0x51, 0x6a,
353 0x54, 0x16, 0xdd, 0x58, 0x83, 0x7d, 0x62, 0x46, 0xd8, 0x33, 0xc6, 0x1e, 0x47, 0xcd, 0x23, 0xf5,
354 0xdd, 0xfa, 0x00, 0x5d, 0x56, 0x33, 0xf6, 0x38, 0xd0, 0x66, 0xd1, 0x5d, 0xf2, 0x3f, 0xbf, 0xf3,
355 0xe1, 0xf3, 0x31, 0xf0, 0x34, 0x12, 0x22, 0x8a, 0xd1, 0x8d, 0x90, 0x8b, 0x84, 0x05, 0xb9, 0x3b,
356 0xdb, 0x77, 0x33, 0xa4, 0x21, 0x8d, 0x59, 0xc4, 0x13, 0xe4, 0xd2, 0x49, 0x33, 0x21, 0x05, 0x21,
357 0x25, 0xe7, 0x18, 0xce, 0x99, 0xed, 0x0f, 0xb6, 0x2b, 0x5f, 0x9a, 0x32, 0x97, 0x72, 0x2e, 0x24,
358 0x95, 0x4c, 0xf0, 0xbc, 0xf4, 0x18, 0xfc, 0xbf, 0x24, 0x72, 0xc0, 0x22, 0x9a, 0x55, 0xf6, 0x9d,
359 0x25, 0xf6, 0x54, 0xe4, 0x4c, 0xc5, 0xa8, 0x10, 0x93, 0x40, 0xff, 0xbb, 0x29, 0xa6, 0x6e, 0x2e,
360 0xb3, 0x22, 0xa8, 0x4a, 0x1a, 0x7d, 0xb3, 0xa0, 0x77, 0xc1, 0x38, 0xd2, 0xec, 0xc4, 0x14, 0x4b,
361 0x8e, 0x60, 0xcd, 0xc4, 0xb0, 0xad, 0xa1, 0x35, 0xee, 0x1c, 0x6c, 0x3b, 0xbf, 0x57, 0xee, 0x4c,
362 0x2a, 0xc6, 0xab, 0x69, 0xf2, 0x0c, 0x7a, 0x09, 0x4d, 0x53, 0xc6, 0x23, 0xff, 0xbe, 0xa0, 0x31,
363 0x93, 0x73, 0xbb, 0x31, 0xb4, 0xc6, 0x2d, 0xaf, 0x5b, 0xc9, 0x9f, 0x4a, 0x95, 0x1c, 0x42, 0x4b,
364 0x7f, 0x86, 0xdd, 0x1c, 0x36, 0xc7, 0x9d, 0x83, 0xff, 0x96, 0xc5, 0x3f, 0x53, 0xc0, 0x67, 0xce,
365 0xa4, 0x57, 0xb2, 0xa3, 0xef, 0xab, 0xb0, 0xe2, 0x21, 0x0d, 0x49, 0x17, 0x1a, 0x2c, 0xd4, 0xa5,
366 0xb5, 0xbd, 0x06, 0x0b, 0xc9, 0x08, 0x36, 0x54, 0xbb, 0xfd, 0x28, 0x13, 0x45, 0xea, 0xb3, 0x50,
367 0x27, 0x6d, 0x7b, 0x1d, 0x25, 0xbe, 0x57, 0xda, 0x79, 0x48, 0xf6, 0x60, 0xf3, 0x01, 0x93, 0xa3,
368 0x54, 0x5c, 0x53, 0x73, 0xdd, 0x9a, 0xbb, 0x42, 0x79, 0x1e, 0x92, 0x5d, 0xd8, 0x98, 0x66, 0x34,
369 0x52, 0xbd, 0xf0, 0x39, 0x4d, 0xd0, 0x5e, 0xd1, 0xd8, 0xba, 0x11, 0x2f, 0x69, 0x82, 0x64, 0x0f,
370 0xfa, 0x69, 0x26, 0x52, 0xcc, 0xfc, 0x34, 0xa6, 0x01, 0x2a, 0xdd, 0x6e, 0x0d, 0xad, 0xf1, 0x9a,
371 0xd7, 0x2b, 0xf5, 0x89, 0x91, 0xc9, 0x73, 0x20, 0x61, 0x91, 0xc6, 0x2c, 0xa0, 0x12, 0x7d, 0x13,
372 0xc4, 0x5e, 0xd5, 0xf0, 0x66, 0x6d, 0x79, 0x57, 0x19, 0x54, 0x13, 0xeb, 0xf4, 0x31, 0xf2, 0x48,
373 0xde, 0xda, 0x7f, 0x95, 0x4d, 0x34, 0xf2, 0x85, 0x56, 0xc9, 0x13, 0xd0, 0x5f, 0xe8, 0xf3, 0x22,
374 0xb9, 0xc1, 0xcc, 0x5e, 0xd3, 0x10, 0x28, 0xe9, 0x52, 0x2b, 0x64, 0x07, 0xd6, 0x4b, 0x9b, 0xaf,
375 0xc4, 0xdc, 0x6e, 0x6b, 0xa2, 0x53, 0x6a, 0xaa, 0x93, 0x39, 0x79, 0x03, 0xdb, 0x53, 0xca, 0x62,
376 0x0c, 0xfd, 0x19, 0xf2, 0x50, 0x64, 0x66, 0x6e, 0x7e, 0x70, 0x8b, 0xc1, 0x5d, 0x6e, 0x83, 0xae,
377 0xf2, 0xdf, 0x92, 0xb9, 0xd6, 0x48, 0x35, 0xc3, 0x33, 0x0d, 0x90, 0x13, 0x68, 0xd7, 0x6b, 0x6e,
378 0x77, 0xf4, 0xb6, 0xec, 0x2e, 0x9b, 0xe6, 0x2f, 0x4b, 0xe6, 0x2d, 0xbc, 0x88, 0x0b, 0x7f, 0xe7,
379 0x18, 0x08, 0x1e, 0xd2, 0x6c, 0xee, 0x2f, 0x82, 0xad, 0xeb, 0xd4, 0xa4, 0x36, 0x2d, 0x16, 0xf4,
380 0x15, 0xfc, 0x93, 0x17, 0x69, 0x1a, 0xeb, 0xf6, 0x3e, 0x76, 0xda, 0xd0, 0x4e, 0x5b, 0x8f, 0xcc,
381 0x0b, 0xc7, 0x3d, 0xe8, 0x6b, 0x14, 0x43, 0x3f, 0xc7, 0xfb, 0x02, 0x79, 0x80, 0x76, 0x57, 0x0f,
382 0xb7, 0x57, 0xe9, 0x57, 0x95, 0xac, 0xa6, 0x60, 0x50, 0xb3, 0xca, 0xbd, 0x61, 0x53, 0x4d, 0xa1,
383 0x92, 0xcd, 0x2a, 0x7f, 0x00, 0xc2, 0xf1, 0xab, 0xf4, 0x13, 0x35, 0xdd, 0xfa, 0x6e, 0xfa, 0x7f,
384 0x70, 0x37, 0x7d, 0xe5, 0xf7, 0x91, 0x4a, 0x34, 0x0a, 0x79, 0x09, 0x2b, 0x8c, 0x4f, 0x85, 0xbd,
385 0xa9, 0xaf, 0x62, 0xb4, 0xcc, 0x5b, 0x8d, 0xcd, 0x39, 0xe7, 0x53, 0xf1, 0x96, 0xcb, 0x6c, 0xee,
386 0x69, 0x7e, 0x70, 0x05, 0xed, 0x5a, 0x22, 0x7d, 0x68, 0xde, 0xe1, 0xbc, 0x3a, 0x0f, 0xf5, 0x93,
387 0xbc, 0x80, 0xd6, 0x8c, 0xc6, 0x05, 0xea, 0xbb, 0xe8, 0x1c, 0x0c, 0x4c, 0x5c, 0xf3, 0x24, 0x38,
388 0x17, 0x2c, 0x97, 0xd7, 0x8a, 0xf0, 0x4a, 0xf0, 0xb8, 0x71, 0x64, 0x9d, 0x26, 0xb0, 0x15, 0x88,
389 0x64, 0x49, 0x0d, 0xa7, 0x44, 0x15, 0x51, 0x77, 0x75, 0xa2, 0xa2, 0x4c, 0xac, 0x2f, 0xc7, 0x86,
390 0x14, 0x31, 0xe5, 0x91, 0x23, 0xb2, 0x48, 0x3d, 0x4b, 0x3a, 0x87, 0x5b, 0x9a, 0x68, 0xca, 0xf2,
391 0x87, 0x4f, 0xd5, 0x6b, 0xf3, 0xfb, 0x87, 0x65, 0xdd, 0xac, 0x6a, 0xf2, 0xf0, 0x67, 0x00, 0x00,
392 0x00, 0xff, 0xff, 0xd0, 0xe1, 0xf6, 0x57, 0x4d, 0x05, 0x00, 0x00,