Skip to content

v15.7.0

Choose a tag to compare

@jonbrenas jonbrenas released this 07 Apr 15:53
· 162 commits to master since this release
2a1431b

What's Changed

  • Update doc switcher & readme doc by @leehart in #844
  • Stabilize CI matrix and pin NumPy baseline to 1.26.4 by @adilraza99 in #855
  • Document error bars behavior in ag3.plot_frequencies_time_series by @adilraza99 in #851
  • Fix broken documentation URL for Anopheles gambiae surveillance project by @adilraza99 in #862
  • Poetry locked by @jonbrenas in #865
  • Move tests using non-simulated data on merge to master by @ahernank in #866
  • Fix DOI citation link formatting in README by @adilraza99 in #858
  • fix: replace mutable default arguments with None in CNV plot functions by @PaulaYaniz in #884
  • Add comprehensive CONTRIBUTING.md guide for new contributors by @adilraza99 in #860
  • replacing old '%' with newer f-string by @blankirigaya in #891
  • fix: use _gff_gene_name_attribute in _transcript_to_parent_name (#883) by @31puneet in #887
  • Fix hardcoded gene type and name attribute in test_plot_genes_with_ge… by @31puneet in #875
  • Fix g123 test failures on Adir1/Amin1 by falling back to segregating sites when no phasing analysis is available by @blankirigaya in #870
  • Ag3.plot frequencies time series by @blankirigaya in #906
  • Add AI-use policy by @jonbrenas in #872
  • Fix lstrip column corruption in plot_frequencies_heatmap() by @31puneet in #898
  • Update contact details in pyproject.toml by @jonbrenas in #871
  • Fix deprecated Plotly API calls in anoph (Mapbox and Trace methods) by @NgangaKamau3 in #889
  • Fix path joining for Windows compatibility in PlasmodiumDataResource by @muien5080 in #909
  • fix(tests): handle missing sex_call in diplotype clustering tests for Amin1/Adir1 by @adilraza99 in #888
  • Add describe_api() method for API introspection (#903) by @mandeepsingh2007 in #904
  • Pin pandas to 2.3.2 by @jwgarber in #943
  • fix: use min_clip parameter for y-axis lower bound in plot_fst_gwss_track by @Tanisha127 in #910
  • ci: upgrade latest_docs.yml to use Node.js 20 by @Tanisha127 in #931
  • Improve transparency by warning when max_cohort_size triggers downsampling by @adilraza99 in #930
  • fix: validate aims param early in plot_aim_heatmap for clearer error message by @Tanisha127 in #961
  • feat: add consistent aim_species colors in plot_pca_coords by @Tanisha127 in #962
  • Fix Fst Z-score calculation when standard error is zero by @adilraza99 in #948
  • Fix duplicate intermediate node generation in _mjn_graph by @31puneet in #924
  • fix: dedent empty-data check in cnv_discordant_read_calls (#777) by @AswaniSahoo in #895
  • Normalize site_mask in g123_gwss cache parameters and bump cache version by @adilraza99 in #966
  • Fix unbounded _cache_locate_site_class growth and instance retention via class-level lru_cache by @suhr25 in #967
  • Add github action for installing python and poetry consistently by @jwgarber in #958
  • Guard against invalid jackknife block sizing when n_jack exceeds site count by @adilraza99 in #911
  • feat: add "lower triangle" annotation option to plot_pairwise_average_fst (#820) by @AswaniSahoo in #969
  • Add SYNONYMOUS_STOP and SYNONYMOUS_START effect classifications (fixes #953) by @ZiadXI in #954
  • Fix CI warnings and restore test coverage for PR #817 by @adilraza99 in #942
  • add advanced haplotype clustering by @sanjaynagi in #817
  • Return NaN for empty windows in G123 and H12 statistics by @adilraza99 in #977
  • fix: guard against free basemap providers going out of service (#446) by @blankirigaya in #952
  • refactor: replace manual cache pattern with cached_property for _snp_effect_annotator (#469) by @Tanisha127 in #972
  • Add filter_unassigned parameter to _prep_samples_for_cohort_grouping by @shauryam2807 in #983
  • Fix: remove stray f in ValueError messages by @suhr25 in #980
  • Fix wrong type annotation for sample_query_options in average_fst by @rehanxt5 in #988
  • Fix: Replace TODO Strings With Proper Variant Effect Values in veff.py by @blankirigaya in #917
  • fix: add guard for empty array in g123 when window_size exceeds avail by @31puneet in #937
  • Fix: Implement Abstract Cache Name Properties in All Subclasses by @blankirigaya in #901
  • refactor: standardise biallelic diplotypes and handling of missing calls by @Tanisha127 in #975
  • Fix simplecache storage location being ignored for chained GCS URLs by @blankirigaya in #935
  • Fix raw string in cohort_diversity_stats error message by @suhr25 in #1007
  • Fix wrong denominator in max_missing_an fraction filter (closes #998) by @rehanxt5 in #1000
  • Fix contig variable shadowing in H12 overlay plot by @adilraza99 in #994
  • Make random anoph testing data reproducible by @jwgarber in #1008
  • Fix handling of missing terms-of-use metadata in sample set manifest (#766) by @adilraza99 in #990
  • ci: configure codecov patch coverage threshold by @Sharon-codes in #1013
  • Fix/h12 multi panel param forwarding by @shauryam2807 in #1001
  • Fix TypeError for single-exon transcripts in veff.Annotator.get_children by @Vedag812 in #873
  • Fix stray f in error message f-strings (closes #985) by @rehanxt5 in #986
  • ci: verify tests against locked and latest supported NumPy versions by @Sharon-codes in #1023
  • Forward sample_query_options in pairwise_average_fst (closes #995) by @rehanxt5 in #996
  • Add Grantham and Sneath amino acid distance metrics to SNP effects (closes #115) by @ZiadXI in #922
  • Adding limited support for Adar by @jonbrenas in #1032
  • build: allow bokeh >=3.7 and restore mypy compatibility by @Sharon-codes in #1012
  • CNV: rename cnv_discordant_read_calls parameter from contig to contigs by @Sharon-codes in #1021
  • fix: return NaN confidence intervals when cohort size is zero by @adilraza99 in #1011
  • fix: use per-sample denominator for CNV frequencies when nobs_mode="fixed" by @adilraza99 in #1006
  • fix: replace bare asserts in veff.py with explicit ValueError exceptions by @suhaan-24 in #1034
  • refactor: extract AnophelesHetAnalysis into anoph/heterozygosity.py by @31puneet in #944
  • feat: add results caching to cohort_diversity_stats by @Sharon-codes in #1014
  • Issue 435 cohort group metadata by @Sharon-codes in #1016
  • Revert "Issue 435 cohort group metadata" by @jonbrenas in #1048
  • docs: add macOS developer setup guide by @PaulaYaniz in #885
  • fix: prevent logging handler accumulation in LoggingHelper by @suhr25 in #949
  • Fix plot_frequencies_time_series reading wrong cohort after filtering by @blankirigaya in #879
  • fix: guard CI variable access in plot_frequencies_time_series and plo… by @adilraza99 in #1037
  • Fix broken DOI link and docstring typos by @Vedag812 in #874
  • docs: fix spelling typo in index.rst by @GitGautamHub in #892
  • Fix incorrect cache key in ihs_gwss to prevent cache collisions by @blankirigaya in #896
  • fix: handle None variant in plot_frequencies_map_markers widget callback by @blankirigaya in #908
  • Fix #778: descriptive errors in njt/plot_njt for insufficient data by @bleedblack1 in #921
  • test: fix CNV variant_query interpolation by @Flamki in #928
  • Improvements to contributing guide by @jwgarber in #927
  • Set lower default wheel zoom sensitivity for haplotype networks by @blankirigaya in #934
  • GH770: support list of regions in average_fst and pairwise_average_fst by @ritoban23 in #973
  • test(cnv): stabilise simulated high-variance sampling by @Sharon-codes in #1027
  • Fix: use af1 instead of ag3 in Af1 notebook section by @star-lord1234 in #1116
  • Add cohort_geometries() to access cohort GeoJSON metadata by @adilraza99 in #1053
  • Improve robustness of cohorts() metadata access by @adilraza99 in #1052
  • Fix LoggingHelper.set_level() not updating logger level by @suhr25 in #1047
  • fix: validate area_by column in _prep_samples_for_cohort_grouping by @suhr25 in #1140
  • fix: warn when sample_query returns 0 results due to case mismatch by @khushthecoder in #1103
  • docs: document year=-1/month=-1 sentinel values for lab cross samples by @khushthecoder in #1104
  • fix: migrate dev/test/docs tooling from Poetry extras to dependency groups by @khushthecoder in #1136
  • fix: validate taxon_by column to raise ValueError instead of KeyError by @suhr25 in #1143
  • fix: improve error handling for invalid pandas queries in _locate_cohorts() by @suhr25 in #1144
  • fix: correct pipx link in CONTRIBUTING.md (#1120) by @khushthecoder in #1145
  • Fix #1064: Return empty DataFrame instead of raising ValueError in aa… by @khushthecoder in #1147
  • Clarify comment: NON_SYNONYMOUS_START/STOP already covered by existing effects by @ZiadXI in #1046
  • fix: replace print() statements with warnings.warn() in production code by @suhaan-24 in #1050
  • feat: add arc and chord diagrams for haplotype sharing (#457, #458) by @31puneet in #989
  • Optimization: Replace slow DataFrame apply() iterations with vectorized operations for metadata loading by @khushthecoder in #1155
  • Fix #1056: Decode URL-escaped paths for local filesystems by @khushthecoder in #1146
  • Fix Google Colab dependency conflicts for malariagen_data by @joshitha1808 in #1009
  • feat: add public sample_count_het() and cohort_heterozygosity() methods (#775) by @Tanisha127 in #1077
  • Fix: add sample_indices parameter to count_samples, plot_samples_interactive_map, plot_samples_bar, plot_sample_location_geo by @noir4201 in #1127
  • Fix #1160: Replace broad except Exception with specific exception typ… by @khushthecoder in #1161
  • Update test_ag3.py by @jonbrenas in #1166
  • Fix #1162: Always return figure objects from plot_* methods by @khushthecoder in #1163
  • Fix #1113: Hash content-affecting selection params into PLINK export … by @khushthecoder in #1158
  • Fix #1108: Replace truthiness checks with explicit None checks in gen… by @khushthecoder in #1150
  • Fix #940: Replace truthiness checks with explicit None checks for reg… by @khushthecoder in #1149
  • fix: raise clear error when all cohorts are filtered out in _setup_cohort_queries by @suhr25 in #1148
  • fix: prevent axis flipping in plot_h12_calibration by adding bounds by @joshitha1808 in #1018
  • feat: allow snp_allele_frequencies to accept genomic regions by @joshitha1808 in #1076
  • fix: replace assert isinstance with explicit type validation by @kunal-10-cloud in #1192
  • feat: Add canonical_transcript() method by @kunal-10-cloud in #1196
  • docs: add missing parameter docs for taxa and areas in plot_frequencies_time_series by @isobelnolan in #1173
  • Fix unbounded genome cache memory leak in Annotator by @kunal-10-cloud in #1190
  • Refactor: Move hardcoded species-specific parameters to SpeciesConfig by @khushthecoder in #1195
  • test: add comprehensive unit tests for veff.py Annotator by @kunal-10-cloud in #1188
  • fix: resolve roh_hmm cache name safely (GH-1151) by @khushthecoder in #1193
  • fix: make _jitter() accept optional random_state parameter (#1217) by @khushthecoder in #1218
  • fix: restore gene_names parameter passing to AnophelesGenomeFeaturesData by @khushthecoder in #1210
  • Add __repr__ to Region and CacheMiss utility classes (fixes #1219) by @Yashsingh045 in #1220
  • Add Windows development setup guide for first-time contributors by @aman-dev-maker in #1112
  • perf: vectorize cohort_heterozygosity() for 10-50x speedup by @kunal-10-cloud in #1212
  • fix: replace NotImplementedError in _surveillance_flags with graceful fallback by @khushthecoder in #1207
  • refactor: narrow overly broad except Exception catches to specific exception types by @kunal-10-cloud in #1226
  • Fix fragile cache name property pattern for _xpehh_gwss_cache_name and _ihs_gwss_cache_name by @kunal-10-cloud in #1199
  • Add pytest configuration to pyproject.toml by @kunal-10-cloud in #1232
  • Add VCF export support for SNP call datasets by @adilraza99 in #1071
  • Add type annotations to snp_data.py (AnophelesSnpData) by @Yashsingh045 in #1222
  • Seed random and numpy.random in test suite by @Yashsingh045 in #1224
  • Standardize test suite randomization using np.random by @Yashsingh045 in #1240
  • Add LD-pruned biallelic SNP access method by @adilraza99 in #1130
  • Fix broken image URLs in documentation by @Yashsingh045 in #1250
  • fix: migrate _check_types from typeguard to pydantic validate_call by @31puneet in #1040
  • Vectorize most-common genotype imputation in PCA by @Sashreekkumar in #1239
  • Add DEBIAN_SETUP.md to support Debian and WSL environments (Fixes #1091) by @Schronding in #1099
  • Remove Sanger S3 URL from Pf8 by @nw20 in #1233
  • Adding Pf9 functionality by @nw20 in #1236
  • fix: version switcher dropdown overflow on smaller screens (#578) by @Tanisha127 in #1271
  • Use the pivot table directly for taxa by @jonbrenas in #1269
  • Fix/replace asserts with runtime validation by @khushthecoder in #1260
  • fix: enforce LRU eviction for _cache_locate_site_class (fixes #1276) by @khushthecoder in #1277

New Contributors

Full Changelog: v15.6.0...v15.7.0