Skip to content
Commits on Source (7)
......@@ -10,7 +10,7 @@ compiler:
- clang
install:
- if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get install ghostscript; else brew install ghostscript; fi
- if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get install ghostscript; sudo apt-get install groff; else brew install ghostscript; fi
script:
- ./autogen.sh
......
......@@ -34,7 +34,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.13.6/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.14.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
......@@ -47,9 +47,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.13.6.tar.gz
tar xzf v2.13.6.tar.gz
cd vsearch-2.13.6
wget https://github.com/torognes/vsearch/archive/v2.14.1.tar.gz
tar xzf v2.14.1.tar.gz
cd vsearch-2.14.1
./autogen.sh
./configure
make
......@@ -78,43 +78,43 @@ 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.13.6/vsearch-2.13.6-linux-x86_64.tar.gz
tar xzf vsearch-2.13.6-linux-x86_64.tar.gz
wget https://github.com/torognes/vsearch/releases/download/v2.14.1/vsearch-2.14.1-linux-x86_64.tar.gz
tar xzf vsearch-2.14.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.13.6/vsearch-2.13.6-linux-ppc64le.tar.gz
tar xzf vsearch-2.13.6-linux-ppc64le.tar.gz
wget https://github.com/torognes/vsearch/releases/download/v2.14.1/vsearch-2.14.1-linux-ppc64le.tar.gz
tar xzf vsearch-2.14.1-linux-ppc64le.tar.gz
```
Or these commands if you are using a Linux aarch64 system:
```sh
wget https://github.com/torognes/vsearch/releases/download/v2.13.6/vsearch-2.13.6-linux-aarch64.tar.gz
tar xzf vsearch-2.13.6-linux-aarch64.tar.gz
wget https://github.com/torognes/vsearch/releases/download/v2.14.1/vsearch-2.14.1-linux-aarch64.tar.gz
tar xzf vsearch-2.14.1-linux-aarch64.tar.gz
```
Or these commands if you are using a Mac:
```sh
wget https://github.com/torognes/vsearch/releases/download/v2.13.6/vsearch-2.13.6-macos-x86_64.tar.gz
tar xzf vsearch-2.13.6-macos-x86_64.tar.gz
wget https://github.com/torognes/vsearch/releases/download/v2.14.1/vsearch-2.14.1-macos-x86_64.tar.gz
tar xzf vsearch-2.14.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.13.6/vsearch-2.13.6-win-x86_64.zip
https://github.com/torognes/vsearch/releases/download/v2.14.1/vsearch-2.14.1-win-x86_64.zip
```
Linux and Mac: You will now have the binary distribution in a folder called `vsearch-2.13.6-linux-x86_64` or `vsearch-2.13.6-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`.
Linux and Mac: You will now have the binary distribution in a folder called `vsearch-2.14.1-linux-x86_64` or `vsearch-2.14.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`.
Windows: You will now have the binary distribution in a folder called `vsearch-2.13.6-win-x86_64`. The vsearch executable is called `vsearch.exe`. The manual in PDF format is called `vsearch_manual.pdf`.
Windows: You will now have the binary distribution in a folder called `vsearch-2.14.1-win-x86_64`. The vsearch executable is called `vsearch.exe`. The manual in PDF format is called `vsearch_manual.pdf`.
**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.13.6/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.13.6/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.14.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.14.1/vsearch_manual.pdf)) is also attached to the latest [release](https://github.com/torognes/vsearch/releases).
## Packages, plugins, and wrappers
......
......@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.63])
AC_INIT([vsearch], [2.13.6], [torognes@ifi.uio.no])
AC_INIT([vsearch], [2.14.1], [torognes@ifi.uio.no])
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([subdir-objects])
AC_LANG([C++])
......@@ -73,6 +73,8 @@ AS_IF([test "x$enable_pdfman" != "xno"], [
fi
])
have_man_html=no
if test "x${have_pthreads}" = "xyes"; then
AC_CHECK_HEADERS([pthread.h], [], [have_pthreads=no])
fi
......@@ -96,6 +98,7 @@ AM_CONDITIONAL(HAVE_BZLIB, test "x${have_bzip2}" = "xyes")
AM_CONDITIONAL(HAVE_ZLIB, test "x${have_zlib}" = "xyes")
AM_CONDITIONAL(HAVE_PTHREADS, test "x${have_pthreads}" = "xyes")
AM_CONDITIONAL(HAVE_PS2PDF, test "x${have_ps2pdf}" = "xyes")
AM_CONDITIONAL(HAVE_MAN_HTML, test "x${have_man_html}" = "xyes")
AM_CONDITIONAL(TARGET_PPC, test "x${target_ppc}" = "xyes")
AM_CONDITIONAL(TARGET_AARCH64, test "x${target_aarch64}" = "xyes")
AM_PROG_CC_C_O
......
vsearch (2.13.6-2) UNRELEASED; urgency=medium
vsearch (2.14.1-1) unstable; urgency=medium
* Team upload
* Added link-time optimization.
* Standards-Version: 4.4.1
* Trim trailing whitespace.
* Set upstream metadata fields: Repository, Repository-Browse.
-- Steffen Moeller <moeller@debian.org> Sat, 03 Aug 2019 14:59:33 +0200
-- Steffen Moeller <moeller@debian.org> Fri, 29 Nov 2019 14:31:50 +0100
vsearch (2.13.6-1) unstable; urgency=medium
......
......@@ -10,7 +10,7 @@ Build-Depends: debhelper-compat (= 12),
python-markdown,
ghostscript,
time
Standards-Version: 4.4.0
Standards-Version: 4.4.1
Vcs-Browser: https://salsa.debian.org/med-team/vsearch
Vcs-Git: https://salsa.debian.org/med-team/vsearch.git
Homepage: https://github.com/torognes/vsearch/
......
......@@ -61,4 +61,3 @@ override_dh_install:
mkdir -p $(docdir)/test ; \
for tst in test/*.sh ; do sed 's?\.\./bin/vsearch?/usr/bin/vsearch?' $${tst} > $(docdir)/$${tst} ; done ; \
fi
......@@ -19,3 +19,5 @@ Registry:
Entry: NA
- Name: conda:bioconda
Entry: vsearch
Repository: https://github.com/torognes/vsearch
Repository-Browse: https://github.com/torognes/vsearch
......@@ -2,21 +2,40 @@
dist_man_MANS = vsearch.1
doc_DATA =
CLEANFILES =
if HAVE_MAN_HTML
doc_DATA += vsearch_manual.html
vsearch_manual.html : vsearch.1
sed -e 's/\\-/-/g' $< | \
if [ $$(uname) == "Darwin" ] ; then \
iconv -f UTF-8 -t ISO-8859-1 ; \
else \
cat ; \
fi | \
groff -t -m mandoc -m www -Thtml > $@
CLEANFILES += vsearch_manual.html
endif
if HAVE_PS2PDF
doc_DATA = vsearch_manual.pdf
doc_DATA += vsearch_manual.pdf
vsearch_manual.pdf : vsearch.1
TEMP=$$(mktemp temp.XXXXXXXX) ; \
if [ $$(uname) == "Darwin" ] ; then \
sed -e 's/\\-/-/g' $< | \
iconv -f UTF-8 -t ISO-8859-1 > $$TEMP ; \
if [ $$(uname) == "Darwin" ] ; then \
iconv -f UTF-8 -t ISO-8859-1 ; \
else \
sed -e 's/\\-/-/g' $< > $$TEMP ; \
fi ; \
man -t ./$$TEMP | ps2pdf -sPAPERSIZE=a4 - $@ ; \
rm $$TEMP
cat ; \
fi | \
groff -t -m mandoc -T ps -P -pa4 | ps2pdf - $@
CLEANFILES=vsearch_manual.pdf
CLEANFILES += vsearch_manual.pdf
endif
This diff is collapsed.
......@@ -338,6 +338,11 @@ char * relabel_otu(int clusterno, char * sequence, int seqlen)
label = (char*) xmalloc(strlen(opt_relabel) + 21);
sprintf(label, "%s%d", opt_relabel, clusterno+1);
}
else if (opt_relabel_self)
{
label = (char*) xmalloc(seqlen + 1);
sprintf(label, "%.*s", seqlen, sequence);
}
else if (opt_relabel_sha1)
{
label = (char*) xmalloc(LEN_HEX_DIG_SHA1);
......@@ -363,7 +368,7 @@ void cluster_core_results_hit(struct hit * best,
if (opt_otutabout || opt_mothur_shared_out || opt_biomout)
{
if (opt_relabel || opt_relabel_sha1 || opt_relabel_md5)
if (opt_relabel || opt_relabel_self || opt_relabel_sha1 || opt_relabel_md5)
{
char * label = relabel_otu(clusterno,
db_getsequence(best->target),
......@@ -433,7 +438,7 @@ void cluster_core_results_nohit(int clusterno,
if (opt_otutabout || opt_mothur_shared_out || opt_biomout)
{
if (opt_relabel || opt_relabel_sha1 || opt_relabel_md5)
if (opt_relabel || opt_relabel_self || opt_relabel_sha1 || opt_relabel_md5)
{
char * label = relabel_otu(clusterno, qsequence, qseqlen);
otutable_add(query_head, label, qsize);
......
......@@ -322,13 +322,19 @@ void fasta_print(FILE * fp, const char * hdr,
fasta_print_sequence(fp, seq, len, opt_fasta_width);
}
inline void fprint_seq_label(FILE * fp, char * seq, int len)
{
/* normalize first? */
fprintf(fp, "%.*s", len, seq);
}
void fasta_print_general(FILE * fp,
const char * prefix,
char * seq,
int len,
char * header,
int header_len,
int abundance,
unsigned int abundance,
int ordinal,
double ee,
int clustersize,
......@@ -341,7 +347,9 @@ void fasta_print_general(FILE * fp,
if (prefix)
fprintf(fp, "%s", prefix);
if (opt_relabel_sha1)
if (opt_relabel_self)
fprint_seq_label(fp, seq, len);
else if (opt_relabel_sha1)
fprint_seq_digest_sha1(fp, seq, len);
else if (opt_relabel_md5)
fprint_seq_digest_md5(fp, seq, len);
......@@ -374,7 +382,7 @@ void fasta_print_general(FILE * fp,
fprintf(fp, ";%s=%.4lf", score_name, score);
if (opt_relabel_keep &&
((opt_relabel && (ordinal > 0)) || opt_relabel_sha1 || opt_relabel_md5))
((opt_relabel && (ordinal > 0)) || opt_relabel_sha1 || opt_relabel_md5 || opt_relabel_self))
fprintf(fp, " %s", header);
fprintf(fp, "\n");
......
......@@ -91,7 +91,7 @@ void fasta_print_general(FILE * fp,
int len,
char * header,
int header_len,
int abundance,
unsigned int abundance,
int ordinal,
double ee,
int clustersize,
......
......@@ -446,6 +446,12 @@ int64_t fastq_get_abundance_and_presence(fastx_handle h)
return header_get_size(h->header_buffer.data, h->header_buffer.length);
}
inline void fprint_seq_label(FILE * fp, char * seq, int len)
{
/* normalize first? */
fprintf(fp, "%.*s", len, seq);
}
void fastq_print_general(FILE * fp,
char * seq,
int len,
......@@ -458,7 +464,9 @@ void fastq_print_general(FILE * fp,
{
fprintf(fp, "@");
if (opt_relabel_sha1)
if (opt_relabel_self)
fprint_seq_label(fp, seq, len);
else if (opt_relabel_sha1)
fprint_seq_digest_sha1(fp, seq, len);
else if (opt_relabel_md5)
fprint_seq_digest_md5(fp, seq, len);
......@@ -482,7 +490,7 @@ void fastq_print_general(FILE * fp,
fprintf(fp, ";ee=%.4lf", ee);
if (opt_relabel_keep &&
((opt_relabel && (ordinal > 0)) || opt_relabel_sha1 || opt_relabel_md5))
((opt_relabel && (ordinal > 0)) || opt_relabel_sha1 || opt_relabel_md5 || opt_relabel_self))
fprintf(fp, " %.*s", header_len, header);
fprintf(fp, "\n%.*s\n+\n%.*s\n", len, seq, len, quality);
......
......@@ -433,7 +433,7 @@ void filter(bool fastq_only, char * filename)
if (opt_fastaout_rev)
fasta_print_general(fp_fastaout_rev,
0,
fastx_get_sequence(h1) + res2.start,
fastx_get_sequence(h2) + res2.start,
res2.length,
fastx_get_header(h2),
fastx_get_header_length(h2),
......
......@@ -1408,7 +1408,7 @@ void fastq_mergepairs()
if (failed_minscore)
fprintf(stderr,
"%10" PRIu64 " alignment score too low, or score drop to high\n",
"%10" PRIu64 " alignment score too low, or score drop too high\n",
failed_minscore);
if (failed_minovlen)
......
......@@ -296,7 +296,7 @@ void msa(FILE * fp_msaout, FILE * fp_consout, FILE * fp_profile,
if (count > best_count)
{
best_count = count;
best_sym = c+1;
best_sym = 1 << c;
}
}
......
......@@ -335,7 +335,7 @@ void sff_convert()
read_name,
strlen(read_name),
qual + clip_start,
0, 0, -1.0);
1, read_no + 1, -1.0);
xfree(read_name);
xfree(bases);
......
This diff is collapsed.
......@@ -265,6 +265,7 @@ extern bool opt_no_progress;
extern bool opt_quiet;
extern bool opt_relabel_keep;
extern bool opt_relabel_md5;
extern bool opt_relabel_self;
extern bool opt_relabel_sha1;
extern bool opt_samheader;
extern bool opt_sff_clip;
......