[med-svn] [Git][med-team/vsearch][upstream] New upstream version 2.30.0
Étienne Mollier (@emollier)
gitlab at salsa.debian.org
Wed Mar 5 12:56:52 GMT 2025
Étienne Mollier pushed to branch upstream at Debian Med / vsearch
Commits:
d9bc5598 by Étienne Mollier at 2025-03-05T13:46:29+01:00
New upstream version 2.30.0
- - - - -
9 changed files:
- README.md
- configure.ac
- man/vsearch.1
- src/align_simd.cc
- src/filter.cc
- src/linmemalign.cc
- src/showalign.cc
- src/vsearch.cc
- src/vsearch.h
Changes:
=====================================
README.md
=====================================
@@ -39,7 +39,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.29.4/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.30.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.
## Example
@@ -52,9 +52,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.29.4.tar.gz
-tar xzf v2.29.4.tar.gz
-cd vsearch-2.29.4
+wget https://github.com/torognes/vsearch/archive/v2.30.0.tar.gz
+tar xzf v2.30.0.tar.gz
+cd vsearch-2.30.0
./autogen.sh
./configure CFLAGS="-O2" CXXFLAGS="-O2"
make ARFLAGS="cr"
@@ -91,7 +91,7 @@ wget https://github.com/torognes/vsearch/releases/download/v{VERSION}/vsearch-{V
tar xzf vsearch-{VERSION}-{OS}-{ARCH}.tar.gz
```
-Replace `{VERSION}` with the VSEARCH version number (e.g. `2.29.4`), `{OS}` with the target operating system (`linux` or `macos`), and `{ARCH}` with the architecture (`x86_64`, `aarch64`, `ppc64le`, `riscv64`, or `mips64el`). You could add `-static` after `{ARCH}` to get a statically compiled version for Linux (except x86_64). The name of the binary for the RHEL 7 and CentOS 7 Linux distributions ends in `-ubi7`.
+Replace `{VERSION}` with the VSEARCH version number (e.g. `2.30.0`), `{OS}` with the target operating system (`linux` or `macos`), and `{ARCH}` with the architecture (`x86_64`, `aarch64`, `ppc64le`, `riscv64`, or `mips64el`). You could add `-static` after `{ARCH}` to get a statically compiled version for Linux (except x86_64). The name of the binary for the RHEL 7 and CentOS 7 Linux distributions ends in `-ubi7`.
Or, if you are using Windows, download and extract (unzip) the contents of this file:
@@ -115,7 +115,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.29.4/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.29.4/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.30.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.30.0/vsearch_manual.pdf)) is also attached to the latest [release](https://github.com/torognes/vsearch/releases).
## Packages, plugins, and wrappers
=====================================
configure.ac
=====================================
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
-AC_INIT([vsearch], [2.29.4], [torognes at ifi.uio.no], [vsearch], [https://github.com/torognes/vsearch])
+AC_INIT([vsearch], [2.30.0], [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 "February 14, 2025" "version 2.29.4" "USER COMMANDS"
+.TH vsearch 1 "February 27, 2025" "version 2.30.0" "USER COMMANDS"
.\" ============================================================================
.SH NAME
vsearch \(em a versatile open-source tool for microbiome analysis,
@@ -1886,6 +1886,12 @@ merged sequence. The default is 1.
.BI \-\-fastq_minovlen\~ "positive integer"
When using \-\-fastq_mergepairs, specify the minimum overlap between
the merged reads. The default is 10. Must be at least 5.
+.TAG fastq_minqual
+.TP
+.BI \-\-fastq_minqual\~ "positive integer"
+When using \-\-fastq_filter or \-\-fastx_filter, discard reads having
+any base with a quality score below the given value. The default is 0,
+which discards none.
.TAG fastq_nostagger
.TP
.B \-\-fastq_nostagger
@@ -2030,6 +2036,15 @@ default, \fIk\fR = 4.
When using \-\-fastq_filter or \-\-fastx_filter, truncate sequences so
that their total expected error is not higher than the specified
value.
+.TAG fastq_truncee_rate
+.TP
+.BI \-\-fastq_truncee_rate\~ real
+When using \-\-fastq_filter or \-\-fastx_filter, truncate sequences so
+that their average expected error per base is not higher than the
+specified value. The truncation will happen at the first
+occurence. The average expected error per base is calculated as the
+total expected number of errors divided by the length of the sequence
+after truncation.
.TAG fastq_trunclen
.TP
.BI \-\-fastq_trunclen\~ "positive integer"
@@ -2095,26 +2110,27 @@ corresponding output will be written to the files specified with the
files if the input is in FASTA format. The sequences are first trimmed
and then filtered based on the remaining bases. Sequences may be
trimmed using the options \-\-fastq_stripleft, \-\-fastq_stripright,
-\-\-fastq_truncee, \-\-fastq_trunclen, \-\-fastq_trunclen_keep and
-\-\-fastq_truncqual. The sequences may be filtered using the options
-\-\-fastq_maxee, \-\-fastq_maxee_rate, \-\-fastq_maxlen,
-\-\-fastq_maxns, \-\-fastq_minlen (default 1), \-\-fastq_trunclen,
-\-\-maxsize, and \-\-minsize. Sequences not satisfying the
-requirements are discarded. For pairs of sequences, both sequences in
-a pair must satisfy the requirements, otherwise both are discarded. If
-no shortening or filtering options are given, all sequences are
-written to the output files, possibly after conversion from FASTQ to
-FASTA format. The \-\-relabel option may be used to relabel the output
+\-\-fastq_truncee, \-\-fastq_truncee_rate, \-\-fastq_trunclen,
+\-\-fastq_trunclen_keep and \-\-fastq_truncqual. The sequences may be
+filtered using the options \-\-fastq_maxee, \-\-fastq_maxee_rate,
+\-\-fastq_maxlen, \-\-fastq_maxns, \-\-fastq_minlen (default 1),
+\-\-fastq_minqual, \-\-fastq_trunclen, \-\-maxsize, and
+\-\-minsize. Sequences not satisfying the requirements are
+discarded. For pairs of sequences, both sequences in a pair must
+satisfy the requirements, otherwise both are discarded. If no
+shortening or filtering options are given, all sequences are written
+to the output files, possibly after conversion from FASTQ to FASTA
+format. The \-\-relabel option may be used to relabel the output
sequences. The \-\-eeout option may be used to output the expected
number of errors in each sequence. After all sequences have been
processed, the number of kept and discarded sequences will be shown,
as well as how many of the kept sequences were trimmed. When the input
is in FASTA format, the following options are not accepted because
quality scores are not available: \-\-eeout, \-\-fastq_ascii,
-\-\-fastq_eeout, \-\-fastq_maxee, \-\-fastq_maxee_rate, \-\-fastq_out,
-\-\-fastq_qmax, \-\-fastq_qmin, \-\-fastq_truncee,
-\-\-fastq_truncqual, \-\-fastqout_discarded,
-\-\-fastqout_discarded_rev, \-\-fastqout_rev.
+\-\-fastq_eeout, \-\-fastq_maxee, \-\-fastq_maxee_rate,
+\-\-fastq_minqual, \-\-fastq_out, \-\-fastq_qmax, \-\-fastq_qmin,
+\-\-fastq_truncee, \-\-fastq_truncee_rate, \-\-fastq_truncqual,
+\-\-fastqout_discarded, \-\-fastqout_discarded_rev, \-\-fastqout_rev.
.TAG fastx_revcomp
.TP
.BI \-\-fastx_revcomp \0filename
@@ -5015,6 +5031,19 @@ Adjust the window size used for chimera detection down from 64 to
2.23.0, leading to somewhat fewer chimeras being predicted.
In addition, a compiler pragma has been included in align_simd.cc to
further protect the compiler from generating wrong code.
+.TP
+.BR v2.30.0\~ "released February 27th, 2025"
+Add options `\-\-n_mismatch`, `\-\-fastq_minqual`, and
+`\-\-fastq_truncee_rate`. The `\-\-n_mismatch` option will count N's
+as mismatches in alignments, which may be useful to get sensible
+alignments for sequences with lots of N's. By default N's are counted
+as matches. Both the scoring and the counting of matches are
+affected. The new `\-\-fastq_minqual` option for the `fastq_filter`
+and `fastx_filter` commands will discard sequences with any bases with
+a quality scores below the given value. The new
+`\-\-fastq_truncee_rate` option for the same commands will truncate
+sequences at the first position where the number of expected errors
+per base is below the given value.
.\" ============================================================================
.\" TODO:
.\"
=====================================
src/align_simd.cc
=====================================
@@ -1026,7 +1026,11 @@ auto backtrack16(s16info_s * s,
{
if (chrmap_4bit[(int) (qseq[i])] & chrmap_4bit[(int) (dseq[j])])
{
- ++matches;
+ if (opt_n_mismatch && ((chrmap_4bit[(int) (qseq[i])] == 15) ||
+ (chrmap_4bit[(int) (dseq[j])] == 15)))
+ ++mismatches;
+ else
+ ++matches;
}
else
{
@@ -1111,7 +1115,11 @@ auto search16_init(CELL score_match,
for (int j = 0; j < 16; j++)
{
CELL value = 0;
- if (ambiguous_4bit[i] or ambiguous_4bit[j])
+ if (opt_n_mismatch && ((i == 15) || (j == 15)))
+ {
+ value = opt_mismatch;
+ }
+ else if (ambiguous_4bit[i] or ambiguous_4bit[j])
{
value = 0;
}
@@ -1216,7 +1224,11 @@ auto search16_qprep(s16info_s * s, char * qseq, int qlen) -> void
GNU C++ 9 or later generates incorrect code on x86_64 if turned on.
*/
+#ifdef __GNUC__
+#ifndef __clang__
#pragma GCC optimize ("-fno-tree-partial-pre")
+#endif
+#endif
auto search16(s16info_s * s,
unsigned int sequences,
=====================================
src/filter.cc
=====================================
@@ -183,12 +183,18 @@ auto analyse(fastx_handle h) -> struct analysis_res
res.ee += e;
if ((qual <= opt_fastq_truncqual) ||
- (res.ee > opt_fastq_truncee))
+ (res.ee > opt_fastq_truncee) ||
+ (res.ee > opt_fastq_truncee_rate * (i + 1)))
{
res.ee -= e;
res.length = i;
break;
}
+
+ if (qual < opt_fastq_minqual)
+ {
+ res.discarded = true;
+ }
}
/* filter by expected errors (ee) */
@@ -287,12 +293,14 @@ auto filter(bool fastq_only, char * filename) -> void
(opt_fastq_qmax < 41) ||
(opt_fastq_qmin > 0) ||
(opt_fastq_truncee < dbl_max) ||
+ (opt_fastq_truncee_rate < dbl_max) ||
(opt_fastq_truncqual < long_min) ||
+ (opt_fastq_minqual > 0) ||
opt_fastqout_discarded ||
opt_fastqout_discarded_rev ||
opt_fastqout_rev)
{
- fatal("The following options are not accepted with the fastx_filter command when the input is a FASTA file, because quality scores are not available: eeout, fastq_ascii, fastq_eeout, fastq_maxee, fastq_maxee_rate, fastq_out, fastq_qmax, fastq_qmin, fastq_truncee, fastq_truncqual, fastqout_discarded, fastqout_discarded_rev, fastqout_rev");
+ fatal("The following options are not accepted with the fastx_filter command when the input is a FASTA file, because quality scores are not available: eeout, fastq_ascii, fastq_eeout, fastq_maxee, fastq_maxee_rate, fastq_minqual, fastq_out, fastq_qmax, fastq_qmin, fastq_truncee, fastq_truncee_rate, fastq_truncqual, fastqout_discarded, fastqout_discarded_rev, fastqout_rev");
}
}
@@ -311,30 +319,6 @@ auto filter(bool fastq_only, char * filename) -> void
{
fatal("The forward and reverse input sequence must in the same format, either FASTA or FASTQ");
}
-
- if (! (h2->is_fastq || h2->is_empty))
- {
- if (fastq_only)
- {
- fatal("FASTA input files not allowed with fastq_filter, consider using fastx_filter command instead");
- }
- else if (opt_eeout ||
- (opt_fastq_ascii != 33) ||
- opt_fastq_eeout ||
- (opt_fastq_maxee < dbl_max) ||
- (opt_fastq_maxee_rate < dbl_max) ||
- opt_fastqout ||
- (opt_fastq_qmax < 41) ||
- (opt_fastq_qmin > 0) ||
- (opt_fastq_truncee < dbl_max) ||
- (opt_fastq_truncqual < long_min) ||
- opt_fastqout_discarded ||
- opt_fastqout_discarded_rev ||
- opt_fastqout_rev)
- {
- fatal("The following options are not accepted with the fastx_filter command when the input is a FASTA file, because quality scores are not available: eeout, fastq_ascii, fastq_eeout, fastq_maxee, fastq_maxee_rate, fastq_out, fastq_qmax, fastq_qmin, fastq_truncee, fastq_truncqual, fastqout_discarded, fastqout_discarded_rev, fastqout_rev");
- }
- }
}
FILE * fp_fastaout = nullptr;
=====================================
src/linmemalign.cc
=====================================
@@ -139,7 +139,11 @@ auto LinearMemoryAligner::scorematrix_create(int64_t match, int64_t mismatch) ->
for (int j = 0; j < 16; j++)
{
int64_t value = 0;
- if (ambiguous_4bit[i] || ambiguous_4bit[j])
+ if (opt_n_mismatch && ((i == 15) || (j == 15)))
+ {
+ value = mismatch;
+ }
+ else if (ambiguous_4bit[i] || ambiguous_4bit[j])
{
value = 0;
}
@@ -743,8 +747,13 @@ auto LinearMemoryAligner::alignstats(char * cigar,
{
nwscore += subst_score(a_pos, b_pos);
- if (chrmap_4bit[(int)(a_seq[a_pos])] &
- chrmap_4bit[(int)(b_seq[b_pos])])
+ if (opt_n_mismatch && ((chrmap_4bit[(int) (a_seq[a_pos])] == 15) ||
+ (chrmap_4bit[(int) (b_seq[b_pos])] == 15)))
+ {
+ nwmismatches++;
+ }
+ else if (chrmap_4bit[(int)(a_seq[a_pos])] &
+ chrmap_4bit[(int)(b_seq[b_pos])])
{
nwmatches++;
}
=====================================
src/showalign.cc
=====================================
@@ -127,7 +127,11 @@ inline auto putop(char c, int64_t len) -> void
qs4 = chrmap_4bit[static_cast<int>(qs)];
ds4 = chrmap_4bit[static_cast<int>(ds)];
- if ((qs4 == ds4) and (ambiguous_4bit[qs4] == 0U))
+ if (opt_n_mismatch && ((qs4 == 15) || (ds4 == 15)))
+ {
+ a_line[line_pos] = ' ';
+ }
+ else if ((qs4 == ds4) and (ambiguous_4bit[qs4] == 0U))
{
a_line[line_pos] = '|';
}
=====================================
src/vsearch.cc
=====================================
@@ -115,6 +115,7 @@ bool opt_fastq_nostagger;
bool opt_gzip_decompress;
bool opt_label_substr_match;
bool opt_lengthout;
+bool opt_n_mismatch;
bool opt_no_progress;
bool opt_quiet;
bool opt_relabel_keep;
@@ -225,6 +226,7 @@ double opt_fastq_maxdiffpct;
double opt_fastq_maxee;
double opt_fastq_maxee_rate;
double opt_fastq_truncee;
+double opt_fastq_truncee_rate;
double opt_id;
double opt_lca_cutoff;
double opt_max_unmasked_pct;
@@ -283,6 +285,7 @@ int64_t opt_fastq_maxns;
int64_t opt_fastq_minlen;
int64_t opt_fastq_minmergelen;
int64_t opt_fastq_minovlen;
+int64_t opt_fastq_minqual;
int64_t opt_fastq_qmax;
int64_t opt_fastq_qmaxout;
int64_t opt_fastq_qmin;
@@ -838,6 +841,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
opt_fastq_minlen = 1;
opt_fastq_minmergelen = 0;
opt_fastq_minovlen = 10;
+ opt_fastq_minqual = 0;
opt_fastq_nostagger = true;
opt_fastq_qmax = 41;
opt_fastq_qmaxout = 41;
@@ -847,6 +851,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
opt_fastq_stripleft = 0;
opt_fastq_stripright = 0;
opt_fastq_truncee = dbl_max;
+ opt_fastq_truncee_rate = dbl_max;
opt_fastq_trunclen = -1;
opt_fastq_trunclen_keep = -1;
opt_fastq_truncqual = long_min;
@@ -932,6 +937,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
opt_mismatch = -4;
opt_mothur_shared_out = nullptr;
opt_msaout = nullptr;
+ opt_n_mismatch = false;
opt_no_progress = false;
opt_nonchimeras = nullptr;
opt_notmatched = nullptr;
@@ -1080,6 +1086,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_fastq_minlen,
option_fastq_minmergelen,
option_fastq_minovlen,
+ option_fastq_minqual,
option_fastq_nostagger,
option_fastq_qmax,
option_fastq_qmaxout,
@@ -1091,6 +1098,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_fastq_stripright,
option_fastq_tail,
option_fastq_truncee,
+ option_fastq_truncee_rate,
option_fastq_trunclen,
option_fastq_trunclen_keep,
option_fastq_truncqual,
@@ -1172,6 +1180,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_mismatch,
option_mothur_shared_out,
option_msaout,
+ option_n_mismatch,
option_no_progress,
option_nonchimeras,
option_notmatched,
@@ -1327,6 +1336,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
{"fastq_minlen", required_argument, nullptr, 0 },
{"fastq_minmergelen", required_argument, nullptr, 0 },
{"fastq_minovlen", required_argument, nullptr, 0 },
+ {"fastq_minqual", required_argument, nullptr, 0 },
{"fastq_nostagger", no_argument, nullptr, 0 },
{"fastq_qmax", required_argument, nullptr, 0 },
{"fastq_qmaxout", required_argument, nullptr, 0 },
@@ -1338,6 +1348,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
{"fastq_stripright", required_argument, nullptr, 0 },
{"fastq_tail", required_argument, nullptr, 0 },
{"fastq_truncee", required_argument, nullptr, 0 },
+ {"fastq_truncee_rate", required_argument, nullptr, 0 },
{"fastq_trunclen", required_argument, nullptr, 0 },
{"fastq_trunclen_keep", required_argument, nullptr, 0 },
{"fastq_truncqual", required_argument, nullptr, 0 },
@@ -1419,6 +1430,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
{"mismatch", required_argument, nullptr, 0 },
{"mothur_shared_out", required_argument, nullptr, 0 },
{"msaout", required_argument, nullptr, 0 },
+ {"n_mismatch", no_argument, nullptr, 0 },
{"no_progress", no_argument, nullptr, 0 },
{"nonchimeras", required_argument, nullptr, 0 },
{"notmatched", required_argument, nullptr, 0 },
@@ -2595,6 +2607,18 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
opt_sintax_random = true;
break;
+ case option_n_mismatch:
+ opt_n_mismatch = true;
+ break;
+
+ case option_fastq_minqual:
+ opt_fastq_minqual = args_getlong(optarg);
+ break;
+
+ case option_fastq_truncee_rate:
+ opt_fastq_truncee_rate = args_getdouble(optarg);
+ break;
+
default:
fatal("Internal error in option parsing");
}
@@ -2675,7 +2699,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
The first line is the command and the lines below are the valid options.
*/
- const int valid_options[][98] =
+ const int valid_options[][99] =
{
{
option_allpairs_global,
@@ -2724,6 +2748,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_mintsize,
option_minwordmatches,
option_mismatch,
+ option_n_mismatch,
option_no_progress,
option_notmatched,
option_notrunclabels,
@@ -2856,6 +2881,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_mismatch,
option_mothur_shared_out,
option_msaout,
+ option_n_mismatch,
option_no_progress,
option_notmatched,
option_notrunclabels,
@@ -2953,6 +2979,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_mismatch,
option_mothur_shared_out,
option_msaout,
+ option_n_mismatch,
option_no_progress,
option_notmatched,
option_notrunclabels,
@@ -3050,6 +3077,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_mismatch,
option_mothur_shared_out,
option_msaout,
+ option_n_mismatch,
option_no_progress,
option_notmatched,
option_notrunclabels,
@@ -3149,6 +3177,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_mismatch,
option_mothur_shared_out,
option_msaout,
+ option_n_mismatch,
option_no_progress,
option_notmatched,
option_notrunclabels,
@@ -3456,11 +3485,13 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_fastq_maxlen,
option_fastq_maxns,
option_fastq_minlen,
+ option_fastq_minqual,
option_fastq_qmax,
option_fastq_qmin,
option_fastq_stripleft,
option_fastq_stripright,
option_fastq_truncee,
+ option_fastq_truncee_rate,
option_fastq_trunclen,
option_fastq_trunclen_keep,
option_fastq_truncqual,
@@ -3598,11 +3629,13 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_fastq_maxlen,
option_fastq_maxns,
option_fastq_minlen,
+ option_fastq_minqual,
option_fastq_qmax,
option_fastq_qmin,
option_fastq_stripleft,
option_fastq_stripright,
option_fastq_truncee,
+ option_fastq_truncee_rate,
option_fastq_trunclen,
option_fastq_trunclen_keep,
option_fastq_truncqual,
@@ -4469,6 +4502,7 @@ auto args_init(int argc, char ** argv, struct Parameters & parameters) -> void
option_minwordmatches,
option_mismatch,
option_mothur_shared_out,
+ option_n_mismatch,
option_no_progress,
option_notmatched,
option_notrunclabels,
@@ -5385,6 +5419,7 @@ auto cmd_help(struct Parameters const & parameters) -> void {
" --mintsize INT reject if target abundance lower\n"
" --minwordmatches INT minimum number of word matches required (12)\n"
" --mismatch INT score for mismatch (-4)\n"
+ " --n_mismatch consider aligning with N's as mismatches\n"
" --pattern STRING option is ignored\n"
" --qmask none|dust|soft mask query with dust, soft or no method (dust)\n"
" --query_cov REAL reject if fraction of query seq. aligned lower\n"
@@ -5483,11 +5518,13 @@ auto cmd_help(struct Parameters const & parameters) -> void {
" --fastq_maxlen INT discard if length of sequence is longer\n"
" --fastq_maxns INT discard if number of N's is higher\n"
" --fastq_minlen INT discard if length of sequence is shorter\n"
+ " --fastq_minqual INT discard if any base quality value lower (0)\n"
" --fastq_qmax INT maximum base quality value for FASTQ input (41)\n"
" --fastq_qmin INT minimum base quality value for FASTQ input (0)\n"
" --fastq_stripleft INT delete given number of bases from the 5' end\n"
" --fastq_stripright INT delete given number of bases from the 3' end\n"
" --fastq_truncee REAL truncate to given maximum expected error\n"
+ " --fastq_truncee_rate REAL truncate to given maximum expected error rate\n"
" --fastq_trunclen INT truncate to given length (discard if shorter)\n"
" --fastq_trunclen_keep INT truncate to given length (keep if shorter)\n"
" --fastq_truncqual INT truncate to given minimum base quality\n"
=====================================
src/vsearch.h
=====================================
@@ -236,6 +236,7 @@ extern bool opt_fastq_nostagger;
extern bool opt_gzip_decompress;
extern bool opt_label_substr_match;
extern bool opt_lengthout;
+extern bool opt_n_mismatch;
extern bool opt_no_progress;
extern bool opt_quiet;
extern bool opt_relabel_keep;
@@ -345,6 +346,7 @@ extern double opt_fastq_maxdiffpct;
extern double opt_fastq_maxee;
extern double opt_fastq_maxee_rate;
extern double opt_fastq_truncee;
+extern double opt_fastq_truncee_rate;
extern double opt_id;
extern double opt_lca_cutoff;
extern double opt_max_unmasked_pct;
@@ -403,6 +405,7 @@ extern int64_t opt_fastq_maxns;
extern int64_t opt_fastq_minlen;
extern int64_t opt_fastq_minmergelen;
extern int64_t opt_fastq_minovlen;
+extern int64_t opt_fastq_minqual;
extern int64_t opt_fastq_qmax;
extern int64_t opt_fastq_qmaxout;
extern int64_t opt_fastq_qmin;
View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/commit/d9bc55981964c6a4496980a488ccef41ae4fb95c
--
View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/commit/d9bc55981964c6a4496980a488ccef41ae4fb95c
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/20250305/01b9437c/attachment-0001.htm>
More information about the debian-med-commit
mailing list