code: def make_read(
      bases,
      start,
      quals=None,
      cigar=None,
      mapq=50,
      chrom="chr1",
      name=None,
      fragment_length=None,
  ):
      """Makes a nucleus.genomics.v1.Read for testing."""
      if quals and len(bases) != len(quals):
          raise ValueError("Incompatable bases and quals", bases, quals)
      read = reads_pb2.Read(
          fragment_name=name
          if name
          else "read_" + str(make_read.counter),
          proper_placement=True,
          read_number=1,
          number_reads=2,
          aligned_sequence=bases,
          aligned_quality=quals,
          fragment_length=fragment_length,
          alignment=reads_pb2.LinearAlignment(
              position=position_pb2.Position(
                  reference_name=chrom, position=start
              ),
              mapping_quality=mapq,
              cigar=_cigar.to_cigar_units(cigar) if cigar else [],
          ),
      )
      make_read.counter += 1
      return read
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  from absl import flags
  from absl.testing import absltest
  from etils import epath
  import six
  from third_party.nucleus.protos import position_pb2
  from third_party.nucleus.protos import reads_pb2
  from third_party.nucleus.protos import struct_pb2
  from third_party.nucleus.protos import variants_pb2
  from third_party.nucleus.util import cigar
label_desc: Use image node_id 7 for calling a global function with example usage: make_read(bases, start, quals, cigar, mapq, chrom, name, fragment_length) and returns: read