def main():
    arg_parser = argparse.ArgumentParser(
        description=
        'Compare the sample name in the VCF file and the one specified in the metadata.'
    )
    arg_parser.add_argument('--metadata-file',
                            required=True,
                            dest='metadata_file',
                            help='EVA Submission Metadata Excel sheet')
    arg_parser.add_argument(
        '--vcf-dir',
        required=True,
        dest='vcf_dir',
        help='Path to the directory in which submitted files can be found')
    arg_parser.add_argument(
        '--debug',
        action='store_true',
        default=False,
        help='Set the script to output logging information at debug level',
    )
    args = arg_parser.parse_args()

    log_cfg.add_stdout_handler()

    if args.debug:
        log_cfg.set_log_level(logging.DEBUG)

    # Load the config_file from default location
    load_config()

    compare_spreadsheet_and_vcf(args.metadata_file, args.vcf_dir)
Beispiel #2
0
    def _validate_sample_names(self):
        overall_differences, results_per_analysis_alias = compare_spreadsheet_and_vcf(
            eva_files_sheet=self.eload_cfg['submission']
            ['metadata_spreadsheet'],
            vcf_dir=self._get_dir('vcf'))
        for analysis_alias in results_per_analysis_alias:
            has_difference, diff_submitted_file_submission, diff_submission_submitted_file = results_per_analysis_alias[
                analysis_alias]

            self.eload_cfg.set('validation',
                               'sample_check',
                               'analysis',
                               str(analysis_alias),
                               value={
                                   'difference_exists':
                                   has_difference,
                                   'in_VCF_not_in_metadata':
                                   diff_submitted_file_submission,
                                   'in_metadata_not_in_VCF':
                                   diff_submission_submitted_file
                               })
        self.eload_cfg.set('validation',
                           'sample_check',
                           'pass',
                           value=not overall_differences)