From 3740224de119f1b68a322e4cb476dbbff3e34db6 Mon Sep 17 00:00:00 2001 From: Milot Mirdita Date: Sat, 16 Nov 2024 12:26:49 +0900 Subject: [PATCH] Add GPU paper citation --- README.md | 2 ++ src/MMseqsBase.cpp | 20 ++++++++++---------- src/commons/Command.h | 3 ++- src/commons/Parameters.cpp | 5 +++-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b49ac6d31..a601c549b 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ MMseqs2 (Many-against-Many sequence searching) is a software suite to search and [Mirdita M, Steinegger M, Breitwieser F, Soding J, Levy Karin E: Fast and sensitive taxonomic assignment to metagenomic contigs. Bioinformatics, doi: 10.1093/bioinformatics/btab184 (2021)](https://doi.org/10.1093/bioinformatics/btab184). +[Kallenborn F, Chacon A, Hundt C, Sirelkhatim H, Didi K, Dallago C, Mirdita M, Schmidt B, Steinegger M: GPU-accelerated homology search with MMseqs2. bioRxiv, doi: 10.1101/2024.11.13.623350 (2024)](https://www.biorxiv.org/content/10.1101/2024.11.13.623350v1) + [![BioConda Install](https://img.shields.io/conda/dn/bioconda/mmseqs2.svg?style=flag&label=BioConda%20install)](https://anaconda.org/bioconda/mmseqs2) [![Github All Releases](https://img.shields.io/github/downloads/soedinglab/mmseqs2/total.svg)](https://github.com/soedinglab/mmseqs2/releases/latest) [![Biocontainer Pulls](https://img.shields.io/endpoint?url=https%3A%2F%2Fmmseqs.com%2Fbiocontainer.php%3Fcontainer%3Dmmseqs2)](https://biocontainers.pro/#/tools/mmseqs2) [![Build Status](https://dev.azure.com/themartinsteinegger/mmseqs2/_apis/build/status/soedinglab.MMseqs2?branchName=master)](https://dev.azure.com/themartinsteinegger/mmseqs2/_build/latest?definitionId=2&branchName=master)

diff --git a/src/MMseqsBase.cpp b/src/MMseqsBase.cpp index d37239d69..94a6e6b23 100644 --- a/src/MMseqsBase.cpp +++ b/src/MMseqsBase.cpp @@ -22,7 +22,7 @@ std::vector baseCommands = { "mmseqs easy-search examples/QUERY.fasta examples/DB.fasta result.m8 tmp --start-sens 2 -s 7 --sens-steps 3\n", "Milot Mirdita & Martin Steinegger ", " ... | | ", - CITATION_SERVER | CITATION_MMSEQS2,{{"fastaFile[.gz|.bz2]", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA|DbType::VARIADIC, &DbValidator::flatfileAndStdin }, + CITATION_SERVER | CITATION_MMSEQS2 | CITATION_GPU ,{{"fastaFile[.gz|.bz2]", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA|DbType::VARIADIC, &DbValidator::flatfileAndStdin }, {"targetDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::flatfile }, {"alignmentFile", DbType::ACCESS_MODE_OUTPUT, DbType::NEED_DATA, &DbValidator::flatfile }, {"tmpDir", DbType::ACCESS_MODE_OUTPUT, DbType::NEED_DATA, &DbValidator::directory }}}, @@ -133,9 +133,9 @@ std::vector baseCommands = { {"makepaddedseqdb", makepaddedseqdb, &par.makepaddedseqdb, COMMAND_HIDDEN, "Generate a padded sequence DB", "Generate a padded sequence DB", - "Martin Steinegger ", + "Milot Mirdita & Martin Steinegger ", " ", - CITATION_MMSEQS2, {{"sequenceDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA|DbType::NEED_HEADER, &DbValidator::sequenceDb }, + CITATION_GPU, {{"sequenceDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA|DbType::NEED_HEADER, &DbValidator::sequenceDb }, {"sequenceIndexDB", DbType::ACCESS_MODE_OUTPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }}}, {"appenddbtoindex", appenddbtoindex, &par.appenddbtoindex, COMMAND_HIDDEN, NULL, @@ -219,7 +219,7 @@ std::vector baseCommands = { "mmseqs search queryDB targetDB resultDB --start-sens 2 -s 7 --sens-steps 3\n", "Martin Steinegger ", " ", - CITATION_MMSEQS2, {{"queryDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, + CITATION_MMSEQS2 | CITATION_GPU, {{"queryDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, {"targetDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, {"alignmentDB", DbType::ACCESS_MODE_OUTPUT, DbType::NEED_DATA, &DbValidator::alignmentDb }, {"tmpDir", DbType::ACCESS_MODE_OUTPUT, DbType::NEED_DATA, &DbValidator::directory }}}, @@ -585,17 +585,17 @@ std::vector baseCommands = { {"ungappedprefilter", ungappedprefilter, &par.ungappedprefilter, COMMAND_PREFILTER, "Optimal diagonal score search", NULL, - "Martin Steinegger ", + "Milot Mirdita & Martin Steinegger ", " ", - CITATION_MMSEQS2, {{"queryDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, + CITATION_MMSEQS2 | CITATION_GPU, {{"queryDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, {"targetDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, {"prefilterDB", DbType::ACCESS_MODE_OUTPUT, DbType::NEED_DATA, &DbValidator::prefilterDb }}}, {"gappedprefilter", gappedprefilter, &par.gappedprefilter, COMMAND_PREFILTER, "Optimal Smith-Waterman-based prefiltering (slow)", NULL, - "Martin Steinegger ", + "Milot Mirdita & Martin Steinegger ", " ", - CITATION_MMSEQS2, {{"queryDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, + CITATION_MMSEQS2 | CITATION_GPU, {{"queryDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, {"targetDB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::sequenceDb }, {"prefilterDB", DbType::ACCESS_MODE_OUTPUT, DbType::NEED_DATA, &DbValidator::prefilterDb }}}, {"kmermatcher", kmermatcher, &par.kmermatcher, COMMAND_PREFILTER, @@ -760,9 +760,9 @@ std::vector baseCommands = { {"gpuserver", gpuserver, &par.gpuserver, COMMAND_STORAGE, "Start a GPU server", NULL, - "Martin Steinegger ", + "Milot Mirdita & Martin Steinegger ", "", - CITATION_MMSEQS2, {{"DB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::allDb }}}, + CITATION_GPU, {{"DB", DbType::ACCESS_MODE_INPUT, DbType::NEED_DATA, &DbValidator::allDb }}}, {"createsubdb", createsubdb, &par.createsubdb, COMMAND_SET, "Create a subset of a DB from list of DB keys", "# Create a new sequenceDB from sequenceDB entries with keys 1, 2 and 3\n" diff --git a/src/commons/Command.h b/src/commons/Command.h index 308309e5a..ce34c91c6 100644 --- a/src/commons/Command.h +++ b/src/commons/Command.h @@ -10,10 +10,11 @@ const unsigned int CITATION_LINCLUST = 1U << 3; const unsigned int CITATION_PLASS = 1U << 4; const unsigned int CITATION_SERVER = 1U << 5; const unsigned int CITATION_TAXONOMY = 1U << 6; +const unsigned int CITATION_GPU = 1U << 7; // Make sure this is always the last bit // citations from inheriting modules will start from here -const unsigned int CITATION_END = CITATION_TAXONOMY << 1; +const unsigned int CITATION_END = CITATION_GPU << 1; struct MMseqsParameter; diff --git a/src/commons/Parameters.cpp b/src/commons/Parameters.cpp index 7bc1d8551..fb2596a49 100644 --- a/src/commons/Parameters.cpp +++ b/src/commons/Parameters.cpp @@ -1598,7 +1598,7 @@ void Parameters::printUsageMessage(const Command& command, const unsigned int ou if (command.citations > 0) { ss << "\nreferences:\n"; for (unsigned int pos = 0; pos != sizeof(command.citations) * CHAR_BIT; ++pos) { - unsigned int citation = 1 << pos; + unsigned int citation = 1U << pos; if (command.citations & citation && citations.find(citation) != citations.end()) { ss << " - " << citations.at(citation) << "\n"; } @@ -2643,8 +2643,9 @@ void Parameters::setDefaults() { { CITATION_UNICLUST, "Mirdita M, von den Driesch L, Galiez C, Martin M, Soding J, Steinegger M: Uniclust databases of clustered and deeply annotated protein sequences and alignments. Nucleic Acids Research 45(D1), D170-D176 (2017)" }, { CITATION_LINCLUST, "Steinegger M, Soding J: Clustering huge protein sequence sets in linear time. Nature Communications, 9(1), 2542 (2018)" }, { CITATION_PLASS, "Steinegger M, Mirdita M, Soding J: Protein-level assembly increases protein sequence recovery from metagenomic samples manyfold. Nature Methods, 16(7), 603-606 (2019)" }, - { CITATION_SERVER, "Mirdita M, Steinegger M, Soding J: MMseqs2 desktop and local web server app for fast, interactive sequence searches. Bioinformatics, 35(16), 2856–2858 (2019)" }, + { CITATION_SERVER, "Mirdita M, Steinegger M, Soding J: MMseqs2 desktop and local web server app for fast, interactive sequence searches. Bioinformatics, 35(16), 2856-2858 (2019)" }, { CITATION_TAXONOMY, "Mirdita M, Steinegger M, Breitwieser F, Soding J, Levy Karin E: Fast and sensitive taxonomic assignment to metagenomic contigs. Bioinformatics, btab184 (2021)" }, + { CITATION_GPU, "Kallenborn F, Chacon A, Hundt C, Sirelkhatim H, Didi K, Dallago C, Mirdita M, Schmidt B, Steinegger M: GPU-accelerated homology search with MMseqs2. bioRxiv, 2024.11.13.623350 (2024)" }, }; }