MKVTREE(1)

πŸ“¦
version 2.3.1+git20240412.b3b8ac0 Β· 3 versions
, in ubuntu resolute, ubuntu stonking

✨ MKVTREE(1) ✨

okay bestie, sit down, hydrate, because we're about to talk about mkvtree β€” the iconic little program from the Vmatch package that builds an index for a sequence set. it's giving "librarian for your genome" and honestly? we're obsessed 🫢


🌸 NAME 🌸

mkvtree β€” construct index for sequence. that's it, that's the whole job. no cap. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

mkvtree [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

so like, mkvtree constructs an index for a given set of sequences. these sequences come in as a list of input files, and inside the program they're called database sequences. πŸ—‚οΈ

they can be over any alphabet you want, fr fr β€” the DNA alphabet, or the protein alphabet, or literally any other alphabet made up of printable characters. the alphabet gets specified by a file that stores a symbol mapping. periodt.

the index itself is not one file, bestie, it's several β€” the index files. each of those files stores a different table. and you get to decide which tables (i.e. which part of the index) get written to a file, by using one of eight output options, or by using a single option that says "write all the tables to file". main character energy: you choose. πŸ‘‘


🌈 input formats, and how mkvtree clocks them 🌈

we support the following formats for input files, and they're recognized according to the first non-whitespace symbol in the file. vibe check first, questions later. ✨

  • multiple FASTA format β€” if the file begins with the symbol >, it's a multiple FASTA file (i.e. it contains one or more sequences). each line starting with the symbol > contains the description of the sequence following it. each line not starting with the symbol > contains the sequence. empty lines are allowed and ignored when reading the input. 🧬
  • multiple EMBL/SWISSPROT format β€” if the file begins with the string ID, it's a multiple EMBL file (i.e. containing one or more sequences, each in EMBL format). the info contained in the ID and DE lines is taken as the description of the corresponding sequence. the EMBL format is identical to the SWISSPROT format (w.r.t. the information we need to extract from such entries), so you can also use files in multiple SWISSPROT format as input. no extra work, slay. πŸ’–
  • multiple GENBANK format β€” if the file begins with the string LOCUS, it's a multiple GENBANK file (i.e. containing one or more entries in GENBANK format). the info contained in the LOCUS and the DEFINITION lines is taken as the description of the corresponding sequence. 🌸
  • plain format β€” if the file does not begin with the symbol > or the strings ID or LOCUS, then the file is taken verbatim. that is, the entire file is considered to be the input sequence (whitespaces are not ignored). yes, all of it. every last character. πŸ’€

there is no special option needed to tell the program the sequence format. it automatically detects the appropriate format, according to the rules given above. iykyk. 🧚

⚠️ but if none of the above rules apply, then the program cannot recognize the input format and exits with error code 1. 😭

in such a case please check your input files for if they are conform with the input formats above. another good solution is to use a more versatile sequence format transformation program (e.g. readseq) to first generate multiple FASTA files and then feed this into mkvtree. glow-up your data first, then come back. ✨


today many files containing sequence files are provided compressed by the program gzip. to simplify the use of these files, mkvtree also accepts gzipped input files. πŸ”₯

these files must have the ending .gz. the gzipped formatted files are gunzipped internally and then processed as any other file. no unzipping homework required, bestie. πŸŽ€


πŸ’… OPTIONS πŸ’…

  • -db <file> β€” specify database files (mandatory). this one's not optional, babe. πŸ™ˆ
  • -smap <file> β€” specify file containing a symbol mapping. this describes the grouping of symbols. it is possible to set the environment variable MKVTREESMAPDIR to the path where these files can be found. πŸ‘‘
  • -dna β€” input is DNA sequence. 🧬
  • -protein β€” input is Protein sequence. πŸ“
  • -indexname <string> β€” specify name for index to be generated. name her, she deserves it. πŸ’–
  • -pl <length> β€” specify prefix length for bucket sort. recommendation: use without argument; then a reasonable prefix length is automatically determined. let the algorithm cook. πŸ”₯
  • -tis β€” output transformed input sequences (tistab) to file. ✨
  • -ois β€” output original input sequences (oistab) to file. ✨
  • -suf β€” output suffix array (suftab) to file. ✨
  • -sti1 β€” output reduced inverse suffix array (sti1tab) to file. ✨
  • -bwt β€” output Burrows-Wheeler Transformation (bwttab) to file. ✨
  • -bck β€” output bucket boundaries (bcktab) to file. ✨
  • -skp β€” output skip values (skptab) to file. ✨
  • -lcp β€” output longest common prefix lengths (lcptab) to file. ✨
  • -allout β€” output all index tables to files. the "treat yourself" option. 🌈
  • -maxdepth <len> β€” restrict the sorting to prefixes of the given length. ⭐
  • -v β€” verbose mode. she talks now. πŸ’¬
  • -version β€” show the version of the Vmatch package. πŸ’œ
  • -help β€” show help. 🫢

⭐ RETURNS ⭐

if an error occurs, the program exits with error code 1. otherwise, the exit code is 0. that's the vibe check: 0 = ate, 1 = something's off. πŸ’€βœ¨


πŸ‘€ SEE ALSO πŸ‘€


and that's the whole page, bestie β€” you just read the mkvtree(1) manual from the Vmatch package, and honestly, you understood it, periodt. πŸ’–πŸŽ€πŸ¦‹ go build that index. πŸ‘‘
πŸ“¦ where this page comes from