Skip to content

Commit 317e721

Browse files
committed
Add test_allele_frequencies_with_str_cohorts_and_sample_query_options
1 parent e750bc7 commit 317e721

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

tests/anoph/test_snp_frq.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,73 @@ def test_allele_frequencies_with_str_cohorts_and_sample_query(
463463
)
464464

465465

466+
@parametrize_with_cases("fixture,api", cases=".")
467+
def test_allele_frequencies_with_str_cohorts_and_sample_query_options(
468+
fixture,
469+
api: AnophelesSnpFrequencyAnalysis,
470+
):
471+
# Pick test parameters at random.
472+
sample_sets = None
473+
site_mask = random.choice(api.site_mask_ids + (None,))
474+
min_cohort_size = 0
475+
transcript = random_transcript(api=api)
476+
cohorts = random.choice(
477+
["admin1_year", "admin1_month", "admin2_year", "admin2_month"]
478+
)
479+
df_samples = api.sample_metadata(sample_sets=sample_sets)
480+
countries = df_samples["country"].unique().tolist()
481+
countries_list = random.sample(countries, 2)
482+
sample_query_options = {
483+
"local_dict": {
484+
"countries_list": countries_list,
485+
}
486+
}
487+
sample_query = "country in @countries_list"
488+
489+
# Figure out expected cohort labels.
490+
df_samples = api.sample_metadata(
491+
sample_sets=sample_sets,
492+
sample_query=sample_query,
493+
sample_query_options=sample_query_options,
494+
)
495+
cohort_column = "cohort_" + cohorts
496+
cohort_counts = df_samples[cohort_column].value_counts()
497+
cohort_labels = cohort_counts[cohort_counts >= min_cohort_size].index.to_list()
498+
499+
# Set up call params.
500+
params = dict(
501+
transcript=transcript.name,
502+
cohorts=cohorts,
503+
min_cohort_size=min_cohort_size,
504+
site_mask=site_mask,
505+
sample_sets=sample_sets,
506+
sample_query=sample_query,
507+
sample_query_options=sample_query_options,
508+
drop_invariant=True,
509+
)
510+
511+
# Run the function under test.
512+
df_snp = api.snp_allele_frequencies(**params)
513+
514+
# Standard checks.
515+
check_snp_allele_frequencies(
516+
api=api,
517+
df=df_snp,
518+
cohort_labels=cohort_labels,
519+
transcript=transcript,
520+
)
521+
522+
# Run the function under test.
523+
df_aa = api.aa_allele_frequencies(**params)
524+
525+
# Standard checks.
526+
check_aa_allele_frequencies(
527+
df=df_aa,
528+
cohort_labels=cohort_labels,
529+
transcript=transcript,
530+
)
531+
532+
466533
@parametrize_with_cases("fixture,api", cases=".")
467534
def test_allele_frequencies_with_dict_cohorts(
468535
fixture, api: AnophelesSnpFrequencyAnalysis

0 commit comments

Comments
 (0)