code: def _read_1bit_file(file, l):
          
          
          f = open(file, 'rb')
          f.seek((l.start - 1) // 8)
          # read length + 2 because we need the extra byte in case the start
          # position lies mid way through a byte. Imagine a sequence 10 bp long
          # starting at position 4. 10 // 8 + 1 = 2 bytes of data required to
          # store this. Since we pick the closest byte as the start, this will
          # be position 0 (4 // 8 = 0). The length is 2 bytes spanning bytes 0
          # and 1, but because of the start at 3, our sequence spans byte 3 so
          # we need to buffer an extra byte for cases where the start does not
          # match the start of a byte
          data = f.read(l.length // 8 + 2)
          f.close()
          return data
docs: Load data from 1 bit file into array
          
          Parameters
          ----------
          file : str
              1bit filename
          l : libdna.Loc
              dna location
          
          Returns
          -------
          bytes
              byte array from file where each byte represents 8 bases.