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.

def _read_1bit_file(file, l):
        """
        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.
        """
        
        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