SSU(1)

πŸ‘‘ SSU(1) β€” the manual, but make it cute

okay bestie, sit down, hydrate, because we're about to talk about ssu and it's genuinely iconic. the manual page name is SSU(1) and it lives in the User Commands section, iykyk. πŸ’…


✨ NAME ✨

ssu β€” high-performance phylogenetic diversity calculations πŸ¦‹

like, it computes phylogenetic diversity, and it does it fast. no cap.


🌸 DESCRIPTION 🌸

here's the vibe, the whole usage in one breath:

usage: ssu -i <biom> -o <out.dm> -m [METHOD] -t <newick> [-n threads]
[-a alpha] [--vaw]

       [--mode [MODE]] [--start starting-stripe] [--stop
       stopping-stripe] [--partial-pattern <glob>] [--n-partials
       number_of_partitions] [--report-bare]

okay so let's go through every single one of these because every detail matters and i refuse to skip a single flag. πŸ™ˆ

  • -i β€” the input BIOM table. your data goes here, bestie. πŸ“
  • -t β€” the input phylogeny, in newick. the tree!! the moment!! 🌳
  • -m β€” the method, and your options are [unweighted | weighted_normalized | weighted_unnormalized | generalized]. pick your fighter. πŸ‘‘
  • -o β€” the output distance matrix. this is where the slay gets written. ✨
  • -n β€” [OPTIONAL] the number of threads, and the default is 1. yes, one. give it more if you want it to zoom. πŸ”₯
  • -a β€” [OPTIONAL] Generalized UniFrac alpha, default is 1.
  • -f β€” [OPTIONAL] Bypass tips, which reduces compute by about 50%. half the work, same energy, we love her. πŸ’–
  • --vaw β€” [OPTIONAL] Variance adjusted. and listen: the default is to not adjust for variance. so if you want it, you gotta ask for it. periodt.
  • --mode β€” [OPTIONAL] Mode of operation. the options are:
    • one-off : [DEFAULT] compute UniFrac.
    • partial : Compute UniFrac over a subset of stripes.
    • partial-report : Start and stop suggestions for partial compute.
    • merge-partial : Merge partial UniFrac results.
  • --start β€” [OPTIONAL] If mode==partial, the starting stripe.
  • --stop β€” [OPTIONAL] If mode==partial, the stopping stripe.
  • --partial-pattern β€” [OPTIONAL] If mode==merge-partial, a glob pattern for partial outputs to merge.
  • --n-partials β€” [OPTIONAL] If mode==partial-report, the number of partitions to compute.
  • --report-bare β€” [OPTIONAL] If mode==partial-report, produce barebones output.

πŸ“š Citations πŸ“š

bestie, if you're gonna use this, you GOTTA cite the people who made it. academic integrity is the main character energy we're bringing today. 🫢

For UniFrac, please see:

  • McDonald et al. Nature Methods 2018; DOI: 10.1038/s41592-018-0187-8
  • Lozupone and Knight Appl Environ Microbiol 2005; DOI: 10.1128/AEM.71.12.8228-8235.2005
  • Lozupone et al. Appl Environ Microbiol 2007; DOI: 10.1128/AEM.01996-06
  • Hamady et al. ISME 2010; DOI: 10.1038/ismej.2009.97
  • Lozupone et al. ISME 2011; DOI: 10.1038/ismej.2010.133

For Generalized UniFrac, please see:

  • Chen et al. Bioinformatics 2012; DOI: 10.1093/bioinformatics/bts342

For Variance Adjusted UniFrac, please see:

  • Chang et al. BMC Bioinformatics 2011; DOI: 10.1186/1471-2105-12-118

πŸ” Runtime progress, aka watching her work πŸ”

so you wanna know how it's going while it's going? valid. Runtime progress can be obtained by issuing a SIGUSR1 signal. but heads up β€” if you're running with multiple threads, this signal will only be honored if issued to the master PID. don't @ the children, they won't answer. πŸ’€

the report will yield the following information:

tid:<thread ID> start:<starting stripe> stop:<stopping stripe>
k:<postorder node index> total:<number of nodes>

and the proportion of the tree that has been evaluated can be determined from (k / total). math is beautiful, we stan a ratio. 🧚


πŸ’œ AUTHOR πŸ’œ

this manpage was written by Nilesh Patra for the Debian distribution, and can be used for any other usage of the program. we thank them for their service. πŸŽ€


and that's the whole page, bestie β€” version ssu 0.10.0, dated July 2021, filed under SSU(1). go compute something gorgeous. πŸŒˆπŸ’…βœ¨