Version 5 is a major release that includes several breaking changes to the API, as well as new types of models, improved binning accuracy, and more user friendliness.
- Added the TaxVamb binner - a semi-supervised model that can augment binning
using taxonomic assignment from e.g. mmseqs2 of some of the input contigs.
TaxVamb is state-of-the-art, and significantly outperforms all other Vamb
models when the taxonomic assignment is reasonably good.
TaxVamb is available from command-line using
vamb bin taxvamb
- Added the Taxometer annotation refiner. This program enhances taxonomic
assignment of metagenomic contigs using composition and abundance.
TaxVamb will automatically run Taxometer to increase accuracy.
Taxometer is available from command-line using
vamb taxometer
- [EXPERIMENTAL] Added reclustering functionality, which reclusters an existing binning using single-copy genes, using a technique inspired by the SemiBin2 binner. This improves bacterial bins. We may remove this feature in future versions of Vamb.
- The command-line interface of Vamb has been changed, such that the different
functionality should be used through subcommands. For example, the binners in
Vamb are accesible through
vamb bin
. Also, a few command-line flags have been removed. - All output files ending in
.tsv
is now actually in TSV format. Previously, Vamb did not include a header in the file, as the TSV format requires. In version 5, the header is included. - The file
mask.npz
is no longer output, because the encoder no longer masks any sequences. - The name of the output clusters files have been changed. When binsplitting is
used, Vamb now outputs both the split, and the unsplit clusters.
The name of the output files are now:
vae_clusters_split.tsv
vae_clusters_unsplit.tsv
And similarly for e.g.vaevae_clusters_split.tsv
. When binsplitting is not used, only the unsplit clusters are output.
- The
benchmark
module of Vamb has been removed, as it is superseded by our new benchmarking tool https://github.com/jakobnissen/BinBencher.jl
- Several details of the clustering algorithm has been rehauled. It now returns more accurate clusters and may be faster in some circumstances. However, GPU clustering may be significantly slower. (#198)
- Vamb now uses both relative and absolute abundances in the encoder, compared to only the relative ones before. This improves binning, especially when using a low number of samples (#210)
- Vamb now binsplits with
-o C
by default.- To disable binsplitting, pass
-o
without an argument
- To disable binsplitting, pass
- Vamb now supports passing abundances in TSV format. This TSV can created very
efficiently using the
strobealign
aligner with the--aemb
flag. - If passing abundances in BAM format, it is now recommended to pass in a directory with all the BAM files using the --bamdir flag, instead of using the old --bamfiles flag.
- Vamb no longer errors when the batch size is too large.
- Several errors and warnings have been improved:
- The user is warned if any sequences are filtered away for falling below
the contig size cutoff (flag
-m
). - Improved the error message when the FASTA and BAM headers to not match.
- Vamb now errors early if the binsplit separator (flag
-o
) is not found in the parsed contig identifiers. If the binsplit separator is not set explicitly and defaults to-o C
, Vamb will instead warn the user and disable binsplitting.
- The user is warned if any sequences are filtered away for falling below
the contig size cutoff (flag
- Vamb now writes its log to both stderr and to the logfile. Every line in the log is now timestamped, and formatted better.
- Vamb now outputs metadata about the unsplit clusters in the output TSV file
vae_clusters_metadata.tsv
. - Vamb now correctly uses a random seed on each invokation (#213)
- Fixed various bugs and undoubtedly introduced some fresh ones.
- Fix a bug that resulting in poor clustering results (#179)
- Fix a bug in src/create_fasta.py
- Bugfix: Make seeding the RNG work from command line
- Bump compatible Cython version
- Create tmp directory in parsebam if needed for pycoverm (issue # 167)
- Fix typo in output AAE_Z cluster names. They are now called e.g. "aae_z_1" instead of "aae_z1"
- Clean up the directory structure of Avamb workflow.
- Fix the CheckM2 dependencies to allow CheckM2 to be installed
- Allow the Avamb workflow to be run on Slurm clusters
- Fix issue #161: Mismatched refhash when spaces in FASTA headers
- Allow setting the RNG seed from command line
- Fix Random.choice for Tensor on Python 3.11. See issue #148
Version 4 is a thorough rewrite of major parts of Vamb that has taken more than a year. Vamb now ships with with an upgraded dual variational autoencoder (VAE) and adversatial autoencoder (AAE) model, usable in a CheckM based workflow. The code quality and test suite has gotten significant upgrades, making Vamb more stable and robust to bugs. Vamb version is slightly faster and produces better bins than v3. The user interface has gotten limited changes.
- The official API of Vamb is now defined only in terms of its command-line interface. This means that from now on, Vamb can freely change and modify its internal functions, even in minor releases or patch releases. If you are using Vamb as a Python package, it means you should precisely specify the full version of Vamb used in order to ensure reproducibility.
- Benchmark procedure has been changed, so benchmark results are incompatible with results from v3. Benchmarking is now considered an implementation detail, and is not stable across releases.
- Vamb no longer outputs TNF, sequence names and sequence lengths as .npz files.
Instead, it produces a
composition.npz
that contains all this information and more. As a consequence command-line options--tnfs
,--names
and--lengths
have been removed, and replaced with the single--composition
option. - The output .npz array
rpkm.npz
has been changed in a backwards incompatible way. From version 4, the content of the output .npz files are considered an implementation detail. - The depths input option
--jgi
has been removed. To use depths computed by an external program, construct an instance of theAbundance
class from your depths and save it using its.save
method to anrpkm.npz
file. (though read the Notable changes section below).
- Vamb now included an optional AAE model along the VAE model. Users may run the VAE model, where it behaves similarly to v3, or run the mixed VAE/AAE model, in which both models will be run on the same dataset.
- The Snakemake workflow has been rehauled, and how defaults to using the VAE/AAE combined model, using CheckM to dereplicate.
- Vamb is now more easily installed via pip:
pip install vamb
. We have fixed a bunch of issues that caused installation problems. - By default, Vamb gzip compresses FASTA files written using the
--minfasta
flag.
- Using the combined VAE-AAE workflow, the user can get significantly better bins.
- Vamb now uses
CoverM
internally to calculate abundances. This means it is significantly faster and more accurate than before. Thus, we no longer recommend users computing depths with MetaBAT2's JGI tool. - Lots of bugfixes may have changed Vamb's behaviour in a backwards incompatible way for certain edge cases. For example, FASTA identifiers are now required to match the name specification in the SAM format to ensure the identifiers are the same in FASTA and BAM files.