def test_sheet_germline_inconsistent_pedigree( tsv_sheet_germline_inconsistent_pedigree, tsv_sheet_germline_trio_plus, ): """Tests Germline sheet for sheet with conflict information for joint field and row.""" # Sanity check shortcuts.GermlineCaseSheet( sheet=io_tsv.read_germline_tsv_sheet(tsv_sheet_germline_trio_plus), join_by_field='familyId') # Expect error as each member of the pedigree has its own `familyId` instead of a common one with pytest.raises(InconsistentPedigreeException): shortcuts.GermlineCaseSheet(sheet=io_tsv.read_germline_tsv_sheet( tsv_sheet_germline_inconsistent_pedigree), join_by_field='familyId')
def test_yield_ngs_library_names(): """Tests yield_ngs_library_names()""" # Define expected expected_batch_one = ["P001-N1-DNA1-WGS1"] expected_batch_two = ["P004-N1-DNA1-WGS1"] expected_batch_three = ["P007-N1-DNA1-WGS1"] expected_ped_field_defined = expected_batch_one + expected_batch_two expected_ped_field_none = expected_batch_one + expected_batch_two + expected_batch_three # Define input sheet_path = pathlib.Path(__file__).resolve().parent / "data" / "germline_sheet.tsv" with open(sheet_path, "rt") as f_sheet: sheet = read_germline_tsv_sheet(f=f_sheet, naming_scheme=NAMING_ONLY_SECONDARY_ID) # Test `pedigree_field` = 'familyId' actual = yield_ngs_library_names(sheet=sheet, pedigree_field="familyId") for name_ in actual: assert name_ in expected_ped_field_defined # Test `pedigree_field` is None actual = yield_ngs_library_names(sheet=sheet, pedigree_field=None) for name_ in actual: assert name_ in expected_ped_field_none # Test `pedigree_field` is None and min batch = 2 actual = yield_ngs_library_names(sheet=sheet, pedigree_field=None, min_batch=2) for name_ in actual: expected_list = expected_batch_two + expected_batch_three assert name_ in expected_list # Test `pedigree_field` is None and min batch = 3 actual = yield_ngs_library_names(sheet=sheet, pedigree_field=None, min_batch=3) for name_ in actual: assert name_ in expected_batch_three
def test_read_germline_sheet_platform_name(tsv_sheet_germline_platform_name): sheet = io_tsv.read_germline_tsv_sheet(tsv_sheet_germline_platform_name) assert EXPECTED_GERMLINE_SHEET_JSON_PLATFORM_NAME == json.dumps( sheet.json_data, indent=' ')
def test_read_germline_sheet_no_header_hyphened_identifiers( tsv_sheet_germline_no_header_hyphened_identifier): sheet = io_tsv.read_germline_tsv_sheet( tsv_sheet_germline_no_header_hyphened_identifier) assert EXPECTED_GERMLINE_SHEET_JSON_NO_HEADER_HYPHEN == json.dumps( sheet.json_data, indent=' ')
def test_read_germline_sheet_no_header(tsv_sheet_germline_no_header): sheet = io_tsv.read_germline_tsv_sheet(tsv_sheet_germline_no_header) assert EXPECTED_GERMLINE_SHEET_JSON_NO_HEADER == json.dumps( sheet.json_data, indent=' ')
def sheet_germline(tsv_sheet_germline): """Return ``Sheet`` instance for the germline example""" return shortcuts.GermlineCaseSheet( io_tsv.read_germline_tsv_sheet(tsv_sheet_germline))
def test_sheet_germline_trio_plus_exception(tsv_sheet_germline_trio_plus): """Tests UndefinedFieldException raise while creating GermlineCaseSheet""" with pytest.raises(UndefinedFieldException): shortcuts.GermlineCaseSheet( sheet=io_tsv.read_germline_tsv_sheet(tsv_sheet_germline_trio_plus), join_by_field='undefined_field')
def sheet_germline_only_parent_samples(tsv_sheet_germline_only_parent_samples): """Return ``Sheet`` instance for the germline example where only parents have samples""" return shortcuts.GermlineCaseSheet( io_tsv.read_germline_tsv_sheet( tsv_sheet_germline_only_parent_samples, naming_scheme=naming.NAMING_ONLY_SECONDARY_ID))
def sheet_germline_two_test_samples(tsv_sheet_germline_two_test_samples): """Return ``Sheet`` instance for the germline example with two test_samples""" return shortcuts.GermlineCaseSheet( io_tsv.read_germline_tsv_sheet( tsv_sheet_germline_two_test_samples, naming_scheme=naming.NAMING_ONLY_SECONDARY_ID))
def sheet_germline_multiple_trio_plus(tsv_sheet_germline_multiple_trio_plus): """Return ``Sheet`` instance for the germline multiple trio plus example""" return shortcuts.GermlineCaseSheet(sheet=io_tsv.read_germline_tsv_sheet( tsv_sheet_germline_multiple_trio_plus), join_by_field='familyId')
def test_yield_ngs_library_names(snappy_itransfer_command_base): """Tests varfish_upload.yield_ngs_library_names()""" # Define expected expected_batch_one = [ "P001-N1-DNA1-WGS1", "P002-N1-DNA1-WGS1", "P003-N1-DNA1-WGS1" ] expected_batch_two = [ "P004-N1-DNA1-WGS1", "P005-N1-DNA1-WGS1", "P006-N1-DNA1-WGS1" ] expected_batch_three = [ "P007-N1-DNA1-WGS1", "P008-N1-DNA1-WGS1", "P009-N1-DNA1-WGS1" ] expected_batch_four = [ "P010-N1-DNA1-WGS1", "P011-N1-DNA1-WGS1", "P012-N1-DNA1-WGS1" ] expected_batch_five = ["P013-N1-DNA1-WGS1", "P014-N1-DNA1-WGS1"] expected_batch_six = ["P015-N1-DNA1-WGS1"] # Define input sheet_path = pathlib.Path( __file__).resolve().parent / "data" / "germline_sheet_multi_batch.tsv" with open(sheet_path, "rt") as f_sheet: sheet = read_germline_tsv_sheet(f=f_sheet, naming_scheme=NAMING_ONLY_SECONDARY_ID) # Sanity test - no constraints actual = snappy_itransfer_command_base.yield_ngs_library_names( sheet=sheet, min_batch=None, max_batch=None) expected_list = (expected_batch_one + expected_batch_two + expected_batch_three + expected_batch_four + expected_batch_five + expected_batch_six) for name_ in actual: assert name_ in expected_list # Test min batch = 2, max batch = None actual = snappy_itransfer_command_base.yield_ngs_library_names( sheet=sheet, min_batch=2, max_batch=None) expected_list = (expected_batch_two + expected_batch_three + expected_batch_four + expected_batch_five + expected_batch_six) for name_ in actual: assert name_ in expected_list # Test min batch = 2, max batch = 3 actual = snappy_itransfer_command_base.yield_ngs_library_names(sheet=sheet, min_batch=2, max_batch=3) expected_list = expected_batch_two + expected_batch_three for name_ in actual: assert name_ in expected_list # Test min batch = 3, max batch = 5 actual = snappy_itransfer_command_base.yield_ngs_library_names(sheet=sheet, min_batch=3, max_batch=5) expected_list = expected_batch_three + expected_batch_four + expected_batch_five for name_ in actual: assert name_ in expected_list # Test min batch = 5, max batch = 5 actual = snappy_itransfer_command_base.yield_ngs_library_names(sheet=sheet, min_batch=5, max_batch=5) expected_list = expected_batch_five for name_ in actual: assert name_ in expected_list # Test min batch = 6, max batch = 6 actual = snappy_itransfer_command_base.yield_ngs_library_names(sheet=sheet, min_batch=6, max_batch=6) expected_list = expected_batch_six for name_ in actual: assert name_ in expected_list