Class: Google::Apis::GenomicsV1beta2::Read
- Inherits:
-
Object
- Object
- Google::Apis::GenomicsV1beta2::Read
- Includes:
- Core::Hashable
- Defined in:
- generated/google/apis/genomics_v1beta2/classes.rb,
generated/google/apis/genomics_v1beta2/representations.rb,
generated/google/apis/genomics_v1beta2/representations.rb
Overview
A read alignment describes a linear alignment of a string of DNA to a
reference sequence, in addition to metadata about the fragment (the molecule
of DNA sequenced) and the read (the bases which were read by the sequencer). A
read is equivalent to a line in a SAM file. A read belongs to exactly one read
group and exactly one read group set. Generating a reference-aligned sequence
string When interacting with mapped reads, it's often useful to produce a
string representing the local alignment of the read to reference. The
following pseudocode demonstrates one way of doing this:
out = "" offset = 0 for c in read.alignment.cigar switch c.operation
case "
ALIGNMENT_MATCH", "SEQUENCE_MATCH", "SEQUENCE_MISMATCH": out += read.
alignedSequence[offset:offset+c.operationLength] offset += c.operationLength
break case "CLIP_SOFT", "INSERT": offset += c.operationLength break case "PAD":
out += repeat("*", c.operationLength) break case "DELETE": out += repeat("-",
c.operationLength) break case "SKIP": out += repeat(" ", c.operationLength)
break case "CLIP_HARD": break return out
Converting to SAM's CIGAR string The following pseudocode generates a SAM
CIGAR string from the cigar field. Note that this is a lossy conversion (cigar.
referenceSequence is lost).
cigarMap =
"ALIGNMENT_MATCH": "M", "INSERT": "I", "DELETE": "D", "SKIP": "N",
"CLIP_SOFT": "S", "CLIP_HARD": "H", "PAD": "P", "SEQUENCE_MATCH": "=", "
SEQUENCE_MISMATCH": "X",
cigarStr = "" for c in read.alignment.cigar
cigarStr += c.operationLength + cigarMap[c.operation]
return cigarStr
Instance Attribute Summary collapse
-
#aligned_quality ⇒ Array<Fixnum>
The quality of the read sequence contained in this alignment record.
-
#aligned_sequence ⇒ String
The bases of the read sequence contained in this alignment record, without CIGAR operations applied.
-
#alignment ⇒ Google::Apis::GenomicsV1beta2::LinearAlignment
A linear alignment can be represented by one CIGAR string.
-
#duplicate_fragment ⇒ Boolean
(also: #duplicate_fragment?)
The fragment is a PCR or optical duplicate (SAM flag 0x400) Corresponds to the JSON property
duplicateFragment
. -
#failed_vendor_quality_checks ⇒ Boolean
(also: #failed_vendor_quality_checks?)
SAM flag 0x200 Corresponds to the JSON property
failedVendorQualityChecks
. -
#fragment_length ⇒ Fixnum
The observed length of the fragment, equivalent to TLEN in SAM.
-
#fragment_name ⇒ String
The fragment name.
-
#id ⇒ String
The unique ID for this read.
-
#info ⇒ Hash<String,Array<String>>
A string which maps to an array of values.
-
#next_mate_position ⇒ Google::Apis::GenomicsV1beta2::Position
An abstraction for referring to a genomic position, in relation to some already known reference.
-
#number_reads ⇒ Fixnum
The number of reads in the fragment (extension to SAM flag 0x1).
-
#proper_placement ⇒ Boolean
(also: #proper_placement?)
The orientation and the distance between reads from the fragment are consistent with the sequencing protocol (SAM flag 0x2) Corresponds to the JSON property
properPlacement
. -
#read_group_id ⇒ String
The ID of the read group this read belongs to.
-
#read_group_set_id ⇒ String
The ID of the read group set this read belongs to.
-
#read_number ⇒ Fixnum
The read number in sequencing.
-
#secondary_alignment ⇒ Boolean
(also: #secondary_alignment?)
Whether this alignment is secondary.
-
#supplementary_alignment ⇒ Boolean
(also: #supplementary_alignment?)
Whether this alignment is supplementary.
Instance Method Summary collapse
-
#initialize(**args) ⇒ Read
constructor
A new instance of Read.
-
#update!(**args) ⇒ Object
Update properties of this object.
Methods included from Core::Hashable
Constructor Details
#initialize(**args) ⇒ Read
Returns a new instance of Read.
1728 1729 1730 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1728 def initialize(**args) update!(**args) end |
Instance Attribute Details
#aligned_quality ⇒ Array<Fixnum>
The quality of the read sequence contained in this alignment record.
alignedSequence and alignedQuality may be shorter than the full read sequence
and quality. This will occur if the alignment is part of a chimeric alignment,
or if the read was trimmed. When this occurs, the CIGAR for this read will
begin/end with a hard clip operator that will indicate the length of the
excised sequence.
Corresponds to the JSON property alignedQuality
1613 1614 1615 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1613 def aligned_quality @aligned_quality end |
#aligned_sequence ⇒ String
The bases of the read sequence contained in this alignment record, without
CIGAR operations applied. alignedSequence and alignedQuality may be shorter
than the full read sequence and quality. This will occur if the alignment is
part of a chimeric alignment, or if the read was trimmed. When this occurs,
the CIGAR for this read will begin/end with a hard clip operator that will
indicate the length of the excised sequence.
Corresponds to the JSON property alignedSequence
1623 1624 1625 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1623 def aligned_sequence @aligned_sequence end |
#alignment ⇒ Google::Apis::GenomicsV1beta2::LinearAlignment
A linear alignment can be represented by one CIGAR string. Describes the
mapped position and local alignment of the read to the reference.
Corresponds to the JSON property alignment
1629 1630 1631 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1629 def alignment @alignment end |
#duplicate_fragment ⇒ Boolean Also known as: duplicate_fragment?
The fragment is a PCR or optical duplicate (SAM flag 0x400)
Corresponds to the JSON property duplicateFragment
1634 1635 1636 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1634 def duplicate_fragment @duplicate_fragment end |
#failed_vendor_quality_checks ⇒ Boolean Also known as: failed_vendor_quality_checks?
SAM flag 0x200
Corresponds to the JSON property failedVendorQualityChecks
1640 1641 1642 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1640 def failed_vendor_quality_checks @failed_vendor_quality_checks end |
#fragment_length ⇒ Fixnum
The observed length of the fragment, equivalent to TLEN in SAM.
Corresponds to the JSON property fragmentLength
1646 1647 1648 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1646 def fragment_length @fragment_length end |
#fragment_name ⇒ String
The fragment name. Equivalent to QNAME (query template name) in SAM.
Corresponds to the JSON property fragmentName
1651 1652 1653 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1651 def fragment_name @fragment_name end |
#id ⇒ String
The unique ID for this read. This is a generated unique ID, not to be confused
with fragmentName.
Corresponds to the JSON property id
1657 1658 1659 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1657 def id @id end |
#info ⇒ Hash<String,Array<String>>
A string which maps to an array of values.
Corresponds to the JSON property info
1662 1663 1664 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1662 def info @info end |
#next_mate_position ⇒ Google::Apis::GenomicsV1beta2::Position
An abstraction for referring to a genomic position, in relation to some
already known reference. For now, represents a genomic position as a reference
name, a base number on that reference (0-based), and a determination of
forward or reverse strand.
Corresponds to the JSON property nextMatePosition
1670 1671 1672 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1670 def next_mate_position @next_mate_position end |
#number_reads ⇒ Fixnum
The number of reads in the fragment (extension to SAM flag 0x1).
Corresponds to the JSON property numberReads
1675 1676 1677 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1675 def number_reads @number_reads end |
#proper_placement ⇒ Boolean Also known as: proper_placement?
The orientation and the distance between reads from the fragment are
consistent with the sequencing protocol (SAM flag 0x2)
Corresponds to the JSON property properPlacement
1681 1682 1683 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1681 def proper_placement @proper_placement end |
#read_group_id ⇒ String
The ID of the read group this read belongs to. (Every read must belong to
exactly one read group.)
Corresponds to the JSON property readGroupId
1688 1689 1690 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1688 def read_group_id @read_group_id end |
#read_group_set_id ⇒ String
The ID of the read group set this read belongs to. (Every read must belong to
exactly one read group set.)
Corresponds to the JSON property readGroupSetId
1694 1695 1696 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1694 def read_group_set_id @read_group_set_id end |
#read_number ⇒ Fixnum
The read number in sequencing. 0-based and less than numberReads. This field
replaces SAM flag 0x40 and 0x80.
Corresponds to the JSON property readNumber
1700 1701 1702 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1700 def read_number @read_number end |
#secondary_alignment ⇒ Boolean Also known as: secondary_alignment?
Whether this alignment is secondary. Equivalent to SAM flag 0x100. A secondary
alignment represents an alternative to the primary alignment for this read.
Aligners may return secondary alignments if a read can map ambiguously to
multiple coordinates in the genome. By convention, each read has one and only
one alignment where both secondaryAlignment and supplementaryAlignment are
false.
Corresponds to the JSON property secondaryAlignment
1710 1711 1712 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1710 def secondary_alignment @secondary_alignment end |
#supplementary_alignment ⇒ Boolean Also known as: supplementary_alignment?
Whether this alignment is supplementary. Equivalent to SAM flag 0x800.
Supplementary alignments are used in the representation of a chimeric
alignment. In a chimeric alignment, a read is split into multiple linear
alignments that map to different reference contigs. The first linear alignment
in the read will be designated as the representative alignment; the remaining
linear alignments will be designated as supplementary alignments. These
alignments may have different mapping quality scores. In each linear alignment
in a chimeric alignment, the read will be hard clipped. The alignedSequence
and alignedQuality fields in the alignment record will only represent the
bases for its respective linear alignment.
Corresponds to the JSON property supplementaryAlignment
1725 1726 1727 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1725 def supplementary_alignment @supplementary_alignment end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 |
# File 'generated/google/apis/genomics_v1beta2/classes.rb', line 1733 def update!(**args) @aligned_quality = args[:aligned_quality] unless args[:aligned_quality].nil? @aligned_sequence = args[:aligned_sequence] unless args[:aligned_sequence].nil? @alignment = args[:alignment] unless args[:alignment].nil? @duplicate_fragment = args[:duplicate_fragment] unless args[:duplicate_fragment].nil? @failed_vendor_quality_checks = args[:failed_vendor_quality_checks] unless args[:failed_vendor_quality_checks].nil? @fragment_length = args[:fragment_length] unless args[:fragment_length].nil? @fragment_name = args[:fragment_name] unless args[:fragment_name].nil? @id = args[:id] unless args[:id].nil? @info = args[:info] unless args[:info].nil? @next_mate_position = args[:next_mate_position] unless args[:next_mate_position].nil? @number_reads = args[:number_reads] unless args[:number_reads].nil? @proper_placement = args[:proper_placement] unless args[:proper_placement].nil? @read_group_id = args[:read_group_id] unless args[:read_group_id].nil? @read_group_set_id = args[:read_group_set_id] unless args[:read_group_set_id].nil? @read_number = args[:read_number] unless args[:read_number].nil? @secondary_alignment = args[:secondary_alignment] unless args[:secondary_alignment].nil? @supplementary_alignment = args[:supplementary_alignment] unless args[:supplementary_alignment].nil? end |