[med-svn] [Git][med-team/vsearch][upstream] New upstream version 2.27.1
Étienne Mollier (@emollier)
gitlab at salsa.debian.org
Fri Apr 19 17:30:25 BST 2024
Étienne Mollier pushed to branch upstream at Debian Med / vsearch
Commits:
e43d4070 by Étienne Mollier at 2024-04-19T18:09:01+02:00
New upstream version 2.27.1
- - - - -
6 changed files:
- README.md
- configure.ac
- man/vsearch.1
- src/dynlibs.cc
- src/search.cc
- src/searchcore.cc
Changes:
=====================================
README.md
=====================================
@@ -37,7 +37,7 @@ Most of the nucleotide based commands and options in USEARCH version 7 are suppo
## Getting Help
-If you can't find an answer in the [VSEARCH documentation](https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch_manual.pdf), please visit the [VSEARCH Web Forum](https://groups.google.com/forum/#!forum/vsearch-forum) to post a question or start a discussion.
+If you can't find an answer in the [VSEARCH documentation](https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch_manual.pdf), please visit the [VSEARCH Web Forum](https://groups.google.com/forum/#!forum/vsearch-forum) to post a question or start a discussion.
## Example
@@ -50,9 +50,9 @@ In the example below, VSEARCH will identify sequences in the file database.fsa t
**Source distribution** To download the source distribution from a [release](https://github.com/torognes/vsearch/releases) and build the executable and the documentation, use the following commands:
```
-wget https://github.com/torognes/vsearch/archive/v2.27.0.tar.gz
-tar xzf v2.27.0.tar.gz
-cd vsearch-2.27.0
+wget https://github.com/torognes/vsearch/archive/v2.27.1.tar.gz
+tar xzf v2.27.1.tar.gz
+cd vsearch-2.27.1
./autogen.sh
./configure CFLAGS="-O3" CXXFLAGS="-O3"
make
@@ -81,48 +81,48 @@ Binary distributions are provided for x86-64 systems running GNU/Linux, macOS (v
Download the appropriate executable for your system using the following commands if you are using a Linux x86_64 system:
```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-linux-x86_64.tar.gz
-tar xzf vsearch-2.27.0-linux-x86_64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-linux-x86_64.tar.gz
+tar xzf vsearch-2.27.1-linux-x86_64.tar.gz
```
Or these commands if you are using a Linux ppc64le system:
```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-linux-ppc64le.tar.gz
-tar xzf vsearch-2.27.0-linux-ppc64le.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-linux-ppc64le.tar.gz
+tar xzf vsearch-2.27.1-linux-ppc64le.tar.gz
```
Or these commands if you are using a Linux aarch64 (arm64) system:
```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-linux-aarch64.tar.gz
-tar xzf vsearch-2.27.0-linux-aarch64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-linux-aarch64.tar.gz
+tar xzf vsearch-2.27.1-linux-aarch64.tar.gz
```
Or these commands if you are using a Mac with an Apple Silicon CPU:
```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-macos-aarch64.tar.gz
-tar xzf vsearch-2.27.0-macos-aarch64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-macos-aarch64.tar.gz
+tar xzf vsearch-2.27.1-macos-aarch64.tar.gz
```
Or these commands if you are using a Mac with an Intel CPU:
```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-macos-x86_64.tar.gz
-tar xzf vsearch-2.27.0-macos-x86_64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-macos-x86_64.tar.gz
+tar xzf vsearch-2.27.1-macos-x86_64.tar.gz
```
Or if you are using Windows, download and extract (unzip) the contents of this file:
```
-https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-win-x86_64.zip
+https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-win-x86_64.zip
```
-Linux and Mac: You will now have the binary distribution in a folder called `vsearch-2.27.0-linux-x86_64` or `vsearch-2.27.0-macos-x86_64` in which you will find three subfolders `bin`, `man` and `doc`. We recommend making a copy or a symbolic link to the vsearch binary `bin/vsearch` in a folder included in your `$PATH`, and a copy or a symbolic link to the vsearch man page `man/vsearch.1` in a folder included in your `$MANPATH`. The PDF version of the manual is available in `doc/vsearch_manual.pdf`. Versions with statically compiled libraries are available for Linux systems. These have "-static" in their name, and could be used on systems that do not have all the necessary libraries installed.
+Linux and Mac: You will now have the binary distribution in a folder called `vsearch-2.27.1-linux-x86_64` or `vsearch-2.27.1-macos-x86_64` in which you will find three subfolders `bin`, `man` and `doc`. We recommend making a copy or a symbolic link to the vsearch binary `bin/vsearch` in a folder included in your `$PATH`, and a copy or a symbolic link to the vsearch man page `man/vsearch.1` in a folder included in your `$MANPATH`. The PDF version of the manual is available in `doc/vsearch_manual.pdf`. Versions with statically compiled libraries are available for Linux systems. These have "-static" in their name, and could be used on systems that do not have all the necessary libraries installed.
**Windows**: You will now have the binary distribution in a folder
-called `vsearch-2.27.0-win-x86_64`. The vsearch executable is called
+called `vsearch-2.27.1-win-x86_64`. The vsearch executable is called
`vsearch.exe`. The manual in PDF format is called
`vsearch_manual.pdf`. If you want to be able to call `vsearch.exe`
from any command prompt window, you can put the vsearch executable in
@@ -135,7 +135,7 @@ and `zlib1.dll` files required for reading compressed input
files. These DLL's have been obtained for mingw-w64 from the MSYS2
platform.
-**Documentation** The VSEARCH user's manual is available in the `man` folder in the form of a [man page](https://github.com/torognes/vsearch/blob/master/man/vsearch.1). A pdf version ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch_manual.pdf)) will be generated by `make`. To install the manpage manually, copy the `vsearch.1` file or a create a symbolic link to `vsearch.1` in a folder included in your `$MANPATH`. The manual in both formats is also available with the binary distribution. The manual in PDF form ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch_manual.pdf)) is also attached to the latest [release](https://github.com/torognes/vsearch/releases).
+**Documentation** The VSEARCH user's manual is available in the `man` folder in the form of a [man page](https://github.com/torognes/vsearch/blob/master/man/vsearch.1). A pdf version ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch_manual.pdf)) will be generated by `make`. To install the manpage manually, copy the `vsearch.1` file or a create a symbolic link to `vsearch.1` in a folder included in your `$MANPATH`. The manual in both formats is also available with the binary distribution. The manual in PDF form ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch_manual.pdf)) is also attached to the latest [release](https://github.com/torognes/vsearch/releases).
## Packages, plugins, and wrappers
@@ -179,9 +179,7 @@ When compiling VSEARCH the header files for the following two optional libraries
VSEARCH will automatically check whether these libraries are available and load them dynamically.
-On Windows these libraries are called zlib1.dll and bz2.dll.
-
-Unfortunately, VSEARCH will not work properly with all the different variants of the `zlib1.dll` file on Windows. One that works well is provided by the MinGW-w64 project and is found in the `bin` folder within the [zlib-1.2.5-bin-x64.zip](https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/Binaries%20%2864-bit%29/zlib-1.2.5-bin-x64.zip) archive available on SourceForge. The MD5 of the `zlib1.dll` file should be `0f67ee0b965d3d29388c238aebcf60bc`.
+On Windows these libraries are called zlib1.dll and libbz2.dll. These DLL's are included with the released distribution of vsearch 2.27.1 and later.
To create the PDF file with the manual the ps2pdf tool is required. It is part of the ghostscript package.
=====================================
configure.ac
=====================================
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
-AC_INIT([vsearch], [2.27.0], [torognes at ifi.uio.no], [vsearch], [https://github.com/torognes/vsearch])
+AC_INIT([vsearch], [2.27.1], [torognes at ifi.uio.no], [vsearch], [https://github.com/torognes/vsearch])
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([subdir-objects])
AC_LANG([C++])
=====================================
man/vsearch.1
=====================================
@@ -1,7 +1,7 @@
.\" import www macros (URL, TAG, MTO)
.mso www.tmac
.\" ============================================================================
-.TH vsearch 1 "January 19, 2024" "version 2.27.0" "USER COMMANDS"
+.TH vsearch 1 "April 6, 2024" "version 2.27.1" "USER COMMANDS"
.\" ============================================================================
.SH NAME
vsearch \(em a versatile open-source tool for microbiome analysis,
@@ -4872,6 +4872,14 @@ refactored. Generic Dockerfiles for major Linux distributions have
been included. Some warnings from compilers and other tools have been
eliminated. The release for Windows will also include DLL's for the
two compression libraries.
+.TP
+.BR v2.27.1\~ "released April 6th, 2024"
+This version fixes the weak_id option and makes searches report weak
+hits in some cases. It also updates the names of the compression
+libraries to libz.so.1 and libbz2.so.1 on Linux to make them work on
+common Linux distributions without installing additional packages.
+README.md has been updated with information about compression
+libraries on Windows.
.LP
.\" ============================================================================
.\" TODO:
=====================================
src/dynlibs.cc
=====================================
@@ -68,7 +68,7 @@ HMODULE gz_lib;
# ifdef __APPLE__
const char gz_libname[] = "libz.dylib";
# else
-const char gz_libname[] = "libz.so";
+const char gz_libname[] = "libz.so.1";
# endif
void * gz_lib;
# endif
@@ -87,7 +87,7 @@ HMODULE bz2_lib;
# ifdef __APPLE__
const char bz2_libname[] = "libbz2.dylib";
# else
-const char bz2_libname[] = "libbz2.so";
+const char bz2_libname[] = "libbz2.so.1";
# endif
void * bz2_lib;
# endif
=====================================
src/search.cc
=====================================
@@ -293,7 +293,7 @@ void search_output_results(int hit_count,
/* update matching db sequences */
for (int i=0; i < hit_count; i++)
{
- if (hits[i].accepted)
+ if (hits[i].accepted || hits[i].weak)
{
dbmatched[hits[i].target] += opt_sizein ? qsize : 1;
}
=====================================
src/searchcore.cc
=====================================
@@ -64,62 +64,53 @@
inline int hit_compare_byid_typed(struct hit * x, struct hit * y)
{
- // high id, then low id
- // early target, then late target
+ /*
+ Order:
+ accepted, then rejected (weak)
+ high id, then low id
+ early target, then late target
+ */
if (x->rejected < y->rejected)
{
return -1;
}
+ else if (x->rejected > y->rejected)
+ {
+ return +1;
+ }
+ else if (x->aligned > y->aligned)
+ {
+ return -1;
+ }
+ else if (x->aligned < y->aligned)
+ {
+ return +1;
+ }
+ else if (x->aligned == 0)
+ {
+ return 0;
+ }
+ else if (x->id > y->id)
+ {
+ return -1;
+ }
+ else if (x->id < y->id)
+ {
+ return +1;
+ }
+ else if (x->target < y->target)
+ {
+ return -1;
+ }
+ else if (x->target > y->target)
+ {
+ return +1;
+ }
else
- if (x->rejected > y->rejected)
- {
- return +1;
- }
- else
- if (x->rejected == 1)
- {
- return 0;
- }
- else
- if (x->aligned > y->aligned)
- {
- return -1;
- }
- else
- if (x->aligned < y->aligned)
- {
- return +1;
- }
- else
- if (x->aligned == 0)
- {
- return 0;
- }
- else
- if (x->id > y->id)
- {
- return -1;
- }
- else
- if (x->id < y->id)
- {
- return +1;
- }
- else
- if (x->target < y->target)
- {
- return -1;
- }
- else
- if (x->target > y->target)
- {
- return +1;
- }
- else
- {
- return 0;
- }
+ {
+ return 0;
+ }
}
inline int hit_compare_bysize_typed(struct hit * x, struct hit * y)
@@ -863,33 +854,36 @@ void search_joinhits(struct searchinfo_s * si_p,
struct hit * * hitsp,
int * hit_count)
{
- /* join and sort accepted hits from both strands */
- /* remove and unallocate unaccepted hits */
+ /* join and sort accepted and weak hits from both strands */
+ /* free the remaining alignments */
+ /* first, just count the number of hits to keep */
int a = 0;
for (int s = 0; s < opt_strand; s++)
{
struct searchinfo_s * si = s ? si_m : si_p;
for(int i=0; i<si->hit_count; i++)
{
- if (si->hits[i].accepted)
+ struct hit * h = si->hits + i;
+ if (h->accepted || h->weak)
{
a++;
}
}
}
+ /* allocate new array of hits */
auto * hits = (struct hit *) xmalloc(a * sizeof(struct hit));
+ /* copy over the hits to be kept */
a = 0;
-
for (int s = 0; s < opt_strand; s++)
{
struct searchinfo_s * si = s ? si_m : si_p;
for(int i=0; i<si->hit_count; i++)
{
struct hit * h = si->hits + i;
- if (h->accepted)
+ if (h->accepted || h->weak)
{
hits[a++] = *h;
}
@@ -900,6 +894,7 @@ void search_joinhits(struct searchinfo_s * si_p,
}
}
+ /* last, sort the hits */
qsort(hits, a, sizeof(struct hit), hit_compare_byid);
*hitsp = hits;
View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/commit/e43d40706e6f23a99bc58ec3c87610d94bf5a65a
--
View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/commit/e43d40706e6f23a99bc58ec3c87610d94bf5a65a
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20240419/44610f04/attachment-0001.htm>
More information about the debian-med-commit
mailing list