def split_filterbank(opts, info):

    filename = info['filename']
    segments = info["segments"]
    output_location = info["basename"]

    segment_lengths = map(float, segments.split(','))
    for segment_length in segment_lengths:

        obs_length_req = segment_length * 60.0
        input_file = FilReader(filename)
        number_samples = input_file.header.nsamples
        obs_time_seconds = input_file.header.tobs

        if obs_length_req > obs_time_seconds:
            log.info(
                "Segment length exceeds observation file length. Skipping the split.."
            )
            continue

        log.info("calculate acceleration range for %d min" % segment_length)
        pb = 10.0 * segment_length / (60.0)  # 10 percent rule
        amax = calculate_amax(pb, info["mc"])
        info['start_acc'] = -1 * amax
        info['end_acc'] = amax

        sampling_time = input_file.header.tsamp
        NTOREAD = int(obs_length_req / sampling_time)
        number_of_fils = int(obs_time_seconds / obs_length_req)

        for i in range(number_of_fils + 1):
            START = i * NTOREAD
            path = output_location + '_segment_%d_length_%dmin' % (
                i, segment_length) + '.fil'
            output_name = os.path.basename(path)[:-4]

            if i == number_of_fils:
                log.info("Last split")
                input_file.split(number_samples - NTOREAD,
                                 NTOREAD,
                                 filename=path)
                info["output_name"] = output_name
                info["input_name"] = path
                call_peasoup(info)
                log.info("Segmented search done!")

            else:
                log.info("Split %d" % i)
                log.info('START at sample: %d' % START)
                input_file.split(START, NTOREAD, filename=path)
                info["output_name"] = output_name
                info["input_name"] = path
                call_peasoup(info)