diff --git a/v03_pipeline/lib/misc/family_loading_failures.py b/v03_pipeline/lib/misc/family_loading_failures.py index a9ebe833f..80190b327 100644 --- a/v03_pipeline/lib/misc/family_loading_failures.py +++ b/v03_pipeline/lib/misc/family_loading_failures.py @@ -175,7 +175,10 @@ def get_families_failed_sex_check( failed_families = defaultdict(list) for family in families: for sample_id in family.samples: - if family.samples[sample_id].sex != sex_check_lookup[sample_id]: + if family.samples[sample_id].sex not in { + sex_check_lookup[sample_id], + Sex.UNKNOWN, + }: # NB: Unknown samples in pedigree are excluded from sex check. failed_families[family].append( f'Sample {sample_id} has pedigree sex {family.samples[sample_id].sex.value} but imputed sex {sex_check_lookup[sample_id].value}', ) diff --git a/v03_pipeline/lib/misc/family_loading_failures_test.py b/v03_pipeline/lib/misc/family_loading_failures_test.py index 1005dea24..3f3dbda4e 100644 --- a/v03_pipeline/lib/misc/family_loading_failures_test.py +++ b/v03_pipeline/lib/misc/family_loading_failures_test.py @@ -202,7 +202,6 @@ def test_get_families_failed_sex_check(self): [ [ 'Sample ROS_006_18Y03226_D1 has pedigree sex F but imputed sex M', - 'Sample ROS_006_18Y03227_D1 has pedigree sex M but imputed sex F', ], ], ) diff --git a/v03_pipeline/lib/misc/pedigree_test.py b/v03_pipeline/lib/misc/pedigree_test.py index d7ca225a0..9a3ff976d 100644 --- a/v03_pipeline/lib/misc/pedigree_test.py +++ b/v03_pipeline/lib/misc/pedigree_test.py @@ -316,7 +316,7 @@ def test_parse_project(self) -> None: samples={ 'BBL_BC1-000345_01_D1': Sample( sample_id='BBL_BC1-000345_01_D1', - sex=Sex.FEMALE, + sex=Sex.UNKNOWN, mother='BBL_BC1-000345_03_D1', father='BBL_BC1-000345_02_D1', maternal_grandmother=None, diff --git a/v03_pipeline/lib/model/definitions.py b/v03_pipeline/lib/model/definitions.py index d4966d558..bd6adf90e 100644 --- a/v03_pipeline/lib/model/definitions.py +++ b/v03_pipeline/lib/model/definitions.py @@ -11,6 +11,7 @@ class AccessControl(Enum): class Sex(Enum): FEMALE = 'F' MALE = 'M' + UNKNOWN = 'U' class PipelineVersion(Enum): diff --git a/v03_pipeline/var/test/pedigrees/test_pedigree_2.tsv b/v03_pipeline/var/test/pedigrees/test_pedigree_2.tsv index 5a3862874..5fe13d038 100644 --- a/v03_pipeline/var/test/pedigrees/test_pedigree_2.tsv +++ b/v03_pipeline/var/test/pedigrees/test_pedigree_2.tsv @@ -6,6 +6,6 @@ R0111_tgg_bblanken_wes BBL_HT-007-5195_1 BBL_HT-007-5195 BBL_HT-007-5195_03_D1 R0111_tgg_bblanken_wes BBL_HT-007-5195_1 BBL_HT-007-5195 BBL_HT-007-5195_04_D1 BBL_HT-007-5195_02_D1 BBL_HT-007-5195_03_D1 M R0111_tgg_bblanken_wes BBL_HT-007-5195_1 BBL_HT-007-5195 BBL_HT-007-5195_05_D1 BBL_HT-007-5195_02_D1 BBL_HT-007-5195_03_D1 F R0111_tgg_bblanken_wes BBL_HT-007-5195_1 BBL_HT-007-5195 BBL_HT-007-5195_06_D1 BBL_HT-007-5195_02_D1 BBL_HT-007-5195_03_D1 M -R0111_tgg_bblanken_wes BBL_BC1-000345_1 BBL_BC1-000345 BBL_BC1-000345_01_D1 BBL_BC1-000345_02_D1 BBL_BC1-000345_03_D1 F +R0111_tgg_bblanken_wes BBL_BC1-000345_1 BBL_BC1-000345 BBL_BC1-000345_01_D1 BBL_BC1-000345_02_D1 BBL_BC1-000345_03_D1 U R0111_tgg_bblanken_wes BBL_BC1-000345_1 BBL_BC1-000345 BBL_BC1-000345_02_D1 M R0111_tgg_bblanken_wes BBL_BC1-000345_1 BBL_BC1-000345 BBL_BC1-000345_03_D1 F diff --git a/v03_pipeline/var/test/pedigrees/test_pedigree_6.tsv b/v03_pipeline/var/test/pedigrees/test_pedigree_6.tsv index 4f033b8ed..b207e87be 100644 --- a/v03_pipeline/var/test/pedigrees/test_pedigree_6.tsv +++ b/v03_pipeline/var/test/pedigrees/test_pedigree_6.tsv @@ -1,6 +1,6 @@ Project_GUID Family_GUID Family_ID Individual_ID Paternal_ID Maternal_ID Sex R0116_sex_check_project2 family_1 family_1 ROS_006_18Y03226_D1 F -R0116_sex_check_project2 family_1 family_1 ROS_006_18Y03227_D1 M +R0116_sex_check_project2 family_1 family_1 ROS_006_18Y03227_D1 U R0116_sex_check_project2 family_1 family_1 ROS_006_18Y03228_D1 ROS_006_18Y03226_D1 ROS_006_18Y03227_D1 F R0116_sex_check_project2 family_2 family_2 ROS_007_19Y05919_D1 F R0116_sex_check_project2 family_2 family_2 ROS_007_19Y05939_D1 F