def combine_crops(cancer_set, non_cancer_set, batch_sizes=(10, 10), hu_lims=(-1000, 400)):
    """ Pipeline for generating batches of cancerous and non-cancerous crops from
    ct-scans in chosen proportion.

    Parameters
    ---------
    cancer_set : dataset
        dataset of cancerous crops in blosc format.
    non_cancer_set : dataset
        dataset of non-cancerous crops in blosc format.
    batch_sizes : tuple, list of int
        seq of len=2, (num_cancer_batches, num_noncancer_batches).
    hu_lims : tuple, list of float
        seq of len=2, representing limits of hu-trimming in normalize_hu-action.

    Returns
    -------
    pipeline
    """
    # pipeline generating cancerous crops
    ppl_cancer = (cancer_set.p
                  .load(fmt='blosc')
                  .normalize_hu(min_hu=hu_lims[0], max_hu=hu_lims[1])
                  .run(lazy=True, batch_size=batch_sizes[0], shuffle=True)
                 )

    # pipeline generating non-cancerous crops merged with first pipeline
    pipeline = (non_cancer_set.p
                .load(fmt='blosc')
                .normalize_hu(min_hu=hu_lims[0], max_hu=hu_lims[1])
                .merge(ppl_cancer)
                .run(lazy=True, batch_size=batch_sizes[1], shuffle=True)
               )

    return pipeline