def estimate_volume_molecular(numMols, boxes, factor=2.0):
    """
    Estimate the volume needed for a molecular crystal conventional unit cell.

    Args:
        numMols: A list with the number of each type of molecule
        boxes: A list of bounding boxes for each molecule. Obtained from get_box
        factor: a factor to multiply the final result by. Used to increase space
        between molecules

    Returns:
        the estimated volume (in cubic Angstroms) needed for the unit cell
    """
    volume = 0
    for numMol, box in zip(numMols, boxes):
        volume += numMol*(box[1]-box[0])*(box[3]-box[2])*(box[5]-box[4])
    return abs(factor*volume)