@@ -839,6 +839,7 @@ def check_snp_allele_frequencies_advanced(
839839 period_by = "year" ,
840840 sample_sets = None ,
841841 sample_query = None ,
842+ sample_query_options = None ,
842843 min_cohort_size = None ,
843844 nobs_mode = "called" ,
844845 variant_query = None ,
@@ -866,6 +867,7 @@ def check_snp_allele_frequencies_advanced(
866867 period_by = period_by ,
867868 sample_sets = sample_sets ,
868869 sample_query = sample_query ,
870+ sample_query_options = sample_query_options ,
869871 min_cohort_size = min_cohort_size ,
870872 nobs_mode = nobs_mode ,
871873 variant_query = variant_query ,
@@ -939,7 +941,11 @@ def check_snp_allele_frequencies_advanced(
939941 check_frequency (x )
940942
941943 # Sanity check area values.
942- df_samples = api .sample_metadata (sample_sets = sample_sets , sample_query = sample_query )
944+ df_samples = api .sample_metadata (
945+ sample_sets = sample_sets ,
946+ sample_query = sample_query ,
947+ sample_query_options = sample_query_options ,
948+ )
943949 expected_area_values = np .unique (df_samples [area_by ].dropna ().values )
944950 area_values = ds ["cohort_area" ].values
945951 # N.B., some areas may not end up in final dataset if cohort
@@ -978,6 +984,7 @@ def check_snp_allele_frequencies_advanced(
978984 cohorts = "admin1_year" ,
979985 sample_sets = sample_sets ,
980986 sample_query = sample_query ,
987+ sample_query_options = sample_query_options ,
981988 min_cohort_size = min_cohort_size ,
982989 site_mask = site_mask ,
983990 include_counts = True ,
@@ -1023,6 +1030,7 @@ def check_aa_allele_frequencies_advanced(
10231030 period_by = "year" ,
10241031 sample_sets = None ,
10251032 sample_query = None ,
1033+ sample_query_options = None ,
10261034 min_cohort_size = None ,
10271035 nobs_mode = "called" ,
10281036 variant_query = None ,
@@ -1047,6 +1055,7 @@ def check_aa_allele_frequencies_advanced(
10471055 period_by = period_by ,
10481056 sample_sets = sample_sets ,
10491057 sample_query = sample_query ,
1058+ sample_query_options = sample_query_options ,
10501059 min_cohort_size = min_cohort_size ,
10511060 nobs_mode = nobs_mode ,
10521061 variant_query = variant_query ,
@@ -1111,7 +1120,11 @@ def check_aa_allele_frequencies_advanced(
11111120 check_frequency (x )
11121121
11131122 # Sanity checks for area values.
1114- df_samples = api .sample_metadata (sample_sets = sample_sets , sample_query = sample_query )
1123+ df_samples = api .sample_metadata (
1124+ sample_sets = sample_sets ,
1125+ sample_query = sample_query ,
1126+ sample_query_options = sample_query_options ,
1127+ )
11151128 expected_area_values = np .unique (df_samples [area_by ].dropna ().values )
11161129 area_values = ds ["cohort_area" ].values
11171130 # N.B., some areas may not end up in final dataset if cohort
@@ -1150,6 +1163,7 @@ def check_aa_allele_frequencies_advanced(
11501163 cohorts = "admin1_year" ,
11511164 sample_sets = sample_sets ,
11521165 sample_query = sample_query ,
1166+ sample_query_options = sample_query_options ,
11531167 min_cohort_size = min_cohort_size ,
11541168 include_counts = True ,
11551169 )
@@ -1249,6 +1263,38 @@ def test_allele_frequencies_advanced_with_sample_query(
12491263 )
12501264
12511265
1266+ @parametrize_with_cases ("fixture,api" , cases = "." )
1267+ def test_allele_frequencies_advanced_with_sample_query_options (
1268+ fixture ,
1269+ api : AnophelesSnpFrequencyAnalysis ,
1270+ ):
1271+ all_sample_sets = api .sample_sets ()["sample_set" ].to_list ()
1272+ df_samples = api .sample_metadata (sample_sets = all_sample_sets )
1273+ countries = df_samples ["country" ].unique ().tolist ()
1274+ countries_list = random .sample (countries , 2 )
1275+ sample_query_options = {
1276+ "local_dict" : {
1277+ "countries_list" : countries_list ,
1278+ }
1279+ }
1280+ sample_query = "country in @countries_list"
1281+
1282+ check_snp_allele_frequencies_advanced (
1283+ api = api ,
1284+ sample_sets = all_sample_sets ,
1285+ sample_query = sample_query ,
1286+ sample_query_options = sample_query_options ,
1287+ min_cohort_size = 0 ,
1288+ )
1289+ check_aa_allele_frequencies_advanced (
1290+ api = api ,
1291+ sample_sets = all_sample_sets ,
1292+ sample_query = sample_query ,
1293+ sample_query_options = sample_query_options ,
1294+ min_cohort_size = 0 ,
1295+ )
1296+
1297+
12521298@pytest .mark .parametrize ("min_cohort_size" , [0 , 10 , 100 ])
12531299@parametrize_with_cases ("fixture,api" , cases = "." )
12541300def test_allele_frequencies_advanced_with_min_cohort_size (
0 commit comments