Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MRG: update FAQ answer on k-mer size #2899

Merged
merged 2 commits into from
Jan 8, 2024
Merged

MRG: update FAQ answer on k-mer size #2899

merged 2 commits into from
Jan 8, 2024

Conversation

ctb
Copy link
Contributor

@ctb ctb commented Jan 2, 2024

A collaborator asked why I was using k=21 for a metagenome gather instead of k=51, and I realized that the FAQ answer on k-mer sizes was too simple.

This updates the FAQ answer to the following:

What k-mer size(s) should I use with sourmash?

The short answer is: for DNA, use k=31.

Slightly longer answer: when we look at the k-mer distribution
across all of the bacterial genomes in GTDB, we find that 99% (or
more) of 31-mers are genome, species, or genus specific.

If you go lower (say, k=21), then you get a few percent of k-mers
that match above the genus level - family or above. This is useful for
fuzzier matching, e.g. if you have a metagenome with a high fraction of
unknown k-mers.

If you go higher (k=51), a higher percentage of k-mers are genome-specific.
This can be valuable in situations where you have highly specific reference
genomes (e.g. isolates, single-cell genomes, or MAGs) that should match
very closely to this metagenome.

For the core sourmash operations - search, gather, and compare - we
believe (with evidence!) that (a) the differences between k=21, k=31,
and k=51 are negligible; and that (b) k=31 works fine for most
day-to-day use of sourmash.

We also provide Genbank and GTDB databases for k=21,
k=31, and k=51.

see the PR for the diff ;)

Copy link

codecov bot commented Jan 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (4a72236) 86.51% compared to head (99e6496) 86.51%.

Additional details and impacted files
@@           Coverage Diff           @@
##           latest    #2899   +/-   ##
=======================================
  Coverage   86.51%   86.51%           
=======================================
  Files         135      135           
  Lines       15252    15252           
  Branches     2622     2622           
=======================================
  Hits        13195    13195           
  Misses       1758     1758           
  Partials      299      299           
Flag Coverage Δ
hypothesis-py 25.80% <ø> (ø)
python 92.73% <ø> (ø)
rust 59.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ctb
Copy link
Contributor Author

ctb commented Jan 8, 2024

bump @sourmash-bio/devs

Copy link
Contributor

@ccbaumler ccbaumler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ctb
Copy link
Contributor Author

ctb commented Jan 8, 2024

thanks!

@ctb ctb merged commit 0adc8aa into latest Jan 8, 2024
37 checks passed
@ctb ctb deleted the update_ksize_doc branch January 8, 2024 22:10
@ctb ctb mentioned this pull request Feb 10, 2024
ctb added a commit that referenced this pull request Feb 10, 2024
release notes: https://hackmd.io/SCoVcWS1RhCH-ndQNWF-1A?view

# sourmash release v4.8.6 - release notes

Minor new features:

* re-establish `tax` gather reading flexibility (#2986)
* update JOSS paper per pyopensci review (#2964)
* Clean up and refactor `KmerMinHash::merge` in core (#2973)
* add label output & input options to `compare` and `plot`, for better
customization (#2598)
* add utilities for using ictv taxonomic ranks with `sourmash tax`
(#2608)

Bug fixes:

* Fix `tax metagenome` to work on gather output created with
`--estimate-ani-ci` (#2952)
* fix gather memory usage issue by not accumulating `GatherResult`
(#2962)
* update the CLI docs and help for `search --containment` and `prefetch`
(#2971)

Documentation updates:

* update tutorial to remove bioconda & use sourmash-minimal (#2972)
* update readme with maintainers & sourmash comparison info (#2965)
* add branchwater reference; make FAQ more visible (#2984)
* update FAQ answer on k-mer size (#2899)
* update README with repostatus and pyver badges, and Windows support
(#2928)
* add full column descriptions for `gather` and `prefetch` output
(#2954)
* add scaled FAQ, adjust ksize answer (#2921)
* minor refactoring of gather code, small doc updates (#2953)
* Add threshold-bp and scaled relationship to faqs (#2930)

Developer updates:

* nix updates for pyopensci review (#2975)
* add scaled selection to manifest; add helper functions for collection
and sig/sketch usage (#2948)
* Pre-commit updates (#2427)
* fix upload wheel CI (#2974)
* release core; bump rust core version to r0.12.1 (#2988)
* CI: macos deployment target and maturin updates (#2879)
* MRG: bump version to 4.8.6-dev, post-release (#2877)
* fix benchmark code & a few other small issues from pyOpenSci review
(#2920)
* fix uploading of wheels after upload-artifact upgrade. (#2887)
* in core, enable downsample within select (#2931)

Dependabot updates:

* Bump pypa/cibuildwheel from 2.16.4 to 2.16.5 (#2981)
* Bump tempfile from 3.9.0 to 3.10.0 (#2979)
* Bump rkyv from 0.7.43 to 0.7.44 (#2978)
* Bump actions/cache from 3 to 4 (#2933)
* Bump actions/download-artifact from 3 to 4 (#2884)
* Bump actions/upload-artifact from 3 to 4 (#2883)
* Bump cachix/cachix-action from 13 to 14 (#2926)
* Bump cachix/install-nix-action from 24 to 25 (#2927)
* Bump chrono from 0.4.31 to 0.4.33 (#2957)
* Bump getrandom from 0.2.11 to 0.2.12 (#2924)
* Bump histogram from 0.8.3 to 0.8.4 (#2923)
* Bump histogram from 0.8.4 to 0.9.0 (#2935)
* Bump jinja2 from 3.1.2 to 3.1.3 (#2922)
* Bump memmap2 from 0.9.0 to 0.9.2 (#2882)
* Bump memmap2 from 0.9.2 to 0.9.3 (#2889)
* Bump memmap2 from 0.9.3 to 0.9.4 (#2958)
* Bump mymindstorm/setup-emsdk from 13 to 14 (#2934)
* Bump ouroboros from 0.18.1 to 0.18.2 (#2894)
* Bump ouroboros from 0.18.2 to 0.18.3 (#2936)
* Bump pypa/cibuildwheel from 2.16.2 to 2.16.4 (#2960)
* Bump rayon from 1.8.0 to 1.8.1 (#2937)
* Bump rkyv from 0.7.42 to 0.7.43 (#2880)
* Bump serde from 1.0.194 to 1.0.195 (#2901)
* Bump serde from 1.0.195 to 1.0.196 (#2956)
* Bump serde_json from 1.0.108 to 1.0.110 (#2896)
* Bump serde_json from 1.0.110 to 1.0.111 (#2902)
* Bump serde_json from 1.0.111 to 1.0.113 (#2955)
* Bump shlex from 1.1.0 to 1.3.0 (#2940)
* Bump supercharge/redis-github-action from 1.7.0 to 1.8.0 (#2885)
* Bump tempfile from 3.8.1 to 3.9.0 (#2893)
* Bump thiserror from 1.0.50 to 1.0.51 (#2881)
* Bump thiserror from 1.0.51 to 1.0.56 (#2897)
* Bump wasm-bindgen from 0.2.89 to 0.2.90 (#2925)
* Bump wasm-bindgen-test from 0.3.39 to 0.3.40 (#2938)
* Bump web-sys from 0.3.66 to 0.3.67 (#2939)
* Update pytest requirement from <7.5.0,>=6.2.4 to >=6.2.4,<8.1.0
(#2959)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants