Development manual for vsearch 2.32.0, built from the dev branch: it describes changes that are not released yet. The manual for the current release is published separately.

NAME

nucleotides — a description of the nucleotide symbols accepted by vsearch

DESCRIPTION

vsearch interprets symbols in DNA/RNA sequences according to the IUPAC coding system for nucleotides. This widely available table is reproduced here in the form of a manpage for ease-of-use:

Symbol Description Base represented Complement
A Adenine A T
C Cytosine C G
G Guanine G C
T Thymine T A
U Uracil U A
——– ——————————- —————— ————
B not A (B comes after A) C or G or T V
D not C (D comes after C) A or G or T H
H not G (H comes after G) A or C or T D
K bases that are ketones G or T M
M bases with amino groups A or C K
N Nucleic acid (any base) A or C or G or T N
R purine A or G Y
S Strong interaction C or G S
V not T (V comes after T and U) A or C or G B
W Weak interaction A or T W
Y pyrimidine C or T R
- Gap    

Note that the symbols ‘X’ (Masked) and ‘I’ (Inosine) are not accepted by vsearch. Neither belongs to the IUPAC set above, and both are stripped from input sequences, with a warning. Inosine is left out deliberately, and not for want of a mapping: it pairs with all four bases, most stably with C, so ‘I’ is read by some tools as a synonym of ‘G’ (inosine being guanine without its 2-amino group), and by others as a universal base equivalent to ‘N’. Rather than silently pick one of the two, vsearch strips the symbol and reports it.

The gap symbol ‘-’ is listed for completeness only: vsearch writes it in alignment outputs, but never accepts it in input sequences (a fatal error in both fasta and fastq files).

vsearch reads nucleotide sequences only; amino acid sequences are not supported. A protein input is nevertheless not rejected, because many one-letter amino acid codes are also valid nucleotide symbols in the table above: the residues that are not are stripped with a warning, and the remainder is read as a much shorter nucleotide sequence. A 60-residue protein can thus become a 35-symbol sequence, silently. The stripping warning carries a reminder to that effect; results computed from such an input are meaningless.

How these symbols behave when two sequences are compared is a separate matter, described in vsearch-pairwise_alignment_parameters(7): in short, a column holding an ambiguous symbol scores zero, and counts as a matching column whenever the two symbols share at least one of the nucleotides they represent. An N therefore matches anything, which is why a query can align to a run of Ns with 100% identity; the option --n_mismatch counts such columns as mismatches instead.

SEE ALSO

vsearch-pairwise_alignment_parameters(7), vsearch-fasta(5), vsearch-fastq(5)

CITATION

Rognes T, Flouri T, Nichols B, Quince C, Mahé F. (2016) VSEARCH: a versatile open source tool for metagenomics. PeerJ 4:e2584 doi: 10.7717/peerj.2584

REPORTING BUGS

Submit suggestions and bug-reports at https://github.com/torognes/vsearch/issues, send a pull request on https://github.com/torognes/vsearch, or compose a friendly or curmudgeont e-mail to Torbjørn Rognes (torognes@ifi.uio.no).

AVAILABILITY

Source code and binaries are available at https://github.com/torognes/vsearch.

These manual pages are also published online at https://torognes.github.io/vsearch/.

COPYRIGHT

Copyright (C) 2014-2026, Torbjørn Rognes, Frédéric Mahé and Tomás Flouri

All rights reserved.

Contact: Torbjørn Rognes torognes@ifi.uio.no, Department of Informatics, University of Oslo, PO Box 1080 Blindern, NO-0316 Oslo, Norway

This software is dual-licensed and available under a choice of one of two licenses, either under the terms of the GNU General Public License version 3 or the BSD 2-Clause License.

GNU General Public License version 3

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

The BSD 2-Clause License

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ACKNOWLEDGMENTS

We would like to thank the authors of the following projects for making their source code available:

  • vsearch includes code from Google’s CityHash project by Geoff Pike and Jyrki Alakuijala, providing some excellent hash functions available under a MIT license.
  • vsearch includes code derived from Tatusov and Lipman’s DUST program that is in the public domain.
  • vsearch includes public domain code written by Alexander Peslyak for the MD5 message digest algorithm.
  • vsearch includes public domain code written by Steve Reid and others for the SHA1 message digest algorithm.
  • vsearch binaries may include code from the zlib library, copyright Jean-Loup Gailly and Mark Adler.
  • vsearch binaries may include code from the bzip2 library, copyright Julian R. Seward.

This site uses Just the Docs, a documentation theme for Jekyll.