private boolean getDataBlock(int leafItemIndex) {

        // check for valid data block
        if (leafItemIndex >= leafHitList.size())
            return false;

        // Perform a block read for indexed leaf item
        leafHitItem = leafHitList.get(leafItemIndex);

        // get the chromosome names associated with the hit region ID's
        int startChromID = leafHitItem.getChromosomeBounds().getStartChromID();
        int endChromID = leafHitItem.getChromosomeBounds().getEndChromID();
        chromosomeMap = chromIDTree.getChromosomeIDMap(startChromID, endChromID);

        boolean isLowToHigh = chromDataTree.isIsLowToHigh();
        int uncompressBufSize = chromDataTree.getUncompressBuffSize();

        // decompress leaf item data block for feature extraction
        wigDataBlock = new BigWigDataBlock(fis, leafHitItem, chromosomeMap, isLowToHigh, uncompressBufSize);

        // get section Wig item list and set next index to first item
        wigItemList = wigDataBlock.getWigData(selectionRegion, isContained);
        wigItemIndex = 0;

        // data block items available for iterator
        if (wigItemList.size() > 0)
            return true;
        else
            return false;
    }