Parse the config file and spawn a ProTECT job for every input sample.

    :param str config_file: Path to the input config file
    :param int max_cores: The maximum cores to use for any single high-compute job.

def parse_config_file(job, config_file, max_cores=None):
    """
    Parse the config file and spawn a ProTECT job for every input sample.

    :param str config_file: Path to the input config file
    :param int max_cores: The maximum cores to use for any single high-compute job.
    """
    sample_set, univ_options, processed_tool_inputs = _parse_config_file(job, config_file,
                                                                         max_cores)
    # Start a job for each sample in the sample set
    for patient_id in sample_set.keys():
        job.addFollowOnJobFn(launch_protect, sample_set[patient_id], univ_options,
                             processed_tool_inputs)
    return None