def get_anno_boundingbox(synapse):
    """
    Get coordinates of a boundingbox containing the entire synapse annotation

    Parameters
    ----------
    synapse : dict
        dictionary object generated from input json file
    Returns
    -------
    bboxCoordinates : dict
        containing min/max x/y/z values
    """

    synapseSubareasList = synapse['areas']
    maxX = 0
    minX = float("inf")

    maxY = 0
    minY = float("inf")

    maxZ = 0
    minZ = float("inf")

    for synapsesubarea in synapseSubareasList:
        subarea_tile = synapsesubarea['global_path']
        subarea_tile = list(map(list, zip(*subarea_tile)))
        xcolumn = subarea_tile[0]
        ycolumn = subarea_tile[1]
        z = synapsesubarea['z']
        z = int(z)

        if (z > maxZ):
            maxZ = z
        if (z < minZ):
            minZ = z

        if (max(xcolumn) > maxX):
            maxX = max(xcolumn)
        if (min(xcolumn) < minX):
            minX = min(xcolumn)

        if (max(ycolumn) > maxY):
            maxY = max(ycolumn)
        if (min(ycolumn) < minY):
            minY = min(ycolumn)

    bbox_coordinates = {'minX': minX, 'maxX': maxX, 'minY': minY,
                        'maxY': maxY, 'minZ': minZ, 'maxZ': maxZ}

    return bbox_coordinates