Skip to content

MMseqs2 Release 14-7e284

Compare
Choose a tag to compare
@martin-steinegger martin-steinegger released this 13 Oct 12:31
· 122 commits to master since this release
7e28409

This is a major release containing features implemented for ColabFold, Foldseek, MMseqs2 profile-profile (not published yet, and still in preview) and many bugfixes. Thanks a lot to the contributors who submitted bug fixes.

If you are using the Docker Hub based MMseqs2 containers, please switch to the new Github Container Registry based ones. The Docker Hub containers will not be maintained in the future.

Breaking

  • Profile databases created by previous MMseqs2 releases won't work anymore with this release. Please recreate them from previous search results or MSAs with result2profile or `msa2profile.
  • Profile k-mer threshold parameter were fitted to new pseudo-counter parameter (--pca,--pcb). Previous --k-score parameters will have differing sensitivity. However, most users will have set -s instead, which was fitted to match as closely as possible.

Features

  • gff2db now should actually work correctly after refactoring (488df86, thanks @RuoshiZhang)
  • result2msa now supports reading from precomputed index
  • Add db2tar: Create a tar file from a database
  • Add parsable columnar tsv output to databases with --tsv
  • Add taxonomic filtering during prefilter with --taxon-list
  • Add --comp-bias-corr-scale to adjust the weight of the compositional bias correction
  • Add --mask-prob parameter to adjust tantan's masking threshold
  • Add context specific pseudo-counts to result2profile
  • Add iterative profile-profile search workflow (thanks @haydenji0731)
  • Add support for profile-profile scoring in striped Smith-Waterman algorithm (thanks @haydenji0731)
  • Add support for gap-open/gap-close costs to striped Smith-Waterman algorithm (thanks @hgsommer)
  • Add environment variable MMSEQS_IGNORE_INDEX to ignore an existing precomputed index
  • createsubdb and view can now return results from identifiers in .lookup with --id-mode 1
  • Change compressdb loop to omp static to keep order
  • Improvements to nucleotide alignments and scoring (thanks @AnnSeidel)

Features built for ColabFold now available in MMseqs2

  • Add pairaln: taxonomic pairing on sequences for MSA building (9a0df0d, 5e245d1, 3f8695e, 3e92abf, edb8223, e19df7c)
  • Add A3M support to result2msa (--msa-format-mode 5)
  • Add A3M support with alignment information to result2msa (--msa-format-mode 6)
  • result2profile allows --diff 0
  • Make taxonomy mapping mmap'able for (near) instant read-in
  • Add workflow to create expandable profile (profile-profile) db from TSVs tsv2exprofiledb
  • Enable result2profile/filterresult to read new expand alignment index
  • Add support to filter MSAs in buckets filterresult, result2profile
  • Add --filter-min-enable to enable filtering only above a minimum threshold of hits (c6d8ae0)
  • Expand can filter in each target cluster before expanding (75af0c8, 85ce847)

Bugfixes

  • summarizeresult was rejecting hits that match the coverage threshold exactly (#586, 67949d7)
  • Don’t use reserved filename characters in unpackdb (#467, c663497 thanks @cutecutecat)
  • Fix typo (violoations -> violations) (#526, 74c3aa6, thanks @Benjamin-Lee)
  • Fix potential endless loop in rescorediagonal
  • Fix prefilter/alignment with 0-size query input #433
  • Fix unpackdb parameter parsing issue
  • Make sure FILTER_RESULT variable is always correctly set for exhaustive search (d4a3354)
  • tar2db breaking with --tar-include/exclude (#561)
  • Wrong database name printed for variadic input when creating a tmp directory
  • extractorfs sometimes loading invalid start/stop codons on non-avx2 platforms
  • Don't mask consensus sequences in profiles
  • result2msa correctly prints X residues
  • Allocate CSProfile only if it's going to be used (d873697)
  • Taxonomy db paths are now correctly found if given a precomputed index (8ff26f2)
  • Encode more strings internally as base64 if special characters are used (16b5774, d155586)
  • Disable broken iterative profile searches in taxonomy (#432)
  • Fixed a possible segmentation fault in align (thanks @rchikhi)

MMseqs2 databases

Speedup

  • Rework of result2msa to avoid allocating a lot of memory
  • Improvement of speed for ungapped alignment in prefilter
  • TaxonomyExpression is faster with a single tax identifier (8ff7279)

MMseqs2 subprojects

  • MMseqs2-based subprojects can use databases too (5afd33c)
  • Add appenddbtoindex: augment a precomputed index with other databases in sub-projects
  • Allow subprojects to build their own precomputed indices (a506d67)
  • Add support for external k-mer thresholds for the prefilter (fea8d20)
  • Subprojects can define their own DbType validators

Developers

  • Added CirrusCI to test FreeBSD and old compilers (a2e2129, 904d0c6, a09a704, 4f1996a, 482dedc, 16830a5)
  • MMseqs2 Docker containers are now published in the Github Container Registry (eb203d3, 5185d3c, ba4e11f)
  • Our microtar fork can write tar files again (dcd180b)
  • Add URIs as allowed parameter inputs (3b9cf88)
  • Additional s390x fixes (linclust might work now)
  • Add support for new MultiParameter type
  • Bundled SIMDe was updated (thanks @mr-c)