code: def assign_reads_to_assembled_regions(assembled_regions, reads):
      """Assign each read to the maximally overlapped window.
  
      Args:
        assembled_regions: list[AssemblyRegion], list of AssemblyRegion to assign
          reads to. Does not assume AssemblyRegion are sorted.
        reads: iterable[learning.genomics.genomics.Read], to be processed. Does not
          assume the reads are sorted.
  
      Returns:
        [AssemblyRegion], information on assigned reads for each assembled region.
        list[learning.genomics.genomics.Read], the list of unassigned reads.
      """
      regions = [ar.region for ar in assembled_regions]
      unassigned_reads = []
      for read in reads:
          read_range = utils.read_range(read)
          window_i = ranges.find_max_overlapping(read_range, regions)
          if window_i is not None:
              assembled_regions[window_i].add_read(read)
          else:
              unassigned_reads.append(read)
      return unassigned_reads
  
imports: import csv
  import os
  import os.path
  from absl import flags
  from etils import epath
  from deepvariant.protos import realigner_pb2
  from deepvariant.realigner import window_selector
  from deepvariant.realigner.python import debruijn_graph
  from deepvariant.realigner.python import fast_pass_aligner
  from deepvariant.vendor import timer
  from google.protobuf import text_format
  from third_party.nucleus.io import sam
  from third_party.nucleus.protos import cigar_pb2
  from third_party.nucleus.protos import reads_pb2
  from third_party.nucleus.util import cigar
  from third_party.nucleus.util import ranges
  from third_party.nucleus.util import utils
  from third_party.nucleus.util.cigar import READ_ADVANCING_OPS
  from third_party.nucleus.util.cigar import REF_ADVANCING_OPS
label_desc: Use image node_id 3 for calling a global function with example usage: assign_reads_to_assembled_regions(assembled_regions, reads) and returns: unassigned_reads