# Genomics API . reads

## Instance Methods

Gets a list of reads for one or more read group sets.

Retrieves the next page of results.

### Method Details

`search(body, x__xgafv=None)`

    Gets a list of reads for one or more read group sets.

    For the definitions of read group sets and other genomics resources, see
    [Fundamentals of Google
    Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)

    Reads search operates over a genomic coordinate space of reference sequence
    & position defined over the reference sequences to which the requested
    read group sets are aligned.

    If a target positional range is specified, search returns all reads whose
    alignment to the reference genome overlap the range. A query which
    specifies only read group set IDs yields all reads in those read group
    sets, including unmapped reads.

    All reads returned (including reads on subsequent pages) are ordered by
    genomic coordinate (by reference sequence, then position). Reads with
    equivalent genomic coordinates are returned in an unspecified order. This
    order is consistent, such that two queries for the same content (regardless
    of page size) yield reads in the same order across their respective streams
    of paginated responses.

    Implements
    [GlobalAllianceApi.searchReads](https://github.com/ga4gh/schemas/blob/v0.5.1/src/main/resources/avro/readmethods.avdl#L85).

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # The read search request.
        "end": "A String", # The end position of the range on the reference, 0-based exclusive. If
            # specified, `referenceName` must also be specified.
        "readGroupIds": [ # The IDs of the read groups within which to search for reads. All specified
            # read groups must belong to the same read group sets. Must specify one of
            # `readGroupSetIds` or `readGroupIds`.
          "A String",
        ],
        "pageSize": 42, # The maximum number of results to return in a single page. If unspecified,
            # defaults to 256. The maximum value is 2048.
        "start": "A String", # The start position of the range on the reference, 0-based inclusive. If
            # specified, `referenceName` must also be specified.
        "pageToken": "A String", # The continuation token, which is used to page through large result sets.
            # To get the next page of results, set this parameter to the value of
            # `nextPageToken` from the previous response.
        "referenceName": "A String", # The reference sequence name, for example `chr1`, `1`, or `chrX`. If set to
            # `*`, only unmapped reads are returned. If unspecified, all reads (mapped
            # and unmapped) are returned.
        "readGroupSetIds": [ # The IDs of the read groups sets within which to search for reads. All
            # specified read group sets must be aligned against a common set of reference
            # sequences; this defines the genomic coordinates for the query. Must specify
            # one of `readGroupSetIds` or `readGroupIds`.
          "A String",
        ],
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # The read search response.
        "nextPageToken": "A String", # The continuation token, which is used to page through large result sets.
            # Provide this value in a subsequent request to return the next page of
            # results. This field will be empty if there aren't any additional results.
        "alignments": [ # The list of matching alignments sorted by mapped genomic coordinate,
            # if any, ascending in position within the same reference. Unmapped reads,
            # which have no position, are returned contiguously and are sorted in
            # ascending lexicographic order by fragment name.
          { # 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.
              #
              # For more genomics resource definitions, see [Fundamentals of Google
              # Genomics](https://cloud.google.com/genomics/fundamentals-of-google-genomics)
              #
              # ### Reverse-stranded reads
              #
              # Mapped reads (reads having a non-null `alignment`) can be aligned to either
              # the forward or the reverse strand of their associated reference. Strandedness
              # of a mapped read is encoded by `alignment.position.reverseStrand`.
              #
              # If we consider the reference to be a forward-stranded coordinate space of
              # `[0, reference.length)` with `0` as the left-most position and
              # `reference.length` as the right-most position, reads are always aligned left
              # to right. That is, `alignment.position.position` always refers to the
              # left-most reference coordinate and `alignment.cigar` describes the alignment
              # of this read to the reference from left to right. All per-base fields such as
              # `alignedSequence` and `alignedQuality` share this same left-to-right
              # orientation; this is true of reads which are aligned to either strand. For
              # reverse-stranded reads, this means that `alignedSequence` is the reverse
              # complement of the bases that were originally reported by the sequencing
              # machine.
              #
              # ### 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
            "info": { # A map of additional read alignment information. This must be of the form
                # map (string key mapping to a list of string values).
              "a_key": [
                "",
              ],
            },
            "duplicateFragment": True or False, # The fragment is a PCR or optical duplicate (SAM flag 0x400).
            "readGroupSetId": "A String", # The ID of the read group set this read belongs to. A read belongs to
                # exactly one read group set.
            "alignedQuality": [ # The quality of the read sequence contained in this alignment record
                # (equivalent to QUAL in SAM).
                # `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.
              42,
            ],
            "failedVendorQualityChecks": True or False, # Whether this read did not pass filters, such as platform or vendor quality
                # controls (SAM flag 0x200).
            "fragmentName": "A String", # The fragment name. Equivalent to QNAME (query template name) in SAM.
            "id": "A String", # The server-generated read ID, unique across all reads. This is different
                # from the `fragmentName`.
            "properPlacement": True or False, # The orientation and the distance between reads from the fragment are
                # consistent with the sequencing protocol (SAM flag 0x2).
            "readGroupId": "A String", # The ID of the read group this read belongs to. A read belongs to exactly
                # one read group. This is a server-generated ID which is distinct from SAM's
                # RG tag (for that value, see
                # ReadGroup.name).
            "supplementaryAlignment": True or False, # 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.
            "numberReads": 42, # The number of reads in the fragment (extension to SAM flag 0x1).
            "fragmentLength": 42, # The observed length of the fragment, equivalent to TLEN in SAM.
            "secondaryAlignment": True or False, # 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.
            "alignedSequence": "A String", # The bases of the read sequence contained in this alignment record,
                # **without CIGAR operations applied** (equivalent to SEQ in SAM).
                # `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.
            "readNumber": 42, # The read number in sequencing. 0-based and less than numberReads. This
                # field replaces SAM flag 0x40 and 0x80.
            "alignment": { # A linear alignment can be represented by one CIGAR string. Describes the # The linear alignment for this alignment record. This field is null for
                # unmapped reads.
                # mapped position and local alignment of the read to the reference.
              "position": { # An abstraction for referring to a genomic position, in relation to some # The position of this alignment.
                  # 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.
                "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
                "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward
                    # strand.
                "referenceName": "A String", # The name of the reference in whatever reference set is being used.
              },
              "cigar": [ # Represents the local alignment of this sequence (alignment matches, indels,
                  # etc) against the reference.
                { # A single CIGAR operation.
                  "referenceSequence": "A String", # `referenceSequence` is only used at mismatches
                      # (`SEQUENCE_MISMATCH`) and deletions (`DELETE`).
                      # Filling this field replaces SAM's MD tag. If the relevant information is
                      # not available, this field is unset.
                  "operation": "A String",
                  "operationLength": "A String", # The number of genomic bases that the operation runs for. Required.
                },
              ],
              "mappingQuality": 42, # The mapping quality of this alignment. Represents how likely
                  # the read maps to this position as opposed to other locations.
                  #
                  # Specifically, this is -10 log10 Pr(mapping position is wrong), rounded to
                  # the nearest integer.
            },
            "nextMatePosition": { # An abstraction for referring to a genomic position, in relation to some # The mapping of the primary alignment of the
                # `(readNumber+1)%numberReads` read in the fragment. It replaces
                # mate position and mate strand in SAM.
                # 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.
              "position": "A String", # The 0-based offset from the start of the forward strand for that reference.
              "reverseStrand": True or False, # Whether this position is on the reverse strand, as opposed to the forward
                  # strand.
              "referenceName": "A String", # The name of the reference in whatever reference set is being used.
            },
          },
        ],
      }

`search_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.