docs: def lookup_genome_alignment_index(index_fh, indexed_fh, out_fh=sys.stdout,
                                    key=None, verbose=False):
    """Load a GA index and its indexed file and extract one or more blocks.
  
    :param index_fh:   the index file to load. Can be a filename or a
                       stream-like object.
    :param indexed_fh: the file that the index was built for,
    :param key:        A single key, iterable of keys, or None. This key will be
                       used for lookup. If None, user is prompted to enter keys
                       interactively.
    """
    # load the genome alignment as a JIT object
    bound_iter = functools.partial(genome_alignment_iterator,
                                   reference_species="hg19", index_friendly=True)
    hash_func = JustInTimeGenomeAlignmentBlock.build_hash
    idx = IndexedFile(record_iterator=bound_iter, record_hash_function=hash_func)
    idx.read_index(index_fh, indexed_fh)
  
    if key is None:
      while key is None or key.strip() != "":
        sys.stderr.write("[WAITING FOR KEY ENTRY ON STDIN; " +
                         "END WITH EMPTY LINE]\n")
        key = raw_input()
        # we know keys for genome alignments have tabs as delims, so..
        key = '\t'.join(key.split()).strip()
        if key != "":
          out_fh.write(str(idx[key]) + "\n")
        sys.stderr.write("\n")
    else:
      # we know keys for genome alignments have tabs as delims, so..
      key = '\t'.join(key.split())
      out_fh.write(str(idx[key]) + "\n")