def get_scale_at_res(base_scale, res, iso=False):
    """Returns voxel resolution at a given resolution of precomptued volume
    res=0 is base resolution

    Raises: ValueError if any element in base_scale < 1
    """
    try:
        assert all([s >= 1 for s in base_scale])
    except AssertionError:
        raise ValueError("voxel resolution is < 1")

    if iso:
        factor = (2, 2, 2)
    else:
        factor = (2, 2, 1)

    scale = [s * f ** res for s, f in zip(base_scale, factor)]

    return [int(s) if s == int(s) else s for s in scale]