KMDS(1)

πŸ’– KMDS β€” control for population structure πŸ’–

okay bestie, listen up, this is kmds, a little icon from the User Commands corner of the manual. she controls for population structure, filters kmers, and builds you a matrix that represents population structure. she's part of the seer(1) family, aka Sequence Element (kmer) Enrichment Analysis β€” so if you already know seer, you already kinda know her vibe. iykyk ✨


✨ DESCRIPTION ✨

so what does she actually do? Control for population structure. she filters kmers and creates a matrix representing population structure. that's the whole gig, and she eats every time πŸ’…

she belongs to seer(1), the Sequence Element (kmer) Enrichment Analysis situation β€” so think of her as one of the main characters in that whole ensemble cast. πŸ‘‘


πŸŽ€ OPTIONS πŸŽ€

the two iconic workflows, no cap:

  1. filter and subsample with --no_mds and --size
  2. combine, and do metric multidimensional scaling with --mds_concat

πŸ¦‹ Required options πŸ¦‹

these are non-negotiable, bestie. like, she literally will not go anywhere without them.

  • -k, --kmers arg β€” the dsm kmer output file. this is your input, your whole reason for being here 🫢
  • -p, --pheno arg β€” the .pheno metadata. the pheno file, the personality file, the lore.

🌸 MDS options 🌸

this is the multidimensional scaling section, and she is obsessed with it.

  • -o, --output arg β€” output prefix for the new dsm file.
  • --no_mds β€” do not perform MDS; instead she outputs the subsampled matrix. just the matrix, no scaling, no drama. πŸ™ˆ
  • --write_distances β€” writes a csv of the distance matrix. give the people the csv!! πŸ“„
  • --mds_concat arg β€” a list of subsampled matrices to use in MDS. note that this performs only MDS; it implies --no_filtering. so like, filtering is off the table the second you use this, periodt.
  • --pc arg (=3) β€” number of principal coordinates to output. default is 3, which is honestly a serve.
  • --size arg (=1000000) β€” number of kmers to use in MDS. default is 1000000 (a whole million, she's not doing anything small πŸ’€).
  • --threads arg (=1) β€” number of threads. default is 1. suggested: 4. so like, crank it up if your machine can handle the main character energy. πŸ”₯

πŸ’œ Filtering options πŸ’œ

the filter era. very demure, very mindful.

  • --no_filtering β€” turn off all filtering and do not output a new kmer file. everything stays, nothing new gets written. it's giving chaos but make it intentional.
  • --max_length arg (=100) β€” maximum kmer length. default 100.
  • --maf arg (=0.01) β€” minimum kmer frequency. default 0.01. (maf = minor allele frequency energy, keep it in mind 🧚)
  • --min_words arg β€” minimum kmer occurrences. Overrides --maf. so if you set both, this one wins. she said "i'm the captain now". πŸ‘‘

⭐ Other options ⭐

  • --version β€” prints version and exits. one and done, bye πŸ’…
  • -h, --help β€” full help message. when in doubt, ask her.

🌈 EXAMPLE 🌈

want to filter kmers and create a matrix representing population structure with kmds? here's the move:

kmds -k dsm_input.txt.gz --pheno metadata.pheno -o filtered

and if you want to spread this process out, run the following command on each dsm file:

kmds -k dsm_input.txt.gz --pheno metadata.pheno --no_mds --size 10000

copy it exactly, bestie, don't freestyle the flags. 😭


πŸ“ AUTHOR πŸ“

this manpage was written by Andreas Tille for the Debian distribution, and can be used for any other usage of the program. shoutout to Andreas fr fr πŸ™Œ


ok that's the whole page!! everything she does, every flag, every default, all of it. no cap. πŸ’–

and a lil sign-off for the girls and the gays and everyone in between: this is kmds version 1.1.2, dated March 2017. vintage but she still slays. πŸŽ€βœ¨πŸ¦‹