Cutadapt

Latest version: v5.0

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 11

1.18

------------------

Features
~~~~~~~~

* Close :issue:`327`: Maximum and minimum lengths can now be specified
separately for R1 and R2 with ``-m LENGTH1:LENGTH2``. One of the
lengths can be omitted, in which case only the length of the other
read is checked (as in ``-m 17:`` or ``-m :17``).
* Close :issue:`322`: Use ``-j 0`` to auto-detect how many cores to run on.
This should even work correctly on cluster systems when Cutadapt runs as
a batch job to which fewer cores than exist on the machine have been
assigned. Note that the number of threads used by ``pigz`` cannot be
controlled at the moment, see :issue:`290`.
* Close :issue:`225`: Allow setting the maximum error rate and minimum overlap
length per adapter. A new :ref:`syntax for adapter-specific
parameters <trimming-parameters>` was added for this. Example:
``-a "ADAPTER;min_overlap=5"``.
* Close :issue:`152`: Using the new syntax for adapter-specific parameters,
it is now possible to allow partial matches of a 3' adapter at the 5' end
(and partial matches of a 5' adapter at the 3' end) by specifying the
``anywhere`` parameter (as in ``-a "ADAPTER;anywhere"``).
* Allow ``--pair-filter=first`` in addition to ``both`` and ``any``. If
used, a read pair is discarded if the filtering criterion applies to R1;
and R2 is ignored.
* Close :issue:`112`: Implement a ``--report=minimal`` option for printing
a succinct two-line report in tab-separated value (tsv) format. Thanks
to :user:`jvolkening` for coming up with an initial patch!

Bug fixes
~~~~~~~~~

* Fix :issue:`128`: The “Reads written” figure in the report incorrectly
included both trimmed and untrimmed reads if ``--untrimmed-output`` was used.

Other
~~~~~

* The options ``--no-trim`` and ``--mask-adapter`` should now be written as
``--action=mask`` and ``--action=none``. The old options still work.
* This is the last release to support `colorspace data <https://cutadapt.readthedocs.io/en/v1.18/colorspace.html>`_
* This is the last release to support Python 2.

1.17

------------------

* Close :issue:`53`: Implement adapters :ref:`that disallow internal matches <non-internal>`.
This is a bit like anchoring, but less strict: The adapter sequence
can appear at different lengths, but must always be at one of the ends.
Use ``-a ADAPTERX`` (with a literal ``X``) to disallow internal matches
for a 3' adapter. Use ``-g XADAPTER`` to disallow for a 5' adapter.
* :user:`klugem` contributed PR :issue:`299`: The ``--length`` option (and its
alias ``-l``) can now be used with negative lengths, which will remove bases
from the beginning of the read instead of from the end.
* Close :issue:`107`: Add a ``--discard-casava`` option to remove reads
that did not pass CASAVA filtering (this is possibly relevant only for
older datasets).
* Fix :issue:`318`: Cutadapt should now be installable with Python 3.7.
* Running Cutadapt under Python 3.3 is no longer supported (Python 2.7 or
3.4+ are needed)
* Planned change: One of the next Cutadapt versions will drop support for
Python 2 entirely, requiring Python 3.

1.16

------------------

* Fix :issue:`291`: When processing paired-end reads with multiple cores, there
could be errors about incomplete FASTQs although the files are intact.
* Fix :issue:`280`: Quality trimming statistics incorrectly show the same
values for R1 and R2.

1.15

------------------

* Cutadapt can now run on multiple CPU cores in parallel! To enable
it, use the option ``-j N`` (or the long form ``--cores=N``), where ``N`` is
the number of cores to use. Multi-core support is only available on Python 3,
and not yet with some command-line arguments. See
:ref:`the new section about multi-core in the documentation <multicore>`
for details. When writing ``.gz`` files, make sure you have ``pigz`` installed
to get the best speedup.
* The plan is to make multi-core the default (automatically using as many cores as
are available) in future releases, so please test it and `report an
issue <https://github.com/marcelm/cutadapt/issues/>`_ if you find problems!
* Issue :issue:`256`: ``--discard-untrimmed`` did not
have an effect on non-anchored linked adapters.
* Issue :issue:`118`: Added support for demultiplexing of paired-end data.

1.14

------------------

* Fix: Statistics for 3' part of a linked adapter were reported incorrectly
* Fix `issue 244 <https://github.com/marcelm/cutadapt/issues/244>`_:
Quality trimming with ``--nextseq-trim`` would not apply to R2 when
trimming paired-end reads.
* ``--nextseq-trim`` now disables legacy mode.
* Fix `issue 246 <https://github.com/marcelm/cutadapt/issues/246>`_: installation
failed on non-UTF8 locale

1.13

------------------

* The 3' adapter of linked adapters can now be anchored. Write
``-a ADAPTER1...ADAPTER2$`` to enable this. Note that the
5' adapter is always anchored in this notation.
* Issue 224: If you want the 5' part of a linked adapter *not* to be
anchored, you can now write ``-g ADAPTER...ADAPTER2`` (note ``-g``
instead of ``-a``). This feature is experimental and may change behavior
in the next release.
* Issue 236: For more accurate statistics, it is now possible to specify the
GC content of the input reads with ``--gc-content``. This does
not change trimming results, only the number in the "expect"
column of the report. Since this is probably not needed by many
people, the option is not listed when running ``cutadapt --help``.
* Issue 235: Adapter sequences are now required to contain only
valid IUPAC codes (lowercase is also allowed, ``U`` is an alias
for ``T``). This should help to catch hard-to-find bugs, especially
in scripts. Use option ``-N`` to match characters literally
(possibly useful for amino acid sequences).
* Documentation updates and some refactoring of the code

Page 6 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.