[med-svn] [adapterremoval] 01/03: New upstream version 2.2.0

Kevin Murray daube-guest at moszumanska.debian.org
Sat Dec 3 21:38:21 UTC 2016


This is an automated email from the git hooks/post-receive script.

daube-guest pushed a commit to branch master
in repository adapterremoval.

commit bdeb331d03c673bc084418eddd470659f3dc2d96
Author: Kevin Murray <kdmfoss at gmail.com>
Date:   Sat Dec 3 16:07:33 2016 +1100

    New upstream version 2.2.0
---
 .gitignore                                         |   3 +-
 AdapterRemoval.pod                                 |  26 +-
 CHANGES.md                                         |  33 +-
 Makefile                                           |  83 ++--
 README.md                                          |  58 ++-
 examples/Makefile                                  |  47 ++
 src/adapterset.cc                                  |   9 +-
 src/alignment.cc                                   |  12 +-
 src/alignment.h                                    |  10 +-
 src/argparse.cc                                    |  31 +-
 src/debug.cc                                       |  10 +-
 src/debug.h                                        |   6 +-
 src/demultiplex.cc                                 | 180 +++-----
 src/demultiplex.h                                  |   9 +-
 src/fastq.cc                                       |  18 +-
 src/fastq.h                                        |  12 +-
 src/fastq_enc.cc                                   |  17 +-
 src/fastq_enc.h                                    |   6 +-
 src/fastq_io.cc                                    | 108 ++---
 src/fastq_io.h                                     |  30 +-
 src/linereader.cc                                  |   9 +-
 src/main.cc                                        |  35 +-
 src/main.h                                         |   2 +-
 src/main_adapter_id.cc                             |  46 +-
 src/main_adapter_rm.cc                             | 484 ++++++++++----------
 src/main_demultiplex.cc                            | 402 +++++++++++++++++
 src/scheduler.cc                                   | 465 +++++++------------
 src/scheduler.h                                    | 140 +++---
 src/strutils.cc                                    |   7 +
 src/strutils.h                                     |   2 +-
 src/threads.cc                                     | 279 +-----------
 src/threads.h                                      | 124 +----
 src/trimmed_reads.cc                               | 164 +++++++
 src/trimmed_reads.h                                | 172 +++++++
 src/userconfig.cc                                  | 131 ++++--
 src/userconfig.h                                   |  62 +--
 tests/alignment_test.cc                            |  49 +-
 tests/argparse_test.cc                             |   2 +-
 tests/fastq_test.cc                                |  60 +++
 validation/README                                  |  60 +++
 .../double_indexed/pe/collapse/barcodes.txt        |   2 +
 .../double_indexed/pe/collapse/info.json           |   6 +
 .../double_indexed/pe/collapse/input_1.fastq       |  32 ++
 .../double_indexed/pe/collapse/input_2.fastq       |  32 ++
 .../pe/collapse/your_output.sample_1.collapsed     |   8 +
 .../your_output.sample_1.collapsed.truncated       |   0
 .../pe/collapse/your_output.sample_1.discarded     |   4 +
 .../collapse/your_output.sample_1.pair1.truncated  |   4 +
 .../collapse/your_output.sample_1.pair2.truncated  |   4 +
 .../pe/collapse/your_output.sample_1.settings      | 207 +++++++++
 .../your_output.sample_1.singleton.truncated       |   0
 .../pe/collapse/your_output.sample_2.collapsed     |   8 +
 .../your_output.sample_2.collapsed.truncated       |   0
 .../pe/collapse/your_output.sample_2.discarded     |   4 +
 .../collapse/your_output.sample_2.pair1.truncated  |   4 +
 .../collapse/your_output.sample_2.pair2.truncated  |   4 +
 .../pe/collapse/your_output.sample_2.settings      | 207 +++++++++
 .../your_output.sample_2.singleton.truncated       |   0
 .../pe/collapse/your_output.settings               |  45 ++
 .../pe/collapse/your_output.unidentified_1         |   0
 .../pe/collapse/your_output.unidentified_2         |   0
 .../double_indexed/pe/combined_output/barcodes.txt |   2 +
 .../double_indexed/pe/combined_output/info.json    |   6 +
 .../pe/combined_output/input_1.fastq               |  32 ++
 .../pe/combined_output/input_2.fastq               |  32 ++
 .../your_output.sample_1.pair1.truncated           |  16 +
 .../your_output.sample_1.pair2.truncated           |  16 +
 .../combined_output/your_output.sample_1.settings  | 147 ++++++
 .../your_output.sample_2.pair1.truncated           |  16 +
 .../your_output.sample_2.pair2.truncated           |  16 +
 .../combined_output/your_output.sample_2.settings  | 147 ++++++
 .../pe/combined_output/your_output.settings        |  45 ++
 .../pe/combined_output/your_output.unidentified_1  |   0
 .../pe/combined_output/your_output.unidentified_2  |   0
 .../double_indexed/pe/defaults/barcodes.txt        |   2 +
 .../double_indexed/pe/defaults/info.json           |   6 +
 .../double_indexed/pe/defaults/input_1.fastq       |  32 ++
 .../double_indexed/pe/defaults/input_2.fastq       |  32 ++
 .../pe/defaults/your_output.sample_1.discarded     |   8 +
 .../defaults/your_output.sample_1.pair1.truncated  |  12 +
 .../defaults/your_output.sample_1.pair2.truncated  |  12 +
 .../pe/defaults/your_output.sample_1.settings      | 147 ++++++
 .../your_output.sample_1.singleton.truncated       |   0
 .../pe/defaults/your_output.sample_2.discarded     |   8 +
 .../defaults/your_output.sample_2.pair1.truncated  |  12 +
 .../defaults/your_output.sample_2.pair2.truncated  |  12 +
 .../pe/defaults/your_output.sample_2.settings      | 147 ++++++
 .../your_output.sample_2.singleton.truncated       |   0
 .../pe/defaults/your_output.settings               |  45 ++
 .../pe/defaults/your_output.unidentified_1         |   0
 .../pe/defaults/your_output.unidentified_2         |   0
 .../pe/demux_only/interleaved/barcodes.txt         |   2 +
 .../pe/demux_only/interleaved/info.json            |   6 +
 .../pe/demux_only/interleaved/input_1.fastq        |  32 ++
 .../pe/demux_only/interleaved/input_2.fastq        |  32 ++
 .../interleaved/your_output.sample_1.paired.fastq  |  32 ++
 .../interleaved/your_output.sample_1.settings      |  19 +
 .../interleaved/your_output.sample_2.paired.fastq  |  32 ++
 .../interleaved/your_output.sample_2.settings      |  19 +
 .../pe/demux_only/interleaved/your_output.settings |  28 ++
 .../your_output.unidentified.paired.fastq          |   0
 .../pe/demux_only/regular/barcodes.txt             |   2 +
 .../double_indexed/pe/demux_only/regular/info.json |   6 +
 .../pe/demux_only/regular/input_1.fastq            |  32 ++
 .../pe/demux_only/regular/input_2.fastq            |  32 ++
 .../regular/your_output.sample_1.pair1.fastq       |  16 +
 .../regular/your_output.sample_1.pair2.fastq       |  16 +
 .../regular/your_output.sample_1.settings          |  19 +
 .../regular/your_output.sample_2.pair1.fastq       |  16 +
 .../regular/your_output.sample_2.pair2.fastq       |  16 +
 .../regular/your_output.sample_2.settings          |  19 +
 .../pe/demux_only/regular/your_output.settings     |  28 ++
 .../regular/your_output.unidentified_1.fastq       |   0
 .../regular/your_output.unidentified_2.fastq       |   0
 .../pe/demux_only/unidentified/barcodes.txt        |   2 +
 .../pe/demux_only/unidentified/info.json           |   6 +
 .../pe/demux_only/unidentified/input_1.fastq       |  32 ++
 .../pe/demux_only/unidentified/input_2.fastq       |  32 ++
 .../unidentified/your_output.sample_1.pair1.fastq  |  12 +
 .../unidentified/your_output.sample_1.pair2.fastq  |  12 +
 .../unidentified/your_output.sample_1.settings     |  19 +
 .../unidentified/your_output.sample_2.pair1.fastq  |  12 +
 .../unidentified/your_output.sample_2.pair2.fastq  |  12 +
 .../unidentified/your_output.sample_2.settings     |  19 +
 .../demux_only/unidentified/your_output.settings   |  28 ++
 .../unidentified/your_output.unidentified_1.fastq  |   8 +
 .../unidentified/your_output.unidentified_2.fastq  |   8 +
 .../pe/interleaved/both/barcodes.txt               |   2 +
 .../double_indexed/pe/interleaved/both/info.json   |   6 +
 .../pe/interleaved/both/input_1.fastq              |  64 +++
 .../both/your_output.sample_1.discarded            |   8 +
 .../both/your_output.sample_1.paired.truncated     |  24 +
 .../interleaved/both/your_output.sample_1.settings | 147 ++++++
 .../both/your_output.sample_1.singleton.truncated  |   0
 .../both/your_output.sample_2.discarded            |   8 +
 .../both/your_output.sample_2.paired.truncated     |  24 +
 .../interleaved/both/your_output.sample_2.settings | 147 ++++++
 .../both/your_output.sample_2.singleton.truncated  |   0
 .../pe/interleaved/both/your_output.settings       |  45 ++
 .../both/your_output.unidentified.paired           |   0
 .../pe/interleaved/output/barcodes.txt             |   2 +
 .../double_indexed/pe/interleaved/output/info.json |   6 +
 .../pe/interleaved/output/input_1.fastq            |  32 ++
 .../pe/interleaved/output/input_2.fastq            |  32 ++
 .../output/your_output.sample_1.discarded          |   8 +
 .../output/your_output.sample_1.paired.truncated   |  24 +
 .../output/your_output.sample_1.settings           | 147 ++++++
 .../your_output.sample_1.singleton.truncated       |   0
 .../output/your_output.sample_2.discarded          |   8 +
 .../output/your_output.sample_2.paired.truncated   |  24 +
 .../output/your_output.sample_2.settings           | 147 ++++++
 .../your_output.sample_2.singleton.truncated       |   0
 .../pe/interleaved/output/your_output.settings     |  45 ++
 .../output/your_output.unidentified.paired         |   0
 .../double_indexed/pe/threads/one/barcodes.txt     |   2 +
 .../double_indexed/pe/threads/one/info.json        |   6 +
 .../double_indexed/pe/threads/one/input_1.fastq    |  32 ++
 .../double_indexed/pe/threads/one/input_2.fastq    |  32 ++
 .../pe/threads/one/your_output.sample_1.discarded  |   8 +
 .../one/your_output.sample_1.pair1.truncated       |  12 +
 .../one/your_output.sample_1.pair2.truncated       |  12 +
 .../pe/threads/one/your_output.sample_1.settings   | 147 ++++++
 .../one/your_output.sample_1.singleton.truncated   |   0
 .../pe/threads/one/your_output.sample_2.discarded  |   8 +
 .../one/your_output.sample_2.pair1.truncated       |  12 +
 .../one/your_output.sample_2.pair2.truncated       |  12 +
 .../pe/threads/one/your_output.sample_2.settings   | 147 ++++++
 .../one/your_output.sample_2.singleton.truncated   |   0
 .../pe/threads/one/your_output.settings            |  45 ++
 .../pe/threads/one/your_output.unidentified_1      |   0
 .../pe/threads/one/your_output.unidentified_2      |   0
 .../double_indexed/pe/threads/three/barcodes.txt   |   2 +
 .../double_indexed/pe/threads/three/info.json      |   6 +
 .../double_indexed/pe/threads/three/input_1.fastq  |  32 ++
 .../double_indexed/pe/threads/three/input_2.fastq  |  32 ++
 .../threads/three/your_output.sample_1.discarded   |   8 +
 .../three/your_output.sample_1.pair1.truncated     |  12 +
 .../three/your_output.sample_1.pair2.truncated     |  12 +
 .../pe/threads/three/your_output.sample_1.settings | 147 ++++++
 .../three/your_output.sample_1.singleton.truncated |   0
 .../threads/three/your_output.sample_2.discarded   |   8 +
 .../three/your_output.sample_2.pair1.truncated     |  12 +
 .../three/your_output.sample_2.pair2.truncated     |  12 +
 .../pe/threads/three/your_output.sample_2.settings | 147 ++++++
 .../three/your_output.sample_2.singleton.truncated |   0
 .../pe/threads/three/your_output.settings          |  45 ++
 .../pe/threads/three/your_output.unidentified_1    |   0
 .../pe/threads/three/your_output.unidentified_2    |   0
 .../double_indexed/pe/threads/two/barcodes.txt     |   2 +
 .../double_indexed/pe/threads/two/info.json        |   6 +
 .../double_indexed/pe/threads/two/input_1.fastq    |  32 ++
 .../double_indexed/pe/threads/two/input_2.fastq    |  32 ++
 .../pe/threads/two/your_output.sample_1.discarded  |   8 +
 .../two/your_output.sample_1.pair1.truncated       |  12 +
 .../two/your_output.sample_1.pair2.truncated       |  12 +
 .../pe/threads/two/your_output.sample_1.settings   | 147 ++++++
 .../two/your_output.sample_1.singleton.truncated   |   0
 .../pe/threads/two/your_output.sample_2.discarded  |   8 +
 .../two/your_output.sample_2.pair1.truncated       |  12 +
 .../two/your_output.sample_2.pair2.truncated       |  12 +
 .../pe/threads/two/your_output.sample_2.settings   | 147 ++++++
 .../two/your_output.sample_2.singleton.truncated   |   0
 .../pe/threads/two/your_output.settings            |  45 ++
 .../pe/threads/two/your_output.unidentified_1      |   0
 .../pe/threads/two/your_output.unidentified_2      |   0
 .../double_indexed/se/collapse/barcodes.txt        |   2 +
 .../double_indexed/se/collapse/info.json           |   6 +
 .../double_indexed/se/collapse/input_1.fastq       |  32 ++
 .../se/collapse/your_output.sample_1.collapsed     |   4 +
 .../your_output.sample_1.collapsed.truncated       |   0
 .../se/collapse/your_output.sample_1.discarded     |   4 +
 .../se/collapse/your_output.sample_1.settings      | 146 ++++++
 .../se/collapse/your_output.sample_1.truncated     |   8 +
 .../se/collapse/your_output.sample_2.collapsed     |   4 +
 .../your_output.sample_2.collapsed.truncated       |   0
 .../se/collapse/your_output.sample_2.discarded     |   4 +
 .../se/collapse/your_output.sample_2.settings      | 146 ++++++
 .../se/collapse/your_output.sample_2.truncated     |   8 +
 .../se/collapse/your_output.settings               |  44 ++
 .../se/collapse/your_output.unidentified           |   0
 .../double_indexed/se/combined_output/barcodes.txt |   2 +
 .../double_indexed/se/combined_output/info.json    |   6 +
 .../se/combined_output/input_1.fastq               |  32 ++
 .../combined_output/your_output.sample_1.settings  | 144 ++++++
 .../combined_output/your_output.sample_1.truncated |  16 +
 .../combined_output/your_output.sample_2.settings  | 144 ++++++
 .../combined_output/your_output.sample_2.truncated |  16 +
 .../se/combined_output/your_output.settings        |  44 ++
 .../se/combined_output/your_output.unidentified    |   0
 .../double_indexed/se/defaults/barcodes.txt        |   2 +
 .../double_indexed/se/defaults/info.json           |   6 +
 .../double_indexed/se/defaults/input_1.fastq       |  32 ++
 .../se/defaults/your_output.sample_1.discarded     |   4 +
 .../se/defaults/your_output.sample_1.settings      | 144 ++++++
 .../se/defaults/your_output.sample_1.truncated     |  12 +
 .../se/defaults/your_output.sample_2.discarded     |   4 +
 .../se/defaults/your_output.sample_2.settings      | 144 ++++++
 .../se/defaults/your_output.sample_2.truncated     |  12 +
 .../se/defaults/your_output.settings               |  44 ++
 .../se/defaults/your_output.unidentified           |   0
 .../se/demux_only/regular/barcodes.txt             |   2 +
 .../double_indexed/se/demux_only/regular/info.json |   6 +
 .../se/demux_only/regular/input_1.fastq            |  32 ++
 .../demux_only/regular/your_output.sample_1.fastq  |  16 +
 .../regular/your_output.sample_1.settings          |  17 +
 .../demux_only/regular/your_output.sample_2.fastq  |  16 +
 .../regular/your_output.sample_2.settings          |  17 +
 .../se/demux_only/regular/your_output.settings     |  26 ++
 .../regular/your_output.unidentified.fastq         |   0
 .../se/demux_only/unidentified/barcodes.txt        |   2 +
 .../se/demux_only/unidentified/info.json           |   6 +
 .../se/demux_only/unidentified/input_1.fastq       |  32 ++
 .../unidentified/your_output.sample_1.fastq        |  12 +
 .../unidentified/your_output.sample_1.settings     |  17 +
 .../unidentified/your_output.sample_2.fastq        |  16 +
 .../unidentified/your_output.sample_2.settings     |  17 +
 .../demux_only/unidentified/your_output.settings   |  26 ++
 .../unidentified/your_output.unidentified.fastq    |   4 +
 .../double_indexed/se/threads/one/barcodes.txt     |   2 +
 .../double_indexed/se/threads/one/info.json        |   6 +
 .../double_indexed/se/threads/one/input_1.fastq    |  32 ++
 .../se/threads/one/your_output.sample_1.discarded  |   4 +
 .../se/threads/one/your_output.sample_1.settings   | 144 ++++++
 .../se/threads/one/your_output.sample_1.truncated  |  12 +
 .../se/threads/one/your_output.sample_2.discarded  |   4 +
 .../se/threads/one/your_output.sample_2.settings   | 144 ++++++
 .../se/threads/one/your_output.sample_2.truncated  |  12 +
 .../se/threads/one/your_output.settings            |  44 ++
 .../se/threads/one/your_output.unidentified        |   0
 .../double_indexed/se/threads/three/barcodes.txt   |   2 +
 .../double_indexed/se/threads/three/info.json      |   6 +
 .../double_indexed/se/threads/three/input_1.fastq  |  32 ++
 .../threads/three/your_output.sample_1.discarded   |   4 +
 .../se/threads/three/your_output.sample_1.settings | 144 ++++++
 .../threads/three/your_output.sample_1.truncated   |  12 +
 .../threads/three/your_output.sample_2.discarded   |   4 +
 .../se/threads/three/your_output.sample_2.settings | 144 ++++++
 .../threads/three/your_output.sample_2.truncated   |  12 +
 .../se/threads/three/your_output.settings          |  44 ++
 .../se/threads/three/your_output.unidentified      |   0
 .../double_indexed/se/threads/two/barcodes.txt     |   2 +
 .../double_indexed/se/threads/two/info.json        |   6 +
 .../double_indexed/se/threads/two/input_1.fastq    |  32 ++
 .../se/threads/two/your_output.sample_1.discarded  |   4 +
 .../se/threads/two/your_output.sample_1.settings   | 144 ++++++
 .../se/threads/two/your_output.sample_1.truncated  |  12 +
 .../se/threads/two/your_output.sample_2.discarded  |   4 +
 .../se/threads/two/your_output.sample_2.settings   | 144 ++++++
 .../se/threads/two/your_output.sample_2.truncated  |  12 +
 .../se/threads/two/your_output.settings            |  44 ++
 .../se/threads/two/your_output.unidentified        |   0
 .../single_indexed/pe/collapse/barcodes.txt        |   2 +
 .../single_indexed/pe/collapse/info.json           |   6 +
 .../single_indexed/pe/collapse/input_1.fastq       |  32 ++
 .../single_indexed/pe/collapse/input_2.fastq       |  32 ++
 .../pe/collapse/your_output.sample_1.collapsed     |   8 +
 .../your_output.sample_1.collapsed.truncated       |   0
 .../pe/collapse/your_output.sample_1.discarded     |   4 +
 .../collapse/your_output.sample_1.pair1.truncated  |   4 +
 .../collapse/your_output.sample_1.pair2.truncated  |   4 +
 .../pe/collapse/your_output.sample_1.settings      | 207 +++++++++
 .../your_output.sample_1.singleton.truncated       |   0
 .../pe/collapse/your_output.sample_2.collapsed     |   8 +
 .../your_output.sample_2.collapsed.truncated       |   0
 .../pe/collapse/your_output.sample_2.discarded     |   4 +
 .../collapse/your_output.sample_2.pair1.truncated  |   4 +
 .../collapse/your_output.sample_2.pair2.truncated  |   4 +
 .../pe/collapse/your_output.sample_2.settings      | 207 +++++++++
 .../your_output.sample_2.singleton.truncated       |   0
 .../pe/collapse/your_output.settings               |  45 ++
 .../pe/collapse/your_output.unidentified_1         |   0
 .../pe/collapse/your_output.unidentified_2         |   0
 .../single_indexed/pe/combined_output/barcodes.txt |   2 +
 .../single_indexed/pe/combined_output/info.json    |   6 +
 .../pe/combined_output/input_1.fastq               |  32 ++
 .../pe/combined_output/input_2.fastq               |  32 ++
 .../your_output.sample_1.pair1.truncated           |  16 +
 .../your_output.sample_1.pair2.truncated           |  16 +
 .../combined_output/your_output.sample_1.settings  | 155 +++++++
 .../your_output.sample_2.pair1.truncated           |  16 +
 .../your_output.sample_2.pair2.truncated           |  16 +
 .../combined_output/your_output.sample_2.settings  | 155 +++++++
 .../pe/combined_output/your_output.settings        |  45 ++
 .../pe/combined_output/your_output.unidentified_1  |   0
 .../pe/combined_output/your_output.unidentified_2  |   0
 .../single_indexed/pe/defaults/barcodes.txt        |   2 +
 .../single_indexed/pe/defaults/info.json           |   6 +
 .../single_indexed/pe/defaults/input_1.fastq       |  32 ++
 .../single_indexed/pe/defaults/input_2.fastq       |  32 ++
 .../pe/defaults/your_output.sample_1.discarded     |   8 +
 .../defaults/your_output.sample_1.pair1.truncated  |  12 +
 .../defaults/your_output.sample_1.pair2.truncated  |  12 +
 .../pe/defaults/your_output.sample_1.settings      | 155 +++++++
 .../your_output.sample_1.singleton.truncated       |   0
 .../pe/defaults/your_output.sample_2.discarded     |   8 +
 .../defaults/your_output.sample_2.pair1.truncated  |  12 +
 .../defaults/your_output.sample_2.pair2.truncated  |  12 +
 .../pe/defaults/your_output.sample_2.settings      | 155 +++++++
 .../your_output.sample_2.singleton.truncated       |   0
 .../pe/defaults/your_output.settings               |  45 ++
 .../pe/defaults/your_output.unidentified_1         |   0
 .../pe/defaults/your_output.unidentified_2         |   0
 .../single_indexed/pe/demux_only/barcodes.txt      |   2 +
 .../single_indexed/pe/demux_only/info.json         |   6 +
 .../single_indexed/pe/demux_only/input_1.fastq     |  32 ++
 .../single_indexed/pe/demux_only/input_2.fastq     |  32 ++
 .../pe/demux_only/your_output.sample_1.pair1.fastq |  16 +
 .../pe/demux_only/your_output.sample_1.pair2.fastq |  16 +
 .../pe/demux_only/your_output.sample_1.settings    |  19 +
 .../pe/demux_only/your_output.sample_2.pair1.fastq |  16 +
 .../pe/demux_only/your_output.sample_2.pair2.fastq |  16 +
 .../pe/demux_only/your_output.sample_2.settings    |  19 +
 .../pe/demux_only/your_output.settings             |  28 ++
 .../pe/demux_only/your_output.unidentified_1.fastq |   0
 .../pe/demux_only/your_output.unidentified_2.fastq |   0
 .../pe/interleaved/both/barcodes.txt               |   2 +
 .../single_indexed/pe/interleaved/both/info.json   |   6 +
 .../pe/interleaved/both/input_1.fastq              |  64 +++
 .../both/your_output.sample_1.discarded            |   8 +
 .../both/your_output.sample_1.paired.truncated     |  24 +
 .../interleaved/both/your_output.sample_1.settings | 155 +++++++
 .../both/your_output.sample_1.singleton.truncated  |   0
 .../both/your_output.sample_2.discarded            |   8 +
 .../both/your_output.sample_2.paired.truncated     |  24 +
 .../interleaved/both/your_output.sample_2.settings | 155 +++++++
 .../both/your_output.sample_2.singleton.truncated  |   0
 .../pe/interleaved/both/your_output.settings       |  45 ++
 .../both/your_output.unidentified.paired           |   0
 .../pe/interleaved/output/barcodes.txt             |   2 +
 .../single_indexed/pe/interleaved/output/info.json |   6 +
 .../pe/interleaved/output/input_1.fastq            |  32 ++
 .../pe/interleaved/output/input_2.fastq            |  32 ++
 .../output/your_output.sample_1.discarded          |   8 +
 .../output/your_output.sample_1.paired.truncated   |  24 +
 .../output/your_output.sample_1.settings           | 155 +++++++
 .../your_output.sample_1.singleton.truncated       |   0
 .../output/your_output.sample_2.discarded          |   8 +
 .../output/your_output.sample_2.paired.truncated   |  24 +
 .../output/your_output.sample_2.settings           | 155 +++++++
 .../your_output.sample_2.singleton.truncated       |   0
 .../pe/interleaved/output/your_output.settings     |  45 ++
 .../output/your_output.unidentified.paired         |   0
 .../single_indexed/pe/threads/one/barcodes.txt     |   2 +
 .../single_indexed/pe/threads/one/info.json        |   6 +
 .../single_indexed/pe/threads/one/input_1.fastq    |  32 ++
 .../single_indexed/pe/threads/one/input_2.fastq    |  32 ++
 .../pe/threads/one/your_output.sample_1.discarded  |   8 +
 .../one/your_output.sample_1.pair1.truncated       |  12 +
 .../one/your_output.sample_1.pair2.truncated       |  12 +
 .../pe/threads/one/your_output.sample_1.settings   | 155 +++++++
 .../one/your_output.sample_1.singleton.truncated   |   0
 .../pe/threads/one/your_output.sample_2.discarded  |   8 +
 .../one/your_output.sample_2.pair1.truncated       |  12 +
 .../one/your_output.sample_2.pair2.truncated       |  12 +
 .../pe/threads/one/your_output.sample_2.settings   | 155 +++++++
 .../one/your_output.sample_2.singleton.truncated   |   0
 .../pe/threads/one/your_output.settings            |  45 ++
 .../pe/threads/one/your_output.unidentified_1      |   0
 .../pe/threads/one/your_output.unidentified_2      |   0
 .../single_indexed/pe/threads/three/barcodes.txt   |   2 +
 .../single_indexed/pe/threads/three/info.json      |   6 +
 .../single_indexed/pe/threads/three/input_1.fastq  |  32 ++
 .../single_indexed/pe/threads/three/input_2.fastq  |  32 ++
 .../threads/three/your_output.sample_1.discarded   |   8 +
 .../three/your_output.sample_1.pair1.truncated     |  12 +
 .../three/your_output.sample_1.pair2.truncated     |  12 +
 .../pe/threads/three/your_output.sample_1.settings | 155 +++++++
 .../three/your_output.sample_1.singleton.truncated |   0
 .../threads/three/your_output.sample_2.discarded   |   8 +
 .../three/your_output.sample_2.pair1.truncated     |  12 +
 .../three/your_output.sample_2.pair2.truncated     |  12 +
 .../pe/threads/three/your_output.sample_2.settings | 155 +++++++
 .../three/your_output.sample_2.singleton.truncated |   0
 .../pe/threads/three/your_output.settings          |  45 ++
 .../pe/threads/three/your_output.unidentified_1    |   0
 .../pe/threads/three/your_output.unidentified_2    |   0
 .../single_indexed/pe/threads/two/barcodes.txt     |   2 +
 .../single_indexed/pe/threads/two/info.json        |   6 +
 .../single_indexed/pe/threads/two/input_1.fastq    |  32 ++
 .../single_indexed/pe/threads/two/input_2.fastq    |  32 ++
 .../pe/threads/two/your_output.sample_1.discarded  |   8 +
 .../two/your_output.sample_1.pair1.truncated       |  12 +
 .../two/your_output.sample_1.pair2.truncated       |  12 +
 .../pe/threads/two/your_output.sample_1.settings   | 155 +++++++
 .../two/your_output.sample_1.singleton.truncated   |   0
 .../pe/threads/two/your_output.sample_2.discarded  |   8 +
 .../two/your_output.sample_2.pair1.truncated       |  12 +
 .../two/your_output.sample_2.pair2.truncated       |  12 +
 .../pe/threads/two/your_output.sample_2.settings   | 155 +++++++
 .../two/your_output.sample_2.singleton.truncated   |   0
 .../pe/threads/two/your_output.settings            |  45 ++
 .../pe/threads/two/your_output.unidentified_1      |   0
 .../pe/threads/two/your_output.unidentified_2      |   0
 .../single_indexed/se/collapse/barcodes.txt        |   2 +
 .../single_indexed/se/collapse/info.json           |   6 +
 .../single_indexed/se/collapse/input_1.fastq       |  32 ++
 .../se/collapse/your_output.sample_1.collapsed     |   4 +
 .../your_output.sample_1.collapsed.truncated       |   0
 .../se/collapse/your_output.sample_1.discarded     |   4 +
 .../se/collapse/your_output.sample_1.settings      | 146 ++++++
 .../se/collapse/your_output.sample_1.truncated     |   8 +
 .../se/collapse/your_output.sample_2.collapsed     |   4 +
 .../your_output.sample_2.collapsed.truncated       |   0
 .../se/collapse/your_output.sample_2.discarded     |   4 +
 .../se/collapse/your_output.sample_2.settings      | 146 ++++++
 .../se/collapse/your_output.sample_2.truncated     |   8 +
 .../se/collapse/your_output.settings               |  44 ++
 .../se/collapse/your_output.unidentified           |   0
 .../single_indexed/se/combined_output/barcodes.txt |   2 +
 .../single_indexed/se/combined_output/info.json    |   6 +
 .../se/combined_output/input_1.fastq               |  32 ++
 .../combined_output/your_output.sample_1.settings  | 144 ++++++
 .../combined_output/your_output.sample_1.truncated |  16 +
 .../combined_output/your_output.sample_2.settings  | 144 ++++++
 .../combined_output/your_output.sample_2.truncated |  16 +
 .../se/combined_output/your_output.settings        |  44 ++
 .../se/combined_output/your_output.unidentified    |   0
 .../single_indexed/se/defaults/barcodes.txt        |   2 +
 .../single_indexed/se/defaults/info.json           |   6 +
 .../single_indexed/se/defaults/input_1.fastq       |  32 ++
 .../se/defaults/your_output.sample_1.discarded     |   4 +
 .../se/defaults/your_output.sample_1.settings      | 144 ++++++
 .../se/defaults/your_output.sample_1.truncated     |  12 +
 .../se/defaults/your_output.sample_2.discarded     |   4 +
 .../se/defaults/your_output.sample_2.settings      | 144 ++++++
 .../se/defaults/your_output.sample_2.truncated     |  12 +
 .../se/defaults/your_output.settings               |  44 ++
 .../se/defaults/your_output.unidentified           |   0
 .../single_indexed/se/demux_only/barcodes.txt      |   2 +
 .../single_indexed/se/demux_only/info.json         |   6 +
 .../single_indexed/se/demux_only/input_1.fastq     |  32 ++
 .../se/demux_only/your_output.sample_1.fastq       |  16 +
 .../se/demux_only/your_output.sample_1.settings    |  17 +
 .../se/demux_only/your_output.sample_2.fastq       |  16 +
 .../se/demux_only/your_output.sample_2.settings    |  17 +
 .../se/demux_only/your_output.settings             |  26 ++
 .../se/demux_only/your_output.unidentified.fastq   |   0
 .../single_indexed/se/threads/one/barcodes.txt     |   2 +
 .../single_indexed/se/threads/one/info.json        |   6 +
 .../single_indexed/se/threads/one/input_1.fastq    |  32 ++
 .../se/threads/one/your_output.sample_1.discarded  |   4 +
 .../se/threads/one/your_output.sample_1.settings   | 144 ++++++
 .../se/threads/one/your_output.sample_1.truncated  |  12 +
 .../se/threads/one/your_output.sample_2.discarded  |   4 +
 .../se/threads/one/your_output.sample_2.settings   | 144 ++++++
 .../se/threads/one/your_output.sample_2.truncated  |  12 +
 .../se/threads/one/your_output.settings            |  44 ++
 .../se/threads/one/your_output.unidentified        |   0
 .../single_indexed/se/threads/three/barcodes.txt   |   2 +
 .../single_indexed/se/threads/three/info.json      |   6 +
 .../single_indexed/se/threads/three/input_1.fastq  |  32 ++
 .../threads/three/your_output.sample_1.discarded   |   4 +
 .../se/threads/three/your_output.sample_1.settings | 144 ++++++
 .../threads/three/your_output.sample_1.truncated   |  12 +
 .../threads/three/your_output.sample_2.discarded   |   4 +
 .../se/threads/three/your_output.sample_2.settings | 144 ++++++
 .../threads/three/your_output.sample_2.truncated   |  12 +
 .../se/threads/three/your_output.settings          |  44 ++
 .../se/threads/three/your_output.unidentified      |   0
 .../single_indexed/se/threads/two/barcodes.txt     |   2 +
 .../single_indexed/se/threads/two/info.json        |   6 +
 .../single_indexed/se/threads/two/input_1.fastq    |  32 ++
 .../se/threads/two/your_output.sample_1.discarded  |   4 +
 .../se/threads/two/your_output.sample_1.settings   | 144 ++++++
 .../se/threads/two/your_output.sample_1.truncated  |  12 +
 .../se/threads/two/your_output.sample_2.discarded  |   4 +
 .../se/threads/two/your_output.sample_2.settings   | 144 ++++++
 .../se/threads/two/your_output.sample_2.truncated  |  12 +
 .../se/threads/two/your_output.settings            |  44 ++
 .../se/threads/two/your_output.unidentified        |   0
 .../misc/bad_args/demux_without_barcodes/info.json |   7 +
 .../bad_args/demux_without_barcodes/input_1.fastq  |   4 +
 .../bad_args/demux_without_barcodes/input_2.fastq  |   4 +
 validation/misc/bad_args/file2_only/info.json      |   7 +
 validation/misc/bad_args/file2_only/input_2.fastq  |   0
 validation/misc/bad_args/ident_and_demux/info.json |   7 +
 .../misc/bad_args/ident_and_demux/input_1.fastq    |   4 +
 .../misc/bad_args/ident_and_demux/input_2.fastq    |   4 +
 validation/misc/bad_args/se_interleaved/info.json  |   7 +
 .../misc/bad_args/se_interleaved/input_1.fastq     |   8 +
 .../bad_args/se_interleaved/your_output.discarded  |   0
 .../se_interleaved/your_output.paired.truncated    |   0
 .../se_interleaved/your_output.singleton.truncated |   0
 .../misc/bad_args/se_interleaved_input/info.json   |   7 +
 .../bad_args/se_interleaved_input/input_1.fastq    |   8 +
 .../se_interleaved_input/your_output.discarded     |   0
 .../your_output.pair1.truncated                    |   0
 .../your_output.pair2.truncated                    |   0
 .../your_output.singleton.truncated                |   0
 validation/misc/empty/pe/info.json                 |   6 +
 validation/misc/empty/pe/input_1.fastq             |   0
 validation/misc/empty/pe/input_2.fastq             |   0
 validation/misc/empty/pe/your_output.discarded     |   0
 .../misc/empty/pe/your_output.pair1.truncated      |   0
 .../misc/empty/pe/your_output.pair2.truncated      |   0
 validation/misc/empty/pe/your_output.settings      |  42 ++
 .../misc/empty/pe/your_output.singleton.truncated  |   0
 validation/misc/empty/se/info.json                 |   6 +
 validation/misc/empty/se/input_1.fastq             |   0
 validation/misc/empty/se/your_output.discarded     |   0
 validation/misc/empty/se/your_output.settings      |  41 ++
 validation/misc/empty/se/your_output.truncated     |   0
 validation/misc/no_arguments/info.json             |   7 +
 .../non_overlapping/collapse/info.json             |   6 +
 .../non_overlapping/collapse/input_1.fastq         |   4 +
 .../non_overlapping/collapse/input_2.fastq         |   4 +
 .../non_overlapping/collapse/your_output.collapsed |   0
 .../collapse/your_output.collapsed.truncated       |   0
 .../non_overlapping/collapse/your_output.discarded |   0
 .../collapse/your_output.pair1.truncated           |   4 +
 .../collapse/your_output.pair2.truncated           |   4 +
 .../non_overlapping/collapse/your_output.settings  | 145 ++++++
 .../collapse/your_output.singleton.truncated       |   0
 .../combined_output/collapse/info.json             |   6 +
 .../combined_output/collapse/input_1.fastq         |   4 +
 .../combined_output/collapse/input_2.fastq         |   4 +
 .../collapse/your_output.pair1.truncated           |   4 +
 .../collapse/your_output.pair2.truncated           |   4 +
 .../combined_output/collapse/your_output.settings  | 145 ++++++
 .../combined_output/interleaved/collapse/info.json |   6 +
 .../interleaved/collapse/input_1.fastq             |   4 +
 .../interleaved/collapse/input_2.fastq             |   4 +
 .../collapse/your_output.paired.truncated          |   8 +
 .../interleaved/collapse/your_output.settings      | 145 ++++++
 .../interleaved/keep_both/info.json                |   6 +
 .../interleaved/keep_both/input_1.fastq            |   4 +
 .../interleaved/keep_both/input_2.fastq            |   4 +
 .../keep_both/your_output.paired.truncated         |   8 +
 .../interleaved/keep_both/your_output.settings     | 143 ++++++
 .../interleaved/keep_mate1/info.json               |   6 +
 .../interleaved/keep_mate1/input_1.fastq           |   4 +
 .../interleaved/keep_mate1/input_2.fastq           |   4 +
 .../keep_mate1/your_output.paired.truncated        |   8 +
 .../interleaved/keep_mate1/your_output.settings    | 143 ++++++
 .../interleaved/keep_mate2/info.json               |   6 +
 .../interleaved/keep_mate2/input_1.fastq           |   4 +
 .../interleaved/keep_mate2/input_2.fastq           |   4 +
 .../keep_mate2/your_output.paired.truncated        |   8 +
 .../interleaved/keep_mate2/your_output.settings    | 143 ++++++
 .../interleaved/keep_neither/info.json             |   6 +
 .../interleaved/keep_neither/input_1.fastq         |   4 +
 .../interleaved/keep_neither/input_2.fastq         |   4 +
 .../keep_neither/your_output.paired.truncated      |   8 +
 .../interleaved/keep_neither/your_output.settings  | 142 ++++++
 .../combined_output/keep_both/info.json            |   6 +
 .../combined_output/keep_both/input_1.fastq        |   4 +
 .../combined_output/keep_both/input_2.fastq        |   4 +
 .../keep_both/your_output.pair1.truncated          |   4 +
 .../keep_both/your_output.pair2.truncated          |   4 +
 .../combined_output/keep_both/your_output.settings | 143 ++++++
 .../combined_output/keep_mate1/info.json           |   6 +
 .../combined_output/keep_mate1/input_1.fastq       |   4 +
 .../combined_output/keep_mate1/input_2.fastq       |   4 +
 .../keep_mate1/your_output.pair1.truncated         |   4 +
 .../keep_mate1/your_output.pair2.truncated         |   4 +
 .../keep_mate1/your_output.settings                | 143 ++++++
 .../combined_output/keep_mate2/info.json           |   6 +
 .../combined_output/keep_mate2/input_1.fastq       |   4 +
 .../combined_output/keep_mate2/input_2.fastq       |   4 +
 .../keep_mate2/your_output.pair1.truncated         |   4 +
 .../keep_mate2/your_output.pair2.truncated         |   4 +
 .../keep_mate2/your_output.settings                | 143 ++++++
 .../combined_output/keep_neither/info.json         |   6 +
 .../combined_output/keep_neither/input_1.fastq     |   4 +
 .../combined_output/keep_neither/input_2.fastq     |   4 +
 .../keep_neither/your_output.pair1.truncated       |   4 +
 .../keep_neither/your_output.pair2.truncated       |   4 +
 .../keep_neither/your_output.settings              | 142 ++++++
 .../non_overlapping/crlf_newlines/info.json        |   6 +
 .../non_overlapping/crlf_newlines/input_1.fastq    |   4 +
 .../non_overlapping/crlf_newlines/input_2.fastq    |   4 +
 .../crlf_newlines/your_output.discarded            |   0
 .../crlf_newlines/your_output.pair1.truncated      |   4 +
 .../crlf_newlines/your_output.pair2.truncated      |   4 +
 .../crlf_newlines/your_output.settings             | 143 ++++++
 .../crlf_newlines/your_output.singleton.truncated  |   0
 .../non_overlapping/defaults/info.json             |   6 +
 .../non_overlapping/defaults/input_1.fastq         |   4 +
 .../non_overlapping/defaults/input_2.fastq         |   4 +
 .../non_overlapping/defaults/your_output.discarded |   0
 .../defaults/your_output.pair1.truncated           |   4 +
 .../defaults/your_output.pair2.truncated           |   4 +
 .../non_overlapping/defaults/your_output.settings  | 143 ++++++
 .../defaults/your_output.singleton.truncated       |   0
 .../non_overlapping/interleaved/both/info.json     |   6 +
 .../non_overlapping/interleaved/both/input_1.fastq |   8 +
 .../interleaved/both/your_output.discarded         |   0
 .../interleaved/both/your_output.paired.truncated  |   8 +
 .../interleaved/both/your_output.settings          | 143 ++++++
 .../both/your_output.singleton.truncated           |   0
 .../non_overlapping/interleaved/output/info.json   |   6 +
 .../interleaved/output/input_1.fastq               |   4 +
 .../interleaved/output/input_2.fastq               |   4 +
 .../interleaved/output/your_output.discarded       |   0
 .../output/your_output.paired.truncated            |   8 +
 .../interleaved/output/your_output.settings        | 143 ++++++
 .../output/your_output.singleton.truncated         |   0
 .../non_overlapping/maxlength/both/info.json       |   6 +
 .../non_overlapping/maxlength/both/input_1.fastq   |   4 +
 .../non_overlapping/maxlength/both/input_2.fastq   |   4 +
 .../maxlength/both/your_output.discarded           |   8 +
 .../maxlength/both/your_output.pair1.truncated     |   0
 .../maxlength/both/your_output.pair2.truncated     |   0
 .../maxlength/both/your_output.settings            | 143 ++++++
 .../maxlength/both/your_output.singleton.truncated |   0
 .../non_overlapping/maxlength/mate1/info.json      |   6 +
 .../non_overlapping/maxlength/mate1/input_1.fastq  |   4 +
 .../non_overlapping/maxlength/mate1/input_2.fastq  |   4 +
 .../maxlength/mate1/your_output.discarded          |   4 +
 .../maxlength/mate1/your_output.pair1.truncated    |   0
 .../maxlength/mate1/your_output.pair2.truncated    |   0
 .../maxlength/mate1/your_output.settings           | 143 ++++++
 .../mate1/your_output.singleton.truncated          |   4 +
 .../non_overlapping/maxlength/mate2/info.json      |   6 +
 .../non_overlapping/maxlength/mate2/input_1.fastq  |   4 +
 .../non_overlapping/maxlength/mate2/input_2.fastq  |   4 +
 .../maxlength/mate2/your_output.discarded          |   4 +
 .../maxlength/mate2/your_output.pair1.truncated    |   0
 .../maxlength/mate2/your_output.pair2.truncated    |   0
 .../maxlength/mate2/your_output.settings           | 143 ++++++
 .../mate2/your_output.singleton.truncated          |   4 +
 .../non_overlapping/minlength/both/info.json       |   6 +
 .../non_overlapping/minlength/both/input_1.fastq   |   4 +
 .../non_overlapping/minlength/both/input_2.fastq   |   4 +
 .../minlength/both/your_output.discarded           |   8 +
 .../minlength/both/your_output.pair1.truncated     |   0
 .../minlength/both/your_output.pair2.truncated     |   0
 .../minlength/both/your_output.settings            |  86 ++++
 .../minlength/both/your_output.singleton.truncated |   0
 .../non_overlapping/minlength/mate1/info.json      |   6 +
 .../non_overlapping/minlength/mate1/input_1.fastq  |   4 +
 .../non_overlapping/minlength/mate1/input_2.fastq  |   4 +
 .../minlength/mate1/your_output.discarded          |   4 +
 .../minlength/mate1/your_output.pair1.truncated    |   0
 .../minlength/mate1/your_output.pair2.truncated    |   0
 .../minlength/mate1/your_output.settings           | 143 ++++++
 .../mate1/your_output.singleton.truncated          |   4 +
 .../non_overlapping/minlength/mate2/info.json      |   6 +
 .../non_overlapping/minlength/mate2/input_1.fastq  |   4 +
 .../non_overlapping/minlength/mate2/input_2.fastq  |   4 +
 .../minlength/mate2/your_output.discarded          |   4 +
 .../minlength/mate2/your_output.pair1.truncated    |   0
 .../minlength/mate2/your_output.pair2.truncated    |   0
 .../minlength/mate2/your_output.settings           | 143 ++++++
 .../mate2/your_output.singleton.truncated          |   4 +
 .../non_overlapping/trimns/excl_ns/info.json       |   6 +
 .../non_overlapping/trimns/excl_ns/input_1.fastq   |   4 +
 .../non_overlapping/trimns/excl_ns/input_2.fastq   |   4 +
 .../trimns/excl_ns/your_output.discarded           |   0
 .../trimns/excl_ns/your_output.pair1.truncated     |   4 +
 .../trimns/excl_ns/your_output.pair2.truncated     |   4 +
 .../trimns/excl_ns/your_output.settings            | 143 ++++++
 .../trimns/excl_ns/your_output.singleton.truncated |   0
 .../non_overlapping/trimns/incl_ns/info.json       |   6 +
 .../non_overlapping/trimns/incl_ns/input_1.fastq   |   4 +
 .../non_overlapping/trimns/incl_ns/input_2.fastq   |   4 +
 .../trimns/incl_ns/your_output.discarded           |   0
 .../trimns/incl_ns/your_output.pair1.truncated     |   4 +
 .../trimns/incl_ns/your_output.pair2.truncated     |   4 +
 .../trimns/incl_ns/your_output.settings            | 142 ++++++
 .../trimns/incl_ns/your_output.singleton.truncated |   0
 .../trimqualities/default/info.json                |   6 +
 .../trimqualities/default/input_1.fastq            |   4 +
 .../trimqualities/default/input_2.fastq            |   4 +
 .../trimqualities/default/your_output.discarded    |   0
 .../default/your_output.pair1.truncated            |   4 +
 .../default/your_output.pair2.truncated            |   4 +
 .../trimqualities/default/your_output.settings     | 142 ++++++
 .../default/your_output.singleton.truncated        |   0
 .../non_overlapping/trimqualities/minq31/info.json |   6 +
 .../trimqualities/minq31/input_1.fastq             |   4 +
 .../trimqualities/minq31/input_2.fastq             |   4 +
 .../trimqualities/minq31/your_output.discarded     |   0
 .../minq31/your_output.pair1.truncated             |   4 +
 .../minq31/your_output.pair2.truncated             |   4 +
 .../trimqualities/minq31/your_output.settings      | 111 +++++
 .../minq31/your_output.singleton.truncated         |   0
 .../pe/excl_adapter/overlapping/collapse/info.json |   6 +
 .../overlapping/collapse/input_1.fastq             |   4 +
 .../overlapping/collapse/input_2.fastq             |   4 +
 .../overlapping/collapse/your_output.collapsed     |   4 +
 .../collapse/your_output.collapsed.truncated       |   0
 .../overlapping/collapse/your_output.discarded     |   0
 .../collapse/your_output.pair1.truncated           |   0
 .../collapse/your_output.pair2.truncated           |   0
 .../overlapping/collapse/your_output.settings      | 195 ++++++++
 .../collapse/your_output.singleton.truncated       |   0
 .../overlapping/combined_output/collapse/info.json |   6 +
 .../combined_output/collapse/input_1.fastq         |   4 +
 .../combined_output/collapse/input_2.fastq         |   4 +
 .../collapse/your_output.pair1.truncated           |   4 +
 .../collapse/your_output.pair2.truncated           |   4 +
 .../combined_output/collapse/your_output.settings  | 195 ++++++++
 .../combined_output/interleaved/collapse/info.json |   6 +
 .../interleaved/collapse/input_1.fastq             |   4 +
 .../interleaved/collapse/input_2.fastq             |   4 +
 .../collapse/your_output.paired.truncated          |   8 +
 .../interleaved/collapse/your_output.settings      | 195 ++++++++
 .../interleaved/keep_both/info.json                |   6 +
 .../interleaved/keep_both/input_1.fastq            |   4 +
 .../interleaved/keep_both/input_2.fastq            |   4 +
 .../keep_both/your_output.paired.truncated         |   8 +
 .../interleaved/keep_both/your_output.settings     | 143 ++++++
 .../interleaved/keep_mate1/info.json               |   6 +
 .../interleaved/keep_mate1/input_1.fastq           |   4 +
 .../interleaved/keep_mate1/input_2.fastq           |   4 +
 .../keep_mate1/your_output.paired.truncated        |   8 +
 .../interleaved/keep_mate1/your_output.settings    | 143 ++++++
 .../interleaved/keep_mate2/info.json               |   6 +
 .../interleaved/keep_mate2/input_1.fastq           |   4 +
 .../interleaved/keep_mate2/input_2.fastq           |   4 +
 .../keep_mate2/your_output.paired.truncated        |   8 +
 .../interleaved/keep_mate2/your_output.settings    | 143 ++++++
 .../interleaved/keep_neither/info.json             |   6 +
 .../interleaved/keep_neither/input_1.fastq         |   4 +
 .../interleaved/keep_neither/input_2.fastq         |   4 +
 .../keep_neither/your_output.paired.truncated      |   8 +
 .../interleaved/keep_neither/your_output.settings  | 142 ++++++
 .../combined_output/keep_both/info.json            |   6 +
 .../combined_output/keep_both/input_1.fastq        |   4 +
 .../combined_output/keep_both/input_2.fastq        |   4 +
 .../keep_both/your_output.pair1.truncated          |   4 +
 .../keep_both/your_output.pair2.truncated          |   4 +
 .../combined_output/keep_both/your_output.settings | 143 ++++++
 .../combined_output/keep_mate1/info.json           |   6 +
 .../combined_output/keep_mate1/input_1.fastq       |   4 +
 .../combined_output/keep_mate1/input_2.fastq       |   4 +
 .../keep_mate1/your_output.pair1.truncated         |   4 +
 .../keep_mate1/your_output.pair2.truncated         |   4 +
 .../keep_mate1/your_output.settings                | 143 ++++++
 .../combined_output/keep_mate2/info.json           |   6 +
 .../combined_output/keep_mate2/input_1.fastq       |   4 +
 .../combined_output/keep_mate2/input_2.fastq       |   4 +
 .../keep_mate2/your_output.pair1.truncated         |   4 +
 .../keep_mate2/your_output.pair2.truncated         |   4 +
 .../keep_mate2/your_output.settings                | 143 ++++++
 .../combined_output/keep_neither/info.json         |   6 +
 .../combined_output/keep_neither/input_1.fastq     |   4 +
 .../combined_output/keep_neither/input_2.fastq     |   4 +
 .../keep_neither/your_output.pair1.truncated       |   4 +
 .../keep_neither/your_output.pair2.truncated       |   4 +
 .../keep_neither/your_output.settings              | 142 ++++++
 .../overlapping/crlf_newlines/info.json            |   6 +
 .../overlapping/crlf_newlines/input_1.fastq        |   4 +
 .../overlapping/crlf_newlines/input_2.fastq        |   4 +
 .../crlf_newlines/your_output.discarded            |   0
 .../crlf_newlines/your_output.pair1.truncated      |   4 +
 .../crlf_newlines/your_output.pair2.truncated      |   4 +
 .../overlapping/crlf_newlines/your_output.settings | 143 ++++++
 .../crlf_newlines/your_output.singleton.truncated  |   0
 .../pe/excl_adapter/overlapping/defaults/info.json |   6 +
 .../overlapping/defaults/input_1.fastq             |   4 +
 .../overlapping/defaults/input_2.fastq             |   4 +
 .../overlapping/defaults/your_output.discarded     |   0
 .../defaults/your_output.pair1.truncated           |   4 +
 .../defaults/your_output.pair2.truncated           |   4 +
 .../overlapping/defaults/your_output.settings      | 143 ++++++
 .../defaults/your_output.singleton.truncated       |   0
 .../overlapping/interleaved/both/info.json         |   6 +
 .../overlapping/interleaved/both/input_1.fastq     |   8 +
 .../interleaved/both/your_output.discarded         |   0
 .../interleaved/both/your_output.paired.truncated  |   8 +
 .../interleaved/both/your_output.settings          | 143 ++++++
 .../both/your_output.singleton.truncated           |   0
 .../overlapping/interleaved/output/info.json       |   6 +
 .../overlapping/interleaved/output/input_1.fastq   |   4 +
 .../overlapping/interleaved/output/input_2.fastq   |   4 +
 .../interleaved/output/your_output.discarded       |   0
 .../output/your_output.paired.truncated            |   8 +
 .../interleaved/output/your_output.settings        | 143 ++++++
 .../output/your_output.singleton.truncated         |   0
 .../overlapping/maxlength/both/info.json           |   6 +
 .../overlapping/maxlength/both/input_1.fastq       |   4 +
 .../overlapping/maxlength/both/input_2.fastq       |   4 +
 .../maxlength/both/your_output.discarded           |   8 +
 .../maxlength/both/your_output.pair1.truncated     |   0
 .../maxlength/both/your_output.pair2.truncated     |   0
 .../maxlength/both/your_output.settings            | 143 ++++++
 .../maxlength/both/your_output.singleton.truncated |   0
 .../overlapping/maxlength/mate1/info.json          |   6 +
 .../overlapping/maxlength/mate1/input_1.fastq      |   4 +
 .../overlapping/maxlength/mate1/input_2.fastq      |   4 +
 .../maxlength/mate1/your_output.discarded          |   4 +
 .../maxlength/mate1/your_output.pair1.truncated    |   0
 .../maxlength/mate1/your_output.pair2.truncated    |   0
 .../maxlength/mate1/your_output.settings           | 143 ++++++
 .../mate1/your_output.singleton.truncated          |   4 +
 .../overlapping/maxlength/mate2/info.json          |   6 +
 .../overlapping/maxlength/mate2/input_1.fastq      |   4 +
 .../overlapping/maxlength/mate2/input_2.fastq      |   4 +
 .../maxlength/mate2/your_output.discarded          |   4 +
 .../maxlength/mate2/your_output.pair1.truncated    |   0
 .../maxlength/mate2/your_output.pair2.truncated    |   0
 .../maxlength/mate2/your_output.settings           | 143 ++++++
 .../mate2/your_output.singleton.truncated          |   4 +
 .../overlapping/minlength/both/info.json           |   6 +
 .../overlapping/minlength/both/input_1.fastq       |   4 +
 .../overlapping/minlength/both/input_2.fastq       |   4 +
 .../minlength/both/your_output.discarded           |   8 +
 .../minlength/both/your_output.pair1.truncated     |   0
 .../minlength/both/your_output.pair2.truncated     |   0
 .../minlength/both/your_output.settings            | 132 ++++++
 .../minlength/both/your_output.singleton.truncated |   0
 .../overlapping/minlength/mate1/info.json          |   6 +
 .../overlapping/minlength/mate1/input_1.fastq      |   4 +
 .../overlapping/minlength/mate1/input_2.fastq      |   4 +
 .../minlength/mate1/your_output.discarded          |   4 +
 .../minlength/mate1/your_output.pair1.truncated    |   0
 .../minlength/mate1/your_output.pair2.truncated    |   0
 .../minlength/mate1/your_output.settings           | 143 ++++++
 .../mate1/your_output.singleton.truncated          |   4 +
 .../overlapping/minlength/mate2/info.json          |   6 +
 .../overlapping/minlength/mate2/input_1.fastq      |   4 +
 .../overlapping/minlength/mate2/input_2.fastq      |   4 +
 .../minlength/mate2/your_output.discarded          |   4 +
 .../minlength/mate2/your_output.pair1.truncated    |   0
 .../minlength/mate2/your_output.pair2.truncated    |   0
 .../minlength/mate2/your_output.settings           | 143 ++++++
 .../mate2/your_output.singleton.truncated          |   4 +
 .../overlapping/trimns/excl_ns/info.json           |   6 +
 .../overlapping/trimns/excl_ns/input_1.fastq       |   4 +
 .../overlapping/trimns/excl_ns/input_2.fastq       |   4 +
 .../trimns/excl_ns/your_output.discarded           |   0
 .../trimns/excl_ns/your_output.pair1.truncated     |   4 +
 .../trimns/excl_ns/your_output.pair2.truncated     |   4 +
 .../trimns/excl_ns/your_output.settings            | 143 ++++++
 .../trimns/excl_ns/your_output.singleton.truncated |   0
 .../overlapping/trimns/incl_ns/info.json           |   6 +
 .../overlapping/trimns/incl_ns/input_1.fastq       |   4 +
 .../overlapping/trimns/incl_ns/input_2.fastq       |   4 +
 .../trimns/incl_ns/your_output.discarded           |   0
 .../trimns/incl_ns/your_output.pair1.truncated     |   4 +
 .../trimns/incl_ns/your_output.pair2.truncated     |   4 +
 .../trimns/incl_ns/your_output.settings            | 136 ++++++
 .../trimns/incl_ns/your_output.singleton.truncated |   0
 .../overlapping/trimqualities/default/info.json    |   6 +
 .../trimqualities/default/input_1.fastq            |   4 +
 .../trimqualities/default/input_2.fastq            |   4 +
 .../trimqualities/default/your_output.discarded    |   0
 .../default/your_output.pair1.truncated            |   4 +
 .../default/your_output.pair2.truncated            |   4 +
 .../trimqualities/default/your_output.settings     | 142 ++++++
 .../default/your_output.singleton.truncated        |   0
 .../overlapping/trimqualities/minq31/info.json     |   6 +
 .../overlapping/trimqualities/minq31/input_1.fastq |   4 +
 .../overlapping/trimqualities/minq31/input_2.fastq |   4 +
 .../trimqualities/minq31/your_output.discarded     |   0
 .../minq31/your_output.pair1.truncated             |   4 +
 .../minq31/your_output.pair2.truncated             |   4 +
 .../trimqualities/minq31/your_output.settings      | 110 +++++
 .../minq31/your_output.singleton.truncated         |   0
 validation/pe/incl_adapter/collapse/info.json      |   6 +
 validation/pe/incl_adapter/collapse/input_1.fastq  |   4 +
 validation/pe/incl_adapter/collapse/input_2.fastq  |   4 +
 .../pe/incl_adapter/collapse/your_output.collapsed |   4 +
 .../collapse/your_output.collapsed.truncated       |   0
 .../pe/incl_adapter/collapse/your_output.discarded |   0
 .../collapse/your_output.pair1.truncated           |   0
 .../collapse/your_output.pair2.truncated           |   0
 .../pe/incl_adapter/collapse/your_output.settings  |  95 ++++
 .../collapse/your_output.singleton.truncated       |   0
 .../pe/incl_adapter/collapse_truncated/info.json   |   6 +
 .../incl_adapter/collapse_truncated/input_1.fastq  |   4 +
 .../incl_adapter/collapse_truncated/input_2.fastq  |   4 +
 .../collapse_truncated/your_output.collapsed       |   0
 .../your_output.collapsed.truncated                |   4 +
 .../collapse_truncated/your_output.discarded       |   0
 .../collapse_truncated/your_output.pair1.truncated |   0
 .../collapse_truncated/your_output.pair2.truncated |   0
 .../collapse_truncated/your_output.settings        |  94 ++++
 .../your_output.singleton.truncated                |   0
 .../combined_output/collapse/info.json             |   6 +
 .../combined_output/collapse/input_1.fastq         |   4 +
 .../combined_output/collapse/input_2.fastq         |   4 +
 .../collapse/your_output.pair1.truncated           |   4 +
 .../collapse/your_output.pair2.truncated           |   4 +
 .../combined_output/collapse/your_output.settings  |  95 ++++
 .../combined_output/collapse_truncated/info.json   |   6 +
 .../collapse_truncated/input_1.fastq               |   4 +
 .../collapse_truncated/input_2.fastq               |   4 +
 .../collapse_truncated/your_output.pair1.truncated |   4 +
 .../collapse_truncated/your_output.pair2.truncated |   4 +
 .../collapse_truncated/your_output.settings        |  94 ++++
 .../combined_output/interleaved/collapse/info.json |   6 +
 .../interleaved/collapse/input_1.fastq             |   4 +
 .../interleaved/collapse/input_2.fastq             |   4 +
 .../collapse/your_output.paired.truncated          |   8 +
 .../interleaved/collapse/your_output.settings      |  95 ++++
 .../interleaved/collapse_truncated/info.json       |   6 +
 .../interleaved/collapse_truncated/input_1.fastq   |   4 +
 .../interleaved/collapse_truncated/input_2.fastq   |   4 +
 .../your_output.paired.truncated                   |   8 +
 .../collapse_truncated/your_output.settings        |  94 ++++
 .../interleaved/keep_both/info.json                |   6 +
 .../interleaved/keep_both/input_1.fastq            |   4 +
 .../interleaved/keep_both/input_2.fastq            |   4 +
 .../keep_both/your_output.paired.truncated         |   8 +
 .../interleaved/keep_both/your_output.settings     |  93 ++++
 .../interleaved/keep_mate1/info.json               |   6 +
 .../interleaved/keep_mate1/input_1.fastq           |   4 +
 .../interleaved/keep_mate1/input_2.fastq           |   4 +
 .../keep_mate1/your_output.paired.truncated        |   8 +
 .../interleaved/keep_mate1/your_output.settings    |  93 ++++
 .../interleaved/keep_mate2/info.json               |   6 +
 .../interleaved/keep_mate2/input_1.fastq           |   4 +
 .../interleaved/keep_mate2/input_2.fastq           |   4 +
 .../keep_mate2/your_output.paired.truncated        |   8 +
 .../interleaved/keep_mate2/your_output.settings    |  93 ++++
 .../interleaved/keep_neither/info.json             |   6 +
 .../interleaved/keep_neither/input_1.fastq         |   4 +
 .../interleaved/keep_neither/input_2.fastq         |   4 +
 .../keep_neither/your_output.paired.truncated      |   8 +
 .../interleaved/keep_neither/your_output.settings  |  92 ++++
 .../combined_output/keep_both/info.json            |   6 +
 .../combined_output/keep_both/input_1.fastq        |   4 +
 .../combined_output/keep_both/input_2.fastq        |   4 +
 .../keep_both/your_output.pair1.truncated          |   4 +
 .../keep_both/your_output.pair2.truncated          |   4 +
 .../combined_output/keep_both/your_output.settings |  93 ++++
 .../combined_output/keep_mate1/info.json           |   6 +
 .../combined_output/keep_mate1/input_1.fastq       |   4 +
 .../combined_output/keep_mate1/input_2.fastq       |   4 +
 .../keep_mate1/your_output.pair1.truncated         |   4 +
 .../keep_mate1/your_output.pair2.truncated         |   4 +
 .../keep_mate1/your_output.settings                |  93 ++++
 .../combined_output/keep_mate2/info.json           |   6 +
 .../combined_output/keep_mate2/input_1.fastq       |   4 +
 .../combined_output/keep_mate2/input_2.fastq       |   4 +
 .../keep_mate2/your_output.pair1.truncated         |   4 +
 .../keep_mate2/your_output.pair2.truncated         |   4 +
 .../keep_mate2/your_output.settings                |  93 ++++
 .../combined_output/keep_neither/info.json         |   6 +
 .../combined_output/keep_neither/input_1.fastq     |   4 +
 .../combined_output/keep_neither/input_2.fastq     |   4 +
 .../keep_neither/your_output.pair1.truncated       |   4 +
 .../keep_neither/your_output.pair2.truncated       |   4 +
 .../keep_neither/your_output.settings              |  92 ++++
 validation/pe/incl_adapter/crlf_newlines/info.json |   6 +
 .../pe/incl_adapter/crlf_newlines/input_1.fastq    |   4 +
 .../pe/incl_adapter/crlf_newlines/input_2.fastq    |   4 +
 .../crlf_newlines/your_output.discarded            |   0
 .../crlf_newlines/your_output.pair1.truncated      |   4 +
 .../crlf_newlines/your_output.pair2.truncated      |   4 +
 .../crlf_newlines/your_output.settings             |  93 ++++
 .../crlf_newlines/your_output.singleton.truncated  |   0
 validation/pe/incl_adapter/defaults/info.json      |   6 +
 validation/pe/incl_adapter/defaults/input_1.fastq  |   4 +
 validation/pe/incl_adapter/defaults/input_2.fastq  |   4 +
 .../pe/incl_adapter/defaults/your_output.discarded |   0
 .../defaults/your_output.pair1.truncated           |   4 +
 .../defaults/your_output.pair2.truncated           |   4 +
 .../pe/incl_adapter/defaults/your_output.settings  |  93 ++++
 .../defaults/your_output.singleton.truncated       |   0
 .../pe/incl_adapter/maxlength/both/info.json       |   6 +
 .../pe/incl_adapter/maxlength/both/input_1.fastq   |   4 +
 .../pe/incl_adapter/maxlength/both/input_2.fastq   |   4 +
 .../maxlength/both/your_output.discarded           |   8 +
 .../maxlength/both/your_output.pair1.truncated     |   0
 .../maxlength/both/your_output.pair2.truncated     |   0
 .../maxlength/both/your_output.settings            |  93 ++++
 .../maxlength/both/your_output.singleton.truncated |   0
 .../pe/incl_adapter/maxlength/mate1/info.json      |   6 +
 .../pe/incl_adapter/maxlength/mate1/input_1.fastq  |   4 +
 .../pe/incl_adapter/maxlength/mate1/input_2.fastq  |   4 +
 .../maxlength/mate1/your_output.discarded          |   4 +
 .../maxlength/mate1/your_output.pair1.truncated    |   0
 .../maxlength/mate1/your_output.pair2.truncated    |   0
 .../maxlength/mate1/your_output.settings           |  93 ++++
 .../mate1/your_output.singleton.truncated          |   4 +
 .../pe/incl_adapter/maxlength/mate2/info.json      |   6 +
 .../pe/incl_adapter/maxlength/mate2/input_1.fastq  |   4 +
 .../pe/incl_adapter/maxlength/mate2/input_2.fastq  |   4 +
 .../maxlength/mate2/your_output.discarded          |   4 +
 .../maxlength/mate2/your_output.pair1.truncated    |   0
 .../maxlength/mate2/your_output.pair2.truncated    |   0
 .../maxlength/mate2/your_output.settings           |  93 ++++
 .../mate2/your_output.singleton.truncated          |   4 +
 .../pe/incl_adapter/minlength/both/info.json       |   6 +
 .../pe/incl_adapter/minlength/both/input_1.fastq   |   4 +
 .../pe/incl_adapter/minlength/both/input_2.fastq   |   4 +
 .../minlength/both/your_output.discarded           |   8 +
 .../minlength/both/your_output.pair1.truncated     |   0
 .../minlength/both/your_output.pair2.truncated     |   0
 .../minlength/both/your_output.settings            |  92 ++++
 .../minlength/both/your_output.singleton.truncated |   0
 .../pe/incl_adapter/minlength/mate1/info.json      |   6 +
 .../pe/incl_adapter/minlength/mate1/input_1.fastq  |   4 +
 .../pe/incl_adapter/minlength/mate1/input_2.fastq  |   4 +
 .../minlength/mate1/your_output.discarded          |   4 +
 .../minlength/mate1/your_output.pair1.truncated    |   0
 .../minlength/mate1/your_output.pair2.truncated    |   0
 .../minlength/mate1/your_output.settings           |  93 ++++
 .../mate1/your_output.singleton.truncated          |   4 +
 .../pe/incl_adapter/minlength/mate2/info.json      |   6 +
 .../pe/incl_adapter/minlength/mate2/input_1.fastq  |   4 +
 .../pe/incl_adapter/minlength/mate2/input_2.fastq  |   4 +
 .../minlength/mate2/your_output.discarded          |   4 +
 .../minlength/mate2/your_output.pair1.truncated    |   0
 .../minlength/mate2/your_output.pair2.truncated    |   0
 .../minlength/mate2/your_output.settings           |  93 ++++
 .../mate2/your_output.singleton.truncated          |   4 +
 validation/pe/incl_adapter/threads/one/info.json   |   6 +
 .../pe/incl_adapter/threads/one/input_1.fastq      |   4 +
 .../pe/incl_adapter/threads/one/input_2.fastq      |   4 +
 .../incl_adapter/threads/one/your_output.discarded |   0
 .../threads/one/your_output.pair1.truncated        |   4 +
 .../threads/one/your_output.pair2.truncated        |   4 +
 .../incl_adapter/threads/one/your_output.settings  |  93 ++++
 .../threads/one/your_output.singleton.truncated    |   0
 validation/pe/incl_adapter/threads/three/info.json |   6 +
 .../pe/incl_adapter/threads/three/input_1.fastq    |   4 +
 .../pe/incl_adapter/threads/three/input_2.fastq    |   4 +
 .../threads/three/your_output.discarded            |   0
 .../threads/three/your_output.pair1.truncated      |   4 +
 .../threads/three/your_output.pair2.truncated      |   4 +
 .../threads/three/your_output.settings             |  93 ++++
 .../threads/three/your_output.singleton.truncated  |   0
 validation/pe/incl_adapter/threads/two/info.json   |   6 +
 .../pe/incl_adapter/threads/two/input_1.fastq      |   4 +
 .../pe/incl_adapter/threads/two/input_2.fastq      |   4 +
 .../incl_adapter/threads/two/your_output.discarded |   0
 .../threads/two/your_output.pair1.truncated        |   4 +
 .../threads/two/your_output.pair2.truncated        |   4 +
 .../incl_adapter/threads/two/your_output.settings  |  93 ++++
 .../threads/two/your_output.singleton.truncated    |   0
 .../pe/incl_adapter/trimns/excl_ns/info.json       |   6 +
 .../pe/incl_adapter/trimns/excl_ns/input_1.fastq   |   4 +
 .../pe/incl_adapter/trimns/excl_ns/input_2.fastq   |   4 +
 .../trimns/excl_ns/your_output.discarded           |   0
 .../trimns/excl_ns/your_output.pair1.truncated     |   4 +
 .../trimns/excl_ns/your_output.pair2.truncated     |   4 +
 .../trimns/excl_ns/your_output.settings            |  93 ++++
 .../trimns/excl_ns/your_output.singleton.truncated |   0
 .../pe/incl_adapter/trimns/incl_ns/info.json       |   6 +
 .../pe/incl_adapter/trimns/incl_ns/input_1.fastq   |   4 +
 .../pe/incl_adapter/trimns/incl_ns/input_2.fastq   |   4 +
 .../trimns/incl_ns/your_output.discarded           |   0
 .../trimns/incl_ns/your_output.pair1.truncated     |   4 +
 .../trimns/incl_ns/your_output.pair2.truncated     |   4 +
 .../trimns/incl_ns/your_output.settings            |  92 ++++
 .../trimns/incl_ns/your_output.singleton.truncated |   0
 .../incl_adapter/trimqualities/default/info.json   |   6 +
 .../trimqualities/default/input_1.fastq            |   4 +
 .../trimqualities/default/input_2.fastq            |   4 +
 .../trimqualities/default/your_output.discarded    |   0
 .../default/your_output.pair1.truncated            |   4 +
 .../default/your_output.pair2.truncated            |   4 +
 .../trimqualities/default/your_output.settings     |  93 ++++
 .../default/your_output.singleton.truncated        |   0
 .../pe/incl_adapter/trimqualities/minq35/info.json |   6 +
 .../trimqualities/minq35/input_1.fastq             |   4 +
 .../trimqualities/minq35/input_2.fastq             |   4 +
 .../trimqualities/minq35/your_output.discarded     |   0
 .../minq35/your_output.pair1.truncated             |   4 +
 .../minq35/your_output.pair2.truncated             |   4 +
 .../trimqualities/minq35/your_output.settings      |  92 ++++
 .../minq35/your_output.singleton.truncated         |   0
 validation/pe/only_adapter/collapse/info.json      |   6 +
 validation/pe/only_adapter/collapse/input_1.fastq  |   4 +
 validation/pe/only_adapter/collapse/input_2.fastq  |   4 +
 .../pe/only_adapter/collapse/your_output.collapsed |   0
 .../collapse/your_output.collapsed.truncated       |   0
 .../pe/only_adapter/collapse/your_output.discarded |   4 +
 .../collapse/your_output.pair1.truncated           |   0
 .../collapse/your_output.pair2.truncated           |   0
 .../pe/only_adapter/collapse/your_output.settings  |  45 ++
 .../collapse/your_output.singleton.truncated       |   0
 .../combined_output/collapse/info.json             |   6 +
 .../combined_output/collapse/input_1.fastq         |   4 +
 .../combined_output/collapse/input_2.fastq         |   4 +
 .../collapse/your_output.pair1.truncated           |   4 +
 .../collapse/your_output.pair2.truncated           |   4 +
 .../combined_output/collapse/your_output.settings  |  45 ++
 .../combined_output/defaults/info.json             |   6 +
 .../combined_output/defaults/input_1.fastq         |   4 +
 .../combined_output/defaults/input_2.fastq         |   4 +
 .../defaults/your_output.pair1.truncated           |   4 +
 .../defaults/your_output.pair2.truncated           |   4 +
 .../combined_output/defaults/your_output.settings  |  43 ++
 validation/pe/only_adapter/crlf_newlines/info.json |   6 +
 .../pe/only_adapter/crlf_newlines/input_1.fastq    |   4 +
 .../pe/only_adapter/crlf_newlines/input_2.fastq    |   4 +
 .../crlf_newlines/your_output.discarded            |   8 +
 .../crlf_newlines/your_output.pair1.truncated      |   0
 .../crlf_newlines/your_output.pair2.truncated      |   0
 .../crlf_newlines/your_output.settings             |  43 ++
 .../crlf_newlines/your_output.singleton.truncated  |   0
 validation/pe/only_adapter/defaults/info.json      |   6 +
 validation/pe/only_adapter/defaults/input_1.fastq  |   4 +
 validation/pe/only_adapter/defaults/input_2.fastq  |   4 +
 .../pe/only_adapter/defaults/your_output.discarded |   8 +
 .../defaults/your_output.pair1.truncated           |   0
 .../defaults/your_output.pair2.truncated           |   0
 .../pe/only_adapter/defaults/your_output.settings  |  43 ++
 .../defaults/your_output.singleton.truncated       |   0
 validation/pe/only_adapter/minlength/info.json     |   6 +
 validation/pe/only_adapter/minlength/input_1.fastq |   4 +
 validation/pe/only_adapter/minlength/input_2.fastq |   4 +
 .../only_adapter/minlength/your_output.discarded   |   0
 .../minlength/your_output.pair1.truncated          |   4 +
 .../minlength/your_output.pair2.truncated          |   4 +
 .../pe/only_adapter/minlength/your_output.settings |  43 ++
 .../minlength/your_output.singleton.truncated      |   0
 validation/run                                     | 498 +++++++++++++++++++++
 validation/se/excl_adapter/collapse/info.json      |   6 +
 validation/se/excl_adapter/collapse/input_1.fastq  |   4 +
 .../se/excl_adapter/collapse/your_output.collapsed |   0
 .../collapse/your_output.collapsed.truncated       |   0
 .../se/excl_adapter/collapse/your_output.discarded |   0
 .../se/excl_adapter/collapse/your_output.settings  | 144 ++++++
 .../se/excl_adapter/collapse/your_output.truncated |   4 +
 .../combined_output/collapse/info.json             |   6 +
 .../combined_output/collapse/input_1.fastq         |   4 +
 .../combined_output/collapse/your_output.settings  | 144 ++++++
 .../combined_output/collapse/your_output.truncated |   4 +
 .../combined_output/discarded/info.json            |   6 +
 .../combined_output/discarded/input_1.fastq        |   4 +
 .../combined_output/discarded/your_output.settings | 142 ++++++
 .../discarded/your_output.truncated                |   4 +
 .../combined_output/retained/info.json             |   6 +
 .../combined_output/retained/input_1.fastq         |   4 +
 .../combined_output/retained/your_output.settings  | 142 ++++++
 .../combined_output/retained/your_output.truncated |   4 +
 validation/se/excl_adapter/crlf_newlines/info.json |   6 +
 .../se/excl_adapter/crlf_newlines/input_1.fastq    |   4 +
 .../crlf_newlines/your_output.discarded            |   0
 .../crlf_newlines/your_output.settings             | 142 ++++++
 .../crlf_newlines/your_output.truncated            |   4 +
 validation/se/excl_adapter/defaults/info.json      |   6 +
 validation/se/excl_adapter/defaults/input_1.fastq  |   4 +
 .../se/excl_adapter/defaults/your_output.discarded |   0
 .../se/excl_adapter/defaults/your_output.settings  | 142 ++++++
 .../se/excl_adapter/defaults/your_output.truncated |   4 +
 validation/se/excl_adapter/maxlength/info.json     |   6 +
 validation/se/excl_adapter/maxlength/input_1.fastq |   4 +
 .../excl_adapter/maxlength/your_output.discarded   |   4 +
 .../se/excl_adapter/maxlength/your_output.settings | 142 ++++++
 .../excl_adapter/maxlength/your_output.truncated   |   0
 validation/se/excl_adapter/minlength/info.json     |   6 +
 validation/se/excl_adapter/minlength/input_1.fastq |   4 +
 .../excl_adapter/minlength/your_output.discarded   |   4 +
 .../se/excl_adapter/minlength/your_output.settings | 142 ++++++
 .../excl_adapter/minlength/your_output.truncated   |   0
 .../se/excl_adapter/trimns/excl_ns/info.json       |   6 +
 .../se/excl_adapter/trimns/excl_ns/input_1.fastq   |   4 +
 .../trimns/excl_ns/your_output.discarded           |   0
 .../trimns/excl_ns/your_output.settings            | 142 ++++++
 .../trimns/excl_ns/your_output.truncated           |   4 +
 .../se/excl_adapter/trimns/incl_ns/info.json       |   6 +
 .../se/excl_adapter/trimns/incl_ns/input_1.fastq   |   4 +
 .../trimns/incl_ns/your_output.discarded           |   0
 .../trimns/incl_ns/your_output.settings            | 136 ++++++
 .../trimns/incl_ns/your_output.truncated           |   4 +
 .../excl_adapter/trimqualities/default/info.json   |   6 +
 .../trimqualities/default/input_1.fastq            |   4 +
 .../trimqualities/default/your_output.discarded    |   0
 .../trimqualities/default/your_output.settings     | 141 ++++++
 .../trimqualities/default/your_output.truncated    |   4 +
 .../se/excl_adapter/trimqualities/minq31/info.json |   6 +
 .../trimqualities/minq31/input_1.fastq             |   4 +
 .../trimqualities/minq31/your_output.discarded     |   0
 .../trimqualities/minq31/your_output.settings      | 109 +++++
 .../trimqualities/minq31/your_output.truncated     |   4 +
 validation/se/incl_adapter/collapse/info.json      |   6 +
 validation/se/incl_adapter/collapse/input_1.fastq  |   4 +
 .../se/incl_adapter/collapse/your_output.collapsed |   4 +
 .../collapse/your_output.collapsed.truncated       |   0
 .../se/incl_adapter/collapse/your_output.discarded |   0
 .../se/incl_adapter/collapse/your_output.settings  |  94 ++++
 .../se/incl_adapter/collapse/your_output.truncated |   0
 .../se/incl_adapter/collapse_truncated/info.json   |   6 +
 .../incl_adapter/collapse_truncated/input_1.fastq  |   4 +
 .../collapse_truncated/your_output.collapsed       |   0
 .../your_output.collapsed.truncated                |   4 +
 .../collapse_truncated/your_output.discarded       |   0
 .../collapse_truncated/your_output.settings        |  93 ++++
 .../collapse_truncated/your_output.truncated       |   0
 .../combined_output/collapse/info.json             |   6 +
 .../combined_output/collapse/input_1.fastq         |   4 +
 .../combined_output/collapse/your_output.settings  |  94 ++++
 .../combined_output/collapse/your_output.truncated |   4 +
 .../combined_output/collapse_truncated/info.json   |   6 +
 .../collapse_truncated/input_1.fastq               |   4 +
 .../collapse_truncated/your_output.settings        |  93 ++++
 .../collapse_truncated/your_output.truncated       |   4 +
 .../combined_output/discarded/info.json            |   6 +
 .../combined_output/discarded/input_1.fastq        |   4 +
 .../combined_output/discarded/your_output.settings |  92 ++++
 .../discarded/your_output.truncated                |   4 +
 .../combined_output/retained/info.json             |   6 +
 .../combined_output/retained/input_1.fastq         |   4 +
 .../combined_output/retained/your_output.settings  |  92 ++++
 .../combined_output/retained/your_output.truncated |   4 +
 validation/se/incl_adapter/crlf_newlines/info.json |   6 +
 .../se/incl_adapter/crlf_newlines/input_1.fastq    |   4 +
 .../crlf_newlines/your_output.discarded            |   0
 .../crlf_newlines/your_output.settings             |  92 ++++
 .../crlf_newlines/your_output.truncated            |   4 +
 validation/se/incl_adapter/defaults/info.json      |   6 +
 validation/se/incl_adapter/defaults/input_1.fastq  |   4 +
 .../se/incl_adapter/defaults/your_output.discarded |   0
 .../se/incl_adapter/defaults/your_output.settings  |  92 ++++
 .../se/incl_adapter/defaults/your_output.truncated |   4 +
 validation/se/incl_adapter/maxlength/info.json     |   6 +
 validation/se/incl_adapter/maxlength/input_1.fastq |   4 +
 .../incl_adapter/maxlength/your_output.discarded   |   4 +
 .../se/incl_adapter/maxlength/your_output.settings |  92 ++++
 .../incl_adapter/maxlength/your_output.truncated   |   0
 validation/se/incl_adapter/minlength/info.json     |   6 +
 validation/se/incl_adapter/minlength/input_1.fastq |   4 +
 .../incl_adapter/minlength/your_output.discarded   |   4 +
 .../se/incl_adapter/minlength/your_output.settings |  92 ++++
 .../incl_adapter/minlength/your_output.truncated   |   0
 validation/se/incl_adapter/threads/one/info.json   |   6 +
 .../se/incl_adapter/threads/one/input_1.fastq      |   4 +
 .../incl_adapter/threads/one/your_output.discarded |   0
 .../incl_adapter/threads/one/your_output.settings  |  92 ++++
 .../incl_adapter/threads/one/your_output.truncated |   4 +
 validation/se/incl_adapter/threads/three/info.json |   6 +
 .../se/incl_adapter/threads/three/input_1.fastq    |   4 +
 .../threads/three/your_output.discarded            |   0
 .../threads/three/your_output.settings             |  92 ++++
 .../threads/three/your_output.truncated            |   4 +
 validation/se/incl_adapter/threads/two/info.json   |   6 +
 .../se/incl_adapter/threads/two/input_1.fastq      |   4 +
 .../incl_adapter/threads/two/your_output.discarded |   0
 .../incl_adapter/threads/two/your_output.settings  |  92 ++++
 .../incl_adapter/threads/two/your_output.truncated |   4 +
 .../se/incl_adapter/trimns/excl_ns/info.json       |   6 +
 .../se/incl_adapter/trimns/excl_ns/input_1.fastq   |   4 +
 .../trimns/excl_ns/your_output.discarded           |   0
 .../trimns/excl_ns/your_output.settings            |  92 ++++
 .../trimns/excl_ns/your_output.truncated           |   4 +
 .../se/incl_adapter/trimns/incl_ns/info.json       |   6 +
 .../se/incl_adapter/trimns/incl_ns/input_1.fastq   |   4 +
 .../trimns/incl_ns/your_output.discarded           |   0
 .../trimns/incl_ns/your_output.settings            |  86 ++++
 .../trimns/incl_ns/your_output.truncated           |   4 +
 .../incl_adapter/trimqualities/default/info.json   |   6 +
 .../trimqualities/default/input_1.fastq            |   4 +
 .../trimqualities/default/your_output.discarded    |   0
 .../trimqualities/default/your_output.settings     |  92 ++++
 .../trimqualities/default/your_output.truncated    |   4 +
 .../se/incl_adapter/trimqualities/minq36/info.json |   6 +
 .../trimqualities/minq36/input_1.fastq             |   4 +
 .../trimqualities/minq36/your_output.discarded     |   0
 .../trimqualities/minq36/your_output.settings      |  87 ++++
 .../trimqualities/minq36/your_output.truncated     |   4 +
 validation/se/only_adapter/collapse/info.json      |   6 +
 validation/se/only_adapter/collapse/input_1.fastq  |   4 +
 .../se/only_adapter/collapse/your_output.collapsed |   0
 .../collapse/your_output.collapsed.truncated       |   0
 .../se/only_adapter/collapse/your_output.discarded |   4 +
 .../se/only_adapter/collapse/your_output.settings  |  44 ++
 .../se/only_adapter/collapse/your_output.truncated |   0
 .../combined_output/discarded/info.json            |   6 +
 .../combined_output/discarded/input_1.fastq        |   4 +
 .../combined_output/discarded/your_output.settings |  42 ++
 .../discarded/your_output.truncated                |   4 +
 .../combined_output/retained/info.json             |   6 +
 .../combined_output/retained/input_1.fastq         |   4 +
 .../combined_output/retained/your_output.settings  |  42 ++
 .../combined_output/retained/your_output.truncated |   4 +
 validation/se/only_adapter/crlf_newlines/info.json |   6 +
 .../se/only_adapter/crlf_newlines/input_1.fastq    |   4 +
 .../crlf_newlines/your_output.discarded            |   4 +
 .../crlf_newlines/your_output.settings             |  42 ++
 .../crlf_newlines/your_output.truncated            |   0
 validation/se/only_adapter/defaults/info.json      |   6 +
 validation/se/only_adapter/defaults/input_1.fastq  |   4 +
 .../se/only_adapter/defaults/your_output.discarded |   4 +
 .../se/only_adapter/defaults/your_output.settings  |  42 ++
 .../se/only_adapter/defaults/your_output.truncated |   0
 validation/se/only_adapter/minlength/info.json     |   6 +
 validation/se/only_adapter/minlength/input_1.fastq |   4 +
 .../only_adapter/minlength/your_output.discarded   |   0
 .../se/only_adapter/minlength/your_output.settings |  42 ++
 .../only_adapter/minlength/your_output.truncated   |   4 +
 1318 files changed, 32581 insertions(+), 1406 deletions(-)

diff --git a/.gitignore b/.gitignore
index b8eb670..3670538 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 build
-gtest
+misc
+googletest-release*
 *~
diff --git a/AdapterRemoval.pod b/AdapterRemoval.pod
index 5056240..0c01b55 100644
--- a/AdapterRemoval.pod
+++ b/AdapterRemoval.pod
@@ -6,7 +6,7 @@ AdapterRemoval - Remove adapters from sequences in either single end or paired e
 
 =head1 SYNOPSIS
 
-B<AdapterRemoval> --file1 filename [--file2 filename] [--basename filename] [--identify-adapters] [--trimns] [--maxns max] [--trimqualities] [--minquality minimum] [--collapse] [--version] [--mm mismatchrate] [--minlength len] [--minalignmentlength len] [--qualitybase base] [--qualitybase-output base] [--shift num] [--adapter1 sequence] [--adapter2 sequence] [--adapter-list filename] [--barcode-list filename] [--barcode-mm num] [--barcode-mm-r1 num] [--barcode-mm-r2 num] [--output1 filen [...]
+B<AdapterRemoval> --file1 filename [--file2 filename] [--interleaved] [--interleaved-input] [--interleaved-output] [--combined-output] [--basename filename] [--identify-adapters] [--trimns] [--maxns max] [--trimqualities] [--minquality minimum] [--collapse] [--version] [--mm mismatchrate] [--minlength len] [--minalignmentlength len] [--qualitybase base] [--qualitybase-output base] [--shift num] [--adapter1 sequence] [--adapter2 sequence] [--adapter-list filename] [--barcode-list filename [...]
 
 
 =head1 DESCRIPTION
@@ -44,6 +44,9 @@ If set, input is expected to be a single FASTQ file specified using I<--file1>,
 
 If set, and AdapterRemoval is processing paired-end reads, retained pairs of reads are written to a single FASTQ file, one pair after each otehr (read1/1, read1/2, read2/1, read2/2, etc.). By default, this file is named I<basename.paired.truncated>, but this may be changed using the I<--output1> option.
 
+=item B<--combined-output>
+
+If set, all reads are written to the same file(s), specified by --output1 and --output2. Each read is futher marked by either a "PASSED" or a "FAILED" flag, and any read that has been FAILED (including the mate for collapsed reads) are replaced with a single 'N' with Phred score 0. This option can be combined with --interleaved / --interleaved-output to write all reads to a single output file specified with --output1.
 
 =item B<--basename> I<filename>
 
@@ -164,6 +167,10 @@ The maximum number of mismatches allowed in the mate 1 barcode; if not set, this
 
 The maximum number of mismatches allowed in the mate 1 barcode; if not set, this number is equal to the value of --barcode-mm. This number cannot exceed the value specified for --barcode-mm.
 
+=item B<--demultiplex-only> I<num>
+
+Only carry out demultiplexing, using the list of barcodes supplied using --barcode-list. Note that trimming and filtering options do not apply to this mode of operation.
+
 =item B<--output1> I<file>
 
 =item B<--output2> I<file>
@@ -297,7 +304,7 @@ It is possible to trim data that contains multiple adapter pairs, by providing a
     GTTCATACGACGACGACCAATGGCACACTTATCCGGTACTTGCGTTTCAATGCGCATGCCCCAT    TAAGAAACTCGGAGTTTGGCCTGCGAGGTAGCTTGGGTGTTATGAAGAACGGCATGCG
     CCATGCCCCGAAGATTCCTATACCCTTAAGGTCGCAATTGTTCGAGTAAGCTGTACGCGCCCAT    GTTGCATTGACCCGAAGGGCTCGATGTTTAGGGAGGTCAGAAGTTGAGCGGGTTCAAA
 
-This table is then specified using the --adapter-list option:
+This table is then specified using the I<--adapter-list> option:
 
     $ AdapterRemoval --file1 reads_1.fq --file2 reads_2.fq --basename output_multi --trimns --trimqualities --collapse --adapter-list adapters.txt
 
@@ -311,7 +318,7 @@ Note that in the case of paired-end adapters, AdapterRemoval considers only the
 
 If we did not know the adapter sequences for paired-end reads, AdapterRemoval may be used to generate a consensus adapter sequence based on fragments identified as belonging to the adapters through pairwise alignments of the reads, provided that the data set contains only a single adpater sequence (not counting differences in index sequences).
 
-In the following example, the identified adapters corresponds to the default adapter sequences with a poly-A tail resulting from sequencing past the end of the insert + templates. It is not nessesary to specify this tail when using the --adapter1 or --adapter2 command-line options. The characters shown under each of the consensus sequences represented the phred-encoded fraction of bases identical to the consensus base, with adapter 1 containing the index CACCTA:
+In the following example, the identified adapters corresponds to the default adapter sequences with a poly-A tail resulting from sequencing past the end of the insert + templates. It is not nessesary to specify this tail when using the I<--adapter1> or I<--adapter2> command-line options. The characters shown under each of the consensus sequences represented the phred-encoded fraction of bases identical to the consensus base, with adapter 1 containing the index CACCTA:
 
     $ AdapterRemoval --identify-adapters --file1 reads_1.fq --file2 reads_2.fq
 
@@ -344,7 +351,7 @@ In the following example, the identified adapters corresponds to the default ada
 
 No files are generated from running the adapter identification step.
 
-The consensus sequences inferred are compared to those specified using the --adapter1 and --adapter2 command-line options, or with the default values for these if no values have been given (as in this case). Pipes (|) indicate matches between the provided sequences and the consensus sequence, and "*" indicate the presence of unspecified bases (Ns).
+The consensus sequences inferred are compared to those specified using the I<--adapter1> and I<--adapter2> command-line options, or with the default values for these if no values have been given (as in this case). Pipes (|) indicate matches between the provided sequences and the consensus sequence, and "*" indicate the presence of unspecified bases (Ns).
 
 
 
@@ -361,11 +368,11 @@ For example, a table of barcodes from a double-indexed run might be as follows (
     sample_2 ATGGATT ATAGTGA
     sample_7 CAAAACT TCGCTGC
 
-In the case of single-read reads, only the first two columns are required. AdapterRemoval is invoked with the --barcode-list option, specifying the path to this table:
+In the case of single-read reads, only the first two columns are required. AdapterRemoval is invoked with the I<--barcode-list> option, specifying the path to this table:
 
     $ AdapterRemoval --file1 demux_1.fq --file2 demux_2.fq --basename output_dumux --barcode-list barcodes.txt
 
-This generates a set of output files for each sample specified in the barcode table, using the basename (--basename) as the prefix, followed by a dot and the sample name, followed by a dot and the default name for a given file type. For example, the output files for sample_2 would be
+This generates a set of output files for each sample specified in the barcode table, using the basename (I<--basename>) as the prefix, followed by a dot and the sample name, followed by a dot and the default name for a given file type. For example, the output files for sample_2 would be
 
     output_demux.sample_2.discarded
     output_demux.sample_2.pair1.truncated
@@ -375,12 +382,17 @@ This generates a set of output files for each sample specified in the barcode ta
 
 The settings files generated for each sample summarizes the reads for that sample only; in addition, a basename.settings file is generated which summarizes the number and proportion of reads identified as belonging to each sample.
 
-The maximum number of mismatches allowed when comparing barocdes is controlled using the options --barcode-mm, --barcode-mm-r1, and --barcode-mm-r2, which specify the maximum number of mismatches total, and the maximum number of mismatches for the mate 1 and mate 2 barcodes respectively. Thus, if mm_1(i) and mm_2(i) represents the number of mismatches observed for barcode-pair i for a given pair of reads, these options require that
+The maximum number of mismatches allowed when comparing barocdes is controlled using the options I<--barcode-mmI>, I<--barcode-mm-r1>, and I<--barcode-mm-r2>, which specify the maximum number of mismatches total, and the maximum number of mismatches for the mate 1 and mate 2 barcodes respectively. Thus, if mm_1(i) and mm_2(i) represents the number of mismatches observed for barcode-pair i for a given pair of reads, these options require that
 
    1. mm_1(i) <= --barcode-mm-r1
    2. mm_2(i) <= --barcode-mm-r2
    3. mm_1(i) + mm_2(i) <= --barcode-mm
 
+As of version 2.2, AdapterRemoval can furthermore be used to demultiplex reads without carrying out other forms of read trimming. This is accomplished by specifying the I<--demultiplex-only> option:
+
+    $ AdapterRemoval --file1 demux_1.fq --file2 demux_2.fq --basename output_only_demux --barcode-list barcodes.txt --demultiplex-only
+
+Trimming and filtering related options to not apply to this mode ("TRIMMING SETTINGS" when viewing 'AdapterRemoval --help'), but compression (I<--gzip>, I<--bzip2>), multi-threading (I<--threads>), interleaving (I<--interleaved>, etc.) and other such options may be used in conjunction with --demultiplex-only.
 
 
 =head1 EXIT STATUS
diff --git a/CHANGES.md b/CHANGES.md
index 61eacf5..b35c8b5 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,4 +1,35 @@
-# Changelog
+### Version 2.2.0 - 2016-10-27
+
+  * AdapterRemoval now requires a C++11 compliant compiler; furthermore,
+    multithreading is no longer an optional feature, as this is now
+    implemented using the C++11 instead of directly calling pthreads.
+  * Add explicit message not to use the results after failed runs.
+  * Minor changes to .settings: Adapter numbers now 1-based; the 'Number of
+    reads with adapters' is changed to 'Number of read pairs with adapters'
+    when trimming PE reads; the 'Average read length of trimmed reads' is
+    changed to 'Average read length of retained reads' for clarity.
+  * Dropped the undocumented 'poor' classification for alignments; for
+    statistical purposes, reads are either counted as aligned or not aligned.
+    This ony changes how results are presented in the .settings files.
+  * Rework selection of nucleotides at overlapping positions with the same
+    quality, in order to prevent potential data-races during tie-breaking,
+    when running in multi-threaded mode.
+  * Added support for reading FASTQ files using Windows-style newlines (\r\n).
+  * AdapterRemoval will not print a warning to STDERR if the same command-line
+    option is specified multiple times.
+  * Reworked handling of barcodes to avoid unnecessary memory allocations,
+    which would cause problems when using long barcodes.
+  * Added support for combining output files; this is enabled using the
+    --combined-output option, and ensures that all reads are written to the
+    same file, or pair of files (for non-interleaved PE reads). The sequence
+    of reads that fail are replaced with a single 'N' with quality score 0.
+  * Fixed bug in the counting of singleton reads used in '.settings' files.
+  * Fixed mis-placement of underscore when pretty printing adapter sequences
+    that included barcodes.
+  * Fixed misprinting of mate 2 adapter sequences in the .settings file;
+    these would be printed in the reverse complemented orientation, relative
+    to how they were specified on the command-line.
+
 
 ### Version 2.1.7 - 2016-03-11
 
diff --git a/Makefile b/Makefile
index 1d70a74..2418e3f 100644
--- a/Makefile
+++ b/Makefile
@@ -6,52 +6,48 @@
 PREFIX := /usr/local
 
 # Default compilation flags
-CXXFLAGS := -O3 -ansi -pedantic -Wall -Wextra
-CXXFLAGS := ${CXXFLAGS} -Wcast-align -Wcast-qual -Wctor-dtor-privacy \
-	-Wdisabled-optimization -Wformat=2 -Winit-self -Wold-style-cast \
-	-Woverloaded-virtual -Wredundant-decls -Wsign-promo -Wstrict-overflow=5 \
-	-Wswitch-default -Wundef -Weffc++
+CXXFLAGS := ${CXXFLAGS} -std=c++11 -O3
 
 ## Optional features; comment out or set to value other than 'yes' to disable
 
 # Enable reading writing of gzip compressed files using libz.
-ENABLE_GZIP_SUPPORT := yes
+GZIP_SUPPORT := yes
 
 # Enable reading writing of bzip2 compressed files using libbz2.
-ENABLE_BZIP2_SUPPORT := yes
-
-# Enable multi-threading support using pthreads.
-ENABLE_PTHREAD_SUPPORT := yes
+BZIP2_SUPPORT := yes
 
 # Hide individual commands during build; only shows summaries instead.
-ENABLE_QUIET_BUILD := yes
+QUIET_BUILD := yes
 
 # Use of colored output during build
-ENABLE_COLOR_BUILD := yes
+COLOR_BUILD := yes
+
+# Debug build; adds warnings and debugging symbols
+DEBUG_BUILD := no
 
 
 ###############################################################################
 # Makefile internals. Normally you do not need to touch these.
 
 # Libraries required by AdapterRemoval
-LIBRARIES :=
+LIBRARIES := -pthread
 
 # Build directory; modified depending on build options
 BDIR     := build/main
 
 
-ifeq ($(strip ${ENABLE_QUIET_BUILD}),yes)
+ifeq ($(strip ${QUIET_BUILD}),yes)
 QUIET := @
 endif
 
-ifeq ($(strip ${ENABLE_COLOR_BUILD}),yes)
+ifeq ($(strip ${COLOR_BUILD}),yes)
 COLOR_YELLOW := "\033[0;33m"
 COLOR_GREEN := "\033[0;32m"
 COLOR_CYAN := "\033[0;36m"
 COLOR_END := "\033[0m"
 endif
 
-ifeq ($(strip ${ENABLE_GZIP_SUPPORT}),yes)
+ifeq ($(strip ${GZIP_SUPPORT}),yes)
 $(info Building AdapterRemoval with gzip support: yes)
 CXXFLAGS := ${CXXFLAGS} -DAR_GZIP_SUPPORT
 LIBRARIES := ${LIBRARIES} -lz
@@ -60,7 +56,7 @@ else
 $(info Building AdapterRemoval with gzip support: no)
 endif
 
-ifeq ($(strip ${ENABLE_BZIP2_SUPPORT}),yes)
+ifeq ($(strip ${BZIP2_SUPPORT}),yes)
 $(info Building AdapterRemoval with bzip2 support: yes)
 CXXFLAGS := ${CXXFLAGS} -DAR_BZIP2_SUPPORT
 LIBRARIES := ${LIBRARIES} -lbz2
@@ -69,16 +65,16 @@ else
 $(info Building AdapterRemoval with bzip2 support: no)
 endif
 
-ifeq ($(strip ${ENABLE_PTHREAD_SUPPORT}),yes)
-$(info Building AdapterRemoval with pthreads support: yes)
-CXXFLAGS := ${CXXFLAGS} -DAR_PTHREAD_SUPPORT
-LIBRARIES := ${LIBRARIES} -lpthread
-BDIR := ${BDIR}_pthreads
+ifeq ($(strip ${DEBUG_BUILD}), yes)
+$(info Building AdapterRemoval with debug information: yes)
+CXXFLAGS := ${CXXFLAGS} -g -pedantic -Wall -Wextra -Wcast-align -Wcast-qual \
+	-Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self \
+	-Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wsign-promo \
+	-Wstrict-overflow=2 -Wswitch-default -Wundef -Weffc++ -Wdeprecated
 else
-$(info Building AdapterRemoval with pthreads support: no)
+$(info Building AdapterRemoval with debug information: no)
 endif
 
-
 PROG     := AdapterRemoval
 LIBNAME  := libadapterremoval
 LIBOBJS  := $(BDIR)/adapterset.o \
@@ -92,23 +88,27 @@ LIBOBJS  := $(BDIR)/adapterset.o \
             $(BDIR)/linereader.o \
             $(BDIR)/main_adapter_id.o \
             $(BDIR)/main_adapter_rm.o \
+            $(BDIR)/main_demultiplex.o \
             $(BDIR)/scheduler.o \
             $(BDIR)/strutils.o \
             $(BDIR)/threads.o \
             $(BDIR)/timer.o \
+            $(BDIR)/trimmed_reads.o \
             $(BDIR)/userconfig.o
 OBJS     := ${LIBOBJS} $(BDIR)/main.o
 DFILES   := $(OBJS:.o=.deps)
 
 
-.PHONY: all install clean test clean_tests static
+.PHONY: all install clean test clean_tests static validate validation
 
 all: build/$(PROG) build/$(PROG).1
 
+everything: all static test validation
+
 # Clean
 clean: clean_tests
 	@echo $(COLOR_GREEN)"Cleaning ..."$(COLOR_END)
-	$(QUIET) rm -f build/$(PROG) build/$(PROG).1
+	$(QUIET) rm -f build/$(PROG) build/$(PROG).1 build/$(LIBNAME).a
 	$(QUIET) rm -rvf $(BDIR)
 
 # Install
@@ -140,13 +140,13 @@ static: build/$(LIBNAME).a
 $(BDIR)/%.o: src/%.cc
 	@echo $(COLOR_CYAN)"Building '$@' from '$<'"$(COLOR_END)
 	$(QUIET) mkdir -p $(BDIR)
-	$(QUIET) $(CXX) $(CXXFLAGS) -c -o $@ $<
+	$(QUIET) $(CXX) $(CXXFLAGS) -pthread -c -o $@ $<
 	$(QUIET) $(CXX) $(CXXFLAGS) -w -MM -MT $@ -MF $(@:.o=.deps) $<
 
 # Executable
 build/$(PROG): $(OBJS)
 	@echo $(COLOR_GREEN)"Linking executable '$@'"$(COLOR_END)
-	$(QUIET) $(CXX) $(CXXFLAGS) $^ ${LIBRARIES} -o $@
+	$(QUIET) $(CXX) $(CXXFLAGS) ${LDFLAGS} $^ ${LIBRARIES} -o $@
 
 # Static library
 build/$(LIBNAME).a: $(LIBOBJS)
@@ -180,7 +180,7 @@ TEST_DEPS := $(TEST_OBJS:.o=.deps)
 
 GTEST_DIR := googletest-release-1.7.0
 GTEST_OBJS := $(TEST_DIR)/gtest-all.o $(TEST_DIR)/gtest_main.o
-GTEST_LIB :=$(TEST_DIR)/libgtest.a
+GTEST_LIB := $(TEST_DIR)/libgtest.a
 
 TEST_CXXFLAGS := -isystem $(GTEST_DIR)/include -I$(GTEST_DIR) -Isrc -DAR_TEST_BUILD
 GTEST_CXXFLAGS := $(TEST_CXXFLAGS)
@@ -194,8 +194,8 @@ clean_tests:
 	$(QUIET) rm -rvf $(TEST_DIR)
 
 $(TEST_DIR)/main: $(GTEST_LIB) $(TEST_OBJS)
-	@echo $(COLOR_GREEN)"Linking executable $@\033[0m"$(COLOR_END)
-	$(QUIET) $(CXX) $(CXXFLAGS) -pthread $^ -o $@
+	@echo $(COLOR_GREEN)"Linking executable $@"$(COLOR_END)
+	$(QUIET) $(CXX) $(CXXFLAGS) ${LIBRARIES} $^ -o $@
 
 $(TEST_DIR)/libgtest.a: $(GTEST_OBJS)
 	@echo $(COLOR_GREEN)"Linking GTest library '$@'"$(COLOR_END)
@@ -203,20 +203,20 @@ $(TEST_DIR)/libgtest.a: $(GTEST_OBJS)
 
 $(TEST_DIR)/%.o: tests/%.cc
 	@echo $(COLOR_CYAN)"Building $@ from $<"$(COLOR_END)
-	mkdir -p $(TEST_DIR)
+	$(QUIET) mkdir -p $(TEST_DIR)
 	$(QUIET) $(CXX) $(CXXFLAGS) $(TEST_CXXFLAGS) -c -o $@ $<
 	$(QUIET) $(CXX) $(CXXFLAGS) $(TEST_CXXFLAGS) -w -MM -MT $@ -MF $(@:.o=.deps) $<
 
 $(TEST_DIR)/%.o: src/%.cc
 	@echo $(COLOR_CYAN)"Building $@ from $<"$(COLOR_END)
-	mkdir -p $(TEST_DIR)
+	$(QUIET) mkdir -p $(TEST_DIR)
 	$(QUIET) $(CXX) $(CXXFLAGS) $(TEST_CXXFLAGS) -c -o $@ $<
 	$(QUIET) $(CXX) $(CXXFLAGS) $(TEST_CXXFLAGS) -w -MM -MT $@ -MF $(@:.o=.deps) $<
 
 $(TEST_DIR)/gtest%.o: $(GTEST_DIR)/src/gtest%.cc
 	@echo $(COLOR_CYAN)"Building '$@' from '$<'"$(COLOR_END)
 	$(QUIET) mkdir -p $(TEST_DIR)
-	$(QUIET) $(CXX) $(GTEST_CXXFLAGS) -pthread -c $< -o $@
+	$(QUIET) $(CXX) $(GTEST_CXXFLAGS) -c $< -o $@
 
 .PRECIOUS: $(GTEST_DIR)/src/gtest%.cc
 $(GTEST_DIR)/src/gtest%.cc: googletest-release-1.7.0.zip
@@ -240,5 +240,20 @@ else
 	@exit 1
 endif
 
+
+#
+# Validation
+#
+VALIDATION_BDIR=build/validation
+VALIDATION_SDIR=validation
+
+validate: build/$(PROG)
+	@echo $(COLOR_CYAN)"Validating AdapterRemoval results"$(COLOR_END)
+	@mkdir -p $(VALIDATION_BDIR)
+	@./validation/run $(VALIDATION_BDIR) $(VALIDATION_SDIR)
+
+validation: validate
+
+
 # Automatic header dependencies for tests
 -include $(TEST_DEPS)
diff --git a/README.md b/README.md
index 9cd22f4..76fc45d 100644
--- a/README.md
+++ b/README.md
@@ -15,19 +15,6 @@ AdapterRemoval was originally published in Lindgreen 2012:
 
 ## Installation
 
-Note that AdapterRemoval requires that the zlib library and headers (www.zlib.net) are installed, that the bzlib2 library and headers are installed, and that the pthread library and headers are installed. Please refer to your operating system documentation for installation instructions. Alternatively, use of these features may be disabled by editing the appropriate lines in the 'Makefile':
-
-    ## Optional features; comment out or set to value other than 'yes' to disable
-
-    # Enable reading writing of gzip compressed files using libz.
-    ENABLE_GZIP_SUPPORT := yes
-
-    # Enable reading writing of bzip2 compressed files using libbz2.
-    ENABLE_BZIP2_SUPPORT := yes
-
-    # Enable multi-threading support using pthreads.
-    ENABLE_PTHREAD_SUPPORT := yes
-
 To install, first download and unpack the newest release from GitHub:
 
     $ wget -O adapterremoval-2.1.7.tar.gz https://github.com/MikkelSchubert/adapterremoval/archive/v2.1.7.tar.gz
@@ -55,6 +42,18 @@ It is also possible to compile AdapterRemoval as a static library:
     $ sudo make static
 
 
+Note that AdapterRemoval requires that the zlib library and headers (www.zlib.net) are installed, that the bzlib2 library and headers are installed, and that the compiler used supports c++11. Please refer to your operating system documentation for installation instructions. Alternatively, use of these features may be disabled when running 'make':
+
+    # Disable gzip support
+    $ make GZIP_SUPPORT=no
+
+    # Disable bzip2 support
+    $ make BZIP2_SUPPORT=no
+
+    # Disable both gzip and bzip2 support
+    $ make GZIP_SUPPORT=no BZIP2_SUPPORT=no
+
+
 ## Documentation
 
 For detailed program usage, please refer to the manual page.
@@ -101,19 +100,24 @@ AdapterRemoval is able to read and write paired-end reads stored in a single, so
 Other than taking just a single input file, this mode operates almost exactly like paired end trimming (as described above); the mode differs only in that paired reads are not written to a 'pair1' and a 'pair2' file, but instead these are instead written to a single, interleaved file, named 'paired'. The location of this file is controlled using the --output1 option. Enabling either reading or writing of interleaved FASTQ files, both not both, can be accomplished by specifying the either [...]
 
 
+### Combining FASTQ output
+
+By default, AdapterRemoval will create one output file for each mate, one file for discarded reads, and (in PE mode) one file paired reads where one mate has been discarded, and (optionally) two files for collapsed reads. Alternatively, these files may be combined using the --combined-output, in which case all output is directed to the mate 1 and (in PE mode) to the mate 2 file. In cases where reads are discarded due to trimming to due to being collapsed into a single sequence, the seque [...]
+
+
 ### Different quality score encodings
 
 By default, AdapterRemoval expects the quality scores in FASTQ reads to be Phred+33 encoded, meaning that the error probabilities are encoded as (char)('!' - 10 * log10(p)). Most data will be encoded using Phred+33, but Phred+64 and 'Solexa' encoded quality scores are also supported. These are selected by specifying the --qualitybase command-line option (specifying either '33', '64', or 'solexa'):
 
-    $ AdapterRemoval --qualitybase 64 --file1 reads_q64.fq --basename phred_64_encoded
+    $ AdapterRemoval --qualitybase 64 --file1 reads_q64.fq --basename output_phred_64
 
 By default, reads are written using the *same* encoding as the input. If a different encoding is desired, this may be accomplished using the --qualitybase-output option::
 
-    $ AdapterRemoval --qualitybase 64 --qualitybase-output 33 --file1 reads_q64.fq --basename phred_33_encoded
+    $ AdapterRemoval --qualitybase 64 --qualitybase-output 33 --file1 reads_q64.fq --basename output_phred_33
 
 Note furthermore that AdapterRemoval by default only expects quality scores in the range 0 - 41 (or -5 to 41 in the case of Solexa encoded scores). If input data using a different maximum quality score is to be processed, or if the desired maximum quality score of collapsed reads is greater than 41, then this limit may be increased using the --qualitymax option::
 
-    $ AdapterRemoval --qualitymax 50 --file1 reads_1.fq --file2 reads_2.fq --collapsed --basename collapsed_q50
+    $ AdapterRemoval --qualitymax 50 --file1 reads_1.fq --file2 reads_2.fq --collapse --basename output_collapsed_q50
 
 For a detailed overview of Phred encoding schemes currently and previously in use, see e.g. the Wikipedia article on the subject:
 https://en.wikipedia.org/wiki/FASTQ_format#Encoding
@@ -139,7 +143,6 @@ The resulting .summary file contains an overview of how frequently each adapter
 Note that in the case of paired-end adapters, AdapterRemoval considers only the combinations of adapters specified in the table, one combination per row. For single-end trimming, only the first column of the table file is required, and the list may therefore take the form of a file containing one sequence per line.
 
 
-
 ### Identifying adapter sequences from paired-ended reads
 
 If we did not know the adapter sequences for the 'reads\_*.fq' files, AdapterRemoval may be used to generate a consensus adapter sequence based on fragments identified as belonging to the adapters through pairwise alignments of the reads, provided that the data set contains only a single adpater sequence (not counting differences in index sequences).
@@ -180,12 +183,11 @@ No files are generated from running the adapter identification step.
 The consensus sequences inferred are compared to those specified using the --adapter1 and --adapter2 command-line options, or with the default values for these if no values have been given (as in this case). Pipes (|) indicate matches between the provided sequences and the consensus sequence, and "*" indicate the presence of unspecified bases (Ns).
 
 
+### Demultiplexing and adapter-trimming
 
-### Demultiplexing
+As of version 2.1, AdapterRemoval supports simultaneous demultiplexing and adapter trimming; demultiplexing is carried out using a simple comparison between the specified barcode (a sequence of A, C, G, and T) and the first N bases of the mate 1 read, where N is the length of the barcode. Demultiplexing of double-indexed sequences is also supported, in which case two barcodes must be specified for each sample. The first barcode is then compared to first N_1 bases of the mate 1 read, and  [...]
 
-As of version 2.1, AdapterRemoval supports simultanious demultiplexing and adapter trimming; demultiplexing is carried out using a simple comparison between the specified barcode sequences and the first N bases of the reads, corresponding to the length of the barcodes. Reads identified as containing a specific barcode or pair of barcodes are then trimmed using adapter sequences including these barcodes.
-
-Demultiplexing is enabled by creating a table of barcodes, the first column of which species the sample name (using characters [a-zA-Z0-9_]) and the second and (optional) third columns specifies the mate 1 and mate 2 barcode sequences.
+Demultiplexing is enabled by creating a table of barcodes, the first column of which species the sample name (using characters [a-zA-Z0-9_]) and the second and (optional) third columns specifies the barcode sequences expected at the 5' termini of mate 1 and mate 2 reads, respectively.
 
 For example, a table of barcodes from a double-indexed run might be as follows (see examples/barcodes.txt):
 
@@ -196,7 +198,7 @@ For example, a table of barcodes from a double-indexed run might be as follows (
 
 In the case of single-read reads, only the first two columns are required. AdapterRemoval is invoked with the --barcode-list option, specifying the path to this table:
 
-    $ AdapterRemoval --file1 demux_1.fq --file2 demux_2.fq --basename output_dumux --barcode-list barcodes.txt
+    $ AdapterRemoval --file1 demux_1.fq --file2 demux_2.fq --basename output_demux --barcode-list barcodes.txt
 
 This generates a set of output files for each sample specified in the barcode table, using the basename (--basename) as the prefix, followed by a dot and the sample name, followed by a dot and the default name for a given file type. For example, the output files for sample_2 would be
 
@@ -215,6 +217,18 @@ The maximum number of mismatches allowed when comparing barocdes is controlled u
    3. mm_1(i) + mm_2(i) <= --barcode-mm
 
 
+### Demultiplexing mode
+
+As of version 2.2, AdapterRemoval can furthermore be used to demultiplex reads, without carrying out other forms of adapter trimming. This is accomplished by specifying the --demultiplex-only option:
+
+    $ AdapterRemoval --file1 demux_1.fq --file2 demux_2.fq --basename output_only_demux --barcode-list barcodes.txt --demultiplex-only
+
+Options listed under "TRIMMING SETTINGS" (see 'AdapterRemoval --help') do not apply to this mode, but compression (--gzip, --bzip2), multi-threading (--threads), interleaving (--interleaved, etc.) and other such options may be used in conjunction with --demultiplex-only.
+
+AdapterRemoval will generate a '.settings' file for each sample listed in the --barcode-list file, along with the adapter-sequences that should be used when trimming reads for a given sample. Thse adapters correspond to the adapters that were specified when running AdapterRemoval in demultiplexing mode, with the barcode prefixed as appropriate. An underscore is used to demarcate the location at which the barcode ends and the adapter beings.
+
+It is important to use these, updated, adapter sequences when trimming the demultiplexed reads, to avoid the inclusion of barcode sequences in reads extending past the 3' termini of the DNA template sequence.
+
 
 ## A note on specifying adapter sequences
 
diff --git a/examples/Makefile b/examples/Makefile
new file mode 100644
index 0000000..dca2f4c
--- /dev/null
+++ b/examples/Makefile
@@ -0,0 +1,47 @@
+
+TARGETS := single_end paired_end phred_64_encoded phred_33_encoded \
+	collapsed_q50 multiple_adapters identify_adapters \
+	interleaved_input interleaved_output interleaved_input_and_output \
+	demultiplexing demultiplexing_only
+
+.PHONY: all ${TARGETS}
+
+all: ${TARGETS}
+
+
+single_end:
+	AdapterRemoval --file1 reads_1.fq --basename output_single --trimns --trimqualities --gzip
+
+paired_end:
+	AdapterRemoval --file1 reads_1.fq --file2 reads_2.fq --basename output_paired --trimns --trimqualities --collapse
+
+interleaved_input:
+	AdapterRemoval --interleaved-input --file1 interleaved.fq --basename output_interleaved_input
+
+interleaved_output:
+	AdapterRemoval --interleaved-output --file1 reads_1.fq --file2 reads_2.fq --basename output_interleaved_output
+
+interleaved_input_and_output:
+	AdapterRemoval --interleaved --file1 interleaved.fq --basename output_interleaved_both
+
+phred_64_encoded:
+	AdapterRemoval --qualitybase 64 --file1 reads_q64.fq --basename output_phred_64
+
+phred_33_encoded:
+	AdapterRemoval --qualitybase 64 --qualitybase-output 33 --file1 reads_q64.fq --basename output_phred_33
+
+collapsed_q50:
+	AdapterRemoval --qualitymax 50 --file1 reads_1.fq --file2 reads_2.fq --collapse --basename output_collapsed_q50
+
+multiple_adapters:
+	AdapterRemoval --file1 reads_1.fq --file2 reads_2.fq --basename output_multi --trimns --trimqualities --collapse --adapter-list adapters.txt
+
+identify_adapters:
+	AdapterRemoval --identify-adapters --file1 reads_1.fq --file2 reads_2.fq
+
+demultiplexing:
+	AdapterRemoval --file1 demux_1.fq --file2 demux_2.fq --basename output_demux --barcode-list barcodes.txt
+
+demultiplexing_only:
+	AdapterRemoval --file1 demux_1.fq --file2 demux_2.fq --basename output_only_demux --barcode-list barcodes.txt --demultiplex-only
+
diff --git a/src/adapterset.cc b/src/adapterset.cc
index 05c830d..fdf5874 100644
--- a/src/adapterset.cc
+++ b/src/adapterset.cc
@@ -297,6 +297,8 @@ adapter_set::adapter_set()
     , m_barcodes()
     , m_adapters()
 {
+    // Default name if no barcodes are used
+    m_samples.push_back("main");
 }
 
 
@@ -344,6 +346,9 @@ bool adapter_set::load_barcodes(const std::string& filename, bool paired_end)
         return false;
     }
 
+    m_samples.clear();
+    m_barcodes.clear();
+
     for (fastq_table_citer it = raw_barcodes.begin(); it != raw_barcodes.end(); ++it) {
         fastq barcode_5p = it->second.at(0);
         fastq barcode_3p;
@@ -425,11 +430,11 @@ string_pair_vec adapter_set::get_pretty_adapter_set(size_t nth) const
         std::string seq_2 = adapter_2.sequence();
 
         if (barcodes.first.length()) {
-            seq_1.insert(barcodes.first.length(), 1, '_');
+            seq_2.insert(barcodes.first.length(), 1, '_');
         }
 
         if (barcodes.second.length()) {
-            seq_2.insert(barcodes.second.length(), 1, '_');
+            seq_1.insert(barcodes.second.length(), 1, '_');
         }
 
         adapters.push_back(string_pair(seq_1, seq_2));
diff --git a/src/alignment.cc b/src/alignment.cc
index bd5bd84..60a9327 100644
--- a/src/alignment.cc
+++ b/src/alignment.cc
@@ -23,7 +23,6 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 \*************************************************************************/
 
-#include <cstdlib>
 #include <cmath>
 #include <cstdio>
 #include <limits>
@@ -236,7 +235,8 @@ const phred_scores& get_updated_phred_scores(char qual_1, char qual_2)
 string_pair collapse_sequence(const std::string& sequence1,
                               const std::string& sequence2,
                               const std::string& qualities1,
-                              const std::string& qualities2)
+                              const std::string& qualities2,
+                              std::mt19937& rng)
 {
     AR_DEBUG_ASSERT(sequence1.length() == sequence2.length() &&
                      sequence1.length() == qualities1.length() &&
@@ -265,7 +265,7 @@ string_pair collapse_sequence(const std::string& sequence1,
                 collapsed_qual.at(i) = PHRED_OFFSET_33;
             }
         } else if (nt_1 != nt_2 && qual_1 == qual_2) {
-            const int shuffle = random() % 2;
+            const int shuffle = rng() & 1;
             collapsed_seq.at(i) = shuffle ? nt_1 : nt_2;
 
             const phred_scores& new_scores = get_updated_phred_scores(qual_1, qual_2);
@@ -441,6 +441,7 @@ std::string strip_mate_info(const std::string& header, const char mate_sep)
 fastq collapse_paired_ended_sequences(const alignment_info& alignment,
                                       const fastq& read1,
                                       const fastq& read2,
+                                      std::mt19937& rng,
                                       const char mate_sep)
 {
     if (alignment.offset > static_cast<int>(read1.length())) {
@@ -462,10 +463,11 @@ fastq collapse_paired_ended_sequences(const alignment_info& alignment,
     string_pair collapsed = collapse_sequence(read1.sequence().substr(read_1_offset),
                                               read2.sequence().substr(0, read_2_offset),
                                               read1.qualities().substr(read_1_offset),
-                                              read2.qualities().substr(0, read_2_offset));
+                                              read2.qualities().substr(0, read_2_offset),
+                                              rng);
 
     // Remove mate number from read, if present, when building new record
-    return fastq(strip_mate_info(read1.header(), mate_sep),
+    return fastq(mate_sep ? strip_mate_info(read1.header(), mate_sep) : read1.header(),
                  read_1_seq + collapsed.first + read_2_seq,
                  read_1_qual + collapsed.second + read_2_qual,
                  FASTQ_ENCODING_SAM);
diff --git a/src/alignment.h b/src/alignment.h
index bb70575..57c8029 100644
--- a/src/alignment.h
+++ b/src/alignment.h
@@ -25,6 +25,7 @@
 #define ALIGNMENT_H
 
 #include <string>
+#include <random>
 
 #include "fastq.h"
 
@@ -118,8 +119,8 @@ struct alignment_info
  *
  * @param read A read potentially containing adapter sequences
  * @param adapters A set of adapter pairs; only the first adapters are used.
- * @param shift Allow up to this number of missing bases at the 5' end of the
- *              read, when aligning the adapter.
+ * @param max_shift Allow up to this number of missing bases at the 5' end of
+ *                  the read, when aligning the adapter.
  * @return The best alignment, or a length 0 alignment if not aligned.
  *
  * The best alignment is selected using alignment_info::is_better_than.
@@ -135,8 +136,8 @@ alignment_info align_single_ended_sequence(const fastq& read,
  * @param read1 A mate 1 read potentially containing adapter sequences
  * @param read2 A mate 2 read potentially containing adapter sequences
  * @param adapters A set of adapter pairs; both in each pair adapters are used.
- * @param shift Allow up to this number of missing bases at the 5' end of both
- *              mate reads.
+ * @param max_shift Allow up to this number of missing bases at the 5' end of
+ *                  both mate reads.
  * @return The best alignment, or a length 0 alignment if not aligned.
  *
  * The alignment is carried out following the concatenation of pcr2 and read1,
@@ -191,6 +192,7 @@ size_t truncate_paired_ended_sequences(const alignment_info& alignment,
 fastq collapse_paired_ended_sequences(const alignment_info& alignment,
                                       const fastq& read1,
                                       const fastq& read2,
+                                      std::mt19937& rng,
                                       const char mate_sep=MATE_SEPARATOR);
 
 
diff --git a/src/argparse.cc b/src/argparse.cc
index 2377f77..3e835b1 100644
--- a/src/argparse.cc
+++ b/src/argparse.cc
@@ -28,6 +28,7 @@
 #include <limits>
 #include <set>
 
+#include <sys/types.h>
 #include <sys/ioctl.h>
 #include <unistd.h>
 
@@ -60,18 +61,18 @@ size_t get_terminal_columns()
 parser::parser(const std::string& name,
                const std::string& version,
                const std::string& help)
-	: m_keys()
+    : m_keys()
     , m_parsers()
     , m_name(name)
-	, m_version(version)
-	, m_help(help)
+    , m_version(version)
+    , m_help(help)
 {
-	// Built-in arguments (aliases are not shown!)
+    // Built-in arguments (aliases are not shown!)
     (*this)["--help"] = new flag(NULL, "Display this message.");
     create_alias("--help", "-help");
     create_alias("--help", "-h");
 
-	(*this)["--version"] = new flag(NULL, "Print the version string.");
+    (*this)["--version"] = new flag(NULL, "Print the version string.");
     create_alias("--version", "-version");
     create_alias("--version", "-v");
 
@@ -100,13 +101,13 @@ consumer_ptr& parser::operator[](const std::string& key)
         m_keys.push_back(key_pair(true, key));
     }
 
-	return m_parsers[key];
+    return m_parsers[key];
 }
 
 
 const consumer_ptr& parser::at(const std::string& key) const
 {
-	return m_parsers.at(key);
+    return m_parsers.at(key);
 }
 
 
@@ -117,6 +118,12 @@ parse_result parser::parse_args(int argc, char* argv[])
     while (it != argvec.end()) {
         consumer_map::iterator parser = m_parsers.end();
         if (find_argument(parser, *it)) {
+            if (parser->second->is_set()) {
+                std::cerr << "WARNING: Command-line option " << parser->first
+                          << " has been specified more than once."
+                          << std::endl;
+            }
+
             const size_t consumed = parser->second->consume(++it, argvec.end());
 
             if (consumed == static_cast<size_t>(-1)) {
@@ -154,7 +161,7 @@ bool parser::is_set(const std::string& key) const
     const consumer_map::const_iterator it = m_parsers.find(key);
     AR_DEBUG_ASSERT(it != m_parsers.end());
 
-	return it->second->is_set();
+    return it->second->is_set();
 }
 
 
@@ -296,7 +303,7 @@ bool parser::find_argument(consumer_map::iterator& it, const std::string& str)
 
 
 std::string parser::get_metavar_str(const consumer_ptr ptr,
-                                               const std::string& key) const
+                                    const std::string& key) const
 {
     if (!ptr->metavar().empty()) {
         return ptr->metavar();
@@ -358,9 +365,9 @@ flag::flag(bool* value, const std::string& help)
 
 size_t flag::consume(string_vec_citer, const string_vec_citer&)
 {
-	if (m_ptr) {
-	    *m_ptr = true;
-	}
+    if (m_ptr) {
+        *m_ptr = true;
+    }
     m_value_set = true;
 
     return 0;
diff --git a/src/debug.cc b/src/debug.cc
index 1f526bb..8bb34a7 100644
--- a/src/debug.cc
+++ b/src/debug.cc
@@ -31,17 +31,23 @@ namespace ar
 {
 
 #ifdef AR_TEST_BUILD
+assert_failed::assert_failed(const assert_failed& errror)
+    : m_what(errror.m_what)
+{
+}
+
+
 assert_failed::assert_failed(const std::string& what)
     : m_what(what)
 {
 }
 
 
-assert_failed::~assert_failed() throw()
+assert_failed::~assert_failed() noexcept
 {
 }
 
-const char* assert_failed::what() const throw()
+const char* assert_failed::what() const noexcept
 {
     return m_what.c_str();
 }
diff --git a/src/debug.h b/src/debug.h
index a943bd9..4c38c78 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -35,14 +35,16 @@ namespace ar
 class assert_failed : public std::exception
 {
 public:
+    /** Copy constructor. */
+    assert_failed(const assert_failed& errror);
     /** Creates exception with the specified error message. */
     assert_failed(const std::string& what);
 
     /** Does nothing. */
-    virtual ~assert_failed() throw();
+    virtual ~assert_failed() noexcept;
 
     /** Returns user supplied error message; owned by object. */
-    virtual const char* what() const throw();
+    virtual const char* what() const noexcept;
 
 private:
     //! User supplied error message
diff --git a/src/demultiplex.cc b/src/demultiplex.cc
index d24d141..6b29898 100644
--- a/src/demultiplex.cc
+++ b/src/demultiplex.cc
@@ -23,6 +23,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 \*************************************************************************/
 #include <iostream>
+#include <algorithm>
 
 #include "debug.h"
 #include "demultiplex.h"
@@ -34,10 +35,11 @@
 namespace ar
 {
 
+typedef std::pair<std::string, size_t> barcode_pair;
+typedef std::vector<barcode_pair> barcode_vec;
 typedef std::vector<unsigned> int_vec;
 typedef demux_node_vec::iterator node_vec_iter;
 
-
 ///////////////////////////////////////////////////////////////////////////////
 
 /**
@@ -76,21 +78,27 @@ public:
 
 ///////////////////////////////////////////////////////////////////////////////
 
-/** Fills a quadtree with nodes representing keys of len 'max_key_len' */
-void fill_demux_tree(demux_node_vec& tree, const size_t max_key_len)
+/**
+ * Returns a lexographically sorted list of mate 1 barcodes, each paired with
+ * the 0-based index of corresponding barcode in the source vector.
+ */
+barcode_vec sort_barcodes(const fastq_pair_vec& barcodes)
 {
-    const size_t n_keys = (1 - (1 << (2 * (max_key_len + 1)))) / (1 - 4);
-    const size_t n_internal = n_keys - (1 << (2 * max_key_len));
-
-    tree.resize(n_keys);
+    barcode_vec sorted_barcodes;
 
-    for (size_t index = 0; index < n_keys; ++index) {
-        demultiplexer_node& node = tree.at(index);
+    const size_t max_key_1_len = barcodes.front().first.length();
+    const size_t max_key_2_len = barcodes.front().second.length();
+    for (auto it = barcodes.begin(); it != barcodes.end(); ++it) {
+        AR_DEBUG_ASSERT(it->first.length() == max_key_1_len);
+        AR_DEBUG_ASSERT(it->second.length() == max_key_2_len);
 
-        for (size_t nt_idx = 0; nt_idx < 4; ++nt_idx) {
-            node.children[nt_idx] = (index < n_internal) ? 4 * index + nt_idx + 1 : -1;
-        }
+        sorted_barcodes.push_back(barcode_pair(it->first.sequence(),
+                                               it - barcodes.begin()));
     }
+
+    std::sort(sorted_barcodes.begin(), sorted_barcodes.end());
+
+    return sorted_barcodes;
 }
 
 
@@ -99,64 +107,25 @@ void add_sequence_to_tree(demux_node_vec& tree,
                           const std::string& sequence,
                           const size_t barcode_id)
 {
-    demultiplexer_node* parent = &tree.at(0);
-    for (std::string::const_iterator it = sequence.begin(); it != sequence.end(); ++it) {
-        const int child = parent->children[ACGT_TO_IDX(*it)];
-        AR_DEBUG_ASSERT(child != -1);
-
-        parent = &tree.at(child);
-    }
-
-    parent->barcodes.push_back(barcode_id);
-}
-
-
-/**
- * Converts a full quad-tree to a sparse quad-tree, by removing any nodes
- * which does not contain any barcodes and which does not have any children.
- * Once these have been removed, the resulting list is compressed such that
- * only populated parts of the tree are included in the vector.
- */
-void prune_tree(demux_node_vec& tree)
-{
-    if (tree.empty()) {
-        return;
-    }
-
-    for (size_t idx = tree.size() - 1; idx; --idx) {
-        const demultiplexer_node& node = tree.at(0);
-
-        if (node.barcodes.empty() && !node.has_children()) {
-            tree.at((idx - 1) / 4).children[(idx - 1) % 4] = -1;
+    size_t node_idx = 0;
+    for (auto nuc: sequence) {
+        auto& node = tree.at(node_idx);
+        const auto nuc_idx = ACGT_TO_IDX(nuc);
+        auto child = node.children[nuc_idx];
+
+        if (child == -1) {
+            // New nodes are added to the end of the list; as barcodes are
+            // added in lexographic order, this helps ensure that a set of
+            // dissimilar barcodes will be placed in mostly contigious runs
+            // of the vector representation.
+            child = node.children[nuc_idx] = tree.size();
+            tree.push_back(demultiplexer_node());
         }
-    }
-
-    size_t last_index = 0;
-    std::vector<int> new_indices(tree.size(), -1);
-    for (size_t idx = 0; idx < tree.size(); ++idx) {
-        const demultiplexer_node& node = tree.at(0);
 
-        if (!node.barcodes.empty() || node.has_children()) {
-            if (idx != last_index) {
-                tree.at(last_index) = node;
-            }
-
-            new_indices.at(idx) = last_index;
-            last_index++;
-        }
+        node_idx = child;
     }
 
-    tree.resize(last_index);
-
-    for (size_t idx = 0; idx < tree.size(); ++idx) {
-        demultiplexer_node& node = tree.at(0);
-
-        for (size_t nt_idx = 0; nt_idx < 4; ++nt_idx) {
-            if (node.children[nt_idx] != -1) {
-                node.children[nt_idx] = new_indices.at(node.children[nt_idx]);
-            }
-        }
-    }
+    tree.at(node_idx).barcodes.push_back(barcode_id);
 }
 
 
@@ -167,27 +136,20 @@ void prune_tree(demux_node_vec& tree)
  */
 demux_node_vec build_demux_tree(const fastq_pair_vec& barcodes)
 {
-    demux_node_vec tree;
-
-    if (barcodes.empty()) {
-        return tree;
-    }
-
-    const size_t max_key_1_len = barcodes.front().first.length();
-    const size_t max_key_2_len = barcodes.front().second.length();
-    for (fastq_pair_vec::const_iterator it = barcodes.begin(); it != barcodes.end(); ++it) {
-        AR_DEBUG_ASSERT(it->first.length() == max_key_1_len);
-        AR_DEBUG_ASSERT(it->second.length() == max_key_2_len);
-    }
+    // Step 1: Construct list of barcodes sorted by the mate 1 barcode;
+    //         this allows construction of the sparse tree in one pass.
+    const barcode_vec sorted_barcodes = sort_barcodes(barcodes);
 
-    fill_demux_tree(tree, max_key_1_len);
+    // Step 2: Create empty tree containing just the root node; creating
+    //         the root here simplifies the 'add_sequence_to_tree' function.
+    demux_node_vec tree;
+    tree.push_back(demultiplexer_node());
 
-    for (fastq_pair_vec::const_iterator it = barcodes.begin(); it != barcodes.end(); ++it) {
-        add_sequence_to_tree(tree, it->first.sequence(), it - barcodes.begin());
+    // Step 3: Add each barcode to the tree, in sorted order
+    for (auto& pair: sorted_barcodes) {
+        add_sequence_to_tree(tree, pair.first, pair.second);
     }
 
-    prune_tree(tree);
-
     return tree;
 }
 
@@ -206,7 +168,7 @@ void rec_lookup_sequence_no_mm(candidate_vec& candidates,
 {
     const demultiplexer_node& node = tree.at(parent);
     for (int_vec::const_iterator it = node.barcodes.begin(); it != node.barcodes.end(); ++it) {
-        candidates.push_back(std::pair<int, size_t>(*it, mismatches));
+        candidates.emplace_back(*it, mismatches);
     }
 
     if (seq_pos < seq.length()) {
@@ -230,7 +192,7 @@ void rec_lookup_sequence(candidate_vec& candidates,
 {
     const demultiplexer_node& node = tree.at(parent);
     for (int_vec::const_iterator it = node.barcodes.begin(); it != node.barcodes.end(); ++it) {
-        candidates.push_back(std::pair<int, size_t>(*it, mismatches));
+        candidates.emplace_back(*it, mismatches);
     }
 
     if (seq_pos < seq.length()) {
@@ -262,27 +224,25 @@ demultiplex_reads::demultiplex_reads(const userconfig* config)
     , m_max_mismatches_r1(std::min<size_t>(config->barcode_mm, config->barcode_mm_r1))
     , m_max_mismatches_r2(std::min<size_t>(config->barcode_mm, config->barcode_mm_r2))
     , m_config(config)
-    , m_cache(m_barcodes.size(), NULL)
+    , m_cache()
     , m_unidentified_1(new fastq_output_chunk())
-    , m_unidentified_2(new fastq_output_chunk())
+    , m_unidentified_2()
     , m_statistics(m_barcodes.size())
 {
     AR_DEBUG_ASSERT(!m_barcodes.empty());
 
-    for (demultiplexed_cache::iterator it = m_cache.begin(); it != m_cache.end(); ++it) {
-        *it = new fastq_read_chunk();
+    if (!config->interleaved_output) {
+        m_unidentified_2.reset(new fastq_output_chunk());
+    }
+
+    for (size_t i = 0; i < m_barcodes.size(); ++i) {
+        m_cache.push_back(read_chunk_ptr(new fastq_read_chunk()));
     }
 }
 
 
 demultiplex_reads::~demultiplex_reads()
 {
-    for (demultiplexed_cache::iterator it = m_cache.begin(); it != m_cache.end(); ++it) {
-        delete *it;
-    }
-
-    delete m_unidentified_1;
-    delete m_unidentified_2;
 }
 
 
@@ -369,25 +329,25 @@ chunk_vec demultiplex_reads::flush_cache(bool eof)
     chunk_vec output;
 
     if (eof || m_unidentified_1->count >= FASTQ_CHUNK_SIZE) {
-        output.push_back(chunk_pair(ai_write_unidentified_1, m_unidentified_1));
         m_unidentified_1->eof = eof;
-        m_unidentified_1 = new fastq_output_chunk();
+        output.push_back(chunk_pair(ai_write_unidentified_1, std::move(m_unidentified_1)));
+        m_unidentified_1 = output_chunk_ptr(new fastq_output_chunk());
     }
 
-    if (m_config->paired_ended_mode && (eof || m_unidentified_2->count >= FASTQ_CHUNK_SIZE)) {
-        output.push_back(chunk_pair(ai_write_unidentified_2, m_unidentified_2));
+    if (m_config->paired_ended_mode && !m_config->interleaved_output && (eof || m_unidentified_2->count >= FASTQ_CHUNK_SIZE)) {
         m_unidentified_2->eof = eof;
-        m_unidentified_2 = new fastq_output_chunk();
+        output.push_back(chunk_pair(ai_write_unidentified_2, std::move(m_unidentified_2)));
+        m_unidentified_2 = output_chunk_ptr(new fastq_output_chunk());
     }
 
     for (size_t nth = 0; nth < m_cache.size(); ++nth) {
-        fastq_read_chunk* chunk = m_cache.at(nth);
+        read_chunk_ptr& chunk = m_cache.at(nth);
         if (eof || chunk->reads_1.size() >= FASTQ_CHUNK_SIZE) {
             chunk->eof = eof;
 
             const size_t step_id = (nth + 1) * ai_analyses_offset;
-            output.push_back(chunk_pair(step_id, chunk));
-            m_cache.at(nth) = new fastq_read_chunk();
+            output.push_back(chunk_pair(step_id, std::move(chunk)));
+            chunk = read_chunk_ptr(new fastq_read_chunk());
         }
     }
 
@@ -411,7 +371,7 @@ demultiplex_se_reads::demultiplex_se_reads(const userconfig* config)
 
 chunk_vec demultiplex_se_reads::process(analytical_chunk* chunk)
 {
-    std::auto_ptr<fastq_read_chunk> read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
+    read_chunk_ptr read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
 
     const fastq empty_read;
     for (fastq_vec::iterator it = read_chunk->reads_1.begin(); it != read_chunk->reads_1.end(); ++it) {
@@ -426,7 +386,7 @@ chunk_vec demultiplex_se_reads::process(analytical_chunk* chunk)
                 m_statistics.ambiguous += 1;
             }
         } else {
-            fastq_read_chunk* dst = m_cache.at(best_barcode);
+            read_chunk_ptr& dst = m_cache.at(best_barcode);
             dst->reads_1.push_back(*it);
             dst->reads_1.back().truncate(m_barcodes.at(best_barcode).first.length());
 
@@ -448,7 +408,7 @@ demultiplex_pe_reads::demultiplex_pe_reads(const userconfig* config)
 
 chunk_vec demultiplex_pe_reads::process(analytical_chunk* chunk)
 {
-    std::auto_ptr<fastq_read_chunk> read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
+    read_chunk_ptr read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
     AR_DEBUG_ASSERT(read_chunk->reads_1.size() == read_chunk->reads_2.size());
 
     fastq_vec::iterator it_1 = read_chunk->reads_1.begin();
@@ -458,7 +418,11 @@ chunk_vec demultiplex_pe_reads::process(analytical_chunk* chunk)
 
         if (best_barcode < 0) {
             m_unidentified_1->add(*m_config->quality_output_fmt, *it_1);
-            m_unidentified_2->add(*m_config->quality_output_fmt, *it_2);
+            if (m_config->interleaved_output) {
+                m_unidentified_1->add(*m_config->quality_output_fmt, *it_2);
+            } else {
+                m_unidentified_2->add(*m_config->quality_output_fmt, *it_2);
+            }
 
             if (best_barcode == -1) {
                 m_statistics.unidentified += 1;
@@ -466,7 +430,7 @@ chunk_vec demultiplex_pe_reads::process(analytical_chunk* chunk)
                 m_statistics.ambiguous += 1;
             }
         } else {
-            fastq_read_chunk* dst = m_cache.at(best_barcode);
+            read_chunk_ptr& dst = m_cache.at(best_barcode);
 
             it_1->truncate(m_barcodes.at(best_barcode).first.length());
             dst->reads_1.push_back(*it_1);
diff --git a/src/demultiplex.h b/src/demultiplex.h
index 9d7b603..7d3419a 100644
--- a/src/demultiplex.h
+++ b/src/demultiplex.h
@@ -28,13 +28,12 @@
 #include "fastq.h"
 #include "scheduler.h"
 #include "statistics.h"
+#include "fastq_io.h"
 
 namespace ar
 {
 
 class userconfig;
-class fastq_read_chunk;
-class fastq_output_chunk;
 struct demultiplexer_node;
 
 typedef std::vector<demultiplexer_node> demux_node_vec;
@@ -83,16 +82,16 @@ protected:
     //! chunks are set to true.
     chunk_vec flush_cache(bool eof = false);
 
-    typedef std::vector<fastq_read_chunk*> demultiplexed_cache;
+    typedef std::vector<read_chunk_ptr> demultiplexed_cache;
 
     //! Cache of demultiplex reads; used to reduce the number of output chunks
     //! generated from each processed chunk, which would otherwise increase
     //! linearly with the number of barcodes.
     demultiplexed_cache m_cache;
     //! Cache of unidentified mate 1 reads
-    fastq_output_chunk* m_unidentified_1;
+    output_chunk_ptr m_unidentified_1;
     //! Cache of unidentified mate 2 reads
-    fastq_output_chunk* m_unidentified_2;
+    output_chunk_ptr m_unidentified_2;
 
     //! Sink for demultiplexing statistics; used by subclasses.
     demux_statistics m_statistics;
diff --git a/src/fastq.cc b/src/fastq.cc
index f6559b7..167f561 100644
--- a/src/fastq.cc
+++ b/src/fastq.cc
@@ -197,6 +197,20 @@ void fastq::add_prefix_to_header(const std::string& prefix)
 }
 
 
+void fastq::add_postfix_to_header(const std::string& postfix)
+{
+    m_header += postfix;
+}
+
+
+void fastq::discard()
+{
+    m_sequence = 'N';
+    m_qualities = '!';
+}
+
+
+
 bool fastq::read(line_reader_base& reader, const fastq_encoding& encoding)
 {
     std::string line;
@@ -294,7 +308,9 @@ void fastq::clean_sequence(std::string& sequence)
 
 char fastq::p_to_phred_33(double p)
 {
-    const int raw_score = static_cast<int>(-10.0 * std::log10(p));
+    // Lowest possible error rate representable is '~' (~5e-10)
+    const auto min_p = std::max(5e-10, p);
+    const auto raw_score = static_cast<int>(-10.0 * std::log10(min_p));
     return std::min<int>('~', raw_score + PHRED_OFFSET_33);
 }
 
diff --git a/src/fastq.h b/src/fastq.h
index a4491db..1689cdf 100644
--- a/src/fastq.h
+++ b/src/fastq.h
@@ -49,7 +49,7 @@ public:
     /**
      * Create a new FASTQ record.
      *
-     * @param qname FASTQ header, including read name and meta information.
+     * @param header FASTQ header, including read name and meta information.
      * @param sequence nucleotide sequence containing the letters "acgtnACGTN."
      * @param qualities phred or solexa encoded quality scores
      * @param encoding the encoding used for the quality scores.
@@ -71,7 +71,7 @@ public:
     /**
      * Create FASTQ record from a sequence alone.
      *
-     * @param qname FASTQ header, including read name and meta information.
+     * @param header FASTQ header, including read name and meta information.
      * @param sequence nucleotide sequence containing the letters "acgtnACGTN."
      *
      * Works like the full constructor, except that qualities are all 0 ('!').
@@ -126,6 +126,14 @@ public:
 
     /** Adds a prefix to the header. */
     void add_prefix_to_header(const std::string& prefix);
+    /** Adds a postfix to the header. */
+    void add_postfix_to_header(const std::string& postfix);
+
+    /**
+     * Discards read data; the sequence is replaced with a single 'N', and the
+     * and the quality string is replaced with a single '!'.
+     */
+    void discard();
 
 
 	/**
diff --git a/src/fastq_enc.cc b/src/fastq_enc.cc
index d1ef81b..e5a45bc 100644
--- a/src/fastq_enc.cc
+++ b/src/fastq_enc.cc
@@ -27,6 +27,7 @@
 #include <stdexcept>
 #include <limits>
 #include <sstream>
+#include <iostream>
 
 #include "fastq_enc.h"
 
@@ -43,12 +44,19 @@ fastq_error::fastq_error(const std::string& message)
 }
 
 
-fastq_error::~fastq_error() throw()
+fastq_error::fastq_error(const fastq_error& error)
+    : std::exception()
+    , m_message(error.m_message)
+{
+}
+
+
+fastq_error::~fastq_error() noexcept
 {
 }
 
 
-const char* fastq_error::what() const throw()
+const char* fastq_error::what() const noexcept
 {
     return m_message.c_str();
 }
@@ -78,8 +86,9 @@ std::string calc_phred_to_solexa()
     scores.resize(MAX_PHRED_SCORE - MIN_PHRED_SCORE + 1);
 
     for (int i = MIN_PHRED_SCORE; i <= MAX_PHRED_SCORE; ++i) {
-        const double score = round(10.0 * log10(pow(10.0, i / 10.0) - 1.0));
-        const int transformed = std::max<int>(MIN_SOLEXA_SCORE, std::min<int>(MAX_PHRED_SCORE, score));
+        const auto min_i = std::max(1, i);
+        const auto score = round(10.0 * log10(pow(10.0, min_i / 10.0) - 1.0));
+        const auto transformed = std::max<int>(MIN_SOLEXA_SCORE, std::min<int>(MAX_PHRED_SCORE, score));
 
         scores.at(i) = transformed;
     }
diff --git a/src/fastq_enc.h b/src/fastq_enc.h
index b30bb66..59b0ecb 100644
--- a/src/fastq_enc.h
+++ b/src/fastq_enc.h
@@ -59,10 +59,12 @@ class fastq_error : public std::exception
 {
 public:
     fastq_error(const std::string& message);
-    ~fastq_error() throw();
+    fastq_error(const fastq_error& error);
+
+    virtual ~fastq_error() noexcept;
 
     /** Returns error message; string is owned by exception. */
-    virtual const char* what() const throw();
+    virtual const char* what() const noexcept;
 
 private:
     //! Error message assosiated with exception.
diff --git a/src/fastq_io.cc b/src/fastq_io.cc
index 9e2c381..05c6316 100644
--- a/src/fastq_io.cc
+++ b/src/fastq_io.cc
@@ -33,8 +33,6 @@
 namespace ar
 {
 
-typedef std::auto_ptr<fastq_read_chunk> chunk_ptr;
-
 
 size_t read_fastq_reads(fastq_vec& dst, line_reader& reader, size_t offset,
                       const fastq_encoding& encoding)
@@ -129,7 +127,7 @@ chunk_vec read_single_fastq::process(analytical_chunk* chunk)
         return chunk_vec();
     }
 
-    chunk_ptr file_chunk(new fastq_read_chunk());
+    read_chunk_ptr file_chunk(new fastq_read_chunk());
 
     const size_t n_read = read_fastq_reads(file_chunk->reads_1, m_io_input,
                                            m_line_offset, *m_encoding);
@@ -145,7 +143,7 @@ chunk_vec read_single_fastq::process(analytical_chunk* chunk)
     m_line_offset += n_read;
 
     chunk_vec chunks;
-    chunks.push_back(chunk_pair(m_next_step, file_chunk.release()));
+    chunks.push_back(chunk_pair(m_next_step, std::move(file_chunk)));
 
     return chunks;
 }
@@ -184,7 +182,7 @@ chunk_vec read_paired_fastq::process(analytical_chunk* chunk)
         return chunk_vec();
     }
 
-    chunk_ptr file_chunk(new fastq_read_chunk());
+    read_chunk_ptr file_chunk(new fastq_read_chunk());
 
     const size_t n_read_1 = read_fastq_reads(file_chunk->reads_1, m_io_input_1,
                                              m_line_offset, *m_encoding);
@@ -211,7 +209,7 @@ chunk_vec read_paired_fastq::process(analytical_chunk* chunk)
     m_line_offset += n_read_1;
 
     chunk_vec chunks;
-    chunks.push_back(chunk_pair(m_next_step, file_chunk.release()));
+    chunks.push_back(chunk_pair(m_next_step, std::move(file_chunk)));
 
     return chunks;
 }
@@ -249,7 +247,7 @@ chunk_vec read_interleaved_fastq::process(analytical_chunk* chunk)
         return chunk_vec();
     }
 
-    chunk_ptr file_chunk(new fastq_read_chunk());
+    read_chunk_ptr file_chunk(new fastq_read_chunk());
 
     file_chunk->reads_1.reserve(FASTQ_CHUNK_SIZE);
     file_chunk->reads_2.reserve(FASTQ_CHUNK_SIZE);
@@ -304,7 +302,7 @@ chunk_vec read_interleaved_fastq::process(analytical_chunk* chunk)
     m_line_offset += (n_read_1 + n_read_2) * 4;
 
     chunk_vec chunks;
-    chunks.push_back(chunk_pair(m_next_step, file_chunk.release()));
+    chunks.push_back(chunk_pair(m_next_step, std::move(file_chunk)));
 
     return chunks;
 }
@@ -345,10 +343,10 @@ std::pair<size_t, unsigned char*> build_input_buffer(const string_vec& lines)
 #ifdef AR_BZIP2_SUPPORT
 
 ///////////////////////////////////////////////////////////////////////////////
-// Implementations for 'gzip_paired_fastq'
+// Implementations for 'gzip_fastq'
 
 
-bzip2_paired_fastq::bzip2_paired_fastq(const userconfig& config, size_t next_step)
+bzip2_fastq::bzip2_fastq(const userconfig& config, size_t next_step)
   : analytical_step(analytical_step::ordered, false)
   , m_buffered_reads(0)
   , m_next_step(next_step)
@@ -369,24 +367,24 @@ bzip2_paired_fastq::bzip2_paired_fastq(const userconfig& config, size_t next_ste
             break;
 
         case BZ_MEM_ERROR:
-            throw thread_error("bzip2_paired_fastq: not enough memory");
+            throw thread_error("bzip2_fastq: not enough memory");
 
         case BZ_CONFIG_ERROR:
-            throw thread_error("bzip2_paired_fastq: miscompiled bzip2 library");
+            throw thread_error("bzip2_fastq: miscompiled bzip2 library");
 
         case BZ_PARAM_ERROR:
-            throw thread_error("bzip2_paired_fastq: invalid parameters");
+            throw thread_error("bzip2_fastq: invalid parameters");
 
         default:
-            throw thread_error("bzip2_paired_fastq: unknown error");
+            throw thread_error("bzip2_fastq: unknown error");
     }
 }
 
 
-void bzip2_paired_fastq::finalize()
+void bzip2_fastq::finalize()
 {
     if (!m_eof) {
-        throw thread_error("bzip2_paired_fastq::finalize: terminated before EOF");
+        throw thread_error("bzip2_fastq::finalize: terminated before EOF");
     }
 
     const int errorcode = BZ2_bzCompressEnd(&m_stream);
@@ -394,31 +392,27 @@ void bzip2_paired_fastq::finalize()
         print_locker lock;
         switch (errorcode) {
             case BZ_PARAM_ERROR:
-                throw thread_error("bzip2_paired_fastq::finalize: parameter error");
+                throw thread_error("bzip2_fastq::finalize: parameter error");
 
             default:
-                throw thread_error("Unknown error in bzip2_paired_fastq::finalize");
+                throw thread_error("Unknown error in bzip2_fastq::finalize");
         }
     }
 }
 
 
-chunk_vec bzip2_paired_fastq::process(analytical_chunk* chunk)
+chunk_vec bzip2_fastq::process(analytical_chunk* chunk)
 {
-    std::auto_ptr<fastq_output_chunk> file_chunk(dynamic_cast<fastq_output_chunk*>(chunk));
+    output_chunk_ptr file_chunk(dynamic_cast<fastq_output_chunk*>(chunk));
     buffer_vec& buffers = file_chunk->buffers;
 
     if (m_eof) {
-        throw thread_error("bzip2_paired_fastq::process: received data after EOF");
+        throw thread_error("bzip2_fastq::process: received data after EOF");
     }
 
     m_eof = file_chunk->eof;
     if (file_chunk->reads.empty() && !m_eof) {
-        // The empty chunk must still be forwarded, to ensure that tracking of
-        // ordered chunks does not break.
-        chunk_vec chunks;
-        chunks.push_back(chunk_pair(m_next_step, file_chunk.release()));
-        return chunks;
+        return chunk_vec();
     }
 
     std::pair<size_t, unsigned char*> input_buffer;
@@ -447,16 +441,16 @@ chunk_vec bzip2_paired_fastq::process(analytical_chunk* chunk)
                         break;
 
                     case BZ_FLUSH_OK:
-                        throw thread_error("bzip2_paired_fastq::process: BZ_FLUSH_OK");
+                        throw thread_error("bzip2_fastq::process: BZ_FLUSH_OK");
 
                     case BZ_PARAM_ERROR:
-                        throw thread_error("bzip2_paired_fastq::process: BZ_PARAM_ERROR");
+                        throw thread_error("bzip2_fastq::process: BZ_PARAM_ERROR");
 
                     case BZ_SEQUENCE_ERROR:
-                        throw thread_error("bzip2_paired_fastq::process: sequence error");
+                        throw thread_error("bzip2_fastq::process: sequence error");
 
                     default:
-                        throw thread_error("bzip2_paired_fastq::process: unknown error");
+                        throw thread_error("bzip2_fastq::process: unknown error");
                 }
 
                 output_buffer.first = FASTQ_COMPRESSED_CHUNK - m_stream.avail_out;
@@ -480,7 +474,7 @@ chunk_vec bzip2_paired_fastq::process(analytical_chunk* chunk)
     chunk_vec chunks;
     if (!file_chunk->buffers.empty() || m_eof) {
         file_chunk->count += m_buffered_reads;
-        chunks.push_back(chunk_pair(m_next_step, file_chunk.release()));
+        chunks.push_back(chunk_pair(m_next_step, std::move(file_chunk)));
         m_buffered_reads = 0;
     } else {
         m_buffered_reads += file_chunk->count;
@@ -495,9 +489,9 @@ chunk_vec bzip2_paired_fastq::process(analytical_chunk* chunk)
 #ifdef AR_GZIP_SUPPORT
 
 ///////////////////////////////////////////////////////////////////////////////
-// Implementations for 'gzip_paired_fastq'
+// Implementations for 'gzip_fastq'
 
-gzip_paired_fastq::gzip_paired_fastq(const userconfig& config, size_t next_step)
+gzip_fastq::gzip_fastq(const userconfig& config, size_t next_step)
   : analytical_step(analytical_step::ordered, false)
   , m_buffered_reads(0)
   , m_next_step(next_step)
@@ -520,24 +514,24 @@ gzip_paired_fastq::gzip_paired_fastq(const userconfig& config, size_t next_step)
             break;
 
         case Z_MEM_ERROR:
-            throw thread_error("gzip_paired_fastq: not enough memory");
+            throw thread_error("gzip_fastq: not enough memory");
 
         case Z_STREAM_ERROR:
-            throw thread_error("gzip_paired_fastq: invalid parameters");
+            throw thread_error("gzip_fastq: invalid parameters");
 
         case Z_VERSION_ERROR:
-            throw thread_error("gzip_paired_fastq: incompatible zlib version");
+            throw thread_error("gzip_fastq: incompatible zlib version");
 
         default:
-            throw thread_error("gzip_paired_fastq: unknown error");
+            throw thread_error("gzip_fastq: unknown error");
     }
 }
 
 
-void gzip_paired_fastq::finalize()
+void gzip_fastq::finalize()
 {
     if (!m_eof) {
-        throw thread_error("gzip_paired_fastq::finalize: terminated before EOF");
+        throw thread_error("gzip_fastq::finalize: terminated before EOF");
     }
 
     const int errorcode = deflateEnd(&m_stream);
@@ -545,34 +539,30 @@ void gzip_paired_fastq::finalize()
         print_locker lock;
         switch (errorcode) {
             case Z_STREAM_ERROR:
-                throw thread_error("gzip_paired_fastq::finalize: stream error");
+                throw thread_error("gzip_fastq::finalize: stream error");
 
             case Z_DATA_ERROR:
-                throw thread_error("gzip_paired_fastq::finalize: data error");
+                throw thread_error("gzip_fastq::finalize: data error");
 
             default:
-                throw thread_error("Unknown error in gzip_paired_fastq::finalize");
+                throw thread_error("Unknown error in gzip_fastq::finalize");
         }
     }
 }
 
 
-chunk_vec gzip_paired_fastq::process(analytical_chunk* chunk)
+chunk_vec gzip_fastq::process(analytical_chunk* chunk)
 {
-    std::auto_ptr<fastq_output_chunk> file_chunk(dynamic_cast<fastq_output_chunk*>(chunk));
+    output_chunk_ptr file_chunk(dynamic_cast<fastq_output_chunk*>(chunk));
     buffer_vec& buffers = file_chunk->buffers;
 
     if (m_eof) {
-        throw thread_error("bzip2_paired_fastq::process: received data after EOF");
+        throw thread_error("bzip2_fastq::process: received data after EOF");
     }
 
     m_eof = file_chunk->eof;
     if (file_chunk->reads.empty() && !m_eof) {
-        // The empty chunk must still be forwarded, to ensure that tracking of
-        // ordered chunks does not break.
-        chunk_vec chunks;
-        chunks.push_back(chunk_pair(m_next_step, file_chunk.release()));
-        return chunks;
+        return chunk_vec();
     }
 
     std::pair<size_t, unsigned char*> input_buffer;
@@ -600,13 +590,13 @@ chunk_vec gzip_paired_fastq::process(analytical_chunk* chunk)
                         break;
 
                     case Z_BUF_ERROR:
-                        throw thread_error("gzip_paired_fastq::process: buf error");
+                        throw thread_error("gzip_fastq::process: buf error");
 
                     case Z_STREAM_ERROR:
-                        throw thread_error("gzip_paired_fastq::process: stream error");
+                        throw thread_error("gzip_fastq::process: stream error");
 
                     default:
-                        throw thread_error("gzip_paired_fastq::process: unknown error");
+                        throw thread_error("gzip_fastq::process: unknown error");
                 }
 
                 output_buffer.first = FASTQ_COMPRESSED_CHUNK - m_stream.avail_out;
@@ -630,7 +620,7 @@ chunk_vec gzip_paired_fastq::process(analytical_chunk* chunk)
     chunk_vec chunks;
     if (!file_chunk->buffers.empty() || m_eof) {
         file_chunk->count += m_buffered_reads;
-        chunks.push_back(chunk_pair(m_next_step, file_chunk.release()));
+        chunks.push_back(chunk_pair(m_next_step, std::move(file_chunk)));
         m_buffered_reads = 0;
     } else {
         m_buffered_reads += file_chunk->count;
@@ -646,7 +636,7 @@ chunk_vec gzip_paired_fastq::process(analytical_chunk* chunk)
 // Implementations for 'write_fastq'
 
 //! Mutex used to control access to s_timer and s_finalized;
-static mutex s_timer_lock;
+static std::mutex s_timer_lock;
 //! Timer used to track trimming progress; accessed by all instances
 static timer s_timer = timer("reads");
 //! Indicates if 'timer::finalize' has been called.
@@ -655,7 +645,7 @@ static bool s_finalized = false;
 
 write_fastq::write_fastq(const std::string& filename)
   : analytical_step(analytical_step::ordered, true)
-  , m_output(filename.c_str(), std::ofstream::out)
+  , m_output(filename.c_str(), std::ofstream::out | std::ofstream::binary)
   , m_eof(false)
 {
     if (!m_output.is_open()) {
@@ -669,7 +659,7 @@ write_fastq::write_fastq(const std::string& filename)
 
 chunk_vec write_fastq::process(analytical_chunk* chunk)
 {
-    std::auto_ptr<fastq_output_chunk> file_chunk(dynamic_cast<fastq_output_chunk*>(chunk));
+    output_chunk_ptr file_chunk(dynamic_cast<fastq_output_chunk*>(chunk));
     const string_vec& lines = file_chunk->reads;
 
     if (m_eof) {
@@ -694,7 +684,7 @@ chunk_vec write_fastq::process(analytical_chunk* chunk)
         m_output.flush();
     }
 
-    mutex_locker lock(s_timer_lock);
+    std::lock_guard<std::mutex> lock(s_timer_lock);
     s_timer.increment(file_chunk->count);
 
     return chunk_vec();
@@ -703,7 +693,7 @@ chunk_vec write_fastq::process(analytical_chunk* chunk)
 
 void write_fastq::finalize()
 {
-    mutex_locker lock(s_timer_lock);
+    std::lock_guard<std::mutex> lock(s_timer_lock);
     if (!s_finalized) {
         s_timer.finalize();
         s_finalized = true;
diff --git a/src/fastq_io.h b/src/fastq_io.h
index a98dcdd..1046474 100644
--- a/src/fastq_io.h
+++ b/src/fastq_io.h
@@ -45,7 +45,11 @@ namespace ar
 {
 
 class userconfig;
+class fastq_read_chunk;
+class fastq_output_chunk;
 
+typedef std::unique_ptr<fastq_output_chunk> output_chunk_ptr;
+typedef std::unique_ptr<fastq_read_chunk> read_chunk_ptr;
 typedef std::pair<size_t, unsigned char*> buffer_pair;
 typedef std::vector<buffer_pair> buffer_vec;
 
@@ -103,8 +107,8 @@ public:
     size_t count;
 
 private:
-    friend class gzip_paired_fastq;
-    friend class bzip2_paired_fastq;
+    friend class gzip_fastq;
+    friend class bzip2_fastq;
     friend class write_fastq;
 
     //! Lines read from the mate 1 and mate 2 files
@@ -128,8 +132,9 @@ public:
     /**
      * Constructor.
      *
+     * @param encoding FASTQ encoding for reading quality scores.
      * @param filename Path to FASTQ file containing mate 1 / 2 reads.
-     * @param mate Either rt_mate_1 or rt_mate_2; other values throw.
+     * @param next_step ID of analytical step to which data is forwarded.
      *
      * Opens the input file corresponding to the specified mate.
      */
@@ -254,11 +259,11 @@ private:
 /**
  * BZip2 compression step; takes any lines in the input chunk, compresses them,
  * and adds them to the buffer list of the chunk, before forwarding it. */
-class bzip2_paired_fastq : public analytical_step
+class bzip2_fastq : public analytical_step
 {
 public:
     /** Constructor; 'next_step' sets the destination of compressed chunks. */
-    bzip2_paired_fastq(const userconfig& config, size_t next_step);
+    bzip2_fastq(const userconfig& config, size_t next_step);
 
     /** Compresses input lines, saving compressed chunks to chunk->buffers. */
     virtual chunk_vec process(analytical_chunk* chunk);
@@ -268,9 +273,9 @@ public:
 
 private:
     //! Not implemented
-    bzip2_paired_fastq(const bzip2_paired_fastq&);
+    bzip2_fastq(const bzip2_fastq&);
     //! Not implemented
-    bzip2_paired_fastq& operator=(const bzip2_paired_fastq&);
+    bzip2_fastq& operator=(const bzip2_fastq&);
 
     //! N reads which did not result in an output chunk
     size_t m_buffered_reads;
@@ -289,11 +294,11 @@ private:
 /**
  * GZip compression step; takes any lines in the input chunk, compresses them,
  * and adds them to the buffer list of the chunk, before forwarding it. */
-class gzip_paired_fastq : public analytical_step
+class gzip_fastq : public analytical_step
 {
 public:
     /** Constructor; 'next_step' sets the destination of compressed chunks. */
-    gzip_paired_fastq(const userconfig& config, size_t next_step);
+    gzip_fastq(const userconfig& config, size_t next_step);
 
     /** Compresses input lines, saving compressed chunks to chunk->buffers. */
     virtual chunk_vec process(analytical_chunk* chunk);
@@ -303,9 +308,9 @@ public:
 
 private:
     //! Not implemented
-    gzip_paired_fastq(const gzip_paired_fastq&);
+    gzip_fastq(const gzip_fastq&);
     //! Not implemented
-    gzip_paired_fastq& operator=(const gzip_paired_fastq&);
+    gzip_fastq& operator=(const gzip_fastq&);
 
     //! N reads which did not result in an output chunk
     size_t m_buffered_reads;
@@ -332,8 +337,7 @@ public:
     /**
      * Constructor.
      *
-     * @param config User settings.
-     * @param read_type The type of reads to write.
+     * @param filename Filename to which FASTQ reads are written.
      *
      * Based on the read-type specified, and SE / PE mode, the corresponding
      * output file is opened
diff --git a/src/linereader.cc b/src/linereader.cc
index ba3a0d5..3724017 100644
--- a/src/linereader.cc
+++ b/src/linereader.cc
@@ -132,19 +132,26 @@ bool line_reader::getline(std::string& dst)
     dst.clear();
 
     while (m_file && !m_eof) {
-        char* start = m_buffer_ptr;
+        const char* start = m_buffer_ptr;
         char* end = m_buffer_ptr;
 
         for (; end != m_buffer_end; ++end) {
             if (*end == '\n') {
                 // Excluding terminal \n
                 dst.append(start, end - start);
+                if (!dst.empty() && dst.back() == '\r') {
+                    // Excluding terminal \r; dst is examined, since the \r may
+                    // have been added seperately, if the \r was the last
+                    // character in the previous buffer fill (see below).
+                    dst.pop_back();
+                }
 
                 m_buffer_ptr = end + 1;
                 return true;
             }
         }
 
+        // Can potentially introduce a \r; this is handled above.
         dst.append(start, end - start);
         refill_buffers();
     }
diff --git a/src/main.cc b/src/main.cc
index a4f1b3c..a6e88f1 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -23,7 +23,6 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 \*************************************************************************/
 #include <iostream>
-#include <cstdlib>
 
 #include "debug.h"
 #include "main.h"
@@ -36,6 +35,8 @@ namespace ar
 int remove_adapter_sequences(const userconfig& config);
 // See main_adapter_id.cc
 int identify_adapter_sequences(const userconfig& config);
+// See main_demultiplex.cc
+int demultiplex_sequences(const userconfig& config);
 
 } // namespace ar
 
@@ -54,15 +55,31 @@ int main(int argc, char *argv[])
         return 0;
     }
 
-    // User-specified or timestamp-based seed;
-    // note, however, that threads are reseeded upon initialization
-    srandom(config.seed);
+    auto returncode = 0;
+    switch (config.run_type) {
+        case ar_trim_adapters:
+            returncode = remove_adapter_sequences(config);
+            break;
 
-    if (config.identify_adapters) {
-        return identify_adapter_sequences(config);
-    } else {
-        return remove_adapter_sequences(config);
+        case ar_demultiplex_sequences:
+            returncode = demultiplex_sequences(config);
+            break;
+
+        case ar_identify_adapters:
+            return identify_adapter_sequences(config);
+
+        default:
+            std::cerr << "ERROR: Unknown run-type: "
+                      << static_cast<size_t>(config.run_type)
+                      << std::endl;
+            return 1;
+    }
+
+    if (returncode) {
+        std::cerr << "ERROR: AdapterRemoval did not run to completion;\n"
+                  << "       do NOT make use of resulting trimmed reads!"
+                  << std::endl;
     }
 
-    return 1;
+    return returncode;
 }
diff --git a/src/main.h b/src/main.h
index 47c1a3f..52acfc7 100644
--- a/src/main.h
+++ b/src/main.h
@@ -31,7 +31,7 @@ namespace ar
 {
 
 const std::string NAME = "AdapterRemoval";
-const std::string VERSION = "ver. 2.1.7";
+const std::string VERSION = "ver. 2.2.0";
 const std::string HELPTEXT = \
     "This program searches for and removes remnant adapter sequences from\n"
     "your read data.  The program can analyze both single end and paired end\n"
diff --git a/src/main_adapter_id.cc b/src/main_adapter_id.cc
index 0999b1b..c25bdc1 100644
--- a/src/main_adapter_id.cc
+++ b/src/main_adapter_id.cc
@@ -38,6 +38,7 @@
 #include "timer.h"
 #include "userconfig.h"
 
+
 namespace ar
 {
 
@@ -304,7 +305,7 @@ public:
     //! 5' KMer frequencies of putative adapter 2 fragments
     kmer_map pcr2_kmers;
     //! Statistics object for (number of) processed reads
-    std::auto_ptr<statistics> stats;
+    statistics_ptr stats;
 
 private:
     //! Not implemented
@@ -324,8 +325,12 @@ public:
     }
 
 protected:
-    virtual adapter_stats* new_sink() const {
-        return new adapter_stats(m_config);
+    virtual pointer new_sink() const {
+        return pointer(new adapter_stats(m_config));
+    }
+
+    virtual void reduce(pointer& dst, const pointer& src) const {
+        (*dst) += (*src);
     }
 
 private:
@@ -362,9 +367,9 @@ public:
         fastq_pair_vec adapters;
         adapters.push_back(fastq_pair(empty_adapter, empty_adapter));
 
-        std::auto_ptr<fastq_read_chunk> file_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
+        read_chunk_ptr file_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
 
-        std::auto_ptr<adapter_stats> sink(m_sinks.get_sink());
+        adapter_sink::pointer sink = m_sinks.get_sink();
         statistics& stats = *sink->stats;
 
         AR_DEBUG_ASSERT(file_chunk->reads_1.size() == file_chunk->reads_2.size());
@@ -375,7 +380,7 @@ public:
             process_reads(adapters, stats, *sink, *read_1++, *read_2++);
         }
 
-        m_sinks.return_sink(sink.release());
+        m_sinks.return_sink(std::move(sink));
         m_timer.increment(file_chunk->reads_1.size() * 2);
 
         return chunk_vec();
@@ -386,7 +391,7 @@ public:
     {
         m_timer.finalize();
 
-        std::auto_ptr<adapter_stats> sink(m_sinks.finalize());
+        std::unique_ptr<adapter_stats> sink(m_sinks.finalize());
 
         std::cout << "   Found " << sink->stats->well_aligned_reads << " overlapping pairs ...\n"
                   << "   Of which " << sink->stats->number_of_reads_with_adapter.at(0) << " contained adapter sequence(s) ...\n\n"
@@ -416,8 +421,8 @@ private:
         read2.reverse_complement();
 
         const alignment_info alignment = align_paired_ended_sequences(read1, read2, adapters, m_config.shift);
-        const userconfig::alignment_type aln_type = m_config.evaluate_alignment(alignment);
-        if (aln_type == userconfig::valid_alignment) {
+
+        if (m_config.is_good_alignment(alignment)) {
             stats.well_aligned_reads++;
             if (m_config.is_alignment_collapsible(alignment)) {
                 if (extract_adapter_sequences(alignment, read1, read2)) {
@@ -429,8 +434,6 @@ private:
                     process_adapter(read2.sequence(), sink.pcr2_counts, sink.pcr2_kmers);
                 }
             }
-        } else if (aln_type == userconfig::poor_alignment) {
-            stats.poorly_aligned_reads++;
         } else {
             stats.unaligned_reads++;
         }
@@ -469,14 +472,16 @@ int identify_adapter_sequences(const userconfig& config)
     scheduler sch;
     try {
         if (config.interleaved_input) {
-            sch.add_step(ai_read_fastq, new read_interleaved_fastq(config.quality_input_fmt.get(),
-                                                                   config.input_file_1,
-                                                                   ai_identify_adapters));
+            sch.add_step(ai_read_fastq, "read_interleaved_fastq",
+                         new read_interleaved_fastq(config.quality_input_fmt.get(),
+                                                    config.input_file_1,
+                                                    ai_identify_adapters));
         } else {
-            sch.add_step(ai_read_fastq, new read_paired_fastq(config.quality_input_fmt.get(),
-                                                              config.input_file_1,
-                                                              config.input_file_2,
-                                                              ai_identify_adapters));
+            sch.add_step(ai_read_fastq, "read_paired_fastq",
+                         new read_paired_fastq(config.quality_input_fmt.get(),
+                                               config.input_file_1,
+                                               config.input_file_2,
+                                               ai_identify_adapters));
         }
     } catch (const std::ios_base::failure& error) {
         std::cerr << "IO error opening file; aborting:\n"
@@ -484,9 +489,10 @@ int identify_adapter_sequences(const userconfig& config)
         return 1;
     }
 
-    sch.add_step(ai_identify_adapters, new adapter_identification(config));
+    sch.add_step(ai_identify_adapters, "identify_adapters",
+                 new adapter_identification(config));
 
-    if (!sch.run(config.max_threads, config.seed)) {
+    if (!sch.run(config.max_threads)) {
         return 1;
     }
 
diff --git a/src/main_adapter_rm.cc b/src/main_adapter_rm.cc
index d7e6ae2..f76e6c7 100644
--- a/src/main_adapter_rm.cc
+++ b/src/main_adapter_rm.cc
@@ -38,29 +38,14 @@
 #include "fastq_io.h"
 #include "main.h"
 #include "strutils.h"
+#include "trimmed_reads.h"
 #include "userconfig.h"
 
-namespace ar
-{
-
-typedef std::auto_ptr<fastq_output_chunk> output_chunk_ptr;
 
-
-void add_chunk(chunk_vec& chunks, size_t target, std::auto_ptr<fastq_output_chunk> chunk)
+namespace ar
 {
-    try {
-        if (chunk.get()) {
-            chunks.push_back(chunk_pair(target, chunk.release()));
-        }
-    } catch (...) {
-        for (chunk_vec::iterator it = chunks.begin(); it != chunks.end(); ++it) {
-            delete it->second;
-        }
-
-        throw;
-    }
-}
 
+typedef std::unique_ptr<std::mt19937> mt19937_ptr;
 
 
 void write_settings(const userconfig& config, std::ostream& output, int nth)
@@ -81,25 +66,26 @@ void write_settings(const userconfig& config, std::ostream& output, int nth)
             output << "interleaved ";
         }
 
-        output << "paired-end reads";
+        output << "paired-end reads\n";
     } else {
         output << "single-end reads\n";
     }
 
     if (config.adapters.barcode_count()) {
-        output << "\n\n\n[Demultiplexing]"
+        output << "\n\n[Demultiplexing]"
                << "\nMaximum mismatches (total): " << config.barcode_mm;
+
         if (config.paired_ended_mode) {
             output << "\nMaximum mate 1 mismatches: " << config.barcode_mm_r1;
             output << "\nMaximum mate 2 mismatches: " << config.barcode_mm_r2;
         }
 
         output << "\n\n\n[Demultiplexing samples]"
-               << "\nName\tBarcode_1\tBarcode_2";
+               << "\nName\tBarcode_1\tBarcode_2\n";
 
         const fastq_pair_vec barcodes = config.adapters.get_barcodes();
         for (size_t idx = 0; idx < barcodes.size(); ++idx) {
-            output << "\n" << config.adapters.get_sample_name(idx);
+            output << config.adapters.get_sample_name(idx);
             if (static_cast<int>(idx) == nth) {
                 output << "*";
             }
@@ -108,9 +94,9 @@ void write_settings(const userconfig& config, std::ostream& output, int nth)
             output << "\t" << current.first.sequence();
 
             if (current.second.length()) {
-                output << "\t" << current.second.sequence();
+                output << "\t" << current.second.sequence() << "\n";
             } else {
-                output << "\t*";
+                output << "\t*\n";
             }
         }
     }
@@ -120,25 +106,30 @@ void write_settings(const userconfig& config, std::ostream& output, int nth)
         const fastq_pair_vec adapters = config.adapters.get_raw_adapters();
         size_t adapter_id = 0;
         for (fastq_pair_vec::const_iterator it = adapters.begin(); it != adapters.end(); ++it, ++adapter_id) {
-            output << "\nAdapter1[" << adapter_id << "]: " << it->first.sequence();
-            if (config.paired_ended_mode) {
-                output << "\nAdapter2[" << adapter_id << "]: " << it->second.sequence() << "\n";
-            }
+            output << "\nAdapter1[" << adapter_id + 1 << "]: " << it->first.sequence();
+
+            fastq adapter_2 = it->second;
+            adapter_2.reverse_complement();
+
+            output << "\nAdapter2[" << adapter_id + 1 << "]: " << adapter_2.sequence() << "\n";
         }
     } else {
         const string_pair_vec adapters = config.adapters.get_pretty_adapter_set(nth);
         size_t adapter_id = 0;
         for (string_pair_vec::const_iterator it = adapters.begin(); it != adapters.end(); ++it, ++adapter_id) {
-            output << "\nAdapter1[" << adapter_id << "]: " << it->first;
-            if (config.paired_ended_mode) {
-                output << "\nAdapter2[" << adapter_id << "]: " << it->second << "\n";
-            }
+            output << "\nAdapter1[" << adapter_id + 1 << "]: " << it->first;
+            output << "\nAdapter2[" << adapter_id + 1 << "]: " << it->second << "\n";
         }
     }
 
-    output << "\n\n[Adapter trimming]"
-           << "\nRNG seed: " << config.seed
-           << "\nAlignment shift value: " << config.shift
+    output << "\n\n[Adapter trimming]";
+    if (config.max_threads > 1) {
+        output << "\nRNG seed: NA";
+    } else {
+        output << "\nRNG seed: " << config.seed;
+    }
+
+    output << "\nAlignment shift value: " << config.shift
            << "\nGlobal mismatch threshold: " << config.mismatch_threshold
            << "\nQuality format (input): " << config.quality_input_fmt->name()
            << "\nQuality score max (input): " << config.quality_input_fmt->max_score()
@@ -147,7 +138,7 @@ void write_settings(const userconfig& config, std::ostream& output, int nth)
            << "\nMate-number seperator (input): '" << config.mate_separator << "'"
            << "\nTrimming Ns: " << ((config.trim_ambiguous_bases) ? "Yes" : "No")
            << "\nTrimming Phred scores <= " << config.low_quality_score
-           << ": " << (config.trim_by_quality ? "yes" : "no")
+           << ": " << (config.trim_by_quality ? "Yes" : "No")
            << "\nMinimum genomic length: " << config.min_genomic_length
            << "\nMaximum genomic length: " << config.max_genomic_length
            << "\nCollapse overlapping reads: " << ((config.collapse) ? "Yes" : "No")
@@ -159,7 +150,6 @@ void write_settings(const userconfig& config, std::ostream& output, int nth)
 }
 
 
-
 void write_trimming_settings(const userconfig& config,
                              const statistics& stats,
                              size_t nth,
@@ -172,7 +162,6 @@ void write_trimming_settings(const userconfig& config,
              << "\nTotal number of " << reads_type << stats.records
              << "\nNumber of unaligned " << reads_type << stats.unaligned_reads
              << "\nNumber of well aligned " << reads_type << stats.well_aligned_reads
-             << "\nNumber of inadequate alignments: " << stats.poorly_aligned_reads
              << "\nNumber of discarded mate 1 reads: " << stats.discard1
              << "\nNumber of singleton mate 1 reads: " << stats.keep1;
 
@@ -183,7 +172,10 @@ void write_trimming_settings(const userconfig& config,
 
     for (size_t adapter_id = 0; adapter_id < stats.number_of_reads_with_adapter.size(); ++adapter_id) {
         const size_t count = stats.number_of_reads_with_adapter.at(adapter_id);
-        settings << "\nNumber of reads with adapters[" << adapter_id << "]: " << count;
+        // Value between 0 and stats.records for SE, and 0 and 2*stats.records
+        // for N PE pairs. For PE reads, mate 1 and mate 2 reads being of
+        // unequal length can cause uneven numbers.
+        settings << "\nNumber of reads with adapters[" << adapter_id + 1 << "]: " << count;
     }
 
     if (config.collapse) {
@@ -193,7 +185,7 @@ void write_trimming_settings(const userconfig& config,
 
     settings << "\nNumber of retained reads: " << stats.total_number_of_good_reads
              << "\nNumber of retained nucleotides: " << stats.total_number_of_nucleotides
-             << "\nAverage read length of trimmed reads: "
+             << "\nAverage length of retained reads: "
              << (stats.total_number_of_good_reads ? ( static_cast<double>(stats.total_number_of_nucleotides) / stats.total_number_of_good_reads) : 0);
 
     settings << "\n\n\n[Length distribution]"
@@ -232,6 +224,11 @@ void write_trimming_settings(const userconfig& config,
 }
 
 
+//! Implemented in main_demultiplex.cc
+void write_demultiplex_statistics(std::ofstream& output,
+                                  const userconfig& config,
+                                  const demultiplex_reads* step);
+
 
 bool write_demux_settings(const userconfig& config,
                           const demultiplex_reads* step)
@@ -241,7 +238,6 @@ bool write_demux_settings(const userconfig& config,
         return true;
     }
 
-    const demux_statistics stats = step->statistics();
     const std::string filename = config.get_output_filename("demux_stats");
 
     try {
@@ -254,36 +250,8 @@ bool write_demux_settings(const userconfig& config,
         output.exceptions(std::ofstream::failbit | std::ofstream::badbit);
 
         write_settings(config, output, -1);
-
-        const size_t total = stats.total();
-
-        output.precision(3);
-        output << std::fixed << std::setw(3)
-               << "\n\n\n[Demultiplexing statistics]"
-               << "\nName\tBarcode_1\tBarcode_2\tHits\tFraction\n"
-               << "unidentified\tNA\tNA\t" << stats.unidentified << "\t"
-               << stats.unidentified / static_cast<double>(total) << "\n"
-               << "ambiguous\tNA\tNA\t" << stats.ambiguous << "\t"
-               << stats.ambiguous / static_cast<double>(total) << "\n";
-
-        const fastq_pair_vec barcodes = config.adapters.get_barcodes();
-        for (size_t nth = 0; nth < barcodes.size(); ++nth) {
-            const fastq_pair& current = barcodes.at(nth);
-
-            output << config.adapters.get_sample_name(nth) << "\t"
-                   << current.first.sequence() << "\t";
-            if (current.second.length()) {
-                output << current.second.sequence() << "\t";
-            } else {
-                output << "*\t";
-            }
-
-            output << stats.barcodes.at(nth) << "\t"
-                   << stats.barcodes.at(nth) / static_cast<double>(total)
-                   << "\n";
-        }
-
-        output << "*\t*\t*\t" << total << "\t" << 1.0 << std::endl;
+        output << "\n";
+        write_demultiplex_statistics(output, config, step);
     } catch (const std::ios_base::failure& error) {
         std::cerr << "IO error writing demultiplexing statistics; aborting:\n"
                   << cli_formatter::fmt(error.what()) << std::endl;
@@ -294,21 +262,20 @@ bool write_demux_settings(const userconfig& config,
 }
 
 
-void process_collapsed_read(const userconfig& config, statistics& stats,
+void process_collapsed_read(const userconfig& config,
+                            statistics& stats,
                             fastq& collapsed_read,
-                            fastq_output_chunk& out_collapsed,
-                            fastq_output_chunk& out_collapsed_truncated,
-                            fastq_output_chunk& out_discarded)
+                            fastq* mate_read,
+                            trimmed_reads& chunks)
 {
     const fastq::ntrimmed trimmed = config.trim_sequence_by_quality_if_enabled(collapsed_read);
 
     // If trimmed, the external coordinates are no longer reliable
     // for determining the size of the original template.
     const bool was_trimmed = trimmed.first || trimmed.second;
-    if (was_trimmed) {
-        collapsed_read.add_prefix_to_header("MT_");
-    } else {
-        collapsed_read.add_prefix_to_header("M_");
+    collapsed_read.add_prefix_to_header(was_trimmed ? "MT_" : "M_");
+    if (mate_read) {
+        mate_read->add_prefix_to_header(was_trimmed ? "MT_" : "M_");
     }
 
     const size_t read_count = config.paired_ended_mode ? 2 : 1;
@@ -319,17 +286,22 @@ void process_collapsed_read(const userconfig& config, statistics& stats,
                                collapsed_read.length());
 
         if (was_trimmed) {
-            out_collapsed_truncated.add(*config.quality_output_fmt, collapsed_read, read_count);
+            chunks.add_collapsed_truncated_read(collapsed_read, PASSED, read_count);
             stats.number_of_truncated_collapsed++;
         } else {
-            out_collapsed.add(*config.quality_output_fmt, collapsed_read, read_count);
+            chunks.add_collapsed_read(collapsed_read, PASSED, read_count);
             stats.number_of_full_length_collapsed++;
         }
     } else {
         stats.discard1++;
         stats.discard2++;
         stats.inc_length_count(rt_discarded, collapsed_read.length());
-        out_discarded.add(*config.quality_output_fmt, collapsed_read, read_count);
+
+        if (was_trimmed) {
+            chunks.add_collapsed_truncated_read(collapsed_read, FAILED, read_count);
+        } else {
+            chunks.add_collapsed_read(collapsed_read, FAILED, read_count);
+        }
     }
 }
 
@@ -347,7 +319,7 @@ public:
 
     }
 
-    statistics* get_final_statistics() {
+    statistics_ptr get_final_statistics() {
         return m_stats.finalize();
     }
 
@@ -361,8 +333,12 @@ protected:
         }
 
     protected:
-        virtual statistics* new_sink() const {
-            return m_config.create_stats().release();
+        virtual pointer new_sink() const {
+            return m_config.create_stats();
+        }
+
+        virtual void reduce(pointer& dst, const pointer& src) const {
+            (*dst) += (*src);
         }
 
         const userconfig& m_config;
@@ -375,7 +351,6 @@ protected:
 };
 
 
-
 class se_reads_processor : public reads_processor
 {
 public:
@@ -386,41 +361,26 @@ public:
 
     chunk_vec process(analytical_chunk* chunk)
     {
-        std::auto_ptr<fastq_read_chunk> read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
-
-        std::auto_ptr<statistics> stats(m_stats.get_sink());
-
-        const fastq_encoding& encoding = *m_config.quality_output_fmt;
-        output_chunk_ptr out_mate_1(new fastq_output_chunk(read_chunk->eof));
-        output_chunk_ptr out_collapsed;
-        output_chunk_ptr out_collapsed_truncated;
-        output_chunk_ptr out_discarded(new fastq_output_chunk(read_chunk->eof));
+        const size_t offset = m_nth * ai_analyses_offset;
 
-        if (m_config.collapse) {
-            out_collapsed.reset(new fastq_output_chunk(read_chunk->eof));
-            out_collapsed_truncated.reset(new fastq_output_chunk(read_chunk->eof));
-        }
+        read_chunk_ptr read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
+        trimmed_reads chunks(m_config, offset, read_chunk->eof);
+        stats_sink::pointer stats = m_stats.get_sink();
 
         for (fastq_vec::iterator it = read_chunk->reads_1.begin(); it != read_chunk->reads_1.end(); ++it) {
             fastq& read = *it;
 
             const alignment_info alignment = align_single_ended_sequence(read, m_adapters, m_config.shift);
-            const userconfig::alignment_type aln_type = m_config.evaluate_alignment(alignment);
 
-            if (aln_type == userconfig::valid_alignment) {
+            if (m_config.is_good_alignment(alignment)) {
                 truncate_single_ended_sequence(alignment, read);
                 stats->number_of_reads_with_adapter.at(alignment.adapter_id)++;
                 stats->well_aligned_reads++;
 
                 if (m_config.is_alignment_collapsible(alignment)) {
-                    process_collapsed_read(m_config, *stats, read,
-                                           *out_collapsed,
-                                           *out_collapsed_truncated,
-                                           *out_discarded);
+                    process_collapsed_read(m_config, *stats, read, NULL, chunks);
                     continue;
                 }
-            } else if (aln_type == userconfig::poor_alignment) {
-                stats->poorly_aligned_reads++;
             } else {
                 stats->unaligned_reads++;
             }
@@ -431,28 +391,49 @@ public:
                 stats->total_number_of_good_reads++;
                 stats->total_number_of_nucleotides += read.length();
 
-                out_mate_1->add(encoding, read);
+                chunks.add_mate_1_read(read, PASSED);
                 stats->inc_length_count(rt_mate_1, read.length());
             } else {
                 stats->discard1++;
                 stats->inc_length_count(rt_discarded, read.length());
 
-                out_discarded->add(encoding, read);
+                chunks.add_mate_1_read(read, FAILED);
             }
         }
 
         stats->records += read_chunk->reads_1.size();
-        m_stats.return_sink(stats.release());
+        m_stats.return_sink(std::move(stats));
 
-        chunk_vec chunks;
-        const size_t offset = m_nth * ai_analyses_offset;
-        add_chunk(chunks, offset + ai_write_mate_1, out_mate_1);
-        add_chunk(chunks, offset + ai_write_collapsed, out_collapsed);
-        add_chunk(chunks, offset + ai_write_collapsed_truncated, out_collapsed_truncated);
-        add_chunk(chunks, offset + ai_write_discarded, out_discarded);
+        return chunks.finalize();
+    }
+};
+
+
+/** Class for building RNGs on demand. */
+class rng_sink : public statistics_sink<std::mt19937>
+{
+public:
+    rng_sink(unsigned seed)
+      : m_seed(seed)
+    {
+    }
+
+protected:
+    virtual pointer new_sink() const {
+        return pointer(new std::mt19937(m_seed()));
+    }
 
-        return chunks;
+    virtual void reduce(pointer&, const pointer&) const {
+        // Intentionally left empty
     }
+
+private:
+    //! Not implemented
+    rng_sink(const rng_sink&);
+    //! Not implemented
+    rng_sink& operator=(const rng_sink&);
+
+    mutable std::mt19937 m_seed;
 };
 
 
@@ -461,134 +442,108 @@ class pe_reads_processor : public reads_processor
 public:
     pe_reads_processor(const userconfig& config, size_t nth)
       : reads_processor(config, nth)
+      , m_rngs(config.seed)
     {
     }
 
     chunk_vec process(analytical_chunk* chunk)
     {
-        std::auto_ptr<fastq_read_chunk> read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
-
-        std::auto_ptr<statistics> stats(m_stats.get_sink());
-
-        const fastq_encoding& encoding = *m_config.quality_output_fmt;
-        output_chunk_ptr out_mate_1(new fastq_output_chunk(read_chunk->eof));
-        output_chunk_ptr out_mate_2;
-        if (!m_config.interleaved_output) {
-            out_mate_2.reset(new fastq_output_chunk(read_chunk->eof));
-        }
-
-        output_chunk_ptr out_singleton(new fastq_output_chunk(read_chunk->eof));
-        output_chunk_ptr out_collapsed;
-        output_chunk_ptr out_collapsed_truncated;
-        output_chunk_ptr out_discarded(new fastq_output_chunk(read_chunk->eof));
+        const size_t offset = m_nth * ai_analyses_offset;
+        const char mate_separator = m_config.combined_output ? '\0' : m_config.mate_separator;
 
-        if (m_config.collapse) {
-            out_collapsed.reset(new fastq_output_chunk(read_chunk->eof));
-            out_collapsed_truncated.reset(new fastq_output_chunk(read_chunk->eof));
-        }
+        mt19937_ptr rng = m_rngs.get_sink();
+        read_chunk_ptr read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
+        trimmed_reads chunks(m_config, offset, read_chunk->eof);
+        statistics_ptr stats = m_stats.get_sink();
 
         AR_DEBUG_ASSERT(read_chunk->reads_1.size() == read_chunk->reads_2.size());
 
         fastq_vec::iterator it_1 = read_chunk->reads_1.begin();
         fastq_vec::iterator it_2 = read_chunk->reads_2.begin();
         while (it_1 != read_chunk->reads_1.end()) {
-            fastq read1 = *it_1++;
-            fastq read2 = *it_2++;
+            fastq read_1 = *it_1++;
+            fastq read_2 = *it_2++;
 
             // Throws if read-names or mate numbering does not match
-            fastq::validate_paired_reads(read1, read2, m_config.mate_separator);
+            fastq::validate_paired_reads(read_1, read_2, m_config.mate_separator);
 
-            // Reverse complement to match the orientation of read1
-            read2.reverse_complement();
+            // Reverse complement to match the orientation of read_1
+            read_2.reverse_complement();
 
-            const alignment_info alignment = align_paired_ended_sequences(read1, read2, m_adapters, m_config.shift);
-            const userconfig::alignment_type aln_type = m_config.evaluate_alignment(alignment);
-            if (aln_type == userconfig::valid_alignment) {
+            const alignment_info alignment = align_paired_ended_sequences(read_1, read_2, m_adapters, m_config.shift);
+
+            if (m_config.is_good_alignment(alignment)) {
                 stats->well_aligned_reads++;
-                const size_t n_adapters = truncate_paired_ended_sequences(alignment, read1, read2);
+                const size_t n_adapters = truncate_paired_ended_sequences(alignment, read_1, read_2);
                 stats->number_of_reads_with_adapter.at(alignment.adapter_id) += n_adapters;
 
                 if (m_config.is_alignment_collapsible(alignment)) {
-                    fastq collapsed_read = collapse_paired_ended_sequences(alignment, read1, read2);
-                    process_collapsed_read(m_config, *stats, collapsed_read,
-                                           *out_collapsed,
-                                           *out_collapsed_truncated,
-                                           *out_discarded);
+                    fastq collapsed_read = collapse_paired_ended_sequences(alignment, read_1, read_2, *rng,
+                                                                           mate_separator);
+                    process_collapsed_read(m_config,
+                                           *stats,
+                                           collapsed_read,
+                                           // Make sure read_2 header is updated, if needed
+                                           m_config.combined_output ? &read_2 : NULL,
+                                           chunks);
+
+                    if (m_config.combined_output) {
+                        // Dummy read with read-count of zero; both mates have
+                        // already been accounted for in process_collapsed_read
+                        chunks.add_mate_2_read(read_2, FAILED, 0);
+                    }
                     continue;
                 }
-            } else if (aln_type == userconfig::poor_alignment) {
-                stats->poorly_aligned_reads++;
             } else {
                 stats->unaligned_reads++;
             }
 
             // Reads were not aligned or collapsing is not enabled
             // Undo reverse complementation (post truncation of adapters)
-            read2.reverse_complement();
+            read_2.reverse_complement();
 
             // Are the reads good enough? Not too many Ns?
-            m_config.trim_sequence_by_quality_if_enabled(read1);
-            m_config.trim_sequence_by_quality_if_enabled(read2);
-            const bool read_1_acceptable = m_config.is_acceptable_read(read1);
-            const bool read_2_acceptable = m_config.is_acceptable_read(read2);
+            m_config.trim_sequence_by_quality_if_enabled(read_1);
+            m_config.trim_sequence_by_quality_if_enabled(read_2);
+            const bool read_1_acceptable = m_config.is_acceptable_read(read_1);
+            const bool read_2_acceptable = m_config.is_acceptable_read(read_2);
 
-            stats->total_number_of_nucleotides += read_1_acceptable ? read1.length() : 0u;
-            stats->total_number_of_nucleotides += read_1_acceptable ? read2.length() : 0u;
+            stats->total_number_of_nucleotides += read_1_acceptable ? read_1.length() : 0u;
+            stats->total_number_of_nucleotides += read_1_acceptable ? read_2.length() : 0u;
             stats->total_number_of_good_reads += read_1_acceptable;
             stats->total_number_of_good_reads += read_2_acceptable;
 
-            if (read_1_acceptable && read_2_acceptable) {
-                out_mate_1->add(encoding, read1);
+            const read_status state_1 = read_1_acceptable ? PASSED : FAILED;
+            const read_status state_2 = read_2_acceptable ? PASSED : FAILED;
 
-                if (m_config.interleaved_output) {
-                    out_mate_1->add(encoding, read2);
-                } else {
-                    out_mate_2->add(encoding, read2);
-                }
-
-                stats->inc_length_count(rt_mate_1, read1.length());
-                stats->inc_length_count(rt_mate_2, read2.length());
+            if (read_1_acceptable && read_2_acceptable) {
+                stats->inc_length_count(rt_mate_1, read_1.length());
+                stats->inc_length_count(rt_mate_2, read_2.length());
             } else {
-                // Keep one or none of the reads ...
-                stats->keep1 += read_1_acceptable;
-                stats->keep2 += read_2_acceptable;
+                // Count singleton reads
+                stats->keep1 += read_1_acceptable && !read_2_acceptable;
+                stats->keep2 += read_2_acceptable && !read_1_acceptable;
+
                 stats->discard1 += !read_1_acceptable;
                 stats->discard2 += !read_2_acceptable;
-                stats->inc_length_count(read_1_acceptable ? rt_mate_1 : rt_discarded, read1.length());
-                stats->inc_length_count(read_2_acceptable ? rt_mate_2 : rt_discarded, read2.length());
-
-                if (read_1_acceptable) {
-                    out_singleton->add(encoding, read1);
-                } else {
-                    out_discarded->add(encoding, read1);
-                }
 
-                if (read_2_acceptable) {
-                    out_singleton->add(encoding, read2);
-                } else {
-                    out_discarded->add(encoding, read2);
-                }
+                stats->inc_length_count(read_1_acceptable ? rt_singleton : rt_discarded, read_1.length());
+                stats->inc_length_count(read_2_acceptable ? rt_singleton : rt_discarded, read_2.length());
             }
-        }
-
-        stats->records += read_chunk->reads_1.size();
-        m_stats.return_sink(stats.release());
-
-        chunk_vec chunks;
-        const size_t offset = m_nth * ai_analyses_offset;
 
-        add_chunk(chunks, offset + ai_write_mate_1, out_mate_1);
-        if (!m_config.interleaved_output) {
-            add_chunk(chunks, offset + ai_write_mate_2, out_mate_2);
+            // Queue reads last, since this result in modifications to lengths
+            chunks.add_pe_reads(read_1, state_1, read_2, state_2);
         }
 
-        add_chunk(chunks, offset + ai_write_singleton, out_singleton);
-        add_chunk(chunks, offset + ai_write_collapsed, out_collapsed);
-        add_chunk(chunks, offset + ai_write_collapsed_truncated, out_collapsed_truncated);
-        add_chunk(chunks, offset + ai_write_discarded, out_discarded);
+        stats->records += read_chunk->reads_1.size();
+        m_stats.return_sink(std::move(stats));
+        m_rngs.return_sink(std::move(rng));
 
-        return chunks;
+        return chunks.finalize();
     }
+
+private:
+    rng_sink m_rngs;
 };
 
 
@@ -597,7 +552,7 @@ bool write_settings(const userconfig& config, const std::vector<reads_processor*
     for (size_t nth = 0; nth < processors.size(); ++nth) {
         const std::string filename = config.get_output_filename("--settings", nth);
 
-        const std::auto_ptr<statistics> stats(processors.at(nth)->get_final_statistics());
+        const statistics_ptr stats = processors.at(nth)->get_final_statistics();
 
         try {
             std::ofstream output(filename.c_str(), std::ofstream::out);
@@ -621,23 +576,25 @@ bool write_settings(const userconfig& config, const std::vector<reads_processor*
 
 
 void add_write_step(const userconfig& config, scheduler& sch, size_t offset,
-                    analytical_step* step)
+                    const std::string& name, analytical_step* step)
 {
 #ifdef AR_GZIP_SUPPORT
     if (config.gzip) {
-        sch.add_step(offset + ai_zip_offset, step);
-        sch.add_step(offset, new gzip_paired_fastq(config, offset + ai_zip_offset));
+        sch.add_step(offset + ai_zip_offset, "write_gzip_" + name, step);
+        sch.add_step(offset, "gzip_" + name,
+                     new gzip_fastq(config, offset + ai_zip_offset));
     } else
 #endif
 
 #ifdef AR_BZIP2_SUPPORT
     if (config.bzip2) {
-        sch.add_step(offset + ai_zip_offset, step);
-        sch.add_step(offset, new bzip2_paired_fastq(config, offset + ai_zip_offset));
+        sch.add_step(offset + ai_zip_offset, "write_bzip2_" + name, step);
+        sch.add_step(offset, "bzip2_" + name,
+                     new bzip2_fastq(config, offset + ai_zip_offset));
     } else
 #endif
     {
-        sch.add_step(offset, step);
+        sch.add_step(offset, "write_" + name, step);
     }
 }
 
@@ -653,38 +610,47 @@ int remove_adapter_sequences_se(const userconfig& config)
     try {
         if (config.adapters.barcode_count()) {
             // Step 1: Read input file
-            sch.add_step(ai_read_fastq, new read_single_fastq(config.quality_input_fmt.get(),
-                                                              config.input_file_1,
-                                                              ai_demultiplex));
+            sch.add_step(ai_read_fastq, "read_fastq",
+                         new read_single_fastq(config.quality_input_fmt.get(),
+                                               config.input_file_1,
+                                               ai_demultiplex));
 
             // Step 2: Parse and demultiplex reads based on single or double indices
-            sch.add_step(ai_demultiplex, demultiplexer = new demultiplex_se_reads(&config));
+            sch.add_step(ai_demultiplex, "demultiplex_se",
+                         demultiplexer = new demultiplex_se_reads(&config));
 
-            add_write_step(config, sch, ai_write_unidentified_1,
+            add_write_step(config, sch, ai_write_unidentified_1, "unidentified",
                            new write_fastq(config.get_output_filename("demux_unknown")));
         } else {
-            sch.add_step(ai_read_fastq, new read_single_fastq(config.quality_input_fmt.get(),
-                                                              config.input_file_1,
-                                                              ai_analyses_offset));
+            sch.add_step(ai_read_fastq, "read_fastq",
+                         new read_single_fastq(config.quality_input_fmt.get(),
+                                               config.input_file_1,
+                                               ai_analyses_offset));
         }
 
-        // Step 3 - N: Trim and write demultiplexed readss
+        // Step 3 - N: Trim and write demultiplexed reads
         for (size_t nth = 0; nth < config.adapters.adapter_set_count(); ++nth) {
             const size_t offset = nth * ai_analyses_offset;
+            const std::string& sample = config.adapters.get_sample_name(nth);
 
             processors.push_back(new se_reads_processor(config, nth));
-            sch.add_step(offset + ai_trim_se, processors.back());
+            sch.add_step(offset + ai_trim_se, "trim_se_" + sample,
+                         processors.back());
 
-            add_write_step(config, sch, offset + ai_write_mate_1,
+            add_write_step(config, sch, offset + ai_write_mate_1, sample + "_fastq",
                            new write_fastq(config.get_output_filename("--output1", nth)));
-            add_write_step(config, sch, offset + ai_write_discarded,
-                         new write_fastq(config.get_output_filename("--discarded", nth)));
-
-            if (config.collapse) {
-                add_write_step(config, sch, offset + ai_write_collapsed,
-                               new write_fastq(config.get_output_filename("--outputcollapsed", nth)));
-                add_write_step(config, sch, offset + ai_write_collapsed_truncated,
-                               new write_fastq(config.get_output_filename("--outputcollapsedtruncated", nth)));
+
+            if (!config.combined_output) {
+                add_write_step(config, sch, offset + ai_write_discarded, sample + "_discarded",
+                             new write_fastq(config.get_output_filename("--discarded", nth)));
+
+                if (config.collapse) {
+                    add_write_step(config, sch, offset + ai_write_collapsed, sample + "_collapsed",
+                                   new write_fastq(config.get_output_filename("--outputcollapsed", nth)));
+                    add_write_step(config, sch, offset + ai_write_collapsed_truncated,
+                                   sample + "_collapsed_truncated",
+                                   new write_fastq(config.get_output_filename("--outputcollapsedtruncated", nth)));
+                }
             }
         }
     } catch (const std::ios_base::failure& error) {
@@ -693,7 +659,7 @@ int remove_adapter_sequences_se(const userconfig& config)
         return 1;
     }
 
-    if (!sch.run(config.max_threads, config.seed)) {
+    if (!sch.run(config.max_threads)) {
         return 1;
     } else if (!write_settings(config, processors)) {
         return 1;
@@ -717,52 +683,62 @@ int remove_adapter_sequences_pe(const userconfig& config)
         // Step 1: Read input file
         const size_t next_step = config.adapters.barcode_count() ? ai_demultiplex : ai_analyses_offset;
         if (config.interleaved_input) {
-            sch.add_step(ai_read_fastq, new read_interleaved_fastq(config.quality_input_fmt.get(),
-                                                                   config.input_file_1,
-                                                                   next_step));
+            sch.add_step(ai_read_fastq, "read_interleaved_fastq",
+                         new read_interleaved_fastq(config.quality_input_fmt.get(),
+                                                    config.input_file_1,
+                                                    next_step));
         } else {
-            sch.add_step(ai_read_fastq, new read_paired_fastq(config.quality_input_fmt.get(),
-                                                              config.input_file_1,
-                                                              config.input_file_2,
-                                                              next_step));
+            sch.add_step(ai_read_fastq, "read_paired_fastq",
+                         new read_paired_fastq(config.quality_input_fmt.get(),
+                                               config.input_file_1,
+                                               config.input_file_2,
+                                               next_step));
         }
 
         if (config.adapters.barcode_count()) {
             // Step 2: Parse and demultiplex reads based on single or double indices
-            sch.add_step(ai_demultiplex, demultiplexer = new demultiplex_pe_reads(&config));
+            sch.add_step(ai_demultiplex, "demultiplex_pe",
+                         demultiplexer = new demultiplex_pe_reads(&config));
 
-            add_write_step(config, sch, ai_write_unidentified_1,
+            add_write_step(config, sch, ai_write_unidentified_1, "unidentified_mate_1",
                            new write_fastq(config.get_output_filename("demux_unknown", 1)));
-            add_write_step(config, sch, ai_write_unidentified_2,
-                           new write_fastq(config.get_output_filename("demux_unknown", 2)));
+
+            if (!config.interleaved_output) {
+                add_write_step(config, sch, ai_write_unidentified_2, "unidentified_mate_2",
+                               new write_fastq(config.get_output_filename("demux_unknown", 2)));
+            }
         }
 
         // Step 3 - N: Trim and write demultiplexed reads
         for (size_t nth = 0; nth < config.adapters.adapter_set_count(); ++nth) {
             const size_t offset = nth * ai_analyses_offset;
+            const std::string& sample = config.adapters.get_sample_name(nth);
 
             processors.push_back(new pe_reads_processor(config, nth));
-            sch.add_step(offset + ai_trim_pe, processors.back());
+            sch.add_step(offset + ai_trim_pe, "trim_pe_" + sample,
+                         processors.back());
 
-            add_write_step(config, sch, offset + ai_write_mate_1,
+            add_write_step(config, sch, offset + ai_write_mate_1, sample + "_mate_1",
                            new write_fastq(config.get_output_filename("--output1", nth)));
 
             if (!config.interleaved_output) {
-                add_write_step(config, sch, offset + ai_write_mate_2,
+                add_write_step(config, sch, offset + ai_write_mate_2, sample + "_mate_2",
                                new write_fastq(config.get_output_filename("--output2", nth)));
             }
 
-
-            add_write_step(config, sch, offset + ai_write_discarded,
-                           new write_fastq(config.get_output_filename("--discarded", nth)));
-            add_write_step(config, sch, offset + ai_write_singleton,
-                           new write_fastq(config.get_output_filename("--singleton", nth)));
-
-            if (config.collapse) {
-                add_write_step(config, sch, offset + ai_write_collapsed,
-                               new write_fastq(config.get_output_filename("--outputcollapsed", nth)));
-                add_write_step(config, sch, offset + ai_write_collapsed_truncated,
-                               new write_fastq(config.get_output_filename("--outputcollapsedtruncated", nth)));
+            if (!config.combined_output) {
+                add_write_step(config, sch, offset + ai_write_discarded, sample + "_discarded",
+                               new write_fastq(config.get_output_filename("--discarded", nth)));
+                add_write_step(config, sch, offset + ai_write_singleton, sample + "_singleton",
+                               new write_fastq(config.get_output_filename("--singleton", nth)));
+
+                if (config.collapse) {
+                    add_write_step(config, sch, offset + ai_write_collapsed, sample + "_collapsed",
+                                   new write_fastq(config.get_output_filename("--outputcollapsed", nth)));
+                    add_write_step(config, sch, offset + ai_write_collapsed_truncated,
+                                   sample + "_collapsed_truncated",
+                                   new write_fastq(config.get_output_filename("--outputcollapsedtruncated", nth)));
+                }
             }
         }
     } catch (const std::ios_base::failure& error) {
@@ -771,7 +747,7 @@ int remove_adapter_sequences_pe(const userconfig& config)
         return 1;
     }
 
-    if (!sch.run(config.max_threads, config.seed)) {
+    if (!sch.run(config.max_threads)) {
         return 1;
     } else if (!write_settings(config, processors)) {
         return 1;
@@ -790,8 +766,6 @@ int remove_adapter_sequences(const userconfig& config)
     } else {
         return remove_adapter_sequences_se(config);
     }
-
-    return 0;
 }
 
 } // namespace ar
diff --git a/src/main_demultiplex.cc b/src/main_demultiplex.cc
new file mode 100644
index 0000000..a0e0684
--- /dev/null
+++ b/src/main_demultiplex.cc
@@ -0,0 +1,402 @@
+/*************************************************************************\
+ * AdapterRemoval - cleaning next-generation sequencing reads            *
+ *                                                                       *
+ * Copyright (C) 2011 by Stinus Lindgreen - stinus at binf.ku.dk            *
+ * Copyright (C) 2016 by Mikkel Schubert - mikkelsch at gmail.com           *
+ *                                                                       *
+ * If you use the program, please cite the paper:                        *
+ * S. Lindgreen (2012): AdapterRemoval: Easy Cleaning of Next Generation *
+ * Sequencing Reads, BMC Research Notes, 5:337                           *
+ * http://www.biomedcentral.com/1756-0500/5/337/                         *
+ *                                                                       *
+ * 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/>. *
+\*************************************************************************/
+#include <cerrno>
+#include <cstring>
+#include <fstream>
+#include <iostream>
+#include <string>
+
+#include "debug.h"
+#include "demultiplex.h"
+#include "fastq.h"
+#include "fastq_io.h"
+#include "main.h"
+//#include "strutils.h"
+#include "userconfig.h"
+
+
+namespace ar
+{
+
+//! Implemented in main_adapter_rm.cc
+void add_write_step(const userconfig& config, scheduler& sch, size_t offset,
+                    const std::string& name, analytical_step* step);
+
+
+void write_demultiplex_statistics(std::ofstream& output,
+                                  const userconfig& config,
+                                  const demultiplex_reads* step)
+{
+    const demux_statistics stats = step->statistics();
+    const size_t total = stats.total();
+
+    output.precision(3);
+    output << std::fixed << std::setw(3)
+           << "\n\n[Demultiplexing statistics]"
+           << "\nName\tBarcode_1\tBarcode_2\tHits\tFraction\n"
+           << "unidentified\tNA\tNA\t" << stats.unidentified << "\t"
+           << stats.unidentified / static_cast<double>(total) << "\n"
+           << "ambiguous\tNA\tNA\t" << stats.ambiguous << "\t"
+           << stats.ambiguous / static_cast<double>(total) << "\n";
+
+    const fastq_pair_vec barcodes = config.adapters.get_barcodes();
+    for (size_t nth = 0; nth < barcodes.size(); ++nth) {
+        const fastq_pair& current = barcodes.at(nth);
+
+        output << config.adapters.get_sample_name(nth) << "\t"
+               << current.first.sequence() << "\t";
+        if (current.second.length()) {
+            output << current.second.sequence() << "\t";
+        } else {
+            output << "*\t";
+        }
+
+        output << stats.barcodes.at(nth) << "\t"
+               << stats.barcodes.at(nth) / static_cast<double>(total)
+               << "\n";
+    }
+
+    output << "*\t*\t*\t" << total << "\t" << 1.0 << std::endl;
+}
+
+
+bool write_demultiplex_settings(const userconfig& config,
+                                const demultiplex_reads* step,
+                                int nth = -1)
+{
+    const std::string filename \
+        = config.get_output_filename(nth == -1 ? "demux_stats" : "--settings", nth);
+
+    try {
+        std::ofstream output(filename.c_str(), std::ofstream::out);
+
+        if (!output.is_open()) {
+            std::string message = std::string("Failed to open file '") + filename + "': ";
+            throw std::ofstream::failure(message + std::strerror(errno));
+        }
+
+        output.exceptions(std::ofstream::failbit | std::ofstream::badbit);
+
+        output << NAME << " " << VERSION
+                 << "\nDemultiplexing of ";
+
+        if (config.adapters.barcode_count()) {
+            if (config.adapters.get_barcodes().front().second.length()) {
+                output << "double-indexed ";
+            } else {
+                output << "single-indexed ";
+            }
+        }
+
+        if (config.paired_ended_mode) {
+            if (config.interleaved_input) {
+                output << "interleaved ";
+            }
+
+            output << "paired-end reads";
+        } else {
+            output << "single-end reads";
+        }
+
+        output << "\n\n\n[Demultiplexing]"
+               << "\nMaximum mismatches (total): " << config.barcode_mm;
+
+        if (config.paired_ended_mode) {
+            output << "\nMaximum mate 1 mismatches: " << config.barcode_mm_r1;
+            output << "\nMaximum mate 2 mismatches: " << config.barcode_mm_r2;
+        }
+
+        output << "\n\n\n[Demultiplexing samples]"
+               << "\nName\tBarcode_1\tBarcode_2\n";
+
+        const fastq_pair_vec barcodes = config.adapters.get_barcodes();
+        for (size_t idx = 0; idx < barcodes.size(); ++idx) {
+            output << config.adapters.get_sample_name(idx);
+            if (static_cast<size_t>(nth) == idx) {
+                output << "*";
+            }
+
+            const fastq_pair& current = barcodes.at(idx);
+            output << "\t" << current.first.sequence();
+
+            if (current.second.length()) {
+                output << "\t" << current.second.sequence() << "\n";
+            } else {
+                output << "\t*\n";
+            }
+        }
+
+        output << "\n\n[Adapter sequences]";
+        if (nth == -1) {
+            const fastq_pair_vec adapters = config.adapters.get_raw_adapters();
+            size_t adapter_id = 0;
+            for (fastq_pair_vec::const_iterator it = adapters.begin(); it != adapters.end(); ++it, ++adapter_id) {
+                output << "\nAdapter1[" << adapter_id + 1 << "]: " << it->first.sequence();
+
+                fastq adapter_2 = it->second;
+                adapter_2.reverse_complement();
+                output << "\nAdapter2[" << adapter_id + 1 << "]: " << adapter_2.sequence() << "\n";
+            }
+
+            write_demultiplex_statistics(output, config, step);
+        } else {
+            const string_pair_vec adapters = config.adapters.get_pretty_adapter_set(nth);
+            size_t adapter_id = 0;
+            for (string_pair_vec::const_iterator it = adapters.begin(); it != adapters.end(); ++it, ++adapter_id) {
+                output << "\nAdapter1[" << adapter_id + 1 << "]: " << it->first;
+                output << "\nAdapter2[" << adapter_id + 1 << "]: " << it->second << "\n";
+            }
+        }
+    } catch (const std::ios_base::failure& error) {
+        std::cerr << "IO error writing settings file; aborting:\n"
+                  << cli_formatter::fmt(error.what()) << std::endl;
+        return false;
+    }
+
+    return true;
+}
+
+
+class se_demultiplexed_reads_processor : public analytical_step
+{
+public:
+    se_demultiplexed_reads_processor(const userconfig& config, size_t nth)
+      : analytical_step(analytical_step::unordered)
+      , m_config(config)
+      , m_nth(nth)
+    {
+    }
+
+    chunk_vec process(analytical_chunk* chunk)
+    {
+        const size_t offset = m_nth * ai_analyses_offset;
+        read_chunk_ptr read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
+
+        output_chunk_ptr encoded_reads(new fastq_output_chunk(read_chunk->eof));
+
+        for (auto const& read: read_chunk->reads_1) {
+            encoded_reads->add(*m_config.quality_output_fmt, read);
+        }
+
+        chunk_vec chunks;
+        chunks.push_back(chunk_pair(offset + ai_write_mate_1, std::move(encoded_reads)));
+
+        return chunks;
+    }
+
+private:
+    const userconfig& m_config;
+    const size_t m_nth;
+};
+
+
+class pe_demultiplexed_reads_processor : public analytical_step
+{
+public:
+    pe_demultiplexed_reads_processor(const userconfig& config, size_t nth)
+      : analytical_step(analytical_step::unordered)
+      , m_config(config)
+      , m_nth(nth)
+    {
+    }
+
+    chunk_vec process(analytical_chunk* chunk)
+    {
+        const size_t offset = m_nth * ai_analyses_offset;
+        read_chunk_ptr read_chunk(dynamic_cast<fastq_read_chunk*>(chunk));
+        AR_DEBUG_ASSERT(read_chunk->reads_1.size() == read_chunk->reads_2.size());
+
+        output_chunk_ptr encoded_reads_1(new fastq_output_chunk(read_chunk->eof));
+        output_chunk_ptr encoded_reads_2;
+        if (!m_config.interleaved_output) {
+            encoded_reads_2.reset(new fastq_output_chunk(read_chunk->eof));
+        }
+
+        fastq_vec::iterator it_1 = read_chunk->reads_1.begin();
+        fastq_vec::iterator it_2 = read_chunk->reads_2.begin();
+        while (it_1 != read_chunk->reads_1.end()) {
+            fastq read_1 = *it_1++;
+            fastq read_2 = *it_2++;
+
+            encoded_reads_1->add(*m_config.quality_output_fmt, read_1);
+
+            if (m_config.interleaved_output) {
+                encoded_reads_1->add(*m_config.quality_output_fmt, read_2);
+            } else {
+                encoded_reads_2->add(*m_config.quality_output_fmt, read_2);
+            }
+        }
+
+        chunk_vec chunks;
+        chunks.push_back(chunk_pair(offset + ai_write_mate_1, std::move(encoded_reads_1)));
+        if (!m_config.interleaved_output) {
+            chunks.push_back(chunk_pair(offset + ai_write_mate_2, std::move(encoded_reads_2)));
+        }
+
+        return chunks;
+    }
+
+private:
+    const userconfig& m_config;
+    const size_t m_nth;
+};
+
+
+int demultiplex_sequences_se(const userconfig& config)
+{
+    std::cerr << "Demultiplexing single ended reads ..." << std::endl;
+
+    scheduler sch;
+    demultiplex_reads* demultiplexer = NULL;
+
+    try {
+        // Step 1: Read input file
+        sch.add_step(ai_read_fastq, "read_fastq",
+                     new read_single_fastq(config.quality_input_fmt.get(),
+                                           config.input_file_1,
+                                           ai_demultiplex));
+
+        // Step 2: Parse and demultiplex reads based on single or double indices
+        sch.add_step(ai_demultiplex, "demultiplex_se",
+                     demultiplexer = new demultiplex_se_reads(&config));
+
+        add_write_step(config, sch, ai_write_unidentified_1, "unidentified",
+                       new write_fastq(config.get_output_filename("demux_unknown")));
+
+        // Step 3 - N: Trim and write demultiplexed reads
+        for (size_t nth = 0; nth < config.adapters.adapter_set_count(); ++nth) {
+            const size_t offset = nth * ai_analyses_offset;
+            const std::string& sample = config.adapters.get_sample_name(nth);
+
+            sch.add_step(offset + ai_trim_se, "process_se_" + sample,
+                         new se_demultiplexed_reads_processor(config, nth));
+
+            add_write_step(config, sch, offset + ai_write_mate_1, sample + "_fastq",
+                           new write_fastq(config.get_output_filename("--output1", nth)));
+        }
+    } catch (const std::ios_base::failure& error) {
+        std::cerr << "IO error opening file; aborting:\n"
+                  << cli_formatter::fmt(error.what()) << std::endl;
+        return 1;
+    }
+
+    if (!sch.run(config.max_threads)) {
+        return 1;
+    } else if (!write_demultiplex_settings(config, demultiplexer)) {
+        return 1;
+    }
+
+    for (size_t nth = 0; nth < config.adapters.adapter_set_count(); ++nth) {
+        if (!write_demultiplex_settings(config, demultiplexer, nth)) {
+            return 1;
+        }
+    }
+
+    return 0;
+}
+
+
+int demultiplex_sequences_pe(const userconfig& config)
+{
+    std::cerr << "Demultiplexing paired end reads ..." << std::endl;
+
+    scheduler sch;
+    demultiplex_reads* demultiplexer = NULL;
+
+    try {
+        // Step 1: Read input file
+        if (config.interleaved_input) {
+            sch.add_step(ai_read_fastq, "read_interleaved_fastq",
+                         new read_interleaved_fastq(config.quality_input_fmt.get(),
+                                                    config.input_file_1,
+                                                    ai_demultiplex));
+        } else {
+            sch.add_step(ai_read_fastq, "read_paired_fastq",
+                         new read_paired_fastq(config.quality_input_fmt.get(),
+                                               config.input_file_1,
+                                               config.input_file_2,
+                                               ai_demultiplex));
+        }
+
+        // Step 2: Parse and demultiplex reads based on single or double indices
+        sch.add_step(ai_demultiplex, "demultiplex_pe",
+                     demultiplexer = new demultiplex_pe_reads(&config));
+
+        add_write_step(config, sch, ai_write_unidentified_1, "unidentified_mate_1",
+                       new write_fastq(config.get_output_filename("demux_unknown", 1)));
+
+        if (!config.interleaved_output) {
+            add_write_step(config, sch, ai_write_unidentified_2, "unidentified_mate_2",
+                           new write_fastq(config.get_output_filename("demux_unknown", 2)));
+        }
+
+        // Step 3 - N: Write demultiplexed reads
+        for (size_t nth = 0; nth < config.adapters.adapter_set_count(); ++nth) {
+            const size_t offset = nth * ai_analyses_offset;
+            const std::string& sample = config.adapters.get_sample_name(nth);
+
+            sch.add_step(offset + ai_trim_pe, "process_pe_" + sample,
+                         new pe_demultiplexed_reads_processor(config, nth));
+
+            add_write_step(config, sch, offset + ai_write_mate_1, sample + "_mate_1",
+                           new write_fastq(config.get_output_filename("--output1", nth)));
+
+            if (!config.interleaved_output) {
+                add_write_step(config, sch, offset + ai_write_mate_2, sample + "_mate_2",
+                               new write_fastq(config.get_output_filename("--output2", nth)));
+            }
+        }
+    } catch (const std::ios_base::failure& error) {
+        std::cerr << "IO error opening file; aborting:\n"
+                  << cli_formatter::fmt(error.what()) << std::endl;
+        return 1;
+    }
+
+    if (!sch.run(config.max_threads)) {
+        return 1;
+    } else if (!write_demultiplex_settings(config, demultiplexer)) {
+        return 1;
+    }
+
+    for (size_t nth = 0; nth < config.adapters.adapter_set_count(); ++nth) {
+        if (!write_demultiplex_settings(config, demultiplexer, nth)) {
+            return 1;
+        }
+    }
+
+    return 0;
+}
+
+
+int demultiplex_sequences(const userconfig& config)
+{
+    if (config.paired_ended_mode) {
+        return demultiplex_sequences_pe(config);
+    } else {
+        return demultiplex_sequences_se(config);
+    }
+}
+
+} // namespace ar
diff --git a/src/scheduler.cc b/src/scheduler.cc
index a0ac8c2..b6a5ad8 100644
--- a/src/scheduler.cc
+++ b/src/scheduler.cc
@@ -22,13 +22,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 \*************************************************************************/
 
+#include <algorithm>
 #include <cerrno>
 #include <cstdlib>
 #include <iostream>
-#include <queue>
 #include <stdexcept>
 #include <unistd.h>
-#include <cstdlib>
 
 #include "debug.h"
 #include "scheduler.h"
@@ -38,15 +37,6 @@ namespace ar
 {
 
 ///////////////////////////////////////////////////////////////////////////////
-// exceptions
-
-thread_abort::thread_abort()
-  : thread_error("abort thread")
-{
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
 // analytical_chunk
 
 analytical_chunk::analytical_chunk()
@@ -78,112 +68,108 @@ analytical_step::~analytical_step()
 
 struct data_chunk
 {
-    data_chunk(unsigned chunk_id_ = 0,
-               analytical_chunk* data_ = NULL)
+    explicit data_chunk(size_t chunk_id_ = 0)
       : chunk_id(chunk_id_)
-      , data(data_)
-      , nrefs(NULL)
+      , data()
+      , counter(new bool())
     {
-        increment_refs();
     }
 
-    data_chunk(const data_chunk& parent, analytical_chunk* data = NULL)
+    explicit data_chunk(const data_chunk& parent, chunk_ptr data_)
       : chunk_id(parent.chunk_id)
-      , data(data ? data : parent.data)
-      , nrefs(parent.nrefs)
+      , data(std::move(data_))
+      , counter(parent.counter)
     {
-        increment_refs();
     }
 
-    /** Destructor; simply decrements reference count **/
-    ~data_chunk()
+    /** Sorts by counter, data, type, in that order. **/
+    bool operator<(const data_chunk& other) const
     {
-        decrement_refs();
+        if (chunk_id != other.chunk_id) {
+            return chunk_id > other.chunk_id;
+        } else if (data != other.data) {
+            return data > other.data;
+        } else if (counter != other.counter) {
+            return counter > other.counter;
+        }
+
+        return false;
     }
 
-    data_chunk& operator=(const data_chunk& other)
+    bool unique() const
     {
-        other.increment_refs();
-        decrement_refs();
+        return counter.unique();
+    }
 
-        nrefs = other.nrefs;
-        chunk_id = other.chunk_id;
-        data = other.data;
+    //! Strictly increasing counter; used to sort chunks for 'ordered' tasks
+    size_t chunk_id;
+    //! Use generated data; is normally not freed by this struct
+    chunk_ptr data;
 
-        return *this;
-    }
+private:
+    //! Reference counts
+    std::shared_ptr<bool> counter;
+};
 
-    /** Sorts by counter, data, type, in that order. **/
-    bool operator<(const data_chunk& other) const
+
+/** Simple priority queue; needed to allow moving values out of queue. */
+class chunk_queue
+{
+public:
+    chunk_queue()
+      : m_chunks()
     {
-        if (chunk_id > other.chunk_id) {
-            return true;
-        } else if (chunk_id == other.chunk_id) {
-            if (data > other.data) {
-                return true;
-            }
-        }
+    }
 
-        return false;
+    void push(data_chunk value)
+    {
+        m_chunks.push_back(std::move(value));
+        std::push_heap(m_chunks.begin(), m_chunks.end());
     }
 
-    bool unique()
+    data_chunk pop()
     {
-        return nrefs->current() == 1;
+        std::pop_heap(m_chunks.begin(), m_chunks.end());
+        data_chunk value = std::move(m_chunks.back());
+        m_chunks.pop_back();
+
+        return value;
     }
 
-    //! Strictly increasing counter; used to sort chunks for 'ordered' tasks
-    unsigned chunk_id;
-    //! Use generated data; is not freed by this struct
-    analytical_chunk* data;
+    const data_chunk& top() const
+    {
+        return m_chunks.front();
+    }
 
-private:
-    void increment_refs() const
+    bool empty() const
     {
-        if (nrefs) {
-            nrefs->increment();
-        } else {
-            nrefs = new atomic_counter(1);
-        }
+        return m_chunks.empty();
     }
 
-    void decrement_refs() const
+    size_t size() const
     {
-        if (nrefs->decrement() == 0) {
-            delete nrefs;
-            nrefs = NULL;
-        }
+        return m_chunks.size();
     }
 
-    //! Reference counts
-    mutable atomic_counter* nrefs;
+private:
+    typedef std::vector<data_chunk> chunk_vec;
+
+    chunk_vec m_chunks;
 };
 
 
 struct scheduler_step
 {
-    scheduler_step(analytical_step* value)
+    scheduler_step(analytical_step* value, const std::string& name_)
       : lock()
       , ptr(value)
       , current_chunk(0)
       , last_chunk(0)
       , queue()
+      , name(name_)
     {
     }
 
-    /** Deletes any remaining chunks. */
-    ~scheduler_step() {
-        reset();
-    }
-
-    /** Cleans up after previous runs; deleting any remaining chunks. */
-    void reset() {
-        while (!queue.empty()) {
-            delete queue.top().data;
-            queue.pop();
-        }
-    }
-
     bool can_run(size_t next_chunk)
     {
         if (ptr->get_ordering() == analytical_step::ordered) {
@@ -193,18 +179,19 @@ struct scheduler_step
         return true;
     }
 
-
     //! Mutex used to control access to step
-    mutex lock;
+    std::mutex lock;
     //! Analytical step implementation
-    std::auto_ptr<analytical_step> ptr;
+    std::unique_ptr<analytical_step> ptr;
     //! The current chunk to be processed
-    unsigned current_chunk;
+    size_t current_chunk;
     //! The last chunk queued to the step;
     //! Used to correct numbering for sparse output from sequential steps
-    unsigned last_chunk;
+    size_t last_chunk;
     //! (Ordered) vector of chunks to be processed
-    std::priority_queue<data_chunk> queue;
+    chunk_queue queue;
+    //! Short name for step used for error reporting
+    std::string name;
 
 private:
     //! Not implemented
@@ -214,55 +201,28 @@ private:
 };
 
 
-/** Simple structure used to pass parameters to threads. */
-struct thread_info
-{
-    thread_info(unsigned seed_, scheduler* sch_)
-      : seed(seed_)
-      , sch(sch_)
-    {
-    }
-
-    //! Per thread seed
-    unsigned seed;
-    //! Pointer to current scheduler
-    scheduler* sch;
-};
-
-
 scheduler::scheduler()
   : m_steps()
-  , m_running()
-  , m_errors(false)
   , m_condition()
   , m_chunk_counter(0)
-#ifdef AR_PTHREAD_SUPPORT
-  , m_threads()
-#endif
+  , m_live_chunks(0)
   , m_queue_lock()
   , m_queue_calc()
   , m_queue_io()
   , m_io_active(false)
-  , m_live_chunks(0)
+  , m_errors(false)
 {
 }
 
 
 scheduler::~scheduler()
 {
-    mutex_locker lock(m_running);
-
-    for (pipeline::iterator it = m_steps.begin(); it != m_steps.end(); ++it) {
-        delete *it;
-    }
-
-    m_steps.clear();
 }
 
 
-void scheduler::add_step(size_t step_id, analytical_step* step)
+void scheduler::add_step(size_t step_id, const std::string& name,
+                         analytical_step* step)
 {
-    mutex_locker lock(m_running);
     if (m_steps.size() <= step_id) {
         m_steps.resize(step_id + 1);
     }
@@ -270,161 +230,162 @@ void scheduler::add_step(size_t step_id, analytical_step* step)
     AR_DEBUG_ASSERT(step);
     AR_DEBUG_ASSERT(!m_steps.at(step_id));
 
-    m_steps.at(step_id) = new scheduler_step(step);
+    m_steps.at(step_id) = step_ptr(new scheduler_step(step, name));
 }
 
 
-
-bool scheduler::run(int nthreads, unsigned seed)
+bool scheduler::run(int nthreads)
 {
     AR_DEBUG_ASSERT(!m_steps.empty());
     AR_DEBUG_ASSERT(m_steps.front());
     AR_DEBUG_ASSERT(nthreads >= 1);
-    mutex_locker lock(m_running);
+    AR_DEBUG_ASSERT(!m_chunk_counter);
 
-    m_chunk_counter = 0;
-    for (pipeline::iterator it = m_steps.begin(); it != m_steps.end(); ++it) {
-        if (*it) {
-            (*it)->reset();
-        }
-    }
-
-    for (unsigned task = 3 * nthreads; task; --task) {
+    for (size_t task = 3 * static_cast<size_t>(nthreads); task; --task) {
         m_steps.front()->queue.push(data_chunk(m_chunk_counter++));
     }
 
     queue_analytical_step(m_steps.front(), 0);
 
-    m_io_active = false;
-    m_errors = !initialize_threads(nthreads - 1, seed + 1);
+    std::vector<std::thread> threads;
 
-    // Signal for threads to start, or terminate in case of errors
-    signal_threads();
+    try {
+        for (int i = 0; i < nthreads - 1; ++i) {
+            threads.emplace_back(run_wrapper, this);
+        }
+    } catch (const std::system_error& error) {
+        print_locker lock;
+        std::cerr << "ERROR: Failed to create threads:\n"
+                  << cli_formatter::fmt(error.what()) << std::endl;
+
+        set_errors_occured();
+    }
 
-    thread_info* info = new thread_info(seed, this);
-    m_errors = !run_wrapper(info) || m_errors;
-    m_errors = !join_threads() || m_errors;
+    // Run the main thread (the only thread in case of non-threaded mode)
+    run_wrapper(this);
 
-    if (!m_errors) {
-        for (pipeline::iterator it = m_steps.begin(); it != m_steps.end(); ++it) {
-            if (*it) {
-                (*it)->ptr->finalize();
-            }
+    for (auto& thread: threads) {
+        try {
+            thread.join();
+        } catch (const std::system_error& error) {
+            std::cerr << "ERROR: Failed to joini thread: " << error.what() << std::endl;
+            set_errors_occured();
+        }
+    }
+
+    for (auto& step: m_steps) {
+        if (step && !step->queue.empty()) {
+            print_locker lock;
+            std::cerr << "ERROR: Not all parts run for step " << step->name
+                          << "; " << step->queue.size() << " left ..." << std::endl;
+
+            set_errors_occured();
         }
+    }
 
-        for (pipeline::iterator it = m_steps.begin(); it != m_steps.end(); ++it) {
-            if (*it && !(*it)->queue.empty()) {
-                print_locker lock;
-                std::cerr << "ERROR: Not all parts run for step " << it - m_steps.begin()
-                          << "; " << (*it)->queue.size() << " left ..." << std::endl;
-                m_errors = true;
+    if (errors_occured()) {
+        return false;
+    }
+
+    for (auto step: m_steps) {
+        if (step) {
+            try {
+                step->ptr->finalize();
+            } catch (const std::exception&) {
+                std::cerr << "ERROR: Failed to finalizing task " << step->name << ":\n";
+                throw;
             }
         }
     }
 
-    return !m_errors;
+    return true;
 }
 
 
-void* scheduler::run_wrapper(void* ptr)
+void scheduler::run_wrapper(scheduler* sch)
 {
-    std::auto_ptr<thread_info> info(reinterpret_cast<thread_info*>(ptr));
-    scheduler* sch = info->sch;
-
-    // Set seed for RNG; rand is used in collapse_paired_ended_sequences()
-    srandom(info->seed);
-
     try {
         return sch->do_run();
     } catch (const thread_abort&) {
-        // Error messaging is assumed to have been done by thrower
+        print_locker lock;
+        std::cerr << "Aborting thread due to error." << std::endl;
     } catch (const std::exception& error) {
         print_locker lock;
-        std::cerr << "Error in thread:\n"
+        std::cerr << "ERROR: Unhandled exception in thread:\n"
                   << cli_formatter::fmt(error.what()) << std::endl;
     } catch (...) {
         print_locker lock;
-        std::cerr << "Unhandled exception in thread" << std::endl;
+        std::cerr << "ERROR: Unhandled, non-standard exception in thread" << std::endl;
     }
 
-    sch->m_errors = true;
-    sch->signal_threads();
-
-    return reinterpret_cast<void*>(false);
+    sch->set_errors_occured();
+    sch->m_condition.notify_all();
 }
 
 
-void* scheduler::do_run()
+void scheduler::do_run()
 {
-    // Wait to allow early termination in case of errors during setup
-    m_condition.wait();
-
-    while (!m_errors) {
-        scheduler_step* current_step = NULL;
-
-        {
-            mutex_locker lock(m_queue_lock);
-
-            // Try to keep the disk busy by preferring IO chunks
-            if (m_io_active || m_queue_io.empty()) {
-                if (!m_queue_calc.empty()) {
-                    current_step = m_queue_calc.front();
-                    m_queue_calc.pop_front();
-                } else if (!m_live_chunks) {
-                    // Nothing left to do at all
-                    break;
-                }
-            } else {
-                current_step = m_queue_io.front();
-                m_queue_io.pop_front();
-                m_io_active = true;
+    std::unique_lock<std::mutex> lock(m_queue_lock);
+
+    while (!errors_occured()) {
+        // Try to keep the disk busy by preferring IO chunks
+        step_ptr current_step;
+        if (m_io_active || m_queue_io.empty()) {
+            if (!m_queue_calc.empty()) {
+                current_step = m_queue_calc.front();
+                m_queue_calc.pop();
+            } else if (!m_live_chunks) {
+                // Nothing left to do at all
+                break;
             }
+        } else {
+            current_step = m_queue_io.front();
+            m_queue_io.pop();
+            m_io_active = true;
         }
 
         if (current_step) {
+            lock.unlock();
             execute_analytical_step(current_step);
+            lock.lock();
         } else {
-            // Nothing to do yet ...
-            m_condition.wait();
+            m_condition.wait(lock);
         }
     }
 
     // Signal any waiting threads
-    m_condition.signal();
-
-    return reinterpret_cast<void*>(true);
+    m_condition.notify_all();
 }
 
 
-void scheduler::execute_analytical_step(scheduler_step* step)
+void scheduler::execute_analytical_step(const step_ptr& step)
 {
     data_chunk chunk;
 
     {
-        mutex_locker lock(step->lock);
-        chunk = step->queue.top();
-        step->queue.pop();
+        std::lock_guard<std::mutex> lock(step->lock);
+        chunk = step->queue.pop();
     }
 
-    chunk_vec chunks = step->ptr->process(chunk.data);
+    chunk_vec chunks = step->ptr->process(chunk.data.release());
 
-    mutex_locker lock(m_queue_lock);
+    std::lock_guard<std::mutex> lock(m_queue_lock);
 
     // Schedule each of the resulting blocks
-    for (chunk_vec::iterator it = chunks.begin(); it != chunks.end(); ++it) {
-        scheduler_step* other_step = m_steps.at(it->first);
+    for (auto& result: chunks) {
+        step_ptr& other_step = m_steps.at(result.first);
         AR_DEBUG_ASSERT(other_step != NULL);
 
-        mutex_locker lock(other_step->lock);
+        std::lock_guard<std::mutex> step_lock(other_step->lock);
         // Inherit reference count from source chunk
-        data_chunk next_chunk(chunk, it->second);
+        data_chunk next_chunk(chunk, std::move(result.second));
         if (step->ptr->get_ordering() == analytical_step::ordered) {
             // Ordered steps are allowed to not return results, so the chunk
             // numbering is remembered for down-stream steps
             next_chunk.chunk_id = other_step->last_chunk++;
         }
 
-        other_step->queue.push(next_chunk);
+        other_step->queue.push(std::move(next_chunk));
         queue_analytical_step(other_step, next_chunk.chunk_id);
     }
 
@@ -432,13 +393,13 @@ void scheduler::execute_analytical_step(scheduler_step* step)
     if (step->ptr->file_io()) {
         m_io_active = false;
         if (!m_queue_io.empty()) {
-            m_condition.signal();
+            m_condition.notify_all();
         }
     }
 
     // Reschedule current step if ordered and next chunk is available
     if (step->ptr->get_ordering() == analytical_step::ordered) {
-        mutex_locker lock(step->lock);
+        std::lock_guard<std::mutex> step_lock(step->lock);
 
         step->current_chunk++;
         if (!step->queue.empty()) {
@@ -448,9 +409,9 @@ void scheduler::execute_analytical_step(scheduler_step* step)
 
     // End of the line for this chunk; re-schedule first step
     if (chunks.empty() && chunk.unique() && step != m_steps.front()) {
-        scheduler_step* other_step = m_steps.front();
+        step_ptr other_step = m_steps.front();
 
-        mutex_locker lock(other_step->lock);
+        std::lock_guard<std::mutex> step_lock(other_step->lock);
         other_step->queue.push(data_chunk(m_chunk_counter));
 
         queue_analytical_step(other_step, m_chunk_counter);
@@ -464,114 +425,18 @@ void scheduler::execute_analytical_step(scheduler_step* step)
 }
 
 
-void scheduler::queue_analytical_step(scheduler_step* step, size_t current)
+void scheduler::queue_analytical_step(const step_ptr& step, size_t current)
 {
     if (step->can_run(current)) {
         if (step->ptr->file_io()) {
-            m_queue_io.push_back(step);
+            m_queue_io.push(step);
         } else {
-            m_queue_calc.push_back(step);
+            m_queue_calc.push(step);
         }
 
         m_live_chunks++;
-        m_condition.signal();
-    }
-}
-
-
-bool scheduler::initialize_threads(int nthreads, unsigned seed)
-{
-#ifdef AR_PTHREAD_SUPPORT
-    AR_DEBUG_ASSERT(m_threads.empty());
-    AR_DEBUG_ASSERT(nthreads >= 0);
-
-    try {
-        for (int i = 0; i < nthreads; ++i) {
-            m_threads.push_back(pthread_t());
-            // Each thread is assigned a unique seed, based on the (user) seed
-            thread_info* info = new thread_info(seed + i, this);
-            switch (pthread_create(&m_threads.back(), NULL, &run_wrapper, info)) {
-                case 0:
-                    break;
-
-                case EAGAIN:
-                    throw thread_error("pthread_create: insufficient resources to create thread");
-
-                case EINVAL:
-                    throw thread_error("pthread_create: invalid attributes");
-
-                case EPERM:
-                    throw thread_error("pthread_create: insufficient permissions");
-
-                default:
-                    throw thread_error("pthread_create: unknown error");
-            }
-        }
-    } catch (const thread_error& error) {
-        print_locker lock;
-        std::cerr << "Error creating threads:\n"
-                  << cli_formatter::fmt(error.what()) << std::endl;
-
-        m_threads.pop_back();
-        return false;
+        m_condition.notify_one();
     }
-#else
-    (void)nthreads;
-    (void)seed;
-#endif
-    return true;
-}
-
-
-void scheduler::signal_threads()
-{
-#ifdef AR_PTHREAD_SUPPORT
-    // Signal the main and all other threads
-    for (size_t i = 0; i < m_threads.size() + 1; ++i) {
-        m_condition.signal();
-    }
-#endif
-}
-
-
-bool scheduler::join_threads()
-{
-    bool join_result = true;
-
-#ifdef AR_PTHREAD_SUPPORT
-    for (thread_vector::iterator it = m_threads.begin(); it != m_threads.end(); ++it) {
-        void* run_result = NULL;
-        const int join_error = pthread_join(*it, &run_result);
-
-        if (join_error) {
-            join_result = false;
-
-            print_locker lock;
-            switch (join_error) {
-                case EINVAL:
-                    std::cerr << "Error in pthread_join: invalid thread" << std::endl;
-                    break;
-
-                case ESRCH:
-                    std::cerr << "Error in pthread_join: thread not joinable" << std::endl;
-                    break;
-
-                case EDEADLK:
-                    std::cerr << "Error in pthread_join: deadlock detected" << std::endl;
-                    break;
-
-                default:
-                    std::cerr << "Error in pthread_join: unknown error: " << join_error << std::endl;
-            }
-        } else {
-            join_result &= static_cast<bool>(run_result);
-        }
-    }
-
-    m_threads.clear();
-#endif
-
-    return join_result;
 }
 
 } // namespace ar
diff --git a/src/scheduler.h b/src/scheduler.h
index 6ffa830..8045a2f 100644
--- a/src/scheduler.h
+++ b/src/scheduler.h
@@ -24,8 +24,11 @@
 #ifndef SCHEDULER_H
 #define SCHEDULER_H
 
-#include <list>
+#include <atomic>
+#include <condition_variable>
 #include <memory>
+#include <mutex>
+#include <queue>
 #include <string>
 #include <vector>
 
@@ -39,18 +42,6 @@ struct scheduler_step;
 
 
 /**
- * This exception may be thrown by a task to abort the thread; error-messages
- * are assumed to have already been printed by the thrower, and no furher
- * messages are printed.
- */
-class thread_abort : public thread_error
-{
-public:
-    thread_abort();
-};
-
-
-/**
  * Base-class for data-chunks produced, processed and consumed by a pipeline.
  */
 class analytical_chunk
@@ -64,7 +55,8 @@ public:
 };
 
 
-typedef std::pair<size_t, analytical_chunk*> chunk_pair;
+typedef std::unique_ptr<analytical_chunk> chunk_ptr;
+typedef std::pair<size_t, chunk_ptr> chunk_pair;
 typedef std::vector<chunk_pair> chunk_vec;
 
 
@@ -80,6 +72,8 @@ template <typename T>
 class statistics_sink
 {
 public:
+    typedef std::unique_ptr<T> pointer;
+
     /** Constructor; does nothing. */
     statistics_sink();
 
@@ -87,28 +81,29 @@ public:
     virtual ~statistics_sink();
 
     /** Returns unused sink, or a new sink if no unused sinks are available. */
-    virtual T* get_sink();
+    virtual pointer get_sink();
 
     /** Return a sink after it has been used. */
-    virtual void return_sink(T* ptr);
+    virtual void return_sink(pointer ptr);
 
     /**
      * Return a single sink that is the sum of all sink objects, consuming (and
      * freeing) all sink objects generated by and returned to the sink.
      */
-    virtual T* finalize();
+    virtual pointer finalize();
 
 protected:
     /** Returns a new sink object; to be implemented in subclasses. */
-    virtual T* new_sink() const = 0;
+    virtual pointer new_sink() const = 0;
+
+    /** Called to reduce objects during finalization. */
+    virtual void reduce(pointer& dst, const pointer& src) const = 0;
 
 private:
-    typedef std::list<T*> sink_list;
-    typedef typename sink_list::iterator sink_list_iter;
-    typedef typename sink_list::const_iterator sink_list_citer;
+    typedef std::queue<pointer> sink_list;
 
     //! Lock used to control access to sink lists
-    mutex m_sinks_lock;
+    std::mutex m_sinks_lock;
     //! List of inactive sinks
     sink_list m_sinks;
 };
@@ -207,19 +202,23 @@ public:
      * Adds a step to the pipeline.
      *
      * @param step_id Unique ID of current step; cannot be used twice.
+     * @param name Textual name for the (type) of step being added.
      * @param step A analytical step; is deleted when scheduler is destroyed.
      *
      * The ID specified here is specified as the first value of 'chunk_pair's
      * in order to determine to which analytical step a chunk is assigned.
      **/
-    void add_step(size_t step_id, analytical_step* step);
+    void add_step(size_t step_id,
+                  const std::string& name,
+                  analytical_step* step);
 
     /** Runs the pipeline with n threads; return false on error. */
-    bool run(int nthreads, unsigned seed);
+    bool run(int nthreads);
 
 private:
-    typedef std::list<scheduler_step*> runables;
-    typedef std::vector<scheduler_step*> pipeline;
+    typedef std::shared_ptr<scheduler_step> step_ptr;
+    typedef std::queue<step_ptr> runables;
+    typedef std::vector<step_ptr> pipeline;
 
     //! Not implemented
     scheduler(const scheduler&);
@@ -227,50 +226,42 @@ private:
     scheduler& operator=(const scheduler&);
 
     /** Wrapper function which calls do_run on the provided thread. */
-    static void* run_wrapper(void*);
+    static void run_wrapper(scheduler*);
     /** Work function; invoked by each thread. */
-    void* do_run();
-
-    /** Initializes n threads, returning false if any errors occured. */
-    bool initialize_threads(int nthreads, unsigned seed);
-    /** Sends a number of signals corresponding to the number of threads. */
-    void signal_threads();
-    /** Joins all threads, returning false if any errors occured. */
-    bool join_threads();
+    void do_run();
 
     /** Executes an analytical step. */
-    void execute_analytical_step(scheduler_step* step);
+    void execute_analytical_step(const step_ptr& step);
     /** Attempts to queue an analytical step given a current chunk. */
-    void queue_analytical_step(scheduler_step* step, size_t current);
+    void queue_analytical_step(const step_ptr& step, size_t current);
+
+    /** Returns true if an error has occured, and the run should terminate. */
+    bool errors_occured();
+    /** Mark that an error has occured, and that the run should terminate. */
+    void set_errors_occured();
 
     //! Analytical steps
     pipeline m_steps;
-    //! Lock set when the scheduler is running
-    mutex m_running;
-    //! Set to indicate if errors have occured
-    volatile bool m_errors;
+
     //! Condition used to signal the (potential) availability of work
-    conditional m_condition;
+    std::condition_variable m_condition;
 
     //! Counter used for sequential processing of data
     size_t m_chunk_counter;
-
-#ifdef AR_PTHREAD_SUPPORT
-    typedef std::vector<pthread_t> thread_vector;
-    //! List of current threads, excluding the main thread
-    thread_vector m_threads;
-#endif
+    //! Count of currently live chunks
+    size_t m_live_chunks;
 
     //! Lock used to control access to chunks
-    mutex m_queue_lock;
+    std::mutex m_queue_lock;
     //! Queue used for currently runnable steps involving only calculations
     runables m_queue_calc;
     //! Queue used for currently runnable steps involving IO
     runables m_queue_io;
+
     //! Indicates if a thread is doing IO; access control through 'm_queue_lock'
     bool m_io_active;
-    //! Count of currently live chunks
-    size_t m_live_chunks;
+    //! Set to indicate if errors have occured
+    std::atomic_bool m_errors;
 };
 
 
@@ -288,53 +279,49 @@ statistics_sink<T>::statistics_sink()
 template <typename T>
 statistics_sink<T>::~statistics_sink()
 {
-    for (sink_list_iter it = m_sinks.begin(); it != m_sinks.end(); ++it) {
-        delete *it;
-    }
 }
 
 
 template <typename T>
-T* statistics_sink<T>::get_sink()
+typename statistics_sink<T>::pointer statistics_sink<T>::get_sink()
 {
-    mutex_locker lock(m_sinks_lock);
+    std::lock_guard<std::mutex> lock(m_sinks_lock);
     if (m_sinks.empty()) {
         return new_sink();
     }
 
-    T* ptr = m_sinks.front();
-    m_sinks.pop_front();
+    pointer ptr = std::move(m_sinks.front());
+    m_sinks.pop();
 
     return ptr;
 }
 
 
 template <typename T>
-void statistics_sink<T>::return_sink(T* ptr)
+void statistics_sink<T>::return_sink(pointer ptr)
 {
-    mutex_locker lock(m_sinks_lock);
-    m_sinks.push_back(ptr);
+    std::lock_guard<std::mutex> lock(m_sinks_lock);
+    m_sinks.push(std::move(ptr));
 }
 
 
 template <typename T>
-T* statistics_sink<T>::finalize()
+typename statistics_sink<T>::pointer statistics_sink<T>::finalize()
 {
-    mutex_locker lock(m_sinks_lock);
+    std::lock_guard<std::mutex> lock(m_sinks_lock);
     if (m_sinks.empty()) {
         return new_sink();
     }
 
-    std::auto_ptr<T> result(m_sinks.back());
-    m_sinks.pop_back();
+    pointer result(std::move(m_sinks.front()));
+    m_sinks.pop();
 
     while (!m_sinks.empty()) {
-        *result += *m_sinks.back();
-        delete m_sinks.back();
-        m_sinks.pop_back();
+        reduce(result, m_sinks.front());
+        m_sinks.pop();
     }
 
-    return result.release();
+    return std::move(result);
 }
 
 
@@ -357,6 +344,21 @@ inline bool analytical_step::file_io() const
     return m_file_io;
 }
 
+
+///////////////////////////////////////////////////////////////////////////////
+// Implementations for 'scheduler'
+
+inline bool scheduler::errors_occured()
+{
+    return m_errors.load();
+}
+
+
+inline void scheduler::set_errors_occured()
+{
+    m_errors.store(true);
+}
+
 } // namespace ar
 
 #endif
diff --git a/src/strutils.cc b/src/strutils.cc
index d929806..0693db5 100644
--- a/src/strutils.cc
+++ b/src/strutils.cc
@@ -21,6 +21,9 @@
  * You should have received a copy of the GNU General Public License     *
  * along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 \*************************************************************************/
+#include <sys/ioctl.h>
+#include <unistd.h>
+
 #include "strutils.h"
 
 namespace ar
@@ -110,6 +113,10 @@ cli_formatter::cli_formatter()
   , m_columns(DEFAULT_MAX_COLUMNS)
   , m_indentation(4)
 {
+    struct winsize size;
+    if (!ioctl(STDOUT_FILENO, TIOCGWINSZ, &size)) {
+        m_columns = size.ws_col;
+    }
 }
 
 
diff --git a/src/strutils.h b/src/strutils.h
index f67db26..d54e164 100644
--- a/src/strutils.h
+++ b/src/strutils.h
@@ -31,7 +31,7 @@
 namespace ar
 {
 
-const size_t DEFAULT_MAX_COLUMNS = 60;
+const size_t DEFAULT_MAX_COLUMNS = 78;
 const size_t DEFAULT_INDENTATION = 4;
 
 
diff --git a/src/threads.cc b/src/threads.cc
index 5cd111b..5782ee2 100644
--- a/src/threads.cc
+++ b/src/threads.cc
@@ -46,253 +46,27 @@ thread_error::thread_error(const std::string& message)
 }
 
 
-thread_error::~thread_error() throw()
-{
-}
-
-
-const char* thread_error::what() const throw()
-{
-    return m_message.c_str();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-// mutex
-
-mutex::mutex()
-#ifdef AR_PTHREAD_SUPPORT
-    : m_mutex()
-{
-    switch (pthread_mutex_init(&m_mutex, NULL)) {
-        case 0:
-            break;
-
-        case EAGAIN:
-            throw thread_error("mutex::mutex: out of resouces");
-            break;
-
-        case ENOMEM:
-            throw thread_error("mutex::mutex: out of memory");
-            break;
-
-        case EPERM:
-            throw thread_error("mutex::mutex: insufficient permissions");
-            break;
-
-        case EBUSY:
-            throw thread_error("mutex::mutex: mutex already initialied");
-            break;
-
-        case EINVAL:
-            throw thread_error("mutex::mutex: invalid attributes");
-            break;
-
-        default:
-            throw thread_error("Unknown error in mutex::mutex");
-    }
-}
-#else
-{
-}
-#endif
-
-
-mutex::~mutex()
-{
-#ifdef AR_PTHREAD_SUPPORT
-    const int error = pthread_mutex_destroy(&m_mutex);
-    if (error) {
-        print_locker lock;
-
-        switch (error) {
-            case EBUSY:
-                std::cerr << "mutex::~mutex: mutex busy" << std::endl;
-                break;
-
-            case EINVAL:
-                std::cerr << "mutex::~mutex: invalid mutex" << std::endl;
-                break;
-
-            default:
-                std::cerr << "Unknown error in mutex::~mutex: " << error << std::endl;
-                break;
-        }
-
-        std::exit(1);
-    }
-#endif
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-// conditional
-
-conditional::conditional()
-#ifdef AR_PTHREAD_SUPPORT
-  : m_mutex()
-  , m_cond()
-  , m_count(0)
-{
-    switch (pthread_cond_init(&m_cond, NULL)) {
-        case 0:
-            break;
-
-        case EAGAIN:
-            throw thread_error("conditional::conditional: insufficient resouces to init conditional");
-
-        case ENOMEM:
-            throw thread_error("conditional::conditional: insufficient memory to init conditional");
-
-        case EBUSY:
-            throw thread_error("conditional::conditional: conditional already initialized");
-
-        case EINVAL:
-            throw thread_error("conditional::conditional: invalid attributes");
-
-        default:
-            throw thread_error("Unknown error in conditional::conditional");
-    }
-}
-#else
-{
-}
-#endif
-
-
-conditional::~conditional()
-{
-#ifdef AR_PTHREAD_SUPPORT
-    const int error = pthread_cond_destroy(&m_cond);
-    if (error) {
-        print_locker lock;
-
-        switch (error) {
-            case EBUSY:
-                std::cerr << "conditional::~conditional: conditional busy" << std::endl;
-                break;
-
-            case EINVAL:
-                std::cerr << "conditional::~conditional: invalid conditional" << std::endl;
-                break;
-
-            default:
-                std::cerr << "Unknown error in conditional::~conditional: " << error << std::endl;
-                break;
-        }
-
-        std::exit(1);
-    }
-#endif
-}
-
-
-void conditional::wait()
+thread_error::thread_error(const thread_error& error)
+    : std::exception()
+    , m_message(error.m_message)
 {
-#ifdef AR_PTHREAD_SUPPORT
-    mutex_locker lock(m_mutex);
-
-    while (!m_count) {
-        switch (pthread_cond_wait(&m_cond, &m_mutex.m_mutex)) {
-            case 0:
-                break;
-
-            case EINVAL:
-                throw thread_error("conditional::wait: invalid conditional or mutex");
-
-            case EPERM:
-                throw thread_error("conditional::wait: mutex not owned by thread");
-
-            default:
-                throw thread_error("Unknown error in conditional::wait");
-        }
-    }
-
-    --m_count;
-#endif
 }
 
 
-void conditional::signal()
+thread_error::~thread_error() noexcept
 {
-#ifdef AR_PTHREAD_SUPPORT
-    mutex_locker lock(m_mutex);
-
-    ++m_count;
-
-    switch (pthread_cond_signal(&m_cond)) {
-        case 0:
-            break;
-
-        case EINVAL:
-            throw thread_error("conditional::signal: invalid conditional");
-
-        default:
-            throw thread_error("Unknown error in conditional::signal");
-    }
-#endif
 }
 
 
-///////////////////////////////////////////////////////////////////////////////
-// mutex_locker
-
-mutex_locker::mutex_locker(mutex& to_lock)
-#ifdef AR_PTHREAD_SUPPORT
-  : m_mutex(to_lock.m_mutex)
-{
-    switch (pthread_mutex_lock(&m_mutex)) {
-        case 0:
-            break;
-
-        case EINVAL:
-            throw thread_error("mutex::lock: mutex not initialized");
-
-        case EAGAIN:
-            throw thread_error("mutex::lock: max number of recursive locks exceeded");
-
-        case EDEADLK:
-            throw thread_error("mutex::try_lock: deadlock detected");
-
-        default:
-            throw thread_error("Unknown error in mutex::lock");
-    }
-}
-#else
+const char* thread_error::what() const noexcept
 {
-    (void)to_lock;
+    return m_message.c_str();
 }
-#endif
 
 
-mutex_locker::~mutex_locker()
+thread_abort::thread_abort()
+  : thread_error("abort thread")
 {
-#ifdef AR_PTHREAD_SUPPORT
-    const int error = pthread_mutex_unlock(&m_mutex);
-    if (error) {
-        print_locker lock;
-
-        switch (error) {
-            case EINVAL:
-                std::cerr << "mutex_lock::~mutex_lock: mutex not initialized" << std::endl;
-                break;
-
-            case EAGAIN:
-                std::cerr << "mutex_lock::~mutex_lock: max number of recursive locks exceeded" << std::endl;
-                break;
-
-            case EPERM:
-                std::cerr << "mutex_lock::~mutex_lock: the current thread does not own the mutex" << std::endl;
-                break;
-
-            default:
-                std::cerr << "Unknown error in mutex_lock::~mutex_lock: " << error << std::endl;
-                break;
-        }
-
-        std::exit(1);
-    }
-#endif
 }
 
 
@@ -300,11 +74,11 @@ mutex_locker::~mutex_locker()
 // print_locker
 
 //! Shared mutex for STDOUT / STDERR
-static mutex s_print_mutex;
+static std::mutex s_print_mutex;
 
 
 print_locker::print_locker()
-  : mutex_locker(s_print_mutex)
+  : m_lock(s_print_mutex)
 {
 }
 
@@ -314,37 +88,4 @@ print_locker::~print_locker()
 }
 
 
-///////////////////////////////////////////////////////////////////////////////
-// atomic_counter
-
-atomic_counter::atomic_counter(size_t init)
-  : m_lock()
-  , m_count(init)
-{
-}
-
-
-size_t atomic_counter::current() const
-{
-    mutex_locker locker(m_lock);
-
-    return m_count;
-}
-
-
-size_t atomic_counter::increment()
-{
-    mutex_locker locker(m_lock);
-
-    return ++m_count;
-}
-
-
-size_t atomic_counter::decrement()
-{
-    mutex_locker locker(m_lock);
-
-    return --m_count;
-}
-
 } // namespace ar
diff --git a/src/threads.h b/src/threads.h
index a0247fa..873eefd 100644
--- a/src/threads.h
+++ b/src/threads.h
@@ -25,10 +25,9 @@
 #define THREADS_H
 
 #include <string>
+#include <thread>
+#include <mutex>
 
-#ifdef AR_PTHREAD_SUPPORT
-#include <pthread.h>
-#endif
 
 namespace ar
 {
@@ -42,11 +41,13 @@ class thread_error : public std::exception
 public:
     /** Constructor; takes an error-message. */
     thread_error(const std::string& message);
+    /** Copy-constructor; takes an exiting error. */
+    thread_error(const thread_error& error);
     /** Destructor; does nothing. */
-    ~thread_error() throw();
+    ~thread_error() noexcept;
 
     /** Returns error message; lifetime is the same as the object. */
-    virtual const char* what() const throw();
+    virtual const char* what() const noexcept;
 
 private:
     //! User provided error message
@@ -55,84 +56,14 @@ private:
 
 
 /**
- * Wrapper around PThread Mutex.
- *
- * Locking is performed using the mutex_locker object.
+ * This exception may be thrown by a task to abort the thread; error-messages
+ * are assumed to have already been printed by the thrower, and no furher
+ * messages are printed.
  */
-class mutex
-{
-public:
-    /** Constructor. Creates unlocked mutex. */
-    mutex();
-    /** Destructor. Mutex must be unlocked when destructing; exits on error. */
-    ~mutex();
-
-private:
-    //! Not implemented
-    mutex(const mutex&);
-    //! Not implemented
-    mutex& operator=(const mutex&);
-
-    friend class mutex_locker;
-    friend class conditional;
-
-#ifdef AR_PTHREAD_SUPPORT
-    pthread_mutex_t m_mutex;
-#endif
-};
-
-
-/**
- * Simple conditional.
- *
- *
- */
-class conditional
-{
-public:
-    /** Constructor; initializes conditional. */
-    conditional();
-    /** Destructor; destroys conditional, exits on error. */
-    ~conditional();
-
-    /** Wait for and consume signal; non-blocking if signals are queued. */
-    void wait();
-
-    /** Signal a waiting thread, or queue signal if no threads are waiting. */
-    void signal();
-
-
-#ifdef AR_PTHREAD_SUPPORT
-private:
-    //! Mutex assosiated with conditional; not exposed.
-    mutex m_mutex;
-    //! Raw conditional; not exposed.
-    pthread_cond_t m_cond;
-    //! Number of queued signals.
-    volatile unsigned m_count;
-#endif
-};
-
-
-/** Simple class for automatic locking / unlocking of mutexes. **/
-class mutex_locker
+class thread_abort : public thread_error
 {
 public:
-    //! Locks the mutex (blocking)
-    mutex_locker(mutex& to_lock);
-
-    //! Unlocks the mutex
-    virtual ~mutex_locker();
-
-private:
-    //! Not implemented
-    mutex_locker(const mutex_locker&);
-    //! Not implemented
-    mutex_locker& operator=(const mutex_locker&);
-
-#ifdef AR_PTHREAD_SUPPORT
-    pthread_mutex_t& m_mutex;
-#endif
+    thread_abort();
 };
 
 
@@ -143,7 +74,7 @@ private:
  * print_locker object. This ensures that output from different threads is
  * not interleaved, regardless of the destination of these pipes.
  */
-class print_locker : public mutex_locker
+class print_locker
 {
 public:
     //! Locks the mutex (blocking)
@@ -154,37 +85,14 @@ public:
 
 private:
     //! Not implemented
-    print_locker(const mutex_locker&);
+    print_locker(const print_locker&);
     //! Not implemented
-    print_locker& operator=(const mutex_locker&);
-};
-
-
-/**
- * Basic atomic counter.
- */
-class atomic_counter
-{
-public:
-    /** Initialize counter to the given value. */
-    atomic_counter(size_t init = 0);
-
-    /** Returns the current value (which may have changed already). */
-    size_t current() const;
-
-    /** Increment the current value. */
-    size_t increment();
+    print_locker& operator=(const print_locker&);
 
-    /** Decrement the current value. */
-    size_t decrement();
-
-private:
-    //! Mutex used to control access to the counter/
-    mutable mutex m_lock;
-    //! Raw counter value; access controlled using m_lock;
-    size_t m_count;
+    std::lock_guard<std::mutex> m_lock;
 };
 
+
 } // namespace ar
 
 #endif
diff --git a/src/trimmed_reads.cc b/src/trimmed_reads.cc
new file mode 100644
index 0000000..651a6f7
--- /dev/null
+++ b/src/trimmed_reads.cc
@@ -0,0 +1,164 @@
+/*************************************************************************\
+ * AdapterRemoval - cleaning next-generation sequencing reads            *
+ *                                                                       *
+ * Copyright (C) 2011 by Stinus Lindgreen - stinus at binf.ku.dk            *
+ * Copyright (C) 2014 by Mikkel Schubert - mikkelsch at gmail.com           *
+ *                                                                       *
+ * If you use the program, please cite the paper:                        *
+ * S. Lindgreen (2012): AdapterRemoval: Easy Cleaning of Next Generation *
+ * Sequencing Reads, BMC Research Notes, 5:337                           *
+ * http://www.biomedcentral.com/1756-0500/5/337/                         *
+ *                                                                       *
+ * 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/>. *
+\*************************************************************************/
+#include "trimmed_reads.h"
+#include "userconfig.h"
+
+
+
+namespace ar
+{
+
+inline void add_chunk(chunk_vec& chunks, size_t target, output_chunk_ptr chunk)
+{
+    if (chunk.get()) {
+        chunks.push_back(chunk_pair(target, std::move(chunk)));
+    }
+}
+
+
+trimmed_reads::trimmed_reads(const userconfig& config, size_t offset, bool eof)
+    : m_config(config)
+    , m_encoding(*config.quality_output_fmt)
+    , m_offset(offset)
+    , m_mate_1()
+    , m_mate_2()
+    , m_singleton()
+    , m_collapsed()
+    , m_collapsed_truncated()
+    , m_discarded()
+{
+    m_mate_1.reset(new fastq_output_chunk(eof));
+    if (config.paired_ended_mode && !config.interleaved_output) {
+        m_mate_2.reset(new fastq_output_chunk(eof));
+    }
+
+    if (!config.combined_output) {
+        m_discarded.reset(new fastq_output_chunk(eof));
+
+        if (config.paired_ended_mode) {
+            m_singleton.reset(new fastq_output_chunk(eof));
+        }
+
+        if (config.collapse) {
+            m_collapsed.reset(new fastq_output_chunk(eof));
+            m_collapsed_truncated.reset(new fastq_output_chunk(eof));
+        }
+    }
+}
+
+
+void trimmed_reads::add_mate_1_read(fastq& read, read_status state,
+                                    size_t read_count)
+{
+    // Single end reads always go into the mate 1 file or the discarded file
+    distribute_read(m_mate_1, m_mate_1, read, state, PASSED, read_count);
+}
+
+
+void trimmed_reads::add_mate_2_read(fastq& read, read_status state,
+                                    size_t read_count)
+{
+    // Single end reads always go into the mate 2 file or the discarded file
+    distribute_read(m_mate_2, m_mate_1, read, state, PASSED, read_count);
+}
+
+
+void trimmed_reads::add_pe_reads(fastq& read_1, read_status state_1,
+                                 fastq& read_2, read_status state_2)
+{
+    distribute_read(m_mate_1, m_mate_1, read_1, state_1, state_2);
+    distribute_read(m_mate_2, m_mate_1, read_2, state_2, state_1);
+}
+
+
+void trimmed_reads::add_collapsed_read(fastq& read,
+                                       read_status state,
+                                       size_t read_count)
+{
+    output_chunk_ptr& destination = m_config.combined_output ? m_mate_1 : m_collapsed;
+
+    // Collapsed reads may go into the mate 1, mate 2, or discard file
+    distribute_read(destination, destination, read, state, PASSED, read_count);
+}
+
+
+void trimmed_reads::add_collapsed_truncated_read(fastq& read,
+                                                 read_status state,
+                                                 size_t read_count)
+{
+    output_chunk_ptr& destination = m_config.combined_output ? m_mate_1 : m_collapsed_truncated;
+
+    // Collapsed tr. reads may go into the mate 1, mate 2, or discard file
+    distribute_read(destination, destination, read, state, PASSED, read_count);
+}
+
+
+chunk_vec trimmed_reads::finalize()
+{
+    chunk_vec chunks;
+
+    add_chunk(chunks, m_offset + ai_write_mate_1, std::move(m_mate_1));
+    add_chunk(chunks, m_offset + ai_write_mate_2, std::move(m_mate_2));
+    add_chunk(chunks, m_offset + ai_write_singleton, std::move(m_singleton));
+    add_chunk(chunks, m_offset + ai_write_collapsed, std::move(m_collapsed));
+    add_chunk(chunks, m_offset + ai_write_collapsed_truncated, std::move(m_collapsed_truncated));
+    add_chunk(chunks, m_offset + ai_write_discarded, std::move(m_discarded));
+
+    return chunks;
+}
+
+
+void trimmed_reads::distribute_read(output_chunk_ptr& regular,
+                                    output_chunk_ptr& interleaved,
+                                    fastq& read,
+                                    read_status state_1,
+                                    read_status state_2,
+                                    size_t read_count)
+{
+    if (state_1 == PASSED) {
+        if (state_2 == PASSED || m_config.combined_output) {
+            if (m_config.interleaved_output) {
+                interleaved->add(m_encoding, read, read_count);
+            } else {
+                regular->add(m_encoding, read, read_count);
+            }
+        } else {
+            m_singleton->add(m_encoding, read, read_count);
+        }
+    } else if (m_config.combined_output) {
+        read.discard();
+
+        if (m_config.interleaved_output) {
+            interleaved->add(m_encoding, read, read_count);
+        } else {
+            regular->add(m_encoding, read, read_count);
+        }
+    } else {
+        m_discarded->add(m_encoding, read, read_count);
+    }
+}
+
+
+} // namespace ar
diff --git a/src/trimmed_reads.h b/src/trimmed_reads.h
new file mode 100644
index 0000000..5e5d1f7
--- /dev/null
+++ b/src/trimmed_reads.h
@@ -0,0 +1,172 @@
+/*************************************************************************\
+ * AdapterRemoval - cleaning next-generation sequencing reads            *
+ *                                                                       *
+ * Copyright (C) 2011 by Stinus Lindgreen - stinus at binf.ku.dk            *
+ * Copyright (C) 2014 by Mikkel Schubert - mikkelsch at gmail.com           *
+ *                                                                       *
+ * If you use the program, please cite the paper:                        *
+ * S. Lindgreen (2012): AdapterRemoval: Easy Cleaning of Next Generation *
+ * Sequencing Reads, BMC Research Notes, 5:337                           *
+ * http://www.biomedcentral.com/1756-0500/5/337/                         *
+ *                                                                       *
+ * 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/>. *
+\*************************************************************************/
+#ifndef TRIMMED_READS_H
+#define TRIMMED_READS_H
+
+#include <string>
+
+#include "fastq_io.h"
+#include "scheduler.h"
+#include "statistics.h"
+
+
+class fastq;
+class userconfig;
+
+
+namespace ar
+{
+
+
+//! Enum representing the possible states of read processing
+enum read_status
+{
+    //! Read passed all checks, and should be written to the main output file
+    PASSED,
+    //! Read failed one or more checks, and should be discarded; this may
+    //! include stripping the sequence and qualities, and flagging the read
+    FAILED,
+};
+
+
+/**
+ * Helper-class for directing trimmed reads to the next step in the pipeline.
+ */
+class trimmed_reads
+{
+public:
+    /**
+     * Constructor.
+     *
+     * @param config Global User-config instance; must outlive instance.
+     * @param config offset The file-offset for the reads being processed.
+     * @param config eof If true, this chunk of reads are at the EOF.
+     */
+    trimmed_reads(const userconfig& config, size_t offset, bool eof);
+
+    /**
+     * Encodes and caches the specified mate 1 read.
+     *
+     * @param read Processed FASTQ read.
+     * @param state FAILED or PASSED; determines destination file.
+     * @param read_count Number of actual reads represented by 'read'; for
+     *                   merged sequences this may be > 1.
+     *
+     * Note that 'read' may be modified (truncated) depending on user options.
+     */
+    void add_mate_1_read(fastq& read, read_status state, size_t read_count = 1);
+    /**
+     * Encodes and caches the specified mate 2 read.
+     *
+     * @param read Processed FASTQ read.
+     * @param state FAILED or PASSED; determines destination file.
+     * @param read_count Number of actual reads represented by 'read'; for
+     *                   merged sequences this may be > 1.
+     *
+     * Note that 'read' may be modified (truncated) depending on user options.
+     */
+    void add_mate_2_read(fastq& read, read_status state, size_t read_count = 1);
+
+    /**
+     * Encodes and caches the specified pair of reads.
+     *
+     * @param read_1 Processed mate 1 FASTQ read.
+     * @param state_1 FAILED or PASSED; determines destination file for mate 1.
+     * @param read_2 Processed mate 2 FASTQ read.
+     * @param state_2 FAILED or PASSED; determines destination file for mate 2.
+     *
+     * Note that 'read' may be modified (truncated) depending on user options.
+     */
+    void add_pe_reads(fastq& read_1, read_status state_1,
+                      fastq& read_2, read_status state_2);
+
+    /**
+     * Encodes and caches the specified collapsed read.
+     *
+     * @param read Processed FASTQ read.
+     * @param state FAILED or PASSED; determines destination file.
+     * @param read_count Number of actual reads represented by 'read'; for
+     *                   merged sequences this may be > 1.
+     *
+     * Note that 'read' may be modified (truncated) depending on user options.
+     */
+    void add_collapsed_read(fastq& read, read_status, size_t read_count = 1);
+    /**
+     * Encodes and caches the specified collapsed, truncated read.
+     *
+     * @param read Processed FASTQ read.
+     * @param state FAILED or PASSED; determines destination file.
+     * @param read_count Number of actual reads represented by 'read'; for
+     *                   merged sequences this may be > 1.
+     *
+     * Note that 'read' may be modified (truncated) depending on user options.
+     */
+    void add_collapsed_truncated_read(fastq& read, read_status state, size_t read_count = 1);
+
+    /** Returns vector of chunks from all cached reads. */
+    chunk_vec finalize();
+
+private:
+    /*
+     * Helper function; assigns a given read to a cache depending on state and
+     * user settings, it's state (state_1) and the state of its mate (state_2).
+     *
+     * If interleaved output is enabled, reads are typically (depending on
+     * state, etc.) written to 'regular', and are otherwise written to
+     * 'interleaved'.
+     */
+    void distribute_read(output_chunk_ptr& regular,
+                         output_chunk_ptr& interleaved,
+                         fastq& read,
+                         read_status state_1,
+                         read_status state_2,
+                         size_t read_count = 1);
+
+    //! User configuration; must outlive instance.
+    const userconfig& m_config;
+    //! Output-encoding used to write reads.
+    const fastq_encoding& m_encoding;
+
+    //! The offset of this chunk of reads.
+    size_t m_offset;
+
+    //! Pointer to cached mate 1 reads.
+    output_chunk_ptr m_mate_1;
+    //! Pointer to cached mate 2 reads; may be NULL.
+    output_chunk_ptr m_mate_2;
+    //! Pointer to cached singleton reads; may be NULL.
+    output_chunk_ptr m_singleton;
+    //! Pointer to cached collapsed reads; may be NULL.
+    output_chunk_ptr m_collapsed;
+    //! Pointer to cached collapsed, truncated reads; may be NULL.
+    output_chunk_ptr m_collapsed_truncated;
+    //! Pointer to cached discarded reads; may be NULL.
+    output_chunk_ptr m_discarded;
+};
+
+
+} // namespace ar
+
+#endif
diff --git a/src/userconfig.cc b/src/userconfig.cc
index c7f38d3..854421b 100644
--- a/src/userconfig.cc
+++ b/src/userconfig.cc
@@ -30,14 +30,17 @@
 #include <sys/time.h>
 #include <limits>
 
-#include "userconfig.h"
-#include "fastq.h"
 #include "alignment.h"
+#include "debug.h"
+#include "fastq.h"
 #include "strutils.h"
+#include "userconfig.h"
+
 
 namespace ar
 {
 
+
 size_t get_seed()
 {
     struct timeval timestamp;
@@ -47,11 +50,11 @@ size_t get_seed()
 }
 
 
-std::auto_ptr<fastq_encoding> select_encoding(const std::string& name,
-                                              const std::string& value,
-                                              size_t quality_max = MAX_PHRED_SCORE_DEFAULT)
+fastq_encoding_ptr select_encoding(const std::string& name,
+                                   const std::string& value,
+                                   size_t quality_max = MAX_PHRED_SCORE_DEFAULT)
 {
-    std::auto_ptr<fastq_encoding> ptr;
+    fastq_encoding_ptr ptr;
 
     const std::string uppercase_value = toupper(value);
     if (uppercase_value == "33") {
@@ -73,13 +76,14 @@ std::auto_ptr<fastq_encoding> select_encoding(const std::string& name,
 userconfig::userconfig(const std::string& name,
                        const std::string& version,
                        const std::string& help)
-    : argparser(name, version, help)
+    : run_type(ar_trim_adapters)
     , basename("your_output")
     , input_file_1()
     , input_file_2()
     , paired_ended_mode(false)
     , interleaved_input(false)
     , interleaved_output(false)
+    , combined_output(false)
     , mate_separator(MATE_SEPARATOR)
     , min_genomic_length(15)
     , max_genomic_length(std::numeric_limits<unsigned>::max())
@@ -95,7 +99,6 @@ userconfig::userconfig(const std::string& name,
     , collapse(false)
     , shift(2)
     , seed(get_seed())
-    , identify_adapters(false)
     , max_threads(1)
     , gzip(false)
     , gzip_level(6)
@@ -105,6 +108,7 @@ userconfig::userconfig(const std::string& name,
     , barcode_mm_r1(0)
     , barcode_mm_r2(0)
     , adapters()
+    , argparser(name, version, help)
     , adapter_1("AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG")
     , adapter_2("AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT")
     , adapter_list()
@@ -114,6 +118,8 @@ userconfig::userconfig(const std::string& name,
     , quality_max(MAX_PHRED_SCORE_DEFAULT)
     , mate_separator_str(1, MATE_SEPARATOR)
     , interleaved(false)
+    , identify_adapters(false)
+    , demultiplex_sequences(false)
 {
     argparser["--file1"] =
         new argparse::any(&input_file_1, "FILE",
@@ -161,7 +167,14 @@ userconfig::userconfig(const std::string& name,
             "containing mate 1 and mate 2 reads, one pair after the other. "
             "This option is implied by the --interleaved option [current: "
             "%default].");
-
+    argparser["--combined-output"] =
+        new argparse::flag(&combined_output,
+            "If set, all reads are written to the same file(s), specified by "
+            "--output1 and --output2 (--output1 only if --interleaved-output "
+            "is not set). Each read is futher marked by either a \"PASSED\" "
+            "or a \"FAILED\" flag, and any read that has been FAILED "
+            "(including the mate for collapsed reads) are replaced with a "
+            "single 'N' with Phred score 0 [current: %default].");
 
     argparser.add_header("OUTPUT FILES:");
     argparser["--basename"] =
@@ -205,7 +218,6 @@ userconfig::userconfig(const std::string& name,
             "Contains reads discarded due to the --minlength, --maxlength or "
             "--maxns options [default: BASENAME.discarded]");
 
-
 #if defined(AR_GZIP_SUPPORT) || defined(AR_BZIP2_SUPPORT)
    argparser.add_header("OUTPUT COMPRESSION:");
 #endif
@@ -322,7 +334,6 @@ userconfig::userconfig(const std::string& name,
             "both single-end and paired-end trimming, if double-indexed "
             "multiplexing was used, in order to ensure that the demultiplexed "
             "reads can be trimmed correctly [current: %default].");
-
     argparser["--barcode-mm"] =
         new argparse::knob(&barcode_mm, "N",
             "Maximum number of mismatches allowed when counting mismatches in "
@@ -337,6 +348,11 @@ userconfig::userconfig(const std::string& name,
             "Maximum number of mismatches allowed for the mate 2 barcode; "
             "if not set, this value is equal to the '--barcode-mm' value; "
             "cannot be higher than the '--barcode-mm value'.");
+    argparser["--demultiplex-only"] =
+        new argparse::flag(&demultiplex_sequences,
+            "Only carry out demultiplexing using the list of barcodes "
+            "supplied with --barcode-list; do not attempt to trim adapters "
+            "to carry out other processing.");
 
     argparser.add_header("MISC:");
     argparser["--identify-adapters"] =
@@ -349,12 +365,9 @@ userconfig::userconfig(const std::string& name,
             "Phred scores when collapsing. Note that runs are not "
             "deterministic if more than one thread is used. If not specified, "
             "a seed is generated using the current time.");
-
-#ifdef AR_PTHREAD_SUPPORT
     argparser["--threads"] =
         new argparse::knob(&max_threads, "THREADS",
             "Maximum number of threads [current: %default]");
-#endif
 }
 
 
@@ -404,8 +417,28 @@ argparse::parse_result userconfig::parse_args(int argc, char *argv[])
         // sequences. However, arguments are still checked above.
         quality_input_fmt.reset(new fastq_encoding(PHRED_OFFSET_33, MAX_PHRED_SCORE));
         quality_output_fmt.reset(new fastq_encoding(PHRED_OFFSET_33, MAX_PHRED_SCORE));
+        run_type = ar_identify_adapters;
     }
 
+    if (demultiplex_sequences) {
+        if (identify_adapters) {
+            std::cerr << "Error: Cannot use --identify-adapters and "
+                      << "--demultiplex-only at the same time!"
+                      << std::endl;
+
+            return argparse::pr_error;
+        } else if (!argparser.is_set("--barcode-list")) {
+            std::cerr << "Error: Cannot use --demultiplex-only without specifying "
+                      << "a list of barcodes using --barcode-list!"
+                      << std::endl;
+
+            return argparse::pr_error;
+        }
+
+        run_type = ar_demultiplex_sequences;
+    }
+
+
     if (low_quality_score > static_cast<unsigned>(MAX_PHRED_SCORE)) {
         std::cerr << "Error: Invalid value for --minquality: "
                   << low_quality_score << "\n"
@@ -438,7 +471,8 @@ argparse::parse_result userconfig::parse_args(int argc, char *argv[])
 
     if (interleaved_input) {
         if (file_2_set) {
-            std::cerr << "Error: The option --interleaved cannot be used "
+            std::cerr << "Error: The options --interleaved and "
+                      << "--interleaved-input cannot be used "
                       << "together with the --file2 option; only --file1 must "
                       << "be specified!"
                       << std::endl;
@@ -498,27 +532,29 @@ argparse::parse_result userconfig::parse_args(int argc, char *argv[])
     if (!max_threads) {
         std::cerr << "Error: --threads must be at least 1!" << std::endl;
         return argparse::pr_error;
+    } else if (max_threads > 1 && argparser.is_set("--seed")) {
+        std::cerr << "Warning: The option --seed should not be used when "
+                  << "using multiple threads; multi-threaded behavior is not "
+                  << "deterministic even with a fixed seed!"
+                  << std::endl;
     }
 
     return argparse::pr_ok;
 }
 
 
-std::auto_ptr<statistics> userconfig::create_stats() const
+statistics_ptr userconfig::create_stats() const
 {
-    std::auto_ptr<statistics> stats(new statistics());
+    statistics_ptr stats(new statistics());
     stats->number_of_reads_with_adapter.resize(adapters.adapter_count());
     return stats;
 }
 
 
-userconfig::alignment_type userconfig::evaluate_alignment(const alignment_info& alignment) const
+bool userconfig::is_good_alignment(const alignment_info& alignment) const
 {
-    if (!alignment.length) {
-        return not_aligned;
-    } else if (alignment.score <= 0) {
-        // Very poor alignment, will not be considered
-        return poor_alignment;
+    if (!alignment.length || alignment.score <= 0) {
+        return false;
     }
 
     // Only pairs of called bases are considered part of the alignment
@@ -526,7 +562,7 @@ userconfig::alignment_type userconfig::evaluate_alignment(const alignment_info&
     size_t mm_threshold = static_cast<size_t>(mismatch_threshold * n_aligned);
 
     if (n_aligned < min_adapter_overlap) {
-        return poor_alignment;
+        return false;
     }
 
     if (n_aligned < 6) {
@@ -537,10 +573,10 @@ userconfig::alignment_type userconfig::evaluate_alignment(const alignment_info&
     }
 
     if (alignment.n_mismatches > mm_threshold) {
-        return not_aligned;
+        return false;
     }
 
-    return valid_alignment;
+    return true;
 }
 
 
@@ -580,9 +616,19 @@ std::string userconfig::get_output_filename(const std::string& key,
     } else if (key == "demux_unknown") {
         filename += ".unidentified";
 
-        if (nth) {
-            filename.push_back('_');
-            filename.push_back('0' + nth);
+        AR_DEBUG_ASSERT(nth <= 9);
+        if (!interleaved_output) {
+            if (nth) {
+                filename.push_back('_');
+                filename.push_back('0' + nth);
+            }
+        } else {
+            filename += ".paired";
+        }
+
+        // Currently only when demultiplexing; for backwards compatibility
+        if (run_type == ar_demultiplex_sequences) {
+            filename += ".fastq";
         }
 
         if (gzip) {
@@ -610,23 +656,32 @@ std::string userconfig::get_output_filename(const std::string& key,
     } else if (paired_ended_mode) {
         if (key == "--output1") {
             if (interleaved_output) {
-                filename += ".paired.truncated";
+                filename += ".paired";
             } else {
-                filename += ".pair1.truncated";
+                filename += ".pair1";
             }
         } else if (key == "--output2") {
-            filename += ".pair2.truncated";
+            filename += ".pair2";
         } else if (key == "--singleton") {
-            filename += ".singleton.truncated";
+            filename += ".singleton";
         } else {
             throw std::invalid_argument("invalid read-type in userconfig::get_output_filename constructor: " + key);
         }
-    } else {
-       if (key == "--output1") {
+
+        if (run_type != ar_demultiplex_sequences) {
             filename += ".truncated";
-        } else {
-            throw std::invalid_argument("invalid read-type in userconfig::get_output_filename constructor: " + key);
         }
+    } else if (key == "--output1") {
+        if (run_type != ar_demultiplex_sequences) {
+            filename += ".truncated";
+        }
+    } else if (key != "demux_unknown") {
+        throw std::invalid_argument("invalid read-type in userconfig::get_output_filename constructor: " + key);
+    }
+
+    // Currently only when demultiplexing; for backwards compatibility
+    if (run_type == ar_demultiplex_sequences) {
+        filename += ".fastq";
     }
 
     if (gzip) {
@@ -742,7 +797,7 @@ bool userconfig::setup_adapter_sequences()
         } else if (adapters.adapter_count()) {
             std::cerr << "Read " << adapters.barcode_count()
                       << " barcodes / barcode pairs from '" << barcode_list
-                      << "'..." << std::endl;
+                      << "' ..." << std::endl;
         } else {
             std::cerr << "Error: No barcodes sequences found in table!" << std::endl;
             return false;
diff --git a/src/userconfig.h b/src/userconfig.h
index 86a0584..17406dd 100644
--- a/src/userconfig.h
+++ b/src/userconfig.h
@@ -39,6 +39,17 @@ namespace ar
 
 struct alignment_info;
 
+typedef std::unique_ptr<fastq_encoding> fastq_encoding_ptr;
+typedef std::unique_ptr<statistics> statistics_ptr;
+
+
+enum ar_run_types
+{
+    ar_trim_adapters,
+    ar_identify_adapters,
+    ar_demultiplex_sequences,
+};
+
 
 /**
  * Configuration store, containing all user-supplied options / default values,
@@ -47,37 +58,27 @@ struct alignment_info;
 class userconfig
 {
 public:
-	/**
-	 * @param name Name of program.
-	 * @param version Version string excluding program name.
-	 * @param help Help text describing program.
-	 */
+    /**
+     * @param name Name of program.
+     * @param version Version string excluding program name.
+     * @param help Help text describing program.
+     */
     userconfig(const std::string& name,
-           	   const std::string& version,
-           	   const std::string& help);
+               const std::string& version,
+               const std::string& help);
 
     /** Parses a set of commandline arguments. */
     argparse::parse_result parse_args(int argc, char *argv[]);
 
     /** Returns new statistics object, initialized using usersettings. */
-    std::auto_ptr<statistics> create_stats() const;
+    statistics_ptr create_stats() const;
 
 
     std::string get_output_filename(const std::string& key, size_t nth = 0) const;
 
 
-    enum alignment_type
-    {
-        //! Valid alignment according to user settings
-        valid_alignment,
-        //! Alignment with negative score
-        poor_alignment,
-        //! Read not aligned; too many mismatches, not enough bases, etc.
-        not_aligned
-    };
-
     /** Characterize an alignment based on user settings. */
-    alignment_type evaluate_alignment(const alignment_info& alignment) const;
+    bool is_good_alignment(const alignment_info& alignment) const;
 
     /** Returns true if the alignment is sufficient for collapsing. */
     bool is_alignment_collapsible(const alignment_info& alignment) const;
@@ -89,9 +90,8 @@ public:
     /** Trims a read if enabled, returning the #bases removed from each end. */
     fastq::ntrimmed trim_sequence_by_quality_if_enabled(fastq& read) const;
 
-
-    //! Argument parser setup to parse the arguments expected by AR
-    argparse::parser argparser;
+    //! Type of run to execute; see ar_run_types
+    ar_run_types run_type;
 
     //! Prefix used for output files for which no filename was explicitly set
     std::string basename;
@@ -107,6 +107,8 @@ public:
     bool interleaved_input;
     //! Set to true if --interleaved or --interleaved-output is set.
     bool interleaved_output;
+    //! Set to true if --combined-output is set.
+    bool combined_output;
 
     //! Character separating the mate number from the read name in FASTQ reads.
     char mate_separator;
@@ -121,13 +123,13 @@ public:
     unsigned min_alignment_length;
     //! Rate of mismatches determining the threshold for a an acceptable
     //! alignment, depending on the length of the alignment. But see also the
-    //! limits set in the function 'evaluate_alignment'.
+    //! limits set in the function 'is_good_alignment'.
     double mismatch_threshold;
 
     //! Quality format expected in input files.
-    std::auto_ptr<fastq_encoding> quality_input_fmt;
+    fastq_encoding_ptr quality_input_fmt;
     //! Quality format to use when writing FASTQ records.
-    std::auto_ptr<fastq_encoding> quality_output_fmt;
+    fastq_encoding_ptr quality_output_fmt;
 
     //! If true, read termini are trimmed for low-quality bases.
     bool trim_by_quality;
@@ -150,9 +152,6 @@ public:
     //! when collapsing overllapping PE reads.
     unsigned seed;
 
-    //! If true, the program attempts to identify the adapter pair of PE reads
-    bool identify_adapters;
-
     //! The maximum number of threads used by the program
     unsigned max_threads;
 
@@ -188,6 +187,8 @@ private:
      */
     bool setup_adapter_sequences();
 
+    //! Argument parser setup to parse the arguments expected by AR
+    argparse::parser argparser;
 
     //! Sink for --adapter1, adapter sequence expected at 3' of mate 1 reads
     std::string adapter_1;
@@ -209,6 +210,11 @@ private:
     std::string mate_separator_str;
     //! Sink for --interleaved
     bool interleaved;
+
+    //! Sink for --identify-adapters
+    bool identify_adapters;
+    //! Sink for --identify-adapters
+    bool demultiplex_sequences;
 };
 
 } // namespace ar
diff --git a/tests/alignment_test.cc b/tests/alignment_test.cc
index 820f8c0..1868660 100644
--- a/tests/alignment_test.cc
+++ b/tests/alignment_test.cc
@@ -90,6 +90,11 @@ fastq_pair_vec create_adapter_vec(const fastq& pcr1, const fastq& pcr2 = fastq()
 }
 
 
+std::random_device g_seed;
+std::mt19937 g_rng(g_seed());
+
+
+
 
 ///////////////////////////////////////////////////////////////////////////////
 // Cases for SE alignments (a = read 1, b = adapter, o = overlap):
@@ -692,7 +697,7 @@ TEST(collapsing, partial_overlap)
     const alignment_info alignment = new_aln(0, 4);
     ASSERT_EQ(0, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ATATTATAACGT", "01234567EFGH");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -704,7 +709,7 @@ TEST(collapsing, complete_overlap_both_directions)
     const alignment_info alignment = new_aln(0, -1);
     ASSERT_EQ(2, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ATATTATA", "wwwwwwww", FASTQ_ENCODING_SAM);
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -716,7 +721,7 @@ TEST(collapsing, complete_overlap_mate_1)
     const alignment_info alignment = new_aln();
     ASSERT_EQ(1, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ATATTATA", "wwwwwwww", FASTQ_ENCODING_SAM);
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -728,7 +733,7 @@ TEST(collapsing, complete_overlap_mate_2)
     const alignment_info alignment = new_aln(0, -1);
     ASSERT_EQ(1, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ATATTATA", "wwwwwwww", FASTQ_ENCODING_SAM);
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -740,7 +745,7 @@ TEST(collapsing, unequal_sequence_length__mate_1_shorter)
     const alignment_info alignment = new_aln(0, 3);
     ASSERT_EQ(0, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ATANNNNACGT", "012ABCDEFGH");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -752,7 +757,7 @@ TEST(collapsing, unequal_sequence_length__mate_1_shorter__mate_2_extends_past)
     const alignment_info alignment = new_aln(0, -2);
     ASSERT_EQ(1, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ATANACGT", "012DEFGH");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -764,7 +769,7 @@ TEST(collapsing, unequal_sequence_length__mate_2_shorter)
     const alignment_info alignment = new_aln(0, 8);
     ASSERT_EQ(0, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ATATTATAACG", "01234567EFG");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -776,7 +781,7 @@ TEST(collapsing, ambiguous_sites_are_filled_from_the_mate)
     const alignment_info alignment;
     ASSERT_EQ(0, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "ACGTNNTATA", "ABCD!!6789");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -788,7 +793,7 @@ TEST(collapsing, consensus_bases__identical_nucleotides)
     const alignment_info alignment = new_aln(0, 6);
     ASSERT_EQ(0, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "GCATGATATATACAAC", "012345(FBcEFGHIJ", FASTQ_ENCODING_SAM);
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -800,7 +805,7 @@ TEST(collapsing, consensus_bases__identical_nucleotides__scores_are_capped_at_41
     const alignment_info alignment = new_aln(0, 6);
     ASSERT_EQ(0, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "GCATGATATATACAAC", "012345Z\\^`EFGHIJ", FASTQ_ENCODING_SAM);
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -812,7 +817,7 @@ TEST(collapsing, consensus_bases__different_nucleotides)
     const alignment_info alignment = new_aln(0, 6);
     ASSERT_EQ(0, truncate_paired_ended_sequences(alignment, record1, record2));
     const fastq collapsed_expected = fastq("Rec1", "GCATGATAATTACAAC", "012345(%5%EFGHIJ");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -822,9 +827,11 @@ TEST(collapsing, consensus_bases__different_nucleotides__same_quality_1)
     const fastq record1("Rec1", "G", "1");
     const fastq record2("Rec2", "T", "1");
     const alignment_info alignment;
-    srandom(1);
+    std::seed_seq seed{1};
+    std::mt19937 rng(seed);
+
     const fastq collapsed_expected = fastq("Rec1", "G", "#");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -834,9 +841,11 @@ TEST(collapsing, consensus_bases__different_nucleotides__same_quality_2)
     const fastq record1("Rec1", "G", "1");
     const fastq record2("Rec2", "T", "1");
     const alignment_info alignment;
-    srandom(2);
+    std::seed_seq seed{2};
+    std::mt19937 rng(seed);
+
     const fastq collapsed_expected = fastq("Rec1", "T", "#");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, rng);
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
 
@@ -846,7 +855,7 @@ TEST(collapsing, offset_past_the_end)
     const fastq record1("Rec1", "G", "1");
     const fastq record2("Rec2", "T", "1");
     const alignment_info alignment = new_aln(0, 2);
-    ASSERT_THROW(collapse_paired_ended_sequences(alignment, record1, record2), std::invalid_argument);
+    ASSERT_THROW(collapse_paired_ended_sequences(alignment, record1, record2, g_rng), std::invalid_argument);
 }
 
 
@@ -856,7 +865,7 @@ TEST(collapsing, partial_overlap__mate_numbers_removed)
     const fastq record2("Read/2", "NNNNACGT", "ABCDEFGH");
     const alignment_info alignment = new_aln(0, 4);
     const fastq collapsed_expected = fastq("Read", "ATATTATAACGT", "01234567EFGH");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
 
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
@@ -868,7 +877,7 @@ TEST(collapsing, partial_overlap__mate_numbers_removed__mate_1_meta_kept)
     const fastq record2("Read/2 Meta2", "NNNNACGT", "ABCDEFGH");
     const alignment_info alignment = new_aln(0, 4);
     const fastq collapsed_expected = fastq("Read Meta1", "ATATTATAACGT", "01234567EFGH");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
 
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
@@ -880,7 +889,7 @@ TEST(collapsing, partial_overlap__mate_numbers_removed__non_std_mate_sep)
     const fastq record2("Read:2", "NNNNACGT", "ABCDEFGH");
     const alignment_info alignment = new_aln(0, 4);
     const fastq collapsed_expected = fastq("Read", "ATATTATAACGT", "01234567EFGH");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, ':');
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng, ':');
 
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
@@ -892,7 +901,7 @@ TEST(collapsing, partial_overlap__mate_numbers_removed__non_std_mate_sep__not_se
     const fastq record2("Read:2", "NNNNACGT", "ABCDEFGH");
     const alignment_info alignment = new_aln(0, 4);
     const fastq collapsed_expected = fastq("Read:1", "ATATTATAACGT", "01234567EFGH");
-    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2);
+    const fastq collapsed_result = collapse_paired_ended_sequences(alignment, record1, record2, g_rng);
 
     ASSERT_EQ(collapsed_expected, collapsed_result);
 }
diff --git a/tests/argparse_test.cc b/tests/argparse_test.cc
index 85e032c..a3922e7 100644
--- a/tests/argparse_test.cc
+++ b/tests/argparse_test.cc
@@ -32,7 +32,7 @@
 namespace ar
 {
 
-typedef std::auto_ptr<argparse::consumer_base> consumer_autoptr;
+typedef std::unique_ptr<argparse::consumer_base> consumer_autoptr;
 
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/tests/fastq_test.cc b/tests/fastq_test.cc
index 0155a83..f1d4460 100644
--- a/tests/fastq_test.cc
+++ b/tests/fastq_test.cc
@@ -425,6 +425,66 @@ TEST(fastq, add_prefix_to_header__header)
 
 
 ///////////////////////////////////////////////////////////////////////////////
+// Adding postfixes to the header
+
+TEST(fastq, add_postfix_to_header)
+{
+    const fastq expected("my_header new postfix", "ACGTA", "12345");
+    fastq record("my_header", "ACGTA", "12345");
+    record.add_postfix_to_header(" new postfix");
+    ASSERT_EQ(expected, record);
+}
+
+
+TEST(fastq, add_postfix_to_header__empty_prefix)
+{
+    const fastq expected("my_header", "ACGTA", "12345");
+    fastq record = expected;
+    record.add_postfix_to_header("");
+    ASSERT_EQ(expected, record);
+}
+
+
+TEST(fastq, add_postfix_to_header__header)
+{
+    const fastq expected("new_header", "ACGTA", "12345");
+    fastq record("", "ACGTA", "12345");
+    record.add_postfix_to_header("new_header");
+    ASSERT_EQ(expected, record);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Discarding read, setting seq to N and qual to '!'
+
+TEST(fastq, discard_read)
+{
+    const fastq expected("my_header", "N", "!");
+    fastq record("my_header", "ACGTA", "12345");
+    record.discard();
+    ASSERT_EQ(expected, record);
+}
+
+
+TEST(fastq, discard_discarded_read)
+{
+    const fastq expected("my_header", "N", "!");
+    fastq record("my_header", "N", "!");
+    record.discard();
+    ASSERT_EQ(expected, record);
+}
+
+
+TEST(fastq, discard_empty_read)
+{
+    const fastq expected("my_header", "N", "!");
+    fastq record("my_header", "", "");
+    record.discard();
+    ASSERT_EQ(expected, record);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
 // Reading from stream
 
 TEST(fastq, simple_fastq_record_1)
diff --git a/validation/README b/validation/README
new file mode 100644
index 0000000..72980ec
--- /dev/null
+++ b/validation/README
@@ -0,0 +1,60 @@
+Sequences:
+	No adapter
+	Short adapter
+	Long adapter
+	Complete adapter
+
+Filetypes:
+   Unix
+   Windows (\r\n)
+
+
+Automatic variants?
+	- gzip
+	- bzip
+	- uncompressed
+
+
+Single end:
+x	--collapse
+x	--combined-output
+x	--trimns
+x	--trimqualities
+x	--minlength
+x	--maxlength
+
+	Bad:
+		--interleaved
+		--interleaved-input
+		--interleaved-output
+
+
+
+
+
+
+
+
+
+Possibilities:
+	- adapter
+	- overlap
+	- collapse (yes, no, yes but too short)
+	- lq trimming
+
+
+
+TODO:
+	- Single-end
+		- No adapter
+		- No adapter, lq trimming
+
+
+	- Single-end
+		- No adapter
+		- No adapter, lq trimming
+		- No adapter, overlapping
+		- No adapter, overlapping, lq trimming
+		- No adapter, overlapping, too short
+		- No adapter, overlapping, too short, lq trimming
+
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/barcodes.txt b/validation/demultiplexing/double_indexed/pe/collapse/barcodes.txt
new file mode 100644
index 0000000..20197f2
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	TGAGTCAT	GTTAGTGG
+sample_2	GCAGAGAT	CCTAGGGT
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/info.json b/validation/demultiplexing/double_indexed/pe/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/input_1.fastq b/validation/demultiplexing/double_indexed/pe/collapse/input_1.fastq
new file mode 100644
index 0000000..ee2a95c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+GCAGAGATACCCTAGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+GCAGAGATCCTACAAAAGTTAAGTGCGCGTTTGGGCATCGTCCCGACGACTTCCGCTGAGTTGACTTAATGGCTTGTCGGTACACCCTAGGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+TGAGTCATCCACTAACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+TGAGTCATGCACAGTTACACTGCCGTTTGTCTGTCCATGTAATTGTCTAATCACTTTAGAATACGGCTCCTGATATCATCACCCCACTAACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+TGAGTCATACATCCAAGTCGGGCAACCTCTCACATTACTTAGGCCAGGCACTTGCACATCGAAGCAAAGGAGAGATAATTGCCGTATCCTCTGTGCACGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+GCAGAGATGCCCATAAAATATTGCTCGCAACGGTATGCTAGACCCAGGACATCCGCTTTATCCGTGGTGATAGCAACTGGAGGCATCTAACGTTCACACG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGAGTCATAGAATGAGCGGGGTCGACTCGTAACGATCTCTGCAGGGCGATGGTCTACATAGGCCCCACATCCAGATTATCTCGTAAAAGGAAAAACGGTT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+GCAGAGATTAGCCCCCGGGGTGTGGGGTTTTGCTTCCGCCACAAAAATGGTGCGCTAAATGACCATTGCGTACACTCCAACGCGAAATGTAGGGCGCCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/input_2.fastq b/validation/demultiplexing/double_indexed/pe/collapse/input_2.fastq
new file mode 100644
index 0000000..f50bd67
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+CCTAGGGTATCTCTGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+CCTAGGGTGTACCGACAAGCCATTAAGTCAACTCAGCGGAAGTCGTCGGGACGATGCCCAAACGCGCACTTAACTTTTGTAGGATCTCTGCAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+GTTAGTGGATGACTCAAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTTAGTGGGGTGATGATATCAGGAGCCGTATTCTAAAGTGATTAGACAATTACATGGACAGACAAACGGCAGTGTAACTGTGCATGACTCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+GTTAGTGGGATAATACGCTCTAGAGAAAAAGAGTGATAAGTGAATAACCGGGCTATAGTGACAAAGAATTCCGCGTTACTAAATCACCCAACCCACCTTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+CCTAGGGTTTACTTTTGATTCAACACCGACTTGGTCCCGCCTCCACGTGCAACACCCCCTTTTAATAGCAACGCGCTCACCGAGGCTCCTCCCATCCACA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+GTTAGTGGATGTGGTTATAGCAACCGCTCACTTCTCACGTACTGGTGATACTCCTTTGGTACTTTCAACCGTTTTTCCTTTTACGAGATAATCTGGATGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+CCTAGGGTCCTCTCGATTCGGCAGTACCCAATTGTTGACGATCAGCATATTATTATCTGATTGTGCTCGGCGCCCTACATTTCGCGTTGGAGTGTACGCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.collapsed b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.collapsed
new file mode 100644
index 0000000..5b541c3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.collapsed
@@ -0,0 +1,8 @@
+ at M_read_s1_075
+GCACAGTTACACTGCCGTTTGTCTGTCCATGTAATTGTCTAATCACTTTAGAATACGGCTCCTGATATCATCACC
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+ at M_read_s1_150
+AGAATGAGCGGGGTCGACTCGTAACGATCTCTGCAGGGCGATGGTCTACATAGGCCCCACATCCAGATTATCTCGTAAAAGGAAAAACGGTTGAAAGTACCAAAGGAGTATCACCAGTACGTGAGAAGTGAGCGGTTGCTATAACCACAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ@@@AAAAAABBBBBBCCCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFGGGGGGGGGGG
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.collapsed.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.discarded
new file mode 100644
index 0000000..1bb2b65
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at M_read_s1_000
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.pair1.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..7b845fa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.pair1.truncated
@@ -0,0 +1,4 @@
+ at read_s1_200/1
+ACATCCAAGTCGGGCAACCTCTCACATTACTTAGGCCAGGCACTTGCACATCGAAGCAAAGGAGAGATAATTGCCGTATCCTCTGTGCACGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.pair2.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..ff6f964
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.pair2.truncated
@@ -0,0 +1,4 @@
+ at read_s1_200/2
+GATAATACGCTCTAGAGAAAAAGAGTGATAAGTGAATAACCGGGCTATAGTGACAAAGAATTCCGCGTTACTAAATCACCCAACCCACCTTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.settings
new file mode 100644
index 0000000..4a106c5
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.settings
@@ -0,0 +1,207 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	TGAGTCAT	GTTAGTGG
+sample_2	GCAGAGAT	CCTAGGGT
+
+
+[Adapter sequences]
+Adapter1[1]: CCACTAAC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGACTCA_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4078236736
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of full-length collapsed pairs: 2
+Number of truncated collapsed pairs: 0
+Number of retained reads: 4
+Number of retained nucleotides: 409
+Average length of retained reads: 102.25
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	1	1
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	1	0	0	1
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	1	1	0	0	0	0	2
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	0	0	0	0	0	0	0
+101	0	0	0	0	0	0	0
+102	0	0	0	0	0	0	0
+103	0	0	0	0	0	0	0
+104	0	0	0	0	0	0	0
+105	0	0	0	0	0	0	0
+106	0	0	0	0	0	0	0
+107	0	0	0	0	0	0	0
+108	0	0	0	0	0	0	0
+109	0	0	0	0	0	0	0
+110	0	0	0	0	0	0	0
+111	0	0	0	0	0	0	0
+112	0	0	0	0	0	0	0
+113	0	0	0	0	0	0	0
+114	0	0	0	0	0	0	0
+115	0	0	0	0	0	0	0
+116	0	0	0	0	0	0	0
+117	0	0	0	0	0	0	0
+118	0	0	0	0	0	0	0
+119	0	0	0	0	0	0	0
+120	0	0	0	0	0	0	0
+121	0	0	0	0	0	0	0
+122	0	0	0	0	0	0	0
+123	0	0	0	0	0	0	0
+124	0	0	0	0	0	0	0
+125	0	0	0	0	0	0	0
+126	0	0	0	0	0	0	0
+127	0	0	0	0	0	0	0
+128	0	0	0	0	0	0	0
+129	0	0	0	0	0	0	0
+130	0	0	0	0	0	0	0
+131	0	0	0	0	0	0	0
+132	0	0	0	0	0	0	0
+133	0	0	0	0	0	0	0
+134	0	0	0	0	0	0	0
+135	0	0	0	0	0	0	0
+136	0	0	0	0	0	0	0
+137	0	0	0	0	0	0	0
+138	0	0	0	0	0	0	0
+139	0	0	0	0	0	0	0
+140	0	0	0	0	0	0	0
+141	0	0	0	0	0	0	0
+142	0	0	0	0	0	0	0
+143	0	0	0	0	0	0	0
+144	0	0	0	0	0	0	0
+145	0	0	0	0	0	0	0
+146	0	0	0	0	0	0	0
+147	0	0	0	0	0	0	0
+148	0	0	0	0	0	0	0
+149	0	0	0	0	0	0	0
+150	0	0	0	1	0	0	1
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.singleton.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.collapsed b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.collapsed
new file mode 100644
index 0000000..903ad1e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.collapsed
@@ -0,0 +1,8 @@
+ at M_read_s2_075
+CCTACAAAAGTTAAGTGCGCGTTTGGGCATCGTCCCGACGACTTCCGCTGAGTTGACTTAATGGCTTGTCGGTAC
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
+ at M_read_s2_150
+TAGCCCCCGGGGTGTGGGGTTTTGCTTCCGCCACAAAAATGGTGCGCTAAATGACCATTGCGTACACTCCAACGCGAAATGTAGGGCGCCGAGCACAATCAGATAATAATATGCTGATCGTCAACAATTGGGTACTGCCGAATCGAGAGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ@@@AAAAAABBBBBBCCCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFGGGGGGGGGGG
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.collapsed.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.discarded
new file mode 100644
index 0000000..b402e98
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at M_read_s2_000
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.pair1.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..827d196
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.pair1.truncated
@@ -0,0 +1,4 @@
+ at read_s2_200/1
+GCCCATAAAATATTGCTCGCAACGGTATGCTAGACCCAGGACATCCGCTTTATCCGTGGTGATAGCAACTGGAGGCATCTAACGTTCACACG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.pair2.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..1c9df56
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.pair2.truncated
@@ -0,0 +1,4 @@
+ at read_s2_200/2
+TTACTTTTGATTCAACACCGACTTGGTCCCGCCTCCACGTGCAACACCCCCTTTTAATAGCAACGCGCTCACCGAGGCTCCTCCCATCCACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.settings
new file mode 100644
index 0000000..881ee14
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.settings
@@ -0,0 +1,207 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	TGAGTCAT	GTTAGTGG
+sample_2*	GCAGAGAT	CCTAGGGT
+
+
+[Adapter sequences]
+Adapter1[1]: ACCCTAGG_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATCTCTGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4078236736
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of full-length collapsed pairs: 2
+Number of truncated collapsed pairs: 0
+Number of retained reads: 4
+Number of retained nucleotides: 409
+Average length of retained reads: 102.25
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	1	1
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	1	0	0	1
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	1	1	0	0	0	0	2
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	0	0	0	0	0	0	0
+101	0	0	0	0	0	0	0
+102	0	0	0	0	0	0	0
+103	0	0	0	0	0	0	0
+104	0	0	0	0	0	0	0
+105	0	0	0	0	0	0	0
+106	0	0	0	0	0	0	0
+107	0	0	0	0	0	0	0
+108	0	0	0	0	0	0	0
+109	0	0	0	0	0	0	0
+110	0	0	0	0	0	0	0
+111	0	0	0	0	0	0	0
+112	0	0	0	0	0	0	0
+113	0	0	0	0	0	0	0
+114	0	0	0	0	0	0	0
+115	0	0	0	0	0	0	0
+116	0	0	0	0	0	0	0
+117	0	0	0	0	0	0	0
+118	0	0	0	0	0	0	0
+119	0	0	0	0	0	0	0
+120	0	0	0	0	0	0	0
+121	0	0	0	0	0	0	0
+122	0	0	0	0	0	0	0
+123	0	0	0	0	0	0	0
+124	0	0	0	0	0	0	0
+125	0	0	0	0	0	0	0
+126	0	0	0	0	0	0	0
+127	0	0	0	0	0	0	0
+128	0	0	0	0	0	0	0
+129	0	0	0	0	0	0	0
+130	0	0	0	0	0	0	0
+131	0	0	0	0	0	0	0
+132	0	0	0	0	0	0	0
+133	0	0	0	0	0	0	0
+134	0	0	0	0	0	0	0
+135	0	0	0	0	0	0	0
+136	0	0	0	0	0	0	0
+137	0	0	0	0	0	0	0
+138	0	0	0	0	0	0	0
+139	0	0	0	0	0	0	0
+140	0	0	0	0	0	0	0
+141	0	0	0	0	0	0	0
+142	0	0	0	0	0	0	0
+143	0	0	0	0	0	0	0
+144	0	0	0	0	0	0	0
+145	0	0	0	0	0	0	0
+146	0	0	0	0	0	0	0
+147	0	0	0	0	0	0	0
+148	0	0	0	0	0	0	0
+149	0	0	0	0	0	0	0
+150	0	0	0	1	0	0	1
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.singleton.truncated b/validation/demultiplexing/double_indexed/pe/collapse/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.settings b/validation/demultiplexing/double_indexed/pe/collapse/your_output.settings
new file mode 100644
index 0000000..b62aefa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/collapse/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	TGAGTCAT	GTTAGTGG
+sample_2	GCAGAGAT	CCTAGGGT
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	TGAGTCAT	GTTAGTGG	4	0.500
+sample_2	GCAGAGAT	CCTAGGGT	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.unidentified_1 b/validation/demultiplexing/double_indexed/pe/collapse/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/collapse/your_output.unidentified_2 b/validation/demultiplexing/double_indexed/pe/collapse/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/barcodes.txt b/validation/demultiplexing/double_indexed/pe/combined_output/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/info.json b/validation/demultiplexing/double_indexed/pe/combined_output/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/input_1.fastq b/validation/demultiplexing/double_indexed/pe/combined_output/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/input_2.fastq b/validation/demultiplexing/double_indexed/pe/combined_output/input_2.fastq
new file mode 100644
index 0000000..1adafdf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+TGCACGGGCATCGGCGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+TGCACGGGTAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+ACGTTATTTCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACCAGGGCAAGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+ACGTTATTAAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ACGTTATTGTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGCACGGGTGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGACATCGGCGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+TGCACGGGAAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+ACGTTATTAGGGCAAGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.pair1.truncated b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..1259a59
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.pair1.truncated
@@ -0,0 +1,16 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+N
++
+!
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.pair2.truncated b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..9e6cb1d
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.pair2.truncated
@@ -0,0 +1,16 @@
+ at read_s1_075/2
+TCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/2
+AAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+GTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+N
++
+!
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.settings
new file mode 100644
index 0000000..7aa5f53
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_1.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.pair1.truncated b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..3c4ba83
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.pair1.truncated
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+N
++
+!
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.pair2.truncated b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..faf5ab9
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.pair2.truncated
@@ -0,0 +1,16 @@
+ at read_s2_000/2
+N
++
+!
+ at read_s2_200/2
+TAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/2
+AAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.settings
new file mode 100644
index 0000000..241e35b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.sample_2.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.settings b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.settings
new file mode 100644
index 0000000..2db8109
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.unidentified_1 b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/combined_output/your_output.unidentified_2 b/validation/demultiplexing/double_indexed/pe/combined_output/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/barcodes.txt b/validation/demultiplexing/double_indexed/pe/defaults/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/info.json b/validation/demultiplexing/double_indexed/pe/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/input_1.fastq b/validation/demultiplexing/double_indexed/pe/defaults/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/input_2.fastq b/validation/demultiplexing/double_indexed/pe/defaults/input_2.fastq
new file mode 100644
index 0000000..1adafdf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+TGCACGGGCATCGGCGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+TGCACGGGTAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+ACGTTATTTCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACCAGGGCAAGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+ACGTTATTAAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ACGTTATTGTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGCACGGGTGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGACATCGGCGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+TGCACGGGAAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+ACGTTATTAGGGCAAGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.pair1.truncated b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.pair2.truncated b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..dd78b14
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+TCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/2
+AAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+GTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.settings
new file mode 100644
index 0000000..7aa5f53
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.singleton.truncated b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.pair1.truncated b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..8f52bfa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.pair2.truncated b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..e362626
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/2
+TAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/2
+AAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.settings
new file mode 100644
index 0000000..241e35b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.singleton.truncated b/validation/demultiplexing/double_indexed/pe/defaults/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.settings b/validation/demultiplexing/double_indexed/pe/defaults/your_output.settings
new file mode 100644
index 0000000..2db8109
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/defaults/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.unidentified_1 b/validation/demultiplexing/double_indexed/pe/defaults/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/defaults/your_output.unidentified_2 b/validation/demultiplexing/double_indexed/pe/defaults/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/barcodes.txt b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/barcodes.txt
new file mode 100644
index 0000000..54a3e1e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/info.json b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/info.json
new file mode 100644
index 0000000..01d878c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--demultiplex-only", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/input_1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/input_1.fastq
new file mode 100644
index 0000000..bc46557
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+AATCCTAGAACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GGCCCCTGTTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GGCCCCTGAACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+AATCCTAGTCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+AATCCTAGATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+AATCCTAGATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+GGCCCCTGAGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGCCCCTGGGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/input_2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/input_2.fastq
new file mode 100644
index 0000000..8b6a748
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+GTCTAGTTCTAGGATTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+CCAAAGCTTTTAGACGGCAGACGCATCAACTTCCACATGACTGCTTGAACGACGATACACCTCTATATATACAACGACATTATGCGAAAGCGCTAATGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCAAAGCTTACGGGTCCGTGCGCTTAGGTAAGAGCCCCGTTTTTTACGCGGAAAAGCGCCTGGAAGCTCAGAATTGAGGGAAGGGAAATGAGTCACGGGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+GTCTAGTTAAGCCAGTGCCCGCAAGTGGTACCTCCTTTATGGTACACCGAACACAGCGCTTCGCCTGGCTCAAACTGCAGCAGCAAGTACCTGCTCGATG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+GTCTAGTTGAAACGTAGCGCAATCGGGTACGATTTACGATGGCCTGTACACCGAGAGTTGCAGTTCCAGGACGCACAGCGTATCTAGGATTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GTCTAGTTGACTGAGGGGCGCATTCTTAGTCGAGTCGTTTGTGGATAGTCAGGTCTGGTAAAGGATGTACCGGGATGCTCGTACCGAGGCAGGAGTGTTT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CCAAAGCTCAGGGGCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+CCAAAGCTGCGTCGAGGCACGAACATGGGTGATTGAGGGAGGCTGTTCTTTGTTCTAGCGGAGTTTTTCCCTACATAGCCACCCAGGGGCCAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_1.paired.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_1.paired.fastq
new file mode 100644
index 0000000..2976749
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_1.paired.fastq
@@ -0,0 +1,32 @@
+ at read_s1_150/1
+TTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+TTTAGACGGCAGACGCATCAACTTCCACATGACTGCTTGAACGACGATACACCTCTATATATACAACGACATTATGCGAAAGCGCTAATGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+AACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+TACGGGTCCGTGCGCTTAGGTAAGAGCCCCGTTTTTTACGCGGAAAAGCGCCTGGAAGCTCAGAATTGAGGGAAGGGAAATGAGTCACGGGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+AGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CAGGGGCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GCGTCGAGGCACGAACATGGGTGATTGAGGGAGGCTGTTCTTTGTTCTAGCGGAGTTTTTCCCTACATAGCCACCCAGGGGCCAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_1.settings
new file mode 100644
index 0000000..b983909
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_1.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGCTTTGG_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CAGGGGCC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_2.paired.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_2.paired.fastq
new file mode 100644
index 0000000..9eb298b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_2.paired.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+AACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+CTAGGATTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+TCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+AAGCCAGTGCCCGCAAGTGGTACCTCCTTTATGGTACACCGAACACAGCGCTTCGCCTGGCTCAAACTGCAGCAGCAAGTACCTGCTCGATG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+ATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+GAAACGTAGCGCAATCGGGTACGATTTACGATGGCCTGTACACCGAGAGTTGCAGTTCCAGGACGCACAGCGTATCTAGGATTAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+ATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GACTGAGGGGCGCATTCTTAGTCGAGTCGTTTGTGGATAGTCAGGTCTGGTAAAGGATGTACCGGGATGCTCGTACCGAGGCAGGAGTGTTT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_2.settings
new file mode 100644
index 0000000..b3fed69
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.sample_2.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2*	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AACTAGAC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CTAGGATT_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.settings b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.settings
new file mode 100644
index 0000000..c0d1c3e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.settings
@@ -0,0 +1,28 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GGCCCCTG	CCAAAGCT	4	0.500
+sample_2	AATCCTAG	GTCTAGTT	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.unidentified.paired.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/interleaved/your_output.unidentified.paired.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/barcodes.txt b/validation/demultiplexing/double_indexed/pe/demux_only/regular/barcodes.txt
new file mode 100644
index 0000000..54a3e1e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/info.json b/validation/demultiplexing/double_indexed/pe/demux_only/regular/info.json
new file mode 100644
index 0000000..75df252
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--demultiplex-only"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/input_1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/input_1.fastq
new file mode 100644
index 0000000..bc46557
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+AATCCTAGAACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GGCCCCTGTTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GGCCCCTGAACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+AATCCTAGTCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+AATCCTAGATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+AATCCTAGATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+GGCCCCTGAGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGCCCCTGGGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/input_2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/input_2.fastq
new file mode 100644
index 0000000..8b6a748
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+GTCTAGTTCTAGGATTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+CCAAAGCTTTTAGACGGCAGACGCATCAACTTCCACATGACTGCTTGAACGACGATACACCTCTATATATACAACGACATTATGCGAAAGCGCTAATGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCAAAGCTTACGGGTCCGTGCGCTTAGGTAAGAGCCCCGTTTTTTACGCGGAAAAGCGCCTGGAAGCTCAGAATTGAGGGAAGGGAAATGAGTCACGGGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+GTCTAGTTAAGCCAGTGCCCGCAAGTGGTACCTCCTTTATGGTACACCGAACACAGCGCTTCGCCTGGCTCAAACTGCAGCAGCAAGTACCTGCTCGATG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+GTCTAGTTGAAACGTAGCGCAATCGGGTACGATTTACGATGGCCTGTACACCGAGAGTTGCAGTTCCAGGACGCACAGCGTATCTAGGATTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GTCTAGTTGACTGAGGGGCGCATTCTTAGTCGAGTCGTTTGTGGATAGTCAGGTCTGGTAAAGGATGTACCGGGATGCTCGTACCGAGGCAGGAGTGTTT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CCAAAGCTCAGGGGCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+CCAAAGCTGCGTCGAGGCACGAACATGGGTGATTGAGGGAGGCTGTTCTTTGTTCTAGCGGAGTTTTTCCCTACATAGCCACCCAGGGGCCAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.pair1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.pair1.fastq
new file mode 100644
index 0000000..1d4612c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.pair1.fastq
@@ -0,0 +1,16 @@
+ at read_s1_150/1
+TTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+AACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+AGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.pair2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.pair2.fastq
new file mode 100644
index 0000000..42af90f
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.pair2.fastq
@@ -0,0 +1,16 @@
+ at read_s1_150/2
+TTTAGACGGCAGACGCATCAACTTCCACATGACTGCTTGAACGACGATACACCTCTATATATACAACGACATTATGCGAAAGCGCTAATGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+TACGGGTCCGTGCGCTTAGGTAAGAGCCCCGTTTTTTACGCGGAAAAGCGCCTGGAAGCTCAGAATTGAGGGAAGGGAAATGAGTCACGGGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CAGGGGCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GCGTCGAGGCACGAACATGGGTGATTGAGGGAGGCTGTTCTTTGTTCTAGCGGAGTTTTTCCCTACATAGCCACCCAGGGGCCAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.settings
new file mode 100644
index 0000000..b983909
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_1.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGCTTTGG_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CAGGGGCC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.pair1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.pair1.fastq
new file mode 100644
index 0000000..086adeb
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.pair1.fastq
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+AACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+TCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+ATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+ATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.pair2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.pair2.fastq
new file mode 100644
index 0000000..177a1a3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.pair2.fastq
@@ -0,0 +1,16 @@
+ at read_s2_000/2
+CTAGGATTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+AAGCCAGTGCCCGCAAGTGGTACCTCCTTTATGGTACACCGAACACAGCGCTTCGCCTGGCTCAAACTGCAGCAGCAAGTACCTGCTCGATG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+GAAACGTAGCGCAATCGGGTACGATTTACGATGGCCTGTACACCGAGAGTTGCAGTTCCAGGACGCACAGCGTATCTAGGATTAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GACTGAGGGGCGCATTCTTAGTCGAGTCGTTTGTGGATAGTCAGGTCTGGTAAAGGATGTACCGGGATGCTCGTACCGAGGCAGGAGTGTTT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.settings
new file mode 100644
index 0000000..b3fed69
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.sample_2.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2*	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AACTAGAC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CTAGGATT_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.settings b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.settings
new file mode 100644
index 0000000..c0d1c3e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.settings
@@ -0,0 +1,28 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GGCCCCTG	CCAAAGCT	4	0.500
+sample_2	AATCCTAG	GTCTAGTT	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.unidentified_1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.unidentified_1.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.unidentified_2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/regular/your_output.unidentified_2.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/barcodes.txt b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/barcodes.txt
new file mode 100644
index 0000000..54a3e1e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/info.json b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/info.json
new file mode 100644
index 0000000..75df252
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--demultiplex-only"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/input_1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/input_1.fastq
new file mode 100644
index 0000000..3596ff0
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+AATCCTAGAACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GGCCCCTGTTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+TGCCCCTGAACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+AATCCTAGTCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+AATCCTAGATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+AATCCTAGATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+GGCCCCTGAGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGCCCCTGGGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/input_2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/input_2.fastq
new file mode 100644
index 0000000..6688f34
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+GTCTAGTTCTAGGATTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+CCAAAGCTTTTAGACGGCAGACGCATCAACTTCCACATGACTGCTTGAACGACGATACACCTCTATATATACAACGACATTATGCGAAAGCGCTAATGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCAAAGCTTACGGGTCCGTGCGCTTAGGTAAGAGCCCCGTTTTTTACGCGGAAAAGCGCCTGGAAGCTCAGAATTGAGGGAAGGGAAATGAGTCACGGGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+GTCTAGTTAAGCCAGTGCCCGCAAGTGGTACCTCCTTTATGGTACACCGAACACAGCGCTTCGCCTGGCTCAAACTGCAGCAGCAAGTACCTGCTCGATG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+ATCTAGTTGAAACGTAGCGCAATCGGGTACGATTTACGATGGCCTGTACACCGAGAGTTGCAGTTCCAGGACGCACAGCGTATCTAGGATTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GTCTAGTTGACTGAGGGGCGCATTCTTAGTCGAGTCGTTTGTGGATAGTCAGGTCTGGTAAAGGATGTACCGGGATGCTCGTACCGAGGCAGGAGTGTTT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CCAAAGCTCAGGGGCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+CCAAAGCTGCGTCGAGGCACGAACATGGGTGATTGAGGGAGGCTGTTCTTTGTTCTAGCGGAGTTTTTCCCTACATAGCCACCCAGGGGCCAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.pair1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.pair1.fastq
new file mode 100644
index 0000000..a5afa48
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.pair1.fastq
@@ -0,0 +1,12 @@
+ at read_s1_150/1
+TTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+AGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.pair2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.pair2.fastq
new file mode 100644
index 0000000..10692bb
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.pair2.fastq
@@ -0,0 +1,12 @@
+ at read_s1_150/2
+TTTAGACGGCAGACGCATCAACTTCCACATGACTGCTTGAACGACGATACACCTCTATATATACAACGACATTATGCGAAAGCGCTAATGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CAGGGGCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GCGTCGAGGCACGAACATGGGTGATTGAGGGAGGCTGTTCTTTGTTCTAGCGGAGTTTTTCCCTACATAGCCACCCAGGGGCCAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.settings
new file mode 100644
index 0000000..b983909
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_1.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGCTTTGG_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CAGGGGCC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.pair1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.pair1.fastq
new file mode 100644
index 0000000..3940807
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.pair1.fastq
@@ -0,0 +1,12 @@
+ at read_s2_000/1
+AACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+TCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+ATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.pair2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.pair2.fastq
new file mode 100644
index 0000000..a39f90f
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.pair2.fastq
@@ -0,0 +1,12 @@
+ at read_s2_000/2
+CTAGGATTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+AAGCCAGTGCCCGCAAGTGGTACCTCCTTTATGGTACACCGAACACAGCGCTTCGCCTGGCTCAAACTGCAGCAGCAAGTACCTGCTCGATG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GACTGAGGGGCGCATTCTTAGTCGAGTCGTTTGTGGATAGTCAGGTCTGGTAAAGGATGTACCGGGATGCTCGTACCGAGGCAGGAGTGTTT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.settings
new file mode 100644
index 0000000..b3fed69
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.sample_2.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2*	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AACTAGAC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CTAGGATT_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.settings b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.settings
new file mode 100644
index 0000000..fd90774
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.settings
@@ -0,0 +1,28 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	2	0.250
+ambiguous	NA	NA	0	0.000
+sample_1	GGCCCCTG	CCAAAGCT	3	0.375
+sample_2	AATCCTAG	GTCTAGTT	3	0.375
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.unidentified_1.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.unidentified_1.fastq
new file mode 100644
index 0000000..6f96b96
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.unidentified_1.fastq
@@ -0,0 +1,8 @@
+ at read_s1_200/1
+TGCCCCTGAACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+AATCCTAGATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.unidentified_2.fastq b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.unidentified_2.fastq
new file mode 100644
index 0000000..f177fd8
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/demux_only/unidentified/your_output.unidentified_2.fastq
@@ -0,0 +1,8 @@
+ at read_s1_200/2
+CCAAAGCTTACGGGTCCGTGCGCTTAGGTAAGAGCCCCGTTTTTTACGCGGAAAAGCGCCTGGAAGCTCAGAATTGAGGGAAGGGAAATGAGTCACGGGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+ATCTAGTTGAAACGTAGCGCAATCGGGTACGATTTACGATGGCCTGTACACCGAGAGTTGCAGTTCCAGGACGCACAGCGTATCTAGGATTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/barcodes.txt b/validation/demultiplexing/double_indexed/pe/interleaved/both/barcodes.txt
new file mode 100644
index 0000000..6c09aab
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	TTTTCAAC	TAGATGGC
+sample_2	CTTTACAG	GGGCTGCT
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/info.json b/validation/demultiplexing/double_indexed/pe/interleaved/both/info.json
new file mode 100644
index 0000000..221d99b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/input_1.fastq b/validation/demultiplexing/double_indexed/pe/interleaved/both/input_1.fastq
new file mode 100644
index 0000000..5e36cad
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/input_1.fastq
@@ -0,0 +1,64 @@
+ at read_s2_000/1
+CTTTACAGAGCAGCCCAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+GGGCTGCTCTGTAAAGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TTTTCAACTTGACTTACACCCAGACGCTTCCGAACGAGGGGACGTGGCAAAGCGACAATCCTGTCAACACTATAATGCTTCCGAACGCAATATAAAGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+TAGATGGCGTACTTTACGAGATTGAGTGGATGAATCGGCGTTGCCCAAGCAGAGGCTCGGCTTTCGTTCCTTTATATTGCGTTCGGAAGCATTATAGTGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CTTTACAGCCTAATAACTTGTTAATGACATCCTAAGCCCTTTGAAAAACTTTTCGTTGGATACGGTCCAGTCAGAAACTTTCAAAATCGGCCCGGGCGCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+GGGCTGCTAATACCCCTTAGTGTAGCTGGCGACTTCATCCAGACTGTATGTCTCTAGAGTTCATAACTCCGCGCACCGTCAACGTCTGATCATGCTGGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+TTTTCAACTCGATATCTTTTGAGCAGGGATGCTTCCAGCACGTGAACCCAGGAAAATGCACGCGCGCGCACTGCACCCCCCCAGCCATCTAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+TAGATGGCTGGGGGGGTGCAGTGCGCGCGCGTGCATTTTCCTGGGTTCACGTGCTGGAAGCATCCCTGCTCAAAAGATATCGAGTTGAAAAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CTTTACAGCCTGGAATCGCTGGTTACGGATGGTATTTAGATTATGGTACATCTAACAACATATGTCACACATTCCGGATCGGCAGCAGCCCAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+GGGCTGCTGCCGATCCGGAATGTGTGACATATGTTGTTAGATGTACCATAATCTAAATACCATCCGTAACCAGCGATTCCAGGCTGTAAAGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+TTTTCAACGCCATCTAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+TAGATGGCGTTGAAAAAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CTTTACAGTTAGCGCTTTTGCGCCGACTCATGAGTTTAGGGGAGGGATCTCACTCTACCCGACTACGGGCTCGAGTATCCGATACTTGCACAGATGAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GGGCTGCTGTGGTTGGTCGAATATCCTGACTACCAACTCCTGGTACAATGGAGAATCTGACGGTGGTATTCATCTGTGCAAGTATCGGATACTCGAGCCC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+TTTTCAACCAGGGTGGTGAACTACTCGTCCCATTCTTATCGCCGTCTTAACTCGGGACAGTAGTGCTCGAATCGCTCGCGGGGCTCCTCGGCCTTCAATG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+TAGATGGCTAACTGGACGGTGACATTCTGCCGGTACCTAGACTGATCTTAAAACAGCCCGCACTCCGTATGTTCTAGGACAAGGTGGCATCTAGAACGAG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.paired.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.paired.truncated
new file mode 100644
index 0000000..52e3094
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s1_150/1
+TTGACTTACACCCAGACGCTTCCGAACGAGGGGACGTGGCAAAGCGACAATCCTGTCAACACTATAATGCTTCCGAACGCAATATAAAGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+GTACTTTACGAGATTGAGTGGATGAATCGGCGTTGCCCAAGCAGAGGCTCGGCTTTCGTTCCTTTATATTGCGTTCGGAAGCATTATAGTGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+TCGATATCTTTTGAGCAGGGATGCTTCCAGCACGTGAACCCAGGAAAATGCACGCGCGCGCACTGCACCCCCCCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_075/2
+TGGGGGGGTGCAGTGCGCGCGCGTGCATTTTCCTGGGTTCACGTGCTGGAAGCATCCCTGCTCAAAAGATATCGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+CAGGGTGGTGAACTACTCGTCCCATTCTTATCGCCGTCTTAACTCGGGACAGTAGTGCTCGAATCGCTCGCGGGGCTCCTCGGCCTTCAATG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+TAACTGGACGGTGACATTCTGCCGGTACCTAGACTGATCTTAAAACAGCCCGCACTCCGTATGTTCTAGGACAAGGTGGCATCTAGAACGAG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.settings
new file mode 100644
index 0000000..5612d6c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	TTTTCAAC	TAGATGGC
+sample_2	CTTTACAG	GGGCTGCT
+
+
+[Adapter sequences]
+Adapter1[1]: GCCATCTA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: GTTGAAAA_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.singleton.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.paired.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.paired.truncated
new file mode 100644
index 0000000..e26ca28
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s2_200/1
+CCTAATAACTTGTTAATGACATCCTAAGCCCTTTGAAAAACTTTTCGTTGGATACGGTCCAGTCAGAAACTTTCAAAATCGGCCCGGGCGCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+AATACCCCTTAGTGTAGCTGGCGACTTCATCCAGACTGTATGTCTCTAGAGTTCATAACTCCGCGCACCGTCAACGTCTGATCATGCTGGGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CCTGGAATCGCTGGTTACGGATGGTATTTAGATTATGGTACATCTAACAACATATGTCACACATTCCGGATCGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_075/2
+GCCGATCCGGAATGTGTGACATATGTTGTTAGATGTACCATAATCTAAATACCATCCGTAACCAGCGATTCCAGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+TTAGCGCTTTTGCGCCGACTCATGAGTTTAGGGGAGGGATCTCACTCTACCCGACTACGGGCTCGAGTATCCGATACTTGCACAGATGAATA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GTGGTTGGTCGAATATCCTGACTACCAACTCCTGGTACAATGGAGAATCTGACGGTGGTATTCATCTGTGCAAGTATCGGATACTCGAGCCC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.settings
new file mode 100644
index 0000000..ac17bba
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	TTTTCAAC	TAGATGGC
+sample_2*	CTTTACAG	GGGCTGCT
+
+
+[Adapter sequences]
+Adapter1[1]: AGCAGCCC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CTGTAAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.singleton.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.settings b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.settings
new file mode 100644
index 0000000..b4cafbf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	TTTTCAAC	TAGATGGC
+sample_2	CTTTACAG	GGGCTGCT
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	TTTTCAAC	TAGATGGC	4	0.500
+sample_2	CTTTACAG	GGGCTGCT	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.unidentified.paired b/validation/demultiplexing/double_indexed/pe/interleaved/both/your_output.unidentified.paired
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/barcodes.txt b/validation/demultiplexing/double_indexed/pe/interleaved/output/barcodes.txt
new file mode 100644
index 0000000..5325494
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	TGTAACGC	CTCCTTAG
+sample_2	GGGGACTC	GTATATGC
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/info.json b/validation/demultiplexing/double_indexed/pe/interleaved/output/info.json
new file mode 100644
index 0000000..e406a18
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/input_1.fastq b/validation/demultiplexing/double_indexed/pe/interleaved/output/input_1.fastq
new file mode 100644
index 0000000..b0f34d9
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_150/1
+TGTAACGCGAAAGCTTGCCAACTCTCAGATTACAGTTTAGCAATTCTCCGATAGACGTAGATAATAGTTGCGTTGACCGCTTTTCGGGGCACGGAAGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+TGTAACGCCTAAGGAGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+GGGGACTCAAGAATCCGAGGCATAGCGAATCAATGTCACTTTGGTTCTGTCAGAACGACCTGCGAATCAAAACATGCCACGGGGCATATACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+GGGGACTCGCATATACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+TGTAACGCCCAGCATCAAACATAACGTGATAGATACTCAACCATTTTCGGAGTAAACAATGAGAATAACCATGCGGCATGGGACGTGACACCAACGAACA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+TGTAACGCTGATGTGGCTCTAAAAGACCGGACGTTTCGCGTCCTTTGGAGCGGGTAGTGCGGTAGTAAAAATTTACACTAGCCCTAAGGAGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+GGGGACTCCATTAGCCCACGCAACGGCTTAGGCGTCGAGGACATTAACAAGGGCGCGAGGGCCTTCACTTACATGGTATCTATCTCATCCAGTGCACGAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+GGGGACTCATCTCAAGCTCAAGATTAGCAGAAGGATTGTAGGCCCGGATCCGATAATCGATAAAGCCGTGATGTCAATACGGTCCCGGTCTGTCCAGCTA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/input_2.fastq b/validation/demultiplexing/double_indexed/pe/interleaved/output/input_2.fastq
new file mode 100644
index 0000000..c05d1f8
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_150/2
+CTCCTTAGTGGATGGGCAGAGAGATTCCCATTTGGCAGCGAGCGAGCCCCGTAGATAGCTGCTCTCTGACTTCCGTGCCCCGAAAAGCGGTCAACGCAAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CTCCTTAGGCGTTACAAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+GTATATGCCCCGTGGCATGTTTTGATTCGCAGGTCGTTCTGACAGAACCAAAGTGACATTGATTCGCTATGCCTCGGATTCTTGAGTCCCCAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+GTATATGCGAGTCCCCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CTCCTTAGGTCCGAGCGCTAGGACCAGTCCCGTGTACCCAAATAGCGCGACCCCGTCCACGGTGTATGGGCAGTTACGGTAATCTTATGTTCAAAATGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+CTCCTTAGGGCTAGTGTAAATTTTTACTACCGCACTACCCGCTCCAAAGGACGCGAAACGTCCGGTCTTTTAGAGCCACATCAGCGTTACAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+GTATATGCCGAACTAGGTAGTCGCTTTACATAGGAGAGGTCGTTATGTATTACGTCACCGCGTTTCGTCGTGCACTGGATGAGATAGATACCATGTAAGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+GTATATGCAGATGCAGTACTGATTGAGAACTTTCAAATAACCCAAACAAGCGTACCAATGTATACTAGCCCACCGGCCTTCATCATCTAATTAATAGCAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.paired.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.paired.truncated
new file mode 100644
index 0000000..b086cc8
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s1_150/1
+GAAAGCTTGCCAACTCTCAGATTACAGTTTAGCAATTCTCCGATAGACGTAGATAATAGTTGCGTTGACCGCTTTTCGGGGCACGGAAGTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+TGGATGGGCAGAGAGATTCCCATTTGGCAGCGAGCGAGCCCCGTAGATAGCTGCTCTCTGACTTCCGTGCCCCGAAAAGCGGTCAACGCAAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CCAGCATCAAACATAACGTGATAGATACTCAACCATTTTCGGAGTAAACAATGAGAATAACCATGCGGCATGGGACGTGACACCAACGAACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+GTCCGAGCGCTAGGACCAGTCCCGTGTACCCAAATAGCGCGACCCCGTCCACGGTGTATGGGCAGTTACGGTAATCTTATGTTCAAAATGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+TGATGTGGCTCTAAAAGACCGGACGTTTCGCGTCCTTTGGAGCGGGTAGTGCGGTAGTAAAAATTTACACTAGCC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_075/2
+GGCTAGTGTAAATTTTTACTACCGCACTACCCGCTCCAAAGGACGCGAAACGTCCGGTCTTTTAGAGCCACATCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.settings
new file mode 100644
index 0000000..64ff71e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	TGTAACGC	CTCCTTAG
+sample_2	GGGGACTC	GTATATGC
+
+
+[Adapter sequences]
+Adapter1[1]: CTAAGGAG_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: GCGTTACA_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.singleton.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.paired.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.paired.truncated
new file mode 100644
index 0000000..4e76254
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s2_075/1
+AAGAATCCGAGGCATAGCGAATCAATGTCACTTTGGTTCTGTCAGAACGACCTGCGAATCAAAACATGCCACGGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_075/2
+CCCGTGGCATGTTTTGATTCGCAGGTCGTTCTGACAGAACCAAAGTGACATTGATTCGCTATGCCTCGGATTCTT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+CATTAGCCCACGCAACGGCTTAGGCGTCGAGGACATTAACAAGGGCGCGAGGGCCTTCACTTACATGGTATCTATCTCATCCAGTGCACGAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+CGAACTAGGTAGTCGCTTTACATAGGAGAGGTCGTTATGTATTACGTCACCGCGTTTCGTCGTGCACTGGATGAGATAGATACCATGTAAGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+ATCTCAAGCTCAAGATTAGCAGAAGGATTGTAGGCCCGGATCCGATAATCGATAAAGCCGTGATGTCAATACGGTCCCGGTCTGTCCAGCTA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+AGATGCAGTACTGATTGAGAACTTTCAAATAACCCAAACAAGCGTACCAATGTATACTAGCCCACCGGCCTTCATCATCTAATTAATAGCAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.settings
new file mode 100644
index 0000000..bce811f
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	TGTAACGC	CTCCTTAG
+sample_2*	GGGGACTC	GTATATGC
+
+
+[Adapter sequences]
+Adapter1[1]: GCATATAC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: GAGTCCCC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.singleton.truncated b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.settings b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.settings
new file mode 100644
index 0000000..fcec964
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	TGTAACGC	CTCCTTAG
+sample_2	GGGGACTC	GTATATGC
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	TGTAACGC	CTCCTTAG	4	0.500
+sample_2	GGGGACTC	GTATATGC	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.unidentified.paired b/validation/demultiplexing/double_indexed/pe/interleaved/output/your_output.unidentified.paired
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/barcodes.txt b/validation/demultiplexing/double_indexed/pe/threads/one/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/info.json b/validation/demultiplexing/double_indexed/pe/threads/one/info.json
new file mode 100644
index 0000000..ff5ec22
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "1"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/input_1.fastq b/validation/demultiplexing/double_indexed/pe/threads/one/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/input_2.fastq b/validation/demultiplexing/double_indexed/pe/threads/one/input_2.fastq
new file mode 100644
index 0000000..1adafdf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+TGCACGGGCATCGGCGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+TGCACGGGTAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+ACGTTATTTCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACCAGGGCAAGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+ACGTTATTAAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ACGTTATTGTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGCACGGGTGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGACATCGGCGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+TGCACGGGAAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+ACGTTATTAGGGCAAGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.pair1.truncated b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.pair2.truncated b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..dd78b14
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+TCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/2
+AAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+GTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.settings
new file mode 100644
index 0000000..7aa5f53
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.singleton.truncated b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.pair1.truncated b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..8f52bfa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.pair2.truncated b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..e362626
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/2
+TAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/2
+AAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.settings
new file mode 100644
index 0000000..241e35b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.singleton.truncated b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.settings b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.settings
new file mode 100644
index 0000000..2db8109
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.unidentified_1 b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/one/your_output.unidentified_2 b/validation/demultiplexing/double_indexed/pe/threads/one/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/barcodes.txt b/validation/demultiplexing/double_indexed/pe/threads/three/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/info.json b/validation/demultiplexing/double_indexed/pe/threads/three/info.json
new file mode 100644
index 0000000..afe6307
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "3"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/input_1.fastq b/validation/demultiplexing/double_indexed/pe/threads/three/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/input_2.fastq b/validation/demultiplexing/double_indexed/pe/threads/three/input_2.fastq
new file mode 100644
index 0000000..1adafdf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+TGCACGGGCATCGGCGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+TGCACGGGTAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+ACGTTATTTCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACCAGGGCAAGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+ACGTTATTAAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ACGTTATTGTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGCACGGGTGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGACATCGGCGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+TGCACGGGAAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+ACGTTATTAGGGCAAGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.pair1.truncated b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.pair2.truncated b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..dd78b14
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+TCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/2
+AAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+GTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.settings
new file mode 100644
index 0000000..7aa5f53
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.singleton.truncated b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.pair1.truncated b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..8f52bfa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.pair2.truncated b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..e362626
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/2
+TAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/2
+AAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.settings
new file mode 100644
index 0000000..241e35b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.singleton.truncated b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.settings b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.settings
new file mode 100644
index 0000000..2db8109
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.unidentified_1 b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/three/your_output.unidentified_2 b/validation/demultiplexing/double_indexed/pe/threads/three/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/barcodes.txt b/validation/demultiplexing/double_indexed/pe/threads/two/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/info.json b/validation/demultiplexing/double_indexed/pe/threads/two/info.json
new file mode 100644
index 0000000..6623cb4
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "2"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/input_1.fastq b/validation/demultiplexing/double_indexed/pe/threads/two/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/input_2.fastq b/validation/demultiplexing/double_indexed/pe/threads/two/input_2.fastq
new file mode 100644
index 0000000..1adafdf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/2
+TGCACGGGCATCGGCGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+TGCACGGGTAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+ACGTTATTTCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACCAGGGCAAGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+ACGTTATTAAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ACGTTATTGTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGCACGGGTGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGACATCGGCGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+TGCACGGGAAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+ACGTTATTAGGGCAAGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.pair1.truncated b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.pair2.truncated b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..dd78b14
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+TCATCCTGTCTAATTATACCAATGCAGGAACGGGGGCCAAGATCCCCTCGTCCACCTGATGGAGAACGTAGAACC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/2
+AAGGCCCGCCCATCAGGTAAGAGCATGCTCGGGAGCCAACCCCGTGGGGTGGCAGCGATACTCTCCAATCTGTCATGCGTGTCAACGTGCGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+GTGCTGCGTGAGTTGGAAGGATTGGATCCGGAAAGGCTTGGCCTTTGTAAATTCGACTGCGAGTGCGTTGGGCCGGTATACCAGGTAGAGGG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.settings
new file mode 100644
index 0000000..7aa5f53
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.singleton.truncated b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.pair1.truncated b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..8f52bfa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.pair2.truncated b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..e362626
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/2
+TAAGGGACGAAGTCACCGGGGGCGTTTCACTTGCGCGATCCATTGTAGTACTGGTGTGTCAATCTTCATCGGCAAAAGGTGCCTATCAAAAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGTCCCGTCCTATTGCGGTGGTTTGGGACGTCTCGATATCCATCACTTTAATTGGTGGCACTCTCGTTCCCAAGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/2
+AAGGCTGGGTATACGGGGTAAATGGTGCCGCCTTGTTACACGCGCCGAGGTTTCAGATGAGAGAGTTGTCTTTATTCCCTTCTAGCCACGAG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.settings
new file mode 100644
index 0000000..241e35b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.settings
@@ -0,0 +1,147 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 518
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	2	0	0	4
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.singleton.truncated b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.settings b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.settings
new file mode 100644
index 0000000..2db8109
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.unidentified_1 b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/pe/threads/two/your_output.unidentified_2 b/validation/demultiplexing/double_indexed/pe/threads/two/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/collapse/barcodes.txt b/validation/demultiplexing/double_indexed/se/collapse/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/se/collapse/info.json b/validation/demultiplexing/double_indexed/se/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/collapse/input_1.fastq b/validation/demultiplexing/double_indexed/se/collapse/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.collapsed b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.collapsed
new file mode 100644
index 0000000..f8497fa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.collapsed
@@ -0,0 +1,4 @@
+ at M_read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.collapsed.truncated b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.discarded
new file mode 100644
index 0000000..a7f671b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at M_read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.settings
new file mode 100644
index 0000000..db5b514
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.settings
@@ -0,0 +1,146 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 935224950
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 2
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	1	1
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	1	0	0	1
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.truncated b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.truncated
new file mode 100644
index 0000000..d50269e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_1.truncated
@@ -0,0 +1,8 @@
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.collapsed b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.collapsed
new file mode 100644
index 0000000..bfdf35f
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.collapsed
@@ -0,0 +1,4 @@
+ at M_read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.collapsed.truncated b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.discarded
new file mode 100644
index 0000000..263f4b8
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at M_read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.settings
new file mode 100644
index 0000000..b8997f3
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.settings
@@ -0,0 +1,146 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 935224950
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 1
+Number of well aligned reads: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 2
+Number of reads with adapters[1]: 3
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 3
+Number of retained nucleotides: 258
+Average length of retained reads: 86
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	1	1
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	1	0	0	1
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	1	0	0	0	1
+92	1	0	0	0	1
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.truncated b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.truncated
new file mode 100644
index 0000000..1ad23ec
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.sample_2.truncated
@@ -0,0 +1,8 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::998876654321
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.settings b/validation/demultiplexing/double_indexed/se/collapse/your_output.settings
new file mode 100644
index 0000000..3d4f599
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/collapse/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/collapse/your_output.unidentified b/validation/demultiplexing/double_indexed/se/collapse/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/barcodes.txt b/validation/demultiplexing/double_indexed/se/combined_output/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/info.json b/validation/demultiplexing/double_indexed/se/combined_output/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/input_1.fastq b/validation/demultiplexing/double_indexed/se/combined_output/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_1.settings
new file mode 100644
index 0000000..af85246
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4115144913
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_1.truncated b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_1.truncated
new file mode 100644
index 0000000..1259a59
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_1.truncated
@@ -0,0 +1,16 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+N
++
+!
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_2.settings
new file mode 100644
index 0000000..8e176a6
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 356769071
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 1
+Number of well aligned reads: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 3
+Number of retained reads: 3
+Number of retained nucleotides: 258
+Average length of retained reads: 86
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	1	0	1
+92	1	0	1
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_2.truncated b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_2.truncated
new file mode 100644
index 0000000..a662587
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/your_output.sample_2.truncated
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+N
++
+!
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::998876654321
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/your_output.settings b/validation/demultiplexing/double_indexed/se/combined_output/your_output.settings
new file mode 100644
index 0000000..99b9002
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/combined_output/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/combined_output/your_output.unidentified b/validation/demultiplexing/double_indexed/se/combined_output/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/defaults/barcodes.txt b/validation/demultiplexing/double_indexed/se/defaults/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/se/defaults/info.json b/validation/demultiplexing/double_indexed/se/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/defaults/input_1.fastq b/validation/demultiplexing/double_indexed/se/defaults/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.settings
new file mode 100644
index 0000000..af85246
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4115144913
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.truncated b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.settings
new file mode 100644
index 0000000..8e176a6
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 356769071
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 1
+Number of well aligned reads: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 3
+Number of retained reads: 3
+Number of retained nucleotides: 258
+Average length of retained reads: 86
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	1	0	1
+92	1	0	1
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.truncated b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.truncated
new file mode 100644
index 0000000..7bfe216
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::998876654321
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.settings b/validation/demultiplexing/double_indexed/se/defaults/your_output.settings
new file mode 100644
index 0000000..99b9002
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/defaults/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/defaults/your_output.unidentified b/validation/demultiplexing/double_indexed/se/defaults/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/barcodes.txt b/validation/demultiplexing/double_indexed/se/demux_only/regular/barcodes.txt
new file mode 100644
index 0000000..54a3e1e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/info.json b/validation/demultiplexing/double_indexed/se/demux_only/regular/info.json
new file mode 100644
index 0000000..75df252
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--demultiplex-only"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/input_1.fastq b/validation/demultiplexing/double_indexed/se/demux_only/regular/input_1.fastq
new file mode 100644
index 0000000..bc46557
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+AATCCTAGAACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GGCCCCTGTTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GGCCCCTGAACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+AATCCTAGTCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+AATCCTAGATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+AATCCTAGATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+GGCCCCTGAGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGCCCCTGGGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_1.fastq b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_1.fastq
new file mode 100644
index 0000000..1d4612c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_1.fastq
@@ -0,0 +1,16 @@
+ at read_s1_150/1
+TTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+AACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+AGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_1.settings
new file mode 100644
index 0000000..82ee68c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_1.settings
@@ -0,0 +1,17 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGCTTTGG_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CAGGGGCC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_2.fastq b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_2.fastq
new file mode 100644
index 0000000..086adeb
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_2.fastq
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+AACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+TCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+ATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+ATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_2.settings
new file mode 100644
index 0000000..f20e456
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.sample_2.settings
@@ -0,0 +1,17 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2*	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AACTAGAC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CTAGGATT_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.settings b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.settings
new file mode 100644
index 0000000..d4c53cb
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.settings
@@ -0,0 +1,26 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GGCCCCTG	CCAAAGCT	4	0.500
+sample_2	AATCCTAG	GTCTAGTT	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.unidentified.fastq b/validation/demultiplexing/double_indexed/se/demux_only/regular/your_output.unidentified.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/barcodes.txt b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/barcodes.txt
new file mode 100644
index 0000000..54a3e1e
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/info.json b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/info.json
new file mode 100644
index 0000000..75df252
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--demultiplex-only"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/input_1.fastq b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/input_1.fastq
new file mode 100644
index 0000000..3596ff0
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+AATCCTAGAACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GGCCCCTGTTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+TGCCCCTGAACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+AATCCTAGTCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+AATCCTAGATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+AATCCTAGATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+GGCCCCTGAGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGCCCCTGGGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_1.fastq b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_1.fastq
new file mode 100644
index 0000000..a5afa48
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_1.fastq
@@ -0,0 +1,12 @@
+ at read_s1_150/1
+TTTCTGGACGACGCCCCTATAATGTATGATAATTATTCGATTGACATGGCGAACTTCAGCCATTAGCGCTTTCGCATAATGTCGTTGTATAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+AGCTTTGGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GGTGGCTATGTAGGGAAAAACTCCGCTAGAACAAAGAACAGCCTCCCTCAATCACCCATGTTCGTGCCTCGACGCAGCTTTGGAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_1.settings
new file mode 100644
index 0000000..82ee68c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_1.settings
@@ -0,0 +1,17 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGCTTTGG_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CAGGGGCC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_2.fastq b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_2.fastq
new file mode 100644
index 0000000..086adeb
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_2.fastq
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+AACTAGACAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+TCGTACAATGCATCAGACACCGCTTTTGTGGCGTTTCGACCGTAATCTACATTTACATCTCGTTAATTCGCGACATTCATCGTGCCGTACTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+ATACGCTGTGCGTCCTGGAACTGCAACTCTCGGTGTACAGGCCATCGTAAATCGTACCCGATTGCGCTACGTTTCAACTAGACAGATCGGAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+ATACCCCGACACTCGACTTATATTTTCCTCAGCTAGTGCGAGAGTTAATGTAGCGACGAAACACTCCTGCCTCGGTACGAGCATCCCGGTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_2.settings
new file mode 100644
index 0000000..f20e456
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.sample_2.settings
@@ -0,0 +1,17 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2*	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AACTAGAC_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CTAGGATT_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.settings b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.settings
new file mode 100644
index 0000000..e110d18
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.settings
@@ -0,0 +1,26 @@
+AdapterRemoval ver. 2.1.7
+Demultiplexing of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GGCCCCTG	CCAAAGCT
+sample_2	AATCCTAG	GTCTAGTT
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	1	0.125
+ambiguous	NA	NA	0	0.000
+sample_1	GGCCCCTG	CCAAAGCT	3	0.375
+sample_2	AATCCTAG	GTCTAGTT	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.unidentified.fastq b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.unidentified.fastq
new file mode 100644
index 0000000..7b671cd
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/demux_only/unidentified/your_output.unidentified.fastq
@@ -0,0 +1,4 @@
+ at read_s1_200/1
+TGCCCCTGAACCATCTGAGCGGTACTCGGGAAAACACGGACGAGGTGGGATATCTTTCCCTTCTCTTGCCATCGTGTATTTATCTGTATCTAATGCTACT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/barcodes.txt b/validation/demultiplexing/double_indexed/se/threads/one/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/info.json b/validation/demultiplexing/double_indexed/se/threads/one/info.json
new file mode 100644
index 0000000..ff5ec22
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "1"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/input_1.fastq b/validation/demultiplexing/double_indexed/se/threads/one/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.settings
new file mode 100644
index 0000000..af85246
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4115144913
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.truncated b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.settings
new file mode 100644
index 0000000..8e176a6
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 356769071
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 1
+Number of well aligned reads: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 3
+Number of retained reads: 3
+Number of retained nucleotides: 258
+Average length of retained reads: 86
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	1	0	1
+92	1	0	1
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.truncated b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.truncated
new file mode 100644
index 0000000..7bfe216
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::998876654321
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.settings b/validation/demultiplexing/double_indexed/se/threads/one/your_output.settings
new file mode 100644
index 0000000..99b9002
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/one/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/threads/one/your_output.unidentified b/validation/demultiplexing/double_indexed/se/threads/one/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/barcodes.txt b/validation/demultiplexing/double_indexed/se/threads/three/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/info.json b/validation/demultiplexing/double_indexed/se/threads/three/info.json
new file mode 100644
index 0000000..afe6307
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "3"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/input_1.fastq b/validation/demultiplexing/double_indexed/se/threads/three/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.settings
new file mode 100644
index 0000000..af85246
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4115144913
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.truncated b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.settings
new file mode 100644
index 0000000..8e176a6
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 356769071
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 1
+Number of well aligned reads: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 3
+Number of retained reads: 3
+Number of retained nucleotides: 258
+Average length of retained reads: 86
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	1	0	1
+92	1	0	1
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.truncated b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.truncated
new file mode 100644
index 0000000..7bfe216
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::998876654321
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.settings b/validation/demultiplexing/double_indexed/se/threads/three/your_output.settings
new file mode 100644
index 0000000..99b9002
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/three/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/threads/three/your_output.unidentified b/validation/demultiplexing/double_indexed/se/threads/three/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/barcodes.txt b/validation/demultiplexing/double_indexed/se/threads/two/barcodes.txt
new file mode 100644
index 0000000..c60a41b
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/info.json b/validation/demultiplexing/double_indexed/se/threads/two/info.json
new file mode 100644
index 0000000..6623cb4
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "2"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/input_1.fastq b/validation/demultiplexing/double_indexed/se/threads/two/input_1.fastq
new file mode 100644
index 0000000..5e092e1
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_000/1
+CGCCGATGCCCGTGCAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CGCCGATGGCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGATC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CTTGCCCTGGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGAAATAACGTAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CTTGCCCTGTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CTTGCCCTCAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CGCCGATGTCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACACCCGTGCAAGATCGGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CGCCGATGAGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CTTGCCCTAATAACGTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.discarded b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.settings b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.settings
new file mode 100644
index 0000000..af85246
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AATAACGT_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGGGCAAG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4115144913
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.truncated b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.truncated
new file mode 100644
index 0000000..c66faaa
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GGTTCTACGTTCTCCATCAGGTGGACGAGGGGATCTTGGCCCCCGTTCCTGCATTGGTATAATTAGACAGGATGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+GTAGTGCAATAAAAGGATCCTCTTGTGGCCGATTGCAGACCAGCCTCGGGGCTAAACTGATAATCGTATGCTATAGACCCTGGTCGACGCCG
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAGATGTCAGCTCATGTGTTGATATACAGCTAACTAAGGCCCGGGGGTTTAGGCTCAACCCTCTACCTGGTATACCGGCCCAACGCACTCGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.discarded b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.settings b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.settings
new file mode 100644
index 0000000..8e176a6
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2*	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: CCCGTGCA_AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CATCGGCG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 356769071
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 1
+Number of well aligned reads: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 3
+Number of retained reads: 3
+Number of retained nucleotides: 258
+Average length of retained reads: 86
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	1	0	1
+92	1	0	1
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.truncated b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.truncated
new file mode 100644
index 0000000..7bfe216
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_200/1
+GCGTAAGTTGACGTCAGCCTGCGAGGTGCCACGCCAGTGGTTGCGCTCACCCGGGGCGTAGTTGCTCCGCGCAATTTCTTGGCAGTTCGAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::998876654321
+ at read_s2_075/1
+TCTTGGGAACGAGAGTGCCACCAATTAAAGTGATGGATATCGAGACGTCCCAAACCACCGCAATAGGACGGGACA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_150/1
+AGCCCCGAGTGTCCATCACAAGCCACCTCCACTAACCATCTCGGTCCATTATTTGTCACTCGTGGCTAGAAGGGAATAAAGACAACTCTCTC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.settings b/validation/demultiplexing/double_indexed/se/threads/two/your_output.settings
new file mode 100644
index 0000000..99b9002
--- /dev/null
+++ b/validation/demultiplexing/double_indexed/se/threads/two/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.1.7
+Trimming of double-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CTTGCCCT	ACGTTATT
+sample_2	CGCCGATG	TGCACGGG
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CTTGCCCT	ACGTTATT	4	0.500
+sample_2	CGCCGATG	TGCACGGG	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/double_indexed/se/threads/two/your_output.unidentified b/validation/demultiplexing/double_indexed/se/threads/two/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/barcodes.txt b/validation/demultiplexing/single_indexed/pe/collapse/barcodes.txt
new file mode 100644
index 0000000..89efc9e
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	CAAGCACG	
+sample_2	ATTTTGAG	
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/info.json b/validation/demultiplexing/single_indexed/pe/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/input_1.fastq b/validation/demultiplexing/single_indexed/pe/collapse/input_1.fastq
new file mode 100644
index 0000000..6e9f48c
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s2_200/1
+ATTTTGAGCTCAATAAGCTGTGCTAGAAGGAAGAGTCTAAGGCGACGACGACATTTGGCGTCGCCTCGCCGAGGCTAGTGATCTAGCTGGCAGTACCCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+ATTTTGAGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+ATTTTGAGGATCTAACTGGATCGAGATAGGGCTGAGTGTGGCCGACGTTTTTGCCGCCCCTAAATAGTAGACAGTGACATCGTGAGGACCGCAGACTTAG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+CAAGCACGAAGCGAGTCTCGGTTGCGTGTCTTAAAGACAAAGGGACTCCATACTGGCCGGAAGTCCGATATCGCTTAGTAACTCACTCTCGCAGTATTTA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+ATTTTGAGCTTGAAAAGACTTCCTCTTGGTCATTTTAGGGCATGCGTGACGGAATCTAATCGTGGTTCCCTGACACAACCCTTAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/1
+CAAGCACGAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+CAAGCACGTCAATCCAAGGGATAAGCATGCGCCCATATAGTGGTAGCACAGCAATCTTCCGTCAATGCAGTGGGGCGCTCGGATCGCGGCTGTGCATGAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+CAAGCACGTCGTAGTCTCGGTGGGCAATTCCTACATGGTACCCGGCACGACAAAGTAGACAGCCCATGCCTAGCTCCCAACCGAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/input_2.fastq b/validation/demultiplexing/single_indexed/pe/collapse/input_2.fastq
new file mode 100644
index 0000000..e6dd289
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s2_200/2
+ACCTAATGCAAGTTCCTTGTGATGTTAGAATATCCTAAGTCTATGGAATTCTTTTGCTTGGGAATTGTTGGCCTAAGTAGGTGGGTCGCCTTAGCGTGAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+CTCAAAATAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+ACTATGGTTGTCTGAATCACAAATGGCTAAACGGCTTCATAATAGTGTGGTATGCGTACTAAGTCTGCGGTCCTCACGATGTCACTGTCTACTATTTAGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+ATTTCACTGCCGGTTTGCTGTTCGGAATTTCTGTGAATTCGTGATTGCCATTGGGGAGGTTAAGGCAAACTATGAGATTGTTCCGGGTCAAGTAACTGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+AAGGGTTGTGTCAGGGAACCACGATTAGATTCCGTCACGCATGCCCTAAAATGACCAAGAGGAAGTCTTTTCAAGCTCAAAATAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+CGTGCTTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+TCGCGCGAACGGCGCTGGGCCCCATGCGAAAAAGCGATACCATGAAGCGAGTATAATGTTCATGCACAGCCGCGATCCGAGCGCCCCACTGCATTGACGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+CGGTTGGGAGCTAGGCATGGGCTGTCTACTTTGTCGTGCCGGGTACCATGTAGGAATTGCCCACCGAGACTACGACGTGCTTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.collapsed b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.collapsed
new file mode 100644
index 0000000..85c4318
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.collapsed
@@ -0,0 +1,8 @@
+ at M_read_s1_150
+TCAATCCAAGGGATAAGCATGCGCCCATATAGTGGTAGCACAGCAATCTTCCGTCAATGCAGTGGGGCGCTCGGATCGCGGCTGTGCATGAACATTATACTCGCTTCATGGTATCGCTTTTTCGCATGGGGCCCAGCGCCGTTCGCGCGA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJABBBBBBCCCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFGGGGGGGGGGGHHHHHHHH
+ at M_read_s1_075
+TCGTAGTCTCGGTGGGCAATTCCTACATGGTACCCGGCACGACAAAGTAGACAGCCCATGCCTAGCTCCCAACCG
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.collapsed.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.discarded
new file mode 100644
index 0000000..1bb2b65
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at M_read_s1_000
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.pair1.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..63daccc
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.pair1.truncated
@@ -0,0 +1,4 @@
+ at read_s1_200/1
+AAGCGAGTCTCGGTTGCGTGTCTTAAAGACAAAGGGACTCCATACTGGCCGGAAGTCCGATATCGCTTAGTAACTCACTCTCGCAGTATTTA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.pair2.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..9f325e4
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.pair2.truncated
@@ -0,0 +1,4 @@
+ at read_s1_200/2
+ATTTCACTGCCGGTTTGCTGTTCGGAATTTCTGTGAATTCGTGATTGCCATTGGGGAGGTTAAGGCAAACTATGAGATTGTTCCGGGTCAAGTAACTGGG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.settings
new file mode 100644
index 0000000..04aebde
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.settings
@@ -0,0 +1,207 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	CAAGCACG	*
+sample_2	ATTTTGAG	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CGTGCTTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2769367494
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of full-length collapsed pairs: 2
+Number of truncated collapsed pairs: 0
+Number of retained reads: 4
+Number of retained nucleotides: 417
+Average length of retained reads: 104.25
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	1	1
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	1	0	0	1
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	1	0	0	0	0	0	1
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	0	1	0	0	0	0	1
+101	0	0	0	0	0	0	0
+102	0	0	0	0	0	0	0
+103	0	0	0	0	0	0	0
+104	0	0	0	0	0	0	0
+105	0	0	0	0	0	0	0
+106	0	0	0	0	0	0	0
+107	0	0	0	0	0	0	0
+108	0	0	0	0	0	0	0
+109	0	0	0	0	0	0	0
+110	0	0	0	0	0	0	0
+111	0	0	0	0	0	0	0
+112	0	0	0	0	0	0	0
+113	0	0	0	0	0	0	0
+114	0	0	0	0	0	0	0
+115	0	0	0	0	0	0	0
+116	0	0	0	0	0	0	0
+117	0	0	0	0	0	0	0
+118	0	0	0	0	0	0	0
+119	0	0	0	0	0	0	0
+120	0	0	0	0	0	0	0
+121	0	0	0	0	0	0	0
+122	0	0	0	0	0	0	0
+123	0	0	0	0	0	0	0
+124	0	0	0	0	0	0	0
+125	0	0	0	0	0	0	0
+126	0	0	0	0	0	0	0
+127	0	0	0	0	0	0	0
+128	0	0	0	0	0	0	0
+129	0	0	0	0	0	0	0
+130	0	0	0	0	0	0	0
+131	0	0	0	0	0	0	0
+132	0	0	0	0	0	0	0
+133	0	0	0	0	0	0	0
+134	0	0	0	0	0	0	0
+135	0	0	0	0	0	0	0
+136	0	0	0	0	0	0	0
+137	0	0	0	0	0	0	0
+138	0	0	0	0	0	0	0
+139	0	0	0	0	0	0	0
+140	0	0	0	0	0	0	0
+141	0	0	0	0	0	0	0
+142	0	0	0	0	0	0	0
+143	0	0	0	0	0	0	0
+144	0	0	0	0	0	0	0
+145	0	0	0	0	0	0	0
+146	0	0	0	0	0	0	0
+147	0	0	0	0	0	0	0
+148	0	0	0	0	0	0	0
+149	0	0	0	0	0	0	0
+150	0	0	0	1	0	0	1
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.singleton.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.collapsed b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.collapsed
new file mode 100644
index 0000000..f0c668e
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.collapsed
@@ -0,0 +1,8 @@
+ at M_read_s2_150
+GATCTAACTGGATCGAGATAGGGCTGAGTGTGGCCGACGTTTTTGCCGCCCCTAAATAGTAGACAGTGACATCGTGAGGACCGCAGACTTAGTACGCATACCACACTATTATGAAGCCGTTTAGCCATTTGTGATTCAGACAACCATAGT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJABBBBBBCCCCCCCDDDDDDDEEEEEEEEEFFFFFFFFFGGGGGGGGGGGHHHHHHHH
+ at M_read_s2_075
+CTTGAAAAGACTTCCTCTTGGTCATTTTAGGGCATGCGTGACGGAATCTAATCGTGGTTCCCTGACACAACCCTT
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.collapsed.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.discarded
new file mode 100644
index 0000000..b402e98
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at M_read_s2_000
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.pair1.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..1dd098b
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.pair1.truncated
@@ -0,0 +1,4 @@
+ at read_s2_200/1
+CTCAATAAGCTGTGCTAGAAGGAAGAGTCTAAGGCGACGACGACATTTGGCGTCGCCTCGCCGAGGCTAGTGATCTAGCTGGCAGTACCCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.pair2.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..bc82d9d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.pair2.truncated
@@ -0,0 +1,4 @@
+ at read_s2_200/2
+ACCTAATGCAAGTTCCTTGTGATGTTAGAATATCCTAAGTCTATGGAATTCTTTTGCTTGGGAATTGTTGGCCTAAGTAGGTGGGTCGCCTTAGCGTGAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.settings
new file mode 100644
index 0000000..e829d00
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.settings
@@ -0,0 +1,207 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CAAGCACG	*
+sample_2*	ATTTTGAG	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: CTCAAAAT_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2769367494
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of full-length collapsed pairs: 2
+Number of truncated collapsed pairs: 0
+Number of retained reads: 4
+Number of retained nucleotides: 417
+Average length of retained reads: 104.25
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	1	1
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	1	0	0	1
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	1	0	0	0	0	0	1
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	0	1	0	0	0	0	1
+101	0	0	0	0	0	0	0
+102	0	0	0	0	0	0	0
+103	0	0	0	0	0	0	0
+104	0	0	0	0	0	0	0
+105	0	0	0	0	0	0	0
+106	0	0	0	0	0	0	0
+107	0	0	0	0	0	0	0
+108	0	0	0	0	0	0	0
+109	0	0	0	0	0	0	0
+110	0	0	0	0	0	0	0
+111	0	0	0	0	0	0	0
+112	0	0	0	0	0	0	0
+113	0	0	0	0	0	0	0
+114	0	0	0	0	0	0	0
+115	0	0	0	0	0	0	0
+116	0	0	0	0	0	0	0
+117	0	0	0	0	0	0	0
+118	0	0	0	0	0	0	0
+119	0	0	0	0	0	0	0
+120	0	0	0	0	0	0	0
+121	0	0	0	0	0	0	0
+122	0	0	0	0	0	0	0
+123	0	0	0	0	0	0	0
+124	0	0	0	0	0	0	0
+125	0	0	0	0	0	0	0
+126	0	0	0	0	0	0	0
+127	0	0	0	0	0	0	0
+128	0	0	0	0	0	0	0
+129	0	0	0	0	0	0	0
+130	0	0	0	0	0	0	0
+131	0	0	0	0	0	0	0
+132	0	0	0	0	0	0	0
+133	0	0	0	0	0	0	0
+134	0	0	0	0	0	0	0
+135	0	0	0	0	0	0	0
+136	0	0	0	0	0	0	0
+137	0	0	0	0	0	0	0
+138	0	0	0	0	0	0	0
+139	0	0	0	0	0	0	0
+140	0	0	0	0	0	0	0
+141	0	0	0	0	0	0	0
+142	0	0	0	0	0	0	0
+143	0	0	0	0	0	0	0
+144	0	0	0	0	0	0	0
+145	0	0	0	0	0	0	0
+146	0	0	0	0	0	0	0
+147	0	0	0	0	0	0	0
+148	0	0	0	0	0	0	0
+149	0	0	0	0	0	0	0
+150	0	0	0	1	0	0	1
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.singleton.truncated b/validation/demultiplexing/single_indexed/pe/collapse/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.settings b/validation/demultiplexing/single_indexed/pe/collapse/your_output.settings
new file mode 100644
index 0000000..0950a5a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/collapse/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	CAAGCACG	*
+sample_2	ATTTTGAG	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	CAAGCACG	*	4	0.500
+sample_2	ATTTTGAG	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.unidentified_1 b/validation/demultiplexing/single_indexed/pe/collapse/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/collapse/your_output.unidentified_2 b/validation/demultiplexing/single_indexed/pe/collapse/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/barcodes.txt b/validation/demultiplexing/single_indexed/pe/combined_output/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/info.json b/validation/demultiplexing/single_indexed/pe/combined_output/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/input_1.fastq b/validation/demultiplexing/single_indexed/pe/combined_output/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/input_2.fastq b/validation/demultiplexing/single_indexed/pe/combined_output/input_2.fastq
new file mode 100644
index 0000000..899772a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.pair1.truncated b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..9db0bba
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.pair1.truncated
@@ -0,0 +1,16 @@
+ at read_s1_000/1
+N
++
+!
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.pair2.truncated b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..746a598
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.pair2.truncated
@@ -0,0 +1,16 @@
+ at read_s1_000/2
+N
++
+!
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.settings
new file mode 100644
index 0000000..0bf38ea
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_1.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.pair1.truncated b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..2752e45
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.pair1.truncated
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+N
++
+!
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.pair2.truncated b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..753a3f5
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.pair2.truncated
@@ -0,0 +1,16 @@
+ at read_s2_000/2
+N
++
+!
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.settings
new file mode 100644
index 0000000..761dd4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.sample_2.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.settings b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.settings
new file mode 100644
index 0000000..ccbaf99
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.unidentified_1 b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/combined_output/your_output.unidentified_2 b/validation/demultiplexing/single_indexed/pe/combined_output/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/barcodes.txt b/validation/demultiplexing/single_indexed/pe/defaults/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/info.json b/validation/demultiplexing/single_indexed/pe/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/input_1.fastq b/validation/demultiplexing/single_indexed/pe/defaults/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/input_2.fastq b/validation/demultiplexing/single_indexed/pe/defaults/input_2.fastq
new file mode 100644
index 0000000..899772a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.pair1.truncated b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.pair2.truncated b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..b4f3285
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.settings
new file mode 100644
index 0000000..0bf38ea
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.singleton.truncated b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.pair1.truncated b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.pair2.truncated b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..8036904
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.settings
new file mode 100644
index 0000000..761dd4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.singleton.truncated b/validation/demultiplexing/single_indexed/pe/defaults/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.settings b/validation/demultiplexing/single_indexed/pe/defaults/your_output.settings
new file mode 100644
index 0000000..ccbaf99
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/defaults/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.unidentified_1 b/validation/demultiplexing/single_indexed/pe/defaults/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/defaults/your_output.unidentified_2 b/validation/demultiplexing/single_indexed/pe/defaults/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/barcodes.txt b/validation/demultiplexing/single_indexed/pe/demux_only/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/info.json b/validation/demultiplexing/single_indexed/pe/demux_only/info.json
new file mode 100644
index 0000000..75df252
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--demultiplex-only"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/input_1.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/input_2.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/input_2.fastq
new file mode 100644
index 0000000..899772a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.pair1.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.pair1.fastq
new file mode 100644
index 0000000..5ae47f2
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.pair1.fastq
@@ -0,0 +1,16 @@
+ at read_s1_000/1
+AGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.pair2.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.pair2.fastq
new file mode 100644
index 0000000..9668a69
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.pair2.fastq
@@ -0,0 +1,16 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.settings
new file mode 100644
index 0000000..d103095
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_1.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.2.0
+Demultiplexing of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.pair1.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.pair1.fastq
new file mode 100644
index 0000000..e5fe35a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.pair1.fastq
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+AGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.pair2.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.pair2.fastq
new file mode 100644
index 0000000..32e7467
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.pair2.fastq
@@ -0,0 +1,16 @@
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.settings
new file mode 100644
index 0000000..ffdb781
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.sample_2.settings
@@ -0,0 +1,19 @@
+AdapterRemoval ver. 2.2.0
+Demultiplexing of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.settings b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.settings
new file mode 100644
index 0000000..0c2c4f4
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.settings
@@ -0,0 +1,28 @@
+AdapterRemoval ver. 2.2.0
+Demultiplexing of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.unidentified_1.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.unidentified_1.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/demux_only/your_output.unidentified_2.fastq b/validation/demultiplexing/single_indexed/pe/demux_only/your_output.unidentified_2.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/barcodes.txt b/validation/demultiplexing/single_indexed/pe/interleaved/both/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/info.json b/validation/demultiplexing/single_indexed/pe/interleaved/both/info.json
new file mode 100644
index 0000000..221d99b
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/input_1.fastq b/validation/demultiplexing/single_indexed/pe/interleaved/both/input_1.fastq
new file mode 100644
index 0000000..1fbe6f7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/input_1.fastq
@@ -0,0 +1,64 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.paired.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.paired.truncated
new file mode 100644
index 0000000..5f38230
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.settings
new file mode 100644
index 0000000..0bf38ea
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.singleton.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.paired.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.paired.truncated
new file mode 100644
index 0000000..aecb597
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.settings
new file mode 100644
index 0000000..761dd4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.singleton.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.settings b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.settings
new file mode 100644
index 0000000..ccbaf99
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.unidentified.paired b/validation/demultiplexing/single_indexed/pe/interleaved/both/your_output.unidentified.paired
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/barcodes.txt b/validation/demultiplexing/single_indexed/pe/interleaved/output/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/info.json b/validation/demultiplexing/single_indexed/pe/interleaved/output/info.json
new file mode 100644
index 0000000..e406a18
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/input_1.fastq b/validation/demultiplexing/single_indexed/pe/interleaved/output/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/input_2.fastq b/validation/demultiplexing/single_indexed/pe/interleaved/output/input_2.fastq
new file mode 100644
index 0000000..899772a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.paired.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.paired.truncated
new file mode 100644
index 0000000..5f38230
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.settings
new file mode 100644
index 0000000..0bf38ea
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.singleton.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.paired.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.paired.truncated
new file mode 100644
index 0000000..aecb597
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.paired.truncated
@@ -0,0 +1,24 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.settings
new file mode 100644
index 0000000..761dd4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.singleton.truncated b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.settings b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.settings
new file mode 100644
index 0000000..ccbaf99
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.unidentified.paired b/validation/demultiplexing/single_indexed/pe/interleaved/output/your_output.unidentified.paired
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/barcodes.txt b/validation/demultiplexing/single_indexed/pe/threads/one/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/info.json b/validation/demultiplexing/single_indexed/pe/threads/one/info.json
new file mode 100644
index 0000000..ff5ec22
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "1"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/input_1.fastq b/validation/demultiplexing/single_indexed/pe/threads/one/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/input_2.fastq b/validation/demultiplexing/single_indexed/pe/threads/one/input_2.fastq
new file mode 100644
index 0000000..899772a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.pair1.truncated b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.pair2.truncated b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..b4f3285
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.settings
new file mode 100644
index 0000000..0bf38ea
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.singleton.truncated b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.pair1.truncated b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.pair2.truncated b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..8036904
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.settings
new file mode 100644
index 0000000..761dd4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.singleton.truncated b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.settings b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.settings
new file mode 100644
index 0000000..ccbaf99
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.unidentified_1 b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/one/your_output.unidentified_2 b/validation/demultiplexing/single_indexed/pe/threads/one/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/barcodes.txt b/validation/demultiplexing/single_indexed/pe/threads/three/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/info.json b/validation/demultiplexing/single_indexed/pe/threads/three/info.json
new file mode 100644
index 0000000..5315d18
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--thread", "3"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/input_1.fastq b/validation/demultiplexing/single_indexed/pe/threads/three/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/input_2.fastq b/validation/demultiplexing/single_indexed/pe/threads/three/input_2.fastq
new file mode 100644
index 0000000..899772a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.pair1.truncated b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.pair2.truncated b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..b4f3285
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.settings
new file mode 100644
index 0000000..0bf38ea
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.singleton.truncated b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.pair1.truncated b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.pair2.truncated b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..8036904
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.settings
new file mode 100644
index 0000000..761dd4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.singleton.truncated b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.settings b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.settings
new file mode 100644
index 0000000..ccbaf99
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.unidentified_1 b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/three/your_output.unidentified_2 b/validation/demultiplexing/single_indexed/pe/threads/three/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/barcodes.txt b/validation/demultiplexing/single_indexed/pe/threads/two/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/info.json b/validation/demultiplexing/single_indexed/pe/threads/two/info.json
new file mode 100644
index 0000000..6623cb4
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "2"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/input_1.fastq b/validation/demultiplexing/single_indexed/pe/threads/two/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/input_2.fastq b/validation/demultiplexing/single_indexed/pe/threads/two/input_2.fastq
new file mode 100644
index 0000000..899772a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/input_2.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/2
+TCCGGCGCAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/2
+ATGTCCTGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTCTCCGGCGCAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGAATGTCCTGAGATCGGAAGAGCGTCG
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.discarded
new file mode 100644
index 0000000..5785025
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.discarded
@@ -0,0 +1,8 @@
+ at read_s1_000/1
+
++
+
+ at read_s1_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.pair1.truncated b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.pair1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.pair2.truncated b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.pair2.truncated
new file mode 100644
index 0000000..b4f3285
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/2
+GTAGGAGCTTAATGATTCATCTGTCGATTTATTCACGCAAATGTGTAAATCCGATAGTGCATTAATGGGACCGTC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s1_200/2
+CCTTCTTATGCTCGACTGGCTCTGTATAAGCCCAAGACATTATGAAAGGTCTCGCGTTTGTCTACCAGGCTCCGTTACGGATACAAGTGCCCTACTGTCA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/2
+ATCAAGGGAGGTCACGTGAATTTTGCCTTCTAGACTAGCGTACATGACCGCGAATTAGATACGTTATAACCTTGCATAGACTCTAGCGGCGTCAGTAATA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.settings
new file mode 100644
index 0000000..0bf38ea
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.singleton.truncated b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_1.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.discarded
new file mode 100644
index 0000000..5cdb5b3
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.discarded
@@ -0,0 +1,8 @@
+ at read_s2_000/1
+
++
+
+ at read_s2_000/2
+
++
+
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.pair1.truncated b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.pair1.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.pair1.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.pair2.truncated b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.pair2.truncated
new file mode 100644
index 0000000..8036904
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.pair2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/2
+AGAACAGGATACAATGAAAATGCATCGCGTTGGCAACTCTCACCTTGCTCTTGGACCCGTGTGTAGCAGGTACAAGTAAAGACTCTGTTGCCTAGGTTAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/2
+TGAAATACCTATCTGAGAAACGCCCCGGTATGCACGCTCTAAAACGTCGCGGAAAGCGTGATCTTGGGCTAGCGA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>
+ at read_s2_200/2
+ATGCTGATTAGATATGTCTTTCATCGGCTTGTGACCGAGGAGTGGTACGGCCGTTCCATATTGGGTGATTAGGAAGATGTCCCGGCTTGCTGCTTCTCGT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.settings
new file mode 100644
index 0000000..761dd4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.settings
@@ -0,0 +1,155 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2459456692
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 4
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 3
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 4
+Number of retained reads: 6
+Number of retained nucleotides: 534
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	1	1	0	0	2
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	2	0	0	2
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.singleton.truncated b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.sample_2.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.settings b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.settings
new file mode 100644
index 0000000..ccbaf99
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-indexed paired-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+Maximum mate 1 mismatches: 0
+Maximum mate 2 mismatches: 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1157297082
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.unidentified_1 b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.unidentified_1
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/pe/threads/two/your_output.unidentified_2 b/validation/demultiplexing/single_indexed/pe/threads/two/your_output.unidentified_2
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/collapse/barcodes.txt b/validation/demultiplexing/single_indexed/se/collapse/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/se/collapse/info.json b/validation/demultiplexing/single_indexed/se/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/se/collapse/input_1.fastq b/validation/demultiplexing/single_indexed/se/collapse/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.collapsed b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.collapsed
new file mode 100644
index 0000000..30005dd
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.collapsed
@@ -0,0 +1,4 @@
+ at M_read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.collapsed.truncated b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.discarded
new file mode 100644
index 0000000..a7f671b
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at M_read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.settings
new file mode 100644
index 0000000..ad1d9d2
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.settings
@@ -0,0 +1,146 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3843883243
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 2
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	1	1
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	1	0	0	1
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.truncated b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.truncated
new file mode 100644
index 0000000..380776c
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_1.truncated
@@ -0,0 +1,8 @@
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.collapsed b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.collapsed
new file mode 100644
index 0000000..0bd646e
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.collapsed
@@ -0,0 +1,4 @@
+ at M_read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.collapsed.truncated b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.discarded
new file mode 100644
index 0000000..263f4b8
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at M_read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.settings
new file mode 100644
index 0000000..7db3146
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.settings
@@ -0,0 +1,146 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3843883243
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 2
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	1	1
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	1	0	0	1
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	2	0	0	0	2
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.truncated b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.truncated
new file mode 100644
index 0000000..aabf094
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.sample_2.truncated
@@ -0,0 +1,8 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.settings b/validation/demultiplexing/single_indexed/se/collapse/your_output.settings
new file mode 100644
index 0000000..e17a1a5
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/collapse/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/se/collapse/your_output.unidentified b/validation/demultiplexing/single_indexed/se/collapse/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/barcodes.txt b/validation/demultiplexing/single_indexed/se/combined_output/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/info.json b/validation/demultiplexing/single_indexed/se/combined_output/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/input_1.fastq b/validation/demultiplexing/single_indexed/se/combined_output/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_1.settings
new file mode 100644
index 0000000..230f576
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_1.truncated b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_1.truncated
new file mode 100644
index 0000000..9db0bba
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_1.truncated
@@ -0,0 +1,16 @@
+ at read_s1_000/1
+N
++
+!
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_2.settings
new file mode 100644
index 0000000..2c64c8d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_2.truncated b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_2.truncated
new file mode 100644
index 0000000..2752e45
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/your_output.sample_2.truncated
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+N
++
+!
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/your_output.settings b/validation/demultiplexing/single_indexed/se/combined_output/your_output.settings
new file mode 100644
index 0000000..1d110ac
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/combined_output/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/se/combined_output/your_output.unidentified b/validation/demultiplexing/single_indexed/se/combined_output/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/defaults/barcodes.txt b/validation/demultiplexing/single_indexed/se/defaults/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/se/defaults/info.json b/validation/demultiplexing/single_indexed/se/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/se/defaults/input_1.fastq b/validation/demultiplexing/single_indexed/se/defaults/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.settings
new file mode 100644
index 0000000..230f576
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.truncated b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.settings
new file mode 100644
index 0000000..2c64c8d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.truncated b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.settings b/validation/demultiplexing/single_indexed/se/defaults/your_output.settings
new file mode 100644
index 0000000..1d110ac
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/defaults/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/se/defaults/your_output.unidentified b/validation/demultiplexing/single_indexed/se/defaults/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/barcodes.txt b/validation/demultiplexing/single_indexed/se/demux_only/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/info.json b/validation/demultiplexing/single_indexed/se/demux_only/info.json
new file mode 100644
index 0000000..75df252
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--demultiplex-only"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/input_1.fastq b/validation/demultiplexing/single_indexed/se/demux_only/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_1.fastq b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_1.fastq
new file mode 100644
index 0000000..5ae47f2
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_1.fastq
@@ -0,0 +1,16 @@
+ at read_s1_000/1
+AGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_1.settings
new file mode 100644
index 0000000..03310d4
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_1.settings
@@ -0,0 +1,17 @@
+AdapterRemoval ver. 2.2.0
+Demultiplexing of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_2.fastq b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_2.fastq
new file mode 100644
index 0000000..e5fe35a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_2.fastq
@@ -0,0 +1,16 @@
+ at read_s2_000/1
+AGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_2.settings
new file mode 100644
index 0000000..4c6bbf9
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/your_output.sample_2.settings
@@ -0,0 +1,17 @@
+AdapterRemoval ver. 2.2.0
+Demultiplexing of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/your_output.settings b/validation/demultiplexing/single_indexed/se/demux_only/your_output.settings
new file mode 100644
index 0000000..91af9ab
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/demux_only/your_output.settings
@@ -0,0 +1,26 @@
+AdapterRemoval ver. 2.2.0
+Demultiplexing of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/se/demux_only/your_output.unidentified.fastq b/validation/demultiplexing/single_indexed/se/demux_only/your_output.unidentified.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/barcodes.txt b/validation/demultiplexing/single_indexed/se/threads/one/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/info.json b/validation/demultiplexing/single_indexed/se/threads/one/info.json
new file mode 100644
index 0000000..ff5ec22
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "1"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/input_1.fastq b/validation/demultiplexing/single_indexed/se/threads/one/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.settings
new file mode 100644
index 0000000..230f576
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.truncated b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.settings
new file mode 100644
index 0000000..2c64c8d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.truncated b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.settings b/validation/demultiplexing/single_indexed/se/threads/one/your_output.settings
new file mode 100644
index 0000000..1d110ac
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/one/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/se/threads/one/your_output.unidentified b/validation/demultiplexing/single_indexed/se/threads/one/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/barcodes.txt b/validation/demultiplexing/single_indexed/se/threads/three/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/info.json b/validation/demultiplexing/single_indexed/se/threads/three/info.json
new file mode 100644
index 0000000..afe6307
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "3"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/input_1.fastq b/validation/demultiplexing/single_indexed/se/threads/three/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.settings
new file mode 100644
index 0000000..230f576
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.truncated b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.settings
new file mode 100644
index 0000000..2c64c8d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.truncated b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.settings b/validation/demultiplexing/single_indexed/se/threads/three/your_output.settings
new file mode 100644
index 0000000..1d110ac
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/three/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/se/threads/three/your_output.unidentified b/validation/demultiplexing/single_indexed/se/threads/three/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/barcodes.txt b/validation/demultiplexing/single_indexed/se/threads/two/barcodes.txt
new file mode 100644
index 0000000..0369895
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/barcodes.txt
@@ -0,0 +1,2 @@
+sample_1	GCGCCGGA	
+sample_2	CAGGACAT	
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/info.json b/validation/demultiplexing/single_indexed/se/threads/two/info.json
new file mode 100644
index 0000000..6623cb4
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "2"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/input_1.fastq b/validation/demultiplexing/single_indexed/se/threads/two/input_1.fastq
new file mode 100644
index 0000000..44b196a
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/input_1.fastq
@@ -0,0 +1,32 @@
+ at read_s1_000/1
+GCGCCGGAAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_000/1
+CAGGACATAGATCGGAAGAGCACACGTCTGAACTCCAGTCACCAACCAATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_075/1
+GCGCCGGAGACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTACAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_150/1
+CAGGACATTGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_200/1
+GCGCCGGATCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+GCGCCGGATGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+CAGGACATTCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCAAGATCGGAAGAGCACAC
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_200/1
+CAGGACATACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+HHHHHHHHGGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.discarded b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.discarded
new file mode 100644
index 0000000..6369c26
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.discarded
@@ -0,0 +1,4 @@
+ at read_s1_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.settings b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.settings
new file mode 100644
index 0000000..230f576
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1*	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: TCCGGCGC_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.truncated b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.truncated
new file mode 100644
index 0000000..d88dde7
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_1.truncated
@@ -0,0 +1,12 @@
+ at read_s1_075/1
+GACGGTCCCATTAATGCACTATCGGATTTACACATTTGCGTGAATAAATCGACAGATGAATCATTAAGCTCCTAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s1_200/1
+TCCATCAGGATCGTATTATACTAAGCTAGGACTGTGCAGTGCACAGAGAGGAGATGACCATGATCCTCGAGCAAGTTGCCGCAGGCTCGGGC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s1_150/1
+TGCACCGTAGCCATATGGGCTGTTGGGGACACAGGGCGTCGGCATTCCTTTATTACTGACGCCGCTAGAGTCTATGCAAGGTTATAACGTAT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.discarded b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.discarded
new file mode 100644
index 0000000..d19ac1c
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.discarded
@@ -0,0 +1,4 @@
+ at read_s2_000/1
+
++
+
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.settings b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.settings
new file mode 100644
index 0000000..2c64c8d
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2*	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: ATGTCCTG_AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 4
+Number of unaligned reads: 2
+Number of well aligned reads: 2
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 3
+Number of reads with adapters[1]: 2
+Number of retained reads: 3
+Number of retained nucleotides: 259
+Average length of retained reads: 86.3333
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	1	0	1
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	2	0	2
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.truncated b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.truncated
new file mode 100644
index 0000000..95406f0
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/your_output.sample_2.truncated
@@ -0,0 +1,12 @@
+ at read_s2_150/1
+TGATCTCATACATTTAAACAAAGTATGCCTTACGCATGCCTTAATGATACGTAACCTAGGCAACAGAGTCTTTACTTGTACCTGCTACACAC
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
+ at read_s2_075/1
+TCGCTAGCCCAAGATCACGCTTTCCGCGACGTTTTAGAGCGTGCATACCGGGGCGTTTCTCAGATAGGTATTTCA
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;
+ at read_s2_200/1
+ACCCTCACGCTTGCACGACGACAGCGGTCCCCTATAAATGTATGTTGACGCAGCGAGAGGCCAGGACCCGGGCGTGTTACCACTAAGACCCT
++
+GGGGGGGGGGGFFFFFFFFFEEEEEEEEEDDDDDDDCCCCCCCBBBBBBAAAAAA@@@@?????>>>====<<<;;:::9988766543210
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.settings b/validation/demultiplexing/single_indexed/se/threads/two/your_output.settings
new file mode 100644
index 0000000..1d110ac
--- /dev/null
+++ b/validation/demultiplexing/single_indexed/se/threads/two/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.2.0
+Trimming of single-indexed single-end reads
+
+
+[Demultiplexing]
+Maximum mismatches (total): 0
+
+
+[Demultiplexing samples]
+Name	Barcode_1	Barcode_2
+sample_1	GCGCCGGA	*
+sample_2	CAGGACAT	*
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3717807245
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Demultiplexing statistics]
+Name	Barcode_1	Barcode_2	Hits	Fraction
+unidentified	NA	NA	0	0.000
+ambiguous	NA	NA	0	0.000
+sample_1	GCGCCGGA	*	4	0.500
+sample_2	CAGGACAT	*	4	0.500
+*	*	*	8	1.000
diff --git a/validation/demultiplexing/single_indexed/se/threads/two/your_output.unidentified b/validation/demultiplexing/single_indexed/se/threads/two/your_output.unidentified
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/demux_without_barcodes/info.json b/validation/misc/bad_args/demux_without_barcodes/info.json
new file mode 100644
index 0000000..438311a
--- /dev/null
+++ b/validation/misc/bad_args/demux_without_barcodes/info.json
@@ -0,0 +1,7 @@
+{
+	"arguments": ["--demultiplex-only"],
+	"return_code": 1,
+	"stderr": [
+		"Cannot use --demultiplex-only without specifying a list of barcodes using --barcode-list!"
+	]
+}
diff --git a/validation/misc/bad_args/demux_without_barcodes/input_1.fastq b/validation/misc/bad_args/demux_without_barcodes/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/misc/bad_args/demux_without_barcodes/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/misc/bad_args/demux_without_barcodes/input_2.fastq b/validation/misc/bad_args/demux_without_barcodes/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/misc/bad_args/demux_without_barcodes/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/misc/bad_args/file2_only/info.json b/validation/misc/bad_args/file2_only/info.json
new file mode 100644
index 0000000..a64126c
--- /dev/null
+++ b/validation/misc/bad_args/file2_only/info.json
@@ -0,0 +1,7 @@
+{
+	"arguments": [],
+	"return_code": 1,
+	"stderr": [
+		"Error: --file2 specified, but --file1 is not specified."
+	]
+}
diff --git a/validation/misc/bad_args/file2_only/input_2.fastq b/validation/misc/bad_args/file2_only/input_2.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/ident_and_demux/info.json b/validation/misc/bad_args/ident_and_demux/info.json
new file mode 100644
index 0000000..eba000a
--- /dev/null
+++ b/validation/misc/bad_args/ident_and_demux/info.json
@@ -0,0 +1,7 @@
+{
+	"arguments": ["--identify-adapters", "--demultiplex-only"],
+	"return_code": 1,
+	"stderr": [
+		"Cannot use --identify-adapters and --demultiplex-only at the same time!"
+	]
+}
diff --git a/validation/misc/bad_args/ident_and_demux/input_1.fastq b/validation/misc/bad_args/ident_and_demux/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/misc/bad_args/ident_and_demux/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/misc/bad_args/ident_and_demux/input_2.fastq b/validation/misc/bad_args/ident_and_demux/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/misc/bad_args/ident_and_demux/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/misc/bad_args/se_interleaved/info.json b/validation/misc/bad_args/se_interleaved/info.json
new file mode 100644
index 0000000..2b227ae
--- /dev/null
+++ b/validation/misc/bad_args/se_interleaved/info.json
@@ -0,0 +1,7 @@
+{
+	"arguments": ["--interleaved"],
+	"return_code": 1,
+	"stderr": [
+		"Pair contains reads with mismatching names:"
+	]
+}
diff --git a/validation/misc/bad_args/se_interleaved/input_1.fastq b/validation/misc/bad_args/se_interleaved/input_1.fastq
new file mode 100644
index 0000000..70d1b9e
--- /dev/null
+++ b/validation/misc/bad_args/se_interleaved/input_1.fastq
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500_1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500_2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/misc/bad_args/se_interleaved/your_output.discarded b/validation/misc/bad_args/se_interleaved/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/se_interleaved/your_output.paired.truncated b/validation/misc/bad_args/se_interleaved/your_output.paired.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/se_interleaved/your_output.singleton.truncated b/validation/misc/bad_args/se_interleaved/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/se_interleaved_input/info.json b/validation/misc/bad_args/se_interleaved_input/info.json
new file mode 100644
index 0000000..25d569a
--- /dev/null
+++ b/validation/misc/bad_args/se_interleaved_input/info.json
@@ -0,0 +1,7 @@
+{
+	"arguments": ["--interleaved-input"],
+	"return_code": 1,
+	"stderr": [
+		"Pair contains reads with mismatching names:"
+	]
+}
diff --git a/validation/misc/bad_args/se_interleaved_input/input_1.fastq b/validation/misc/bad_args/se_interleaved_input/input_1.fastq
new file mode 100644
index 0000000..70d1b9e
--- /dev/null
+++ b/validation/misc/bad_args/se_interleaved_input/input_1.fastq
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500_1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500_2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/misc/bad_args/se_interleaved_input/your_output.discarded b/validation/misc/bad_args/se_interleaved_input/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/se_interleaved_input/your_output.pair1.truncated b/validation/misc/bad_args/se_interleaved_input/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/se_interleaved_input/your_output.pair2.truncated b/validation/misc/bad_args/se_interleaved_input/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/bad_args/se_interleaved_input/your_output.singleton.truncated b/validation/misc/bad_args/se_interleaved_input/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/pe/info.json b/validation/misc/empty/pe/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/misc/empty/pe/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/misc/empty/pe/input_1.fastq b/validation/misc/empty/pe/input_1.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/pe/input_2.fastq b/validation/misc/empty/pe/input_2.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/pe/your_output.discarded b/validation/misc/empty/pe/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/pe/your_output.pair1.truncated b/validation/misc/empty/pe/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/pe/your_output.pair2.truncated b/validation/misc/empty/pe/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/pe/your_output.settings b/validation/misc/empty/pe/your_output.settings
new file mode 100644
index 0000000..a94d677
--- /dev/null
+++ b/validation/misc/empty/pe/your_output.settings
@@ -0,0 +1,42 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 220897227
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 0
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
diff --git a/validation/misc/empty/pe/your_output.singleton.truncated b/validation/misc/empty/pe/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/se/info.json b/validation/misc/empty/se/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/misc/empty/se/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/misc/empty/se/input_1.fastq b/validation/misc/empty/se/input_1.fastq
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/se/your_output.discarded b/validation/misc/empty/se/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/empty/se/your_output.settings b/validation/misc/empty/se/your_output.settings
new file mode 100644
index 0000000..4c509a8
--- /dev/null
+++ b/validation/misc/empty/se/your_output.settings
@@ -0,0 +1,41 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2121675954
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 0
+Number of unaligned reads: 0
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
diff --git a/validation/misc/empty/se/your_output.truncated b/validation/misc/empty/se/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/misc/no_arguments/info.json b/validation/misc/no_arguments/info.json
new file mode 100644
index 0000000..b8d7f70
--- /dev/null
+++ b/validation/misc/no_arguments/info.json
@@ -0,0 +1,7 @@
+{
+	"arguments": [],
+	"return_code": 1,
+	"stderr": [
+		"This program searches for"
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/info.json b/validation/pe/excl_adapter/non_overlapping/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/collapse/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/collapse/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/your_output.collapsed b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.collapsed
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/your_output.collapsed.truncated b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/your_output.settings b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.settings
new file mode 100644
index 0000000..cb21317
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.settings
@@ -0,0 +1,145 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1203911406
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	0	0	0	0
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	0	0	0	0	0	0	0
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	1	1	0	0	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/collapse/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/collapse/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/info.json
new file mode 100644
index 0000000..c795b6f
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.settings
new file mode 100644
index 0000000..c28efbc
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/collapse/your_output.settings
@@ -0,0 +1,145 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2579970730
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	0	0	0	0
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	0	0	0	0	0	0	0
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	1	1	0	0	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/info.json
new file mode 100644
index 0000000..aca744a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/your_output.paired.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/your_output.paired.truncated
new file mode 100644
index 0000000..4867a47
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/your_output.settings
new file mode 100644
index 0000000..c28efbc
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/collapse/your_output.settings
@@ -0,0 +1,145 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2579970730
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	0	0	0	0
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	0	0	0	0	0	0	0
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	1	1	0	0	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/info.json
new file mode 100644
index 0000000..be89428
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/your_output.paired.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/your_output.paired.truncated
new file mode 100644
index 0000000..4867a47
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/your_output.settings
new file mode 100644
index 0000000..d052a2f
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2644350168
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/info.json
new file mode 100644
index 0000000..ec97e5c
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/input_2.fastq
new file mode 100644
index 0000000..95f7b87
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/your_output.paired.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/your_output.paired.truncated
new file mode 100644
index 0000000..013e65d
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/your_output.settings
new file mode 100644
index 0000000..58afc9a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2806715714
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 199
+Average length of retained reads: 199
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/info.json
new file mode 100644
index 0000000..ec97e5c
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/input_1.fastq
new file mode 100644
index 0000000..8e2b471
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/your_output.paired.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/your_output.paired.truncated
new file mode 100644
index 0000000..51b2ffb
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/your_output.settings
new file mode 100644
index 0000000..dd8ff18
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3115920885
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/info.json
new file mode 100644
index 0000000..ec97e5c
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/input_1.fastq
new file mode 100644
index 0000000..8e2b471
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/input_2.fastq
new file mode 100644
index 0000000..95f7b87
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/your_output.paired.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/your_output.paired.truncated
new file mode 100644
index 0000000..3a25217
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/your_output.settings
new file mode 100644
index 0000000..8b0386c
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/interleaved/keep_neither/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2416745148
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	2	2
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.pair1.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.pair2.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.settings
new file mode 100644
index 0000000..d052a2f
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2644350168
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/info.json
new file mode 100644
index 0000000..920c5c2
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/input_2.fastq
new file mode 100644
index 0000000..95f7b87
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..afd1afd
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.settings
new file mode 100644
index 0000000..58afc9a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2806715714
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 199
+Average length of retained reads: 199
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/info.json
new file mode 100644
index 0000000..920c5c2
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/input_1.fastq
new file mode 100644
index 0000000..8e2b471
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..f37ed49
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.settings
new file mode 100644
index 0000000..dd8ff18
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3115920885
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/info.json b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/info.json
new file mode 100644
index 0000000..920c5c2
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/input_1.fastq
new file mode 100644
index 0000000..8e2b471
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/input_2.fastq
new file mode 100644
index 0000000..95f7b87
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.pair1.truncated
new file mode 100644
index 0000000..f37ed49
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.pair2.truncated
new file mode 100644
index 0000000..afd1afd
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.settings b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.settings
new file mode 100644
index 0000000..113b4cb
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/combined_output/keep_neither/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2543753157
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	2	2
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/info.json b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/input_1.fastq
new file mode 100644
index 0000000..b05c582
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/input_2.fastq
new file mode 100644
index 0000000..c64d08d
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.pair1.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.pair2.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.settings b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.settings
new file mode 100644
index 0000000..755f40a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 981230521
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/crlf_newlines/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/info.json b/validation/pe/excl_adapter/non_overlapping/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/defaults/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/defaults/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/defaults/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.pair1.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.pair2.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/your_output.settings b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.settings
new file mode 100644
index 0000000..755f40a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 981230521
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/defaults/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/defaults/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/both/info.json b/validation/pe/excl_adapter/non_overlapping/interleaved/both/info.json
new file mode 100644
index 0000000..221d99b
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/both/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/interleaved/both/input_1.fastq
new file mode 100644
index 0000000..4867a47
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/both/input_1.fastq
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.paired.truncated b/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.paired.truncated
new file mode 100644
index 0000000..4867a47
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.settings b/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.settings
new file mode 100644
index 0000000..b56da8a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 108917414
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/interleaved/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/output/info.json b/validation/pe/excl_adapter/non_overlapping/interleaved/output/info.json
new file mode 100644
index 0000000..e406a18
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/output/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/interleaved/output/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/output/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/output/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/interleaved/output/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/output/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.paired.truncated b/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.paired.truncated
new file mode 100644
index 0000000..4867a47
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.settings b/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.settings
new file mode 100644
index 0000000..b56da8a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 108917414
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/interleaved/output/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/info.json b/validation/pe/excl_adapter/non_overlapping/maxlength/both/info.json
new file mode 100644
index 0000000..eb741f4
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "99", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/maxlength/both/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/maxlength/both/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.discarded
new file mode 100644
index 0000000..4867a47
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.discarded
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.settings b/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.settings
new file mode 100644
index 0000000..63f8cd8
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2294078498
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 99
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	0	0	2	2
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/info.json b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/info.json
new file mode 100644
index 0000000..eb741f4
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "99", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/input_2.fastq
new file mode 100644
index 0000000..0afb2b8
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAA
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.discarded
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.settings b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.settings
new file mode 100644
index 0000000..ea4eb2c
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2378184469
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 99
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	1	0	1
+100	0	0	0	1	1
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.singleton.truncated
new file mode 100644
index 0000000..0afb2b8
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate1/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAA
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/info.json b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/info.json
new file mode 100644
index 0000000..eb741f4
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "99", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/input_1.fastq
new file mode 100644
index 0000000..eca9533
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.discarded
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.settings b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.settings
new file mode 100644
index 0000000..0ff1c5a
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2394981856
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 99
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 199
+Average length of retained reads: 199
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	1	0	1
+100	0	0	0	1	1
diff --git a/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.singleton.truncated
new file mode 100644
index 0000000..eca9533
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/maxlength/mate2/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/info.json b/validation/pe/excl_adapter/non_overlapping/minlength/both/info.json
new file mode 100644
index 0000000..55f500d
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "50", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/minlength/both/input_1.fastq
new file mode 100644
index 0000000..4f65426
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/minlength/both/input_2.fastq
new file mode 100644
index 0000000..5d5b6bc
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.discarded
new file mode 100644
index 0000000..31ad9c5
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.discarded
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEE
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTAC
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEF
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.settings b/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.settings
new file mode 100644
index 0000000..b915102
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.settings
@@ -0,0 +1,86 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2027572855
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	1	1
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	1	1
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/info.json b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/info.json
new file mode 100644
index 0000000..55f500d
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "50", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/input_1.fastq
new file mode 100644
index 0000000..4f65426
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.discarded
new file mode 100644
index 0000000..e7dda16
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEE
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.settings b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.settings
new file mode 100644
index 0000000..0710cde
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2010319782
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	1	1
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.singleton.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate1/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/info.json b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/info.json
new file mode 100644
index 0000000..55f500d
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "50", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/input_2.fastq
new file mode 100644
index 0000000..5d5b6bc
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.discarded
new file mode 100644
index 0000000..9e3f6b3
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTAC
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEF
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.settings b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.settings
new file mode 100644
index 0000000..00fad78
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2024298981
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 136
+Average length of retained reads: 136
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	1	1
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.singleton.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/minlength/mate2/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/info.json b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.pair1.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.pair2.truncated
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.settings b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.settings
new file mode 100644
index 0000000..f178715
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 981230521
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/trimns/excl_ns/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/info.json b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/input_1.fastq
new file mode 100644
index 0000000..62ac28f
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCATN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/input_2.fastq
new file mode 100644
index 0000000..f3e7c04
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGNNN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.pair1.truncated
new file mode 100644
index 0000000..fd69e5f
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCAT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.pair2.truncated
new file mode 100644
index 0000000..63e28b4
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.settings b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.settings
new file mode 100644
index 0000000..1ff9d66
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 981230521
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 196
+Average length of retained reads: 98
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	1	0	0	1
+98	0	0	0	0	0
+99	1	0	0	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/trimns/incl_ns/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/info.json b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/info.json
new file mode 100644
index 0000000..853a8b6
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/input_2.fastq
new file mode 100644
index 0000000..24c4b00
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.pair1.truncated
new file mode 100644
index 0000000..eca9533
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.pair2.truncated
new file mode 100644
index 0000000..0afb2b8
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAA
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.settings b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.settings
new file mode 100644
index 0000000..bff7f13
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3198577441
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 198
+Average length of retained reads: 99
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/trimqualities/default/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/info.json b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/info.json
new file mode 100644
index 0000000..49eb431
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities", "--minquality", "31"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/input_1.fastq b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/input_2.fastq b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/input_2.fastq
new file mode 100644
index 0000000..1ee8e60
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGCCTAGAATTTTTCGTTCGGTAAGCATTAGGAAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@BB?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.discarded b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.pair1.truncated b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.pair1.truncated
new file mode 100644
index 0000000..9e0da0f
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTAT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.pair2.truncated b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.pair2.truncated
new file mode 100644
index 0000000..96ea0eb
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+GTCAGCGAAGGGTTGTAGTAGCCCGTAGGGGCCTACAACGTTGGGGCCTTTGCGTAGTTGTATATAGC
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@BB
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.settings b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.settings
new file mode 100644
index 0000000..cda6868
--- /dev/null
+++ b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.settings
@@ -0,0 +1,111 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3418474566
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 31: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 1
+Number of well aligned read pairs: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 135
+Average length of retained reads: 67.5
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	1	0	0	0	1
+68	0	1	0	0	1
diff --git a/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.singleton.truncated b/validation/pe/excl_adapter/non_overlapping/trimqualities/minq31/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/collapse/info.json b/validation/pe/excl_adapter/overlapping/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/collapse/input_1.fastq b/validation/pe/excl_adapter/overlapping/collapse/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/collapse/input_2.fastq b/validation/pe/excl_adapter/overlapping/collapse/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/collapse/your_output.collapsed b/validation/pe/excl_adapter/overlapping/collapse/your_output.collapsed
new file mode 100644
index 0000000..e834df6
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/collapse/your_output.collapsed
@@ -0,0 +1,4 @@
+ at M_ATAGCCSeq_1_2959_500 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCACTACAAAAGAAAAACCCGGCTAGTGGTGGCAGCGATCGACAATCCAGATG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJCEBCEDECDEEEFFFFEFDGFIFFFHIIIGIHHGJGIGJJJIHJHJIIJHJ
diff --git a/validation/pe/excl_adapter/overlapping/collapse/your_output.collapsed.truncated b/validation/pe/excl_adapter/overlapping/collapse/your_output.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/collapse/your_output.discarded b/validation/pe/excl_adapter/overlapping/collapse/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/collapse/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/collapse/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/collapse/your_output.settings b/validation/pe/excl_adapter/overlapping/collapse/your_output.settings
new file mode 100644
index 0000000..17fda0f
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/collapse/your_output.settings
@@ -0,0 +1,195 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 664708214
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 150
+Average length of retained reads: 150
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	0	0	0	0
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	0	0	0	0	0	0	0
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	0	0	0	0	0	0	0
+101	0	0	0	0	0	0	0
+102	0	0	0	0	0	0	0
+103	0	0	0	0	0	0	0
+104	0	0	0	0	0	0	0
+105	0	0	0	0	0	0	0
+106	0	0	0	0	0	0	0
+107	0	0	0	0	0	0	0
+108	0	0	0	0	0	0	0
+109	0	0	0	0	0	0	0
+110	0	0	0	0	0	0	0
+111	0	0	0	0	0	0	0
+112	0	0	0	0	0	0	0
+113	0	0	0	0	0	0	0
+114	0	0	0	0	0	0	0
+115	0	0	0	0	0	0	0
+116	0	0	0	0	0	0	0
+117	0	0	0	0	0	0	0
+118	0	0	0	0	0	0	0
+119	0	0	0	0	0	0	0
+120	0	0	0	0	0	0	0
+121	0	0	0	0	0	0	0
+122	0	0	0	0	0	0	0
+123	0	0	0	0	0	0	0
+124	0	0	0	0	0	0	0
+125	0	0	0	0	0	0	0
+126	0	0	0	0	0	0	0
+127	0	0	0	0	0	0	0
+128	0	0	0	0	0	0	0
+129	0	0	0	0	0	0	0
+130	0	0	0	0	0	0	0
+131	0	0	0	0	0	0	0
+132	0	0	0	0	0	0	0
+133	0	0	0	0	0	0	0
+134	0	0	0	0	0	0	0
+135	0	0	0	0	0	0	0
+136	0	0	0	0	0	0	0
+137	0	0	0	0	0	0	0
+138	0	0	0	0	0	0	0
+139	0	0	0	0	0	0	0
+140	0	0	0	0	0	0	0
+141	0	0	0	0	0	0	0
+142	0	0	0	0	0	0	0
+143	0	0	0	0	0	0	0
+144	0	0	0	0	0	0	0
+145	0	0	0	0	0	0	0
+146	0	0	0	0	0	0	0
+147	0	0	0	0	0	0	0
+148	0	0	0	0	0	0	0
+149	0	0	0	0	0	0	0
+150	0	0	0	1	0	0	1
diff --git a/validation/pe/excl_adapter/overlapping/collapse/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/collapse/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/collapse/info.json b/validation/pe/excl_adapter/overlapping/combined_output/collapse/info.json
new file mode 100644
index 0000000..c795b6f
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/collapse/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/collapse/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/collapse/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/collapse/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..94356ab
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at M_ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCACTACAAAAGAAAAACCCGGCTAGTGGTGGCAGCGATCGACAATCCAGATG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJCEBCEDECDEEEFFFFEFDGFIFFFHIIIGIHHGJGIGJJJIHJHJIIJHJ
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..f38f572
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at M_ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.settings
new file mode 100644
index 0000000..8b38596
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/collapse/your_output.settings
@@ -0,0 +1,195 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1520646958
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 150
+Average length of retained reads: 150
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	0	0	0	0
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	0	0	0	0	0	0	0
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	0	0	0	0	0	0	0
+101	0	0	0	0	0	0	0
+102	0	0	0	0	0	0	0
+103	0	0	0	0	0	0	0
+104	0	0	0	0	0	0	0
+105	0	0	0	0	0	0	0
+106	0	0	0	0	0	0	0
+107	0	0	0	0	0	0	0
+108	0	0	0	0	0	0	0
+109	0	0	0	0	0	0	0
+110	0	0	0	0	0	0	0
+111	0	0	0	0	0	0	0
+112	0	0	0	0	0	0	0
+113	0	0	0	0	0	0	0
+114	0	0	0	0	0	0	0
+115	0	0	0	0	0	0	0
+116	0	0	0	0	0	0	0
+117	0	0	0	0	0	0	0
+118	0	0	0	0	0	0	0
+119	0	0	0	0	0	0	0
+120	0	0	0	0	0	0	0
+121	0	0	0	0	0	0	0
+122	0	0	0	0	0	0	0
+123	0	0	0	0	0	0	0
+124	0	0	0	0	0	0	0
+125	0	0	0	0	0	0	0
+126	0	0	0	0	0	0	0
+127	0	0	0	0	0	0	0
+128	0	0	0	0	0	0	0
+129	0	0	0	0	0	0	0
+130	0	0	0	0	0	0	0
+131	0	0	0	0	0	0	0
+132	0	0	0	0	0	0	0
+133	0	0	0	0	0	0	0
+134	0	0	0	0	0	0	0
+135	0	0	0	0	0	0	0
+136	0	0	0	0	0	0	0
+137	0	0	0	0	0	0	0
+138	0	0	0	0	0	0	0
+139	0	0	0	0	0	0	0
+140	0	0	0	0	0	0	0
+141	0	0	0	0	0	0	0
+142	0	0	0	0	0	0	0
+143	0	0	0	0	0	0	0
+144	0	0	0	0	0	0	0
+145	0	0	0	0	0	0	0
+146	0	0	0	0	0	0	0
+147	0	0	0	0	0	0	0
+148	0	0	0	0	0	0	0
+149	0	0	0	0	0	0	0
+150	0	0	0	1	0	0	1
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/info.json b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/info.json
new file mode 100644
index 0000000..aca744a
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/your_output.paired.truncated b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/your_output.paired.truncated
new file mode 100644
index 0000000..9ae2265
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at M_ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCACTACAAAAGAAAAACCCGGCTAGTGGTGGCAGCGATCGACAATCCAGATG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJCEBCEDECDEEEFFFFEFDGFIFFFHIIIGIHHGJGIGJJJIHJHJIIJHJ
+ at M_ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/your_output.settings
new file mode 100644
index 0000000..8b38596
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/collapse/your_output.settings
@@ -0,0 +1,195 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1520646958
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 150
+Average length of retained reads: 150
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	0	0	0	0
+51	0	0	0	0	0	0	0
+52	0	0	0	0	0	0	0
+53	0	0	0	0	0	0	0
+54	0	0	0	0	0	0	0
+55	0	0	0	0	0	0	0
+56	0	0	0	0	0	0	0
+57	0	0	0	0	0	0	0
+58	0	0	0	0	0	0	0
+59	0	0	0	0	0	0	0
+60	0	0	0	0	0	0	0
+61	0	0	0	0	0	0	0
+62	0	0	0	0	0	0	0
+63	0	0	0	0	0	0	0
+64	0	0	0	0	0	0	0
+65	0	0	0	0	0	0	0
+66	0	0	0	0	0	0	0
+67	0	0	0	0	0	0	0
+68	0	0	0	0	0	0	0
+69	0	0	0	0	0	0	0
+70	0	0	0	0	0	0	0
+71	0	0	0	0	0	0	0
+72	0	0	0	0	0	0	0
+73	0	0	0	0	0	0	0
+74	0	0	0	0	0	0	0
+75	0	0	0	0	0	0	0
+76	0	0	0	0	0	0	0
+77	0	0	0	0	0	0	0
+78	0	0	0	0	0	0	0
+79	0	0	0	0	0	0	0
+80	0	0	0	0	0	0	0
+81	0	0	0	0	0	0	0
+82	0	0	0	0	0	0	0
+83	0	0	0	0	0	0	0
+84	0	0	0	0	0	0	0
+85	0	0	0	0	0	0	0
+86	0	0	0	0	0	0	0
+87	0	0	0	0	0	0	0
+88	0	0	0	0	0	0	0
+89	0	0	0	0	0	0	0
+90	0	0	0	0	0	0	0
+91	0	0	0	0	0	0	0
+92	0	0	0	0	0	0	0
+93	0	0	0	0	0	0	0
+94	0	0	0	0	0	0	0
+95	0	0	0	0	0	0	0
+96	0	0	0	0	0	0	0
+97	0	0	0	0	0	0	0
+98	0	0	0	0	0	0	0
+99	0	0	0	0	0	0	0
+100	0	0	0	0	0	0	0
+101	0	0	0	0	0	0	0
+102	0	0	0	0	0	0	0
+103	0	0	0	0	0	0	0
+104	0	0	0	0	0	0	0
+105	0	0	0	0	0	0	0
+106	0	0	0	0	0	0	0
+107	0	0	0	0	0	0	0
+108	0	0	0	0	0	0	0
+109	0	0	0	0	0	0	0
+110	0	0	0	0	0	0	0
+111	0	0	0	0	0	0	0
+112	0	0	0	0	0	0	0
+113	0	0	0	0	0	0	0
+114	0	0	0	0	0	0	0
+115	0	0	0	0	0	0	0
+116	0	0	0	0	0	0	0
+117	0	0	0	0	0	0	0
+118	0	0	0	0	0	0	0
+119	0	0	0	0	0	0	0
+120	0	0	0	0	0	0	0
+121	0	0	0	0	0	0	0
+122	0	0	0	0	0	0	0
+123	0	0	0	0	0	0	0
+124	0	0	0	0	0	0	0
+125	0	0	0	0	0	0	0
+126	0	0	0	0	0	0	0
+127	0	0	0	0	0	0	0
+128	0	0	0	0	0	0	0
+129	0	0	0	0	0	0	0
+130	0	0	0	0	0	0	0
+131	0	0	0	0	0	0	0
+132	0	0	0	0	0	0	0
+133	0	0	0	0	0	0	0
+134	0	0	0	0	0	0	0
+135	0	0	0	0	0	0	0
+136	0	0	0	0	0	0	0
+137	0	0	0	0	0	0	0
+138	0	0	0	0	0	0	0
+139	0	0	0	0	0	0	0
+140	0	0	0	0	0	0	0
+141	0	0	0	0	0	0	0
+142	0	0	0	0	0	0	0
+143	0	0	0	0	0	0	0
+144	0	0	0	0	0	0	0
+145	0	0	0	0	0	0	0
+146	0	0	0	0	0	0	0
+147	0	0	0	0	0	0	0
+148	0	0	0	0	0	0	0
+149	0	0	0	0	0	0	0
+150	0	0	0	1	0	0	1
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/info.json b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/info.json
new file mode 100644
index 0000000..be89428
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/your_output.paired.truncated b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/your_output.paired.truncated
new file mode 100644
index 0000000..63f8958
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/your_output.settings
new file mode 100644
index 0000000..07a597f
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1638235704
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/info.json b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/info.json
new file mode 100644
index 0000000..ec97e5c
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/input_2.fastq
new file mode 100644
index 0000000..e596d4e
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/your_output.paired.truncated b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/your_output.paired.truncated
new file mode 100644
index 0000000..a1593cd
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/your_output.settings
new file mode 100644
index 0000000..de8e8f5
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2898275634
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 199
+Average length of retained reads: 199
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/info.json b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/info.json
new file mode 100644
index 0000000..ec97e5c
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/input_1.fastq
new file mode 100644
index 0000000..2c9cf43
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/your_output.paired.truncated b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/your_output.paired.truncated
new file mode 100644
index 0000000..0939f6a
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/your_output.settings
new file mode 100644
index 0000000..9dbb88e
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1902493234
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/info.json b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/info.json
new file mode 100644
index 0000000..ec97e5c
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/input_1.fastq
new file mode 100644
index 0000000..2c9cf43
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/input_2.fastq
new file mode 100644
index 0000000..e596d4e
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/your_output.paired.truncated b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/your_output.paired.truncated
new file mode 100644
index 0000000..3a25217
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/your_output.settings
new file mode 100644
index 0000000..ee3bd3b
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/interleaved/keep_neither/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4016683054
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	2	2
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_both/info.json b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_both/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_both/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.pair1.truncated
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.pair2.truncated
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.settings
new file mode 100644
index 0000000..07a597f
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1638235704
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/info.json b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/info.json
new file mode 100644
index 0000000..920c5c2
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/input_2.fastq
new file mode 100644
index 0000000..e596d4e
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..afd1afd
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.settings
new file mode 100644
index 0000000..de8e8f5
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2898275634
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 199
+Average length of retained reads: 199
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/info.json b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/info.json
new file mode 100644
index 0000000..920c5c2
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/input_1.fastq
new file mode 100644
index 0000000..2c9cf43
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..f37ed49
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.settings
new file mode 100644
index 0000000..9dbb88e
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1902493234
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	1	1
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/info.json b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/info.json
new file mode 100644
index 0000000..920c5c2
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "100", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/input_1.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/input_1.fastq
new file mode 100644
index 0000000..2c9cf43
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/input_2.fastq b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/input_2.fastq
new file mode 100644
index 0000000..e596d4e
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.pair1.truncated
new file mode 100644
index 0000000..f37ed49
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.pair2.truncated
new file mode 100644
index 0000000..afd1afd
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+N
++
+!
diff --git a/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.settings b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.settings
new file mode 100644
index 0000000..ee3bd3b
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/combined_output/keep_neither/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4016683054
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 100
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	2	2
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/info.json b/validation/pe/excl_adapter/overlapping/crlf_newlines/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/crlf_newlines/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/input_1.fastq b/validation/pe/excl_adapter/overlapping/crlf_newlines/input_1.fastq
new file mode 100644
index 0000000..3eee399
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/crlf_newlines/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/input_2.fastq b/validation/pe/excl_adapter/overlapping/crlf_newlines/input_2.fastq
new file mode 100644
index 0000000..db00dd1
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/crlf_newlines/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.discarded b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.pair1.truncated
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.pair2.truncated
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.settings b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.settings
new file mode 100644
index 0000000..3f5294d
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 11384421
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/crlf_newlines/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/defaults/info.json b/validation/pe/excl_adapter/overlapping/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/defaults/input_1.fastq b/validation/pe/excl_adapter/overlapping/defaults/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/defaults/input_2.fastq b/validation/pe/excl_adapter/overlapping/defaults/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/defaults/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/defaults/your_output.discarded b/validation/pe/excl_adapter/overlapping/defaults/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/defaults/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/defaults/your_output.pair1.truncated
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/defaults/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/defaults/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/defaults/your_output.pair2.truncated
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/defaults/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/defaults/your_output.settings b/validation/pe/excl_adapter/overlapping/defaults/your_output.settings
new file mode 100644
index 0000000..3f5294d
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/defaults/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 11384421
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/defaults/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/defaults/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/both/info.json b/validation/pe/excl_adapter/overlapping/interleaved/both/info.json
new file mode 100644
index 0000000..221d99b
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/both/input_1.fastq b/validation/pe/excl_adapter/overlapping/interleaved/both/input_1.fastq
new file mode 100644
index 0000000..63f8958
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/both/input_1.fastq
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.discarded b/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.paired.truncated b/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.paired.truncated
new file mode 100644
index 0000000..63f8958
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.settings b/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.settings
new file mode 100644
index 0000000..33ec741
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of interleaved paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 36753401
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/interleaved/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/output/info.json b/validation/pe/excl_adapter/overlapping/interleaved/output/info.json
new file mode 100644
index 0000000..e406a18
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/output/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/output/input_1.fastq b/validation/pe/excl_adapter/overlapping/interleaved/output/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/output/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/output/input_2.fastq b/validation/pe/excl_adapter/overlapping/interleaved/output/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/output/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.discarded b/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.paired.truncated b/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.paired.truncated
new file mode 100644
index 0000000..63f8958
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.settings b/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.settings
new file mode 100644
index 0000000..57a084c
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 32142888
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/interleaved/output/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/info.json b/validation/pe/excl_adapter/overlapping/maxlength/both/info.json
new file mode 100644
index 0000000..eb741f4
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "99", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/input_1.fastq b/validation/pe/excl_adapter/overlapping/maxlength/both/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/input_2.fastq b/validation/pe/excl_adapter/overlapping/maxlength/both/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.discarded b/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.discarded
new file mode 100644
index 0000000..63f8958
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.discarded
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.settings b/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.settings
new file mode 100644
index 0000000..0567f4c
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2714819290
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 99
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	0	0	2	2
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/maxlength/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/info.json b/validation/pe/excl_adapter/overlapping/maxlength/mate1/info.json
new file mode 100644
index 0000000..eb741f4
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "99", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/input_1.fastq b/validation/pe/excl_adapter/overlapping/maxlength/mate1/input_1.fastq
new file mode 100644
index 0000000..2c9cf43
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/input_2.fastq b/validation/pe/excl_adapter/overlapping/maxlength/mate1/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.discarded b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.discarded
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.settings b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.settings
new file mode 100644
index 0000000..f849abb
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3802049955
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 99
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 199
+Average length of retained reads: 199
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	1	0	1
+100	0	0	0	1	1
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.singleton.truncated
new file mode 100644
index 0000000..c98f4b0
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate1/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACC
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/info.json b/validation/pe/excl_adapter/overlapping/maxlength/mate2/info.json
new file mode 100644
index 0000000..eb741f4
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "99", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/input_1.fastq b/validation/pe/excl_adapter/overlapping/maxlength/mate2/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/input_2.fastq b/validation/pe/excl_adapter/overlapping/maxlength/mate2/input_2.fastq
new file mode 100644
index 0000000..e596d4e
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.discarded b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.discarded
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.settings b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.settings
new file mode 100644
index 0000000..fac7a85
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3867243128
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 99
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	1	0	1
+100	0	0	0	1	1
diff --git a/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.singleton.truncated
new file mode 100644
index 0000000..50b1bb4
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/maxlength/mate2/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/info.json b/validation/pe/excl_adapter/overlapping/minlength/both/info.json
new file mode 100644
index 0000000..57cd9f1
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "90", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/input_1.fastq b/validation/pe/excl_adapter/overlapping/minlength/both/input_1.fastq
new file mode 100644
index 0000000..ccf28b4
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/both/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACNNNNNNNNNNN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/input_2.fastq b/validation/pe/excl_adapter/overlapping/minlength/both/input_2.fastq
new file mode 100644
index 0000000..c1da687
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/both/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAANNNNNNNNNNNN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/your_output.discarded b/validation/pe/excl_adapter/overlapping/minlength/both/your_output.discarded
new file mode 100644
index 0000000..915009d
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/both/your_output.discarded
@@ -0,0 +1,8 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTAC
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAA
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:98
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/minlength/both/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/minlength/both/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/your_output.settings b/validation/pe/excl_adapter/overlapping/minlength/both/your_output.settings
new file mode 100644
index 0000000..6696d13
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/both/your_output.settings
@@ -0,0 +1,132 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4291984462
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 90
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	1	1
+89	0	0	0	1	1
diff --git a/validation/pe/excl_adapter/overlapping/minlength/both/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/minlength/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/info.json b/validation/pe/excl_adapter/overlapping/minlength/mate1/info.json
new file mode 100644
index 0000000..57cd9f1
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "90", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/input_1.fastq b/validation/pe/excl_adapter/overlapping/minlength/mate1/input_1.fastq
new file mode 100644
index 0000000..ccf28b4
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACNNNNNNNNNNN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/input_2.fastq b/validation/pe/excl_adapter/overlapping/minlength/mate1/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.discarded b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.discarded
new file mode 100644
index 0000000..f071d55
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTAC
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.settings b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.settings
new file mode 100644
index 0000000..791ef83
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4294353461
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 90
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	1	1
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.singleton.truncated
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate1/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/info.json b/validation/pe/excl_adapter/overlapping/minlength/mate2/info.json
new file mode 100644
index 0000000..57cd9f1
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "90", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/input_1.fastq b/validation/pe/excl_adapter/overlapping/minlength/mate2/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/input_2.fastq b/validation/pe/excl_adapter/overlapping/minlength/mate2/input_2.fastq
new file mode 100644
index 0000000..c1da687
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAANNNNNNNNNNNN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.discarded b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.discarded
new file mode 100644
index 0000000..f256322
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAA
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:98
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.settings b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.settings
new file mode 100644
index 0000000..c879185
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1485681
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 90
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 188
+Average length of retained reads: 188
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	1	1
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	0	0	1	0	1
diff --git a/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.singleton.truncated
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/minlength/mate2/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/info.json b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/input_1.fastq b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/input_2.fastq b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.discarded b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.pair1.truncated
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.pair2.truncated
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.settings b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.settings
new file mode 100644
index 0000000..100a659
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.settings
@@ -0,0 +1,143 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 242897042
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 200
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/trimns/excl_ns/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/info.json b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/input_1.fastq b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/input_1.fastq
new file mode 100644
index 0000000..37212e7
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGNNNNNNNNNNNNNNN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/input_2.fastq b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/input_2.fastq
new file mode 100644
index 0000000..e3a2e10
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCNNNNNNN
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.discarded b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.pair1.truncated
new file mode 100644
index 0000000..1deb183
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.pair2.truncated
new file mode 100644
index 0000000..3aac364
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGC
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.settings b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.settings
new file mode 100644
index 0000000..7a83e2d
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.settings
@@ -0,0 +1,136 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 236123159
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 178
+Average length of retained reads: 89
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	1	0	0	0	1
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	1	0	0	1
diff --git a/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/trimns/incl_ns/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/info.json b/validation/pe/excl_adapter/overlapping/trimqualities/default/info.json
new file mode 100644
index 0000000..853a8b6
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/default/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/input_1.fastq b/validation/pe/excl_adapter/overlapping/trimqualities/default/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/default/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/input_2.fastq b/validation/pe/excl_adapter/overlapping/trimqualities/default/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/default/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.discarded b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.pair1.truncated
new file mode 100644
index 0000000..c98f4b0
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACC
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.pair2.truncated
new file mode 100644
index 0000000..50b1bb4
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGAT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.settings b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.settings
new file mode 100644
index 0000000..94a0c42
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 727785539
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 198
+Average length of retained reads: 99
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/trimqualities/default/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/info.json b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/info.json
new file mode 100644
index 0000000..49eb431
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities", "--minquality", "31"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/input_1.fastq b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/input_1.fastq
new file mode 100644
index 0000000..b012dfe
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATTCCGGCCTCATATTGGAAGCTACACGCTAGACCA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/input_2.fastq b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/input_2.fastq
new file mode 100644
index 0000000..e05e053
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/input_2.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCTTCCAATATGAGGCCGGAATAACAAGCGTCGATG
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B@?@>>?@@=>><=;:9:9:9866852220.*&!
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.discarded b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.pair1.truncated b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.pair1.truncated
new file mode 100644
index 0000000..d5eab30
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TATCGAGCAACTCACCAAGTTCCTTTGATCCGAGGAACTACCCTTACGCCCATCGACGCTTGTTATT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.pair2.truncated b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.pair2.truncated
new file mode 100644
index 0000000..f149a64
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/2 data meta
+CATCTGGATTGTCGATCGCTGCCACCACTAGCCGGGTTTTTCTTTTGTAGTGGTCTAGCGTGTAGCT
++
+JHJIIJHJHIJJJGIGJGHHIGIIIHFFFIFGDFEFFFFEEEDCEDECBECCEDCAABBBBA at AA@B
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.settings b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.settings
new file mode 100644
index 0000000..986913d
--- /dev/null
+++ b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.settings
@@ -0,0 +1,110 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 737094053
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 31: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 2
+Number of retained nucleotides: 134
+Average length of retained reads: 67
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	1	1	0	0	2
diff --git a/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.singleton.truncated b/validation/pe/excl_adapter/overlapping/trimqualities/minq31/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse/info.json b/validation/pe/incl_adapter/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/collapse/input_1.fastq b/validation/pe/incl_adapter/collapse/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/collapse/input_2.fastq b/validation/pe/incl_adapter/collapse/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/collapse/your_output.collapsed b/validation/pe/incl_adapter/collapse/your_output.collapsed
new file mode 100644
index 0000000..c4d9815
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse/your_output.collapsed
@@ -0,0 +1,4 @@
+ at M_AAGGGCSeq_1_5180_50 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCT
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ&JJJJJJ
diff --git a/validation/pe/incl_adapter/collapse/your_output.collapsed.truncated b/validation/pe/incl_adapter/collapse/your_output.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse/your_output.discarded b/validation/pe/incl_adapter/collapse/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse/your_output.pair1.truncated b/validation/pe/incl_adapter/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse/your_output.pair2.truncated b/validation/pe/incl_adapter/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse/your_output.settings b/validation/pe/incl_adapter/collapse/your_output.settings
new file mode 100644
index 0000000..1ef4c19
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse/your_output.settings
@@ -0,0 +1,95 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 429139444
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	1	0	0	1
diff --git a/validation/pe/incl_adapter/collapse/your_output.singleton.truncated b/validation/pe/incl_adapter/collapse/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse_truncated/info.json b/validation/pe/incl_adapter/collapse_truncated/info.json
new file mode 100644
index 0000000..498e973
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse_truncated/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/collapse_truncated/input_1.fastq b/validation/pe/incl_adapter/collapse_truncated/input_1.fastq
new file mode 100644
index 0000000..b204d93
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse_truncated/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+NCATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/collapse_truncated/input_2.fastq b/validation/pe/incl_adapter/collapse_truncated/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse_truncated/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/collapse_truncated/your_output.collapsed b/validation/pe/incl_adapter/collapse_truncated/your_output.collapsed
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse_truncated/your_output.collapsed.truncated b/validation/pe/incl_adapter/collapse_truncated/your_output.collapsed.truncated
new file mode 100644
index 0000000..e21b0b3
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse_truncated/your_output.collapsed.truncated
@@ -0,0 +1,4 @@
+ at MT_AAGGGCSeq_1_5180_50 meta data
+CATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCT
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ&JJJJJJ
diff --git a/validation/pe/incl_adapter/collapse_truncated/your_output.discarded b/validation/pe/incl_adapter/collapse_truncated/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse_truncated/your_output.pair1.truncated b/validation/pe/incl_adapter/collapse_truncated/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse_truncated/your_output.pair2.truncated b/validation/pe/incl_adapter/collapse_truncated/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/collapse_truncated/your_output.settings b/validation/pe/incl_adapter/collapse_truncated/your_output.settings
new file mode 100644
index 0000000..c1c1e66
--- /dev/null
+++ b/validation/pe/incl_adapter/collapse_truncated/your_output.settings
@@ -0,0 +1,94 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 505768950
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 1
+Number of retained reads: 1
+Number of retained nucleotides: 49
+Average length of retained reads: 49
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/collapse_truncated/your_output.singleton.truncated b/validation/pe/incl_adapter/collapse_truncated/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/combined_output/collapse/info.json b/validation/pe/incl_adapter/combined_output/collapse/info.json
new file mode 100644
index 0000000..c795b6f
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/collapse/input_1.fastq b/validation/pe/incl_adapter/combined_output/collapse/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/collapse/input_2.fastq b/validation/pe/incl_adapter/combined_output/collapse/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/collapse/your_output.pair1.truncated b/validation/pe/incl_adapter/combined_output/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..aa00e7d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at M_AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCT
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ&JJJJJJ
diff --git a/validation/pe/incl_adapter/combined_output/collapse/your_output.pair2.truncated b/validation/pe/incl_adapter/combined_output/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..0376f57
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at M_AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/collapse/your_output.settings b/validation/pe/incl_adapter/combined_output/collapse/your_output.settings
new file mode 100644
index 0000000..1ef4c19
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse/your_output.settings
@@ -0,0 +1,95 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 429139444
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	1	0	0	1
diff --git a/validation/pe/incl_adapter/combined_output/collapse_truncated/info.json b/validation/pe/incl_adapter/combined_output/collapse_truncated/info.json
new file mode 100644
index 0000000..7f09072
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse_truncated/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/collapse_truncated/input_1.fastq b/validation/pe/incl_adapter/combined_output/collapse_truncated/input_1.fastq
new file mode 100644
index 0000000..b204d93
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse_truncated/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+NCATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/collapse_truncated/input_2.fastq b/validation/pe/incl_adapter/combined_output/collapse_truncated/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse_truncated/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.pair1.truncated b/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.pair1.truncated
new file mode 100644
index 0000000..7e4ede1
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at MT_AAGGGCSeq_1_5180_50/1 meta data
+CATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCT
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ&JJJJJJ
diff --git a/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.pair2.truncated b/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.pair2.truncated
new file mode 100644
index 0000000..cb5ad93
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at MT_AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.settings b/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.settings
new file mode 100644
index 0000000..c1c1e66
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/collapse_truncated/your_output.settings
@@ -0,0 +1,94 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 505768950
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 1
+Number of retained reads: 1
+Number of retained nucleotides: 49
+Average length of retained reads: 49
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse/info.json b/validation/pe/incl_adapter/combined_output/interleaved/collapse/info.json
new file mode 100644
index 0000000..aca744a
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse/input_1.fastq b/validation/pe/incl_adapter/combined_output/interleaved/collapse/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse/input_2.fastq b/validation/pe/incl_adapter/combined_output/interleaved/collapse/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse/your_output.paired.truncated b/validation/pe/incl_adapter/combined_output/interleaved/collapse/your_output.paired.truncated
new file mode 100644
index 0000000..2fbe2c7
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at M_AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCT
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ&JJJJJJ
+ at M_AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse/your_output.settings b/validation/pe/incl_adapter/combined_output/interleaved/collapse/your_output.settings
new file mode 100644
index 0000000..1ef4c19
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse/your_output.settings
@@ -0,0 +1,95 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 429139444
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	0	0	0
+50	0	0	0	1	0	0	1
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/info.json b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/info.json
new file mode 100644
index 0000000..4140776
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse", "--trimns", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/input_1.fastq b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/input_1.fastq
new file mode 100644
index 0000000..b204d93
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+NCATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/input_2.fastq b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/your_output.paired.truncated b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/your_output.paired.truncated
new file mode 100644
index 0000000..60087e8
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at MT_AAGGGCSeq_1_5180_50/1 meta data
+CATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGGAGGCCT
++
+JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ&JJJJJJ
+ at MT_AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/your_output.settings b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/your_output.settings
new file mode 100644
index 0000000..c1c1e66
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/collapse_truncated/your_output.settings
@@ -0,0 +1,94 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 505768950
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 1
+Number of retained reads: 1
+Number of retained nucleotides: 49
+Average length of retained reads: 49
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	0	0
+1	0	0	0	0	0	0	0
+2	0	0	0	0	0	0	0
+3	0	0	0	0	0	0	0
+4	0	0	0	0	0	0	0
+5	0	0	0	0	0	0	0
+6	0	0	0	0	0	0	0
+7	0	0	0	0	0	0	0
+8	0	0	0	0	0	0	0
+9	0	0	0	0	0	0	0
+10	0	0	0	0	0	0	0
+11	0	0	0	0	0	0	0
+12	0	0	0	0	0	0	0
+13	0	0	0	0	0	0	0
+14	0	0	0	0	0	0	0
+15	0	0	0	0	0	0	0
+16	0	0	0	0	0	0	0
+17	0	0	0	0	0	0	0
+18	0	0	0	0	0	0	0
+19	0	0	0	0	0	0	0
+20	0	0	0	0	0	0	0
+21	0	0	0	0	0	0	0
+22	0	0	0	0	0	0	0
+23	0	0	0	0	0	0	0
+24	0	0	0	0	0	0	0
+25	0	0	0	0	0	0	0
+26	0	0	0	0	0	0	0
+27	0	0	0	0	0	0	0
+28	0	0	0	0	0	0	0
+29	0	0	0	0	0	0	0
+30	0	0	0	0	0	0	0
+31	0	0	0	0	0	0	0
+32	0	0	0	0	0	0	0
+33	0	0	0	0	0	0	0
+34	0	0	0	0	0	0	0
+35	0	0	0	0	0	0	0
+36	0	0	0	0	0	0	0
+37	0	0	0	0	0	0	0
+38	0	0	0	0	0	0	0
+39	0	0	0	0	0	0	0
+40	0	0	0	0	0	0	0
+41	0	0	0	0	0	0	0
+42	0	0	0	0	0	0	0
+43	0	0	0	0	0	0	0
+44	0	0	0	0	0	0	0
+45	0	0	0	0	0	0	0
+46	0	0	0	0	0	0	0
+47	0	0	0	0	0	0	0
+48	0	0	0	0	0	0	0
+49	0	0	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_both/info.json b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/info.json
new file mode 100644
index 0000000..be89428
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_both/input_1.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_both/input_2.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_both/your_output.paired.truncated b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/your_output.paired.truncated
new file mode 100644
index 0000000..c732d6d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_both/your_output.settings b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/your_output.settings
new file mode 100644
index 0000000..2fcdd43
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_both/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 372265332
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/info.json b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/info.json
new file mode 100644
index 0000000..b86442d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--trimns", "--minlength", "50", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/input_1.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/input_2.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/your_output.paired.truncated b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/your_output.paired.truncated
new file mode 100644
index 0000000..10837ce
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
+ at AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/your_output.settings b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/your_output.settings
new file mode 100644
index 0000000..6dfbdb5
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate1/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3738807510
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 99
+Average length of retained reads: 99
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	1	1
+50	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/info.json b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/info.json
new file mode 100644
index 0000000..b86442d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--trimns", "--minlength", "50", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/input_1.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/input_2.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/your_output.paired.truncated b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/your_output.paired.truncated
new file mode 100644
index 0000000..fe9d80a
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+N
++
+!
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/your_output.settings b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/your_output.settings
new file mode 100644
index 0000000..c120058
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_mate2/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3854997780
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	1	1
+50	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/info.json b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/info.json
new file mode 100644
index 0000000..b86442d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--trimns", "--minlength", "50", "--interleaved-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/input_1.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/input_2.fastq b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/your_output.paired.truncated b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/your_output.paired.truncated
new file mode 100644
index 0000000..1a27609
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/your_output.paired.truncated
@@ -0,0 +1,8 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+N
++
+!
+ at AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/your_output.settings b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/your_output.settings
new file mode 100644
index 0000000..6c9aef3
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/interleaved/keep_neither/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3934188119
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	2	2
diff --git a/validation/pe/incl_adapter/combined_output/keep_both/info.json b/validation/pe/incl_adapter/combined_output/keep_both/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/keep_both/input_1.fastq b/validation/pe/incl_adapter/combined_output/keep_both/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_both/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_both/input_2.fastq b/validation/pe/incl_adapter/combined_output/keep_both/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_both/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_both/your_output.pair1.truncated b/validation/pe/incl_adapter/combined_output/keep_both/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_both/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/combined_output/keep_both/your_output.pair2.truncated b/validation/pe/incl_adapter/combined_output/keep_both/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_both/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/combined_output/keep_both/your_output.settings b/validation/pe/incl_adapter/combined_output/keep_both/your_output.settings
new file mode 100644
index 0000000..2fcdd43
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_both/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 372265332
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate1/info.json b/validation/pe/incl_adapter/combined_output/keep_mate1/info.json
new file mode 100644
index 0000000..29b9537
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--trimns", "--minlength", "50"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate1/input_1.fastq b/validation/pe/incl_adapter/combined_output/keep_mate1/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate1/input_2.fastq b/validation/pe/incl_adapter/combined_output/keep_mate1/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.pair1.truncated b/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.pair2.truncated b/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..3d9b622
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.settings b/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.settings
new file mode 100644
index 0000000..6dfbdb5
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate1/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3738807510
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 99
+Average length of retained reads: 99
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	1	1
+50	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate2/info.json b/validation/pe/incl_adapter/combined_output/keep_mate2/info.json
new file mode 100644
index 0000000..29b9537
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--trimns", "--minlength", "50"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate2/input_1.fastq b/validation/pe/incl_adapter/combined_output/keep_mate2/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate2/input_2.fastq b/validation/pe/incl_adapter/combined_output/keep_mate2/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.pair1.truncated b/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..0b8429d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.pair2.truncated b/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.settings b/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.settings
new file mode 100644
index 0000000..c120058
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_mate2/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3854997780
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	1	1
+50	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/combined_output/keep_neither/info.json b/validation/pe/incl_adapter/combined_output/keep_neither/info.json
new file mode 100644
index 0000000..29b9537
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_neither/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--trimns", "--minlength", "50"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/combined_output/keep_neither/input_1.fastq b/validation/pe/incl_adapter/combined_output/keep_neither/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_neither/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_neither/input_2.fastq b/validation/pe/incl_adapter/combined_output/keep_neither/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_neither/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/combined_output/keep_neither/your_output.pair1.truncated b/validation/pe/incl_adapter/combined_output/keep_neither/your_output.pair1.truncated
new file mode 100644
index 0000000..0b8429d
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_neither/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/keep_neither/your_output.pair2.truncated b/validation/pe/incl_adapter/combined_output/keep_neither/your_output.pair2.truncated
new file mode 100644
index 0000000..3d9b622
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_neither/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+N
++
+!
diff --git a/validation/pe/incl_adapter/combined_output/keep_neither/your_output.settings b/validation/pe/incl_adapter/combined_output/keep_neither/your_output.settings
new file mode 100644
index 0000000..6c9aef3
--- /dev/null
+++ b/validation/pe/incl_adapter/combined_output/keep_neither/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3934188119
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	2	2
diff --git a/validation/pe/incl_adapter/crlf_newlines/info.json b/validation/pe/incl_adapter/crlf_newlines/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/incl_adapter/crlf_newlines/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/crlf_newlines/input_1.fastq b/validation/pe/incl_adapter/crlf_newlines/input_1.fastq
new file mode 100644
index 0000000..7073f9d
--- /dev/null
+++ b/validation/pe/incl_adapter/crlf_newlines/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/crlf_newlines/input_2.fastq b/validation/pe/incl_adapter/crlf_newlines/input_2.fastq
new file mode 100644
index 0000000..528b2c9
--- /dev/null
+++ b/validation/pe/incl_adapter/crlf_newlines/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/crlf_newlines/your_output.discarded b/validation/pe/incl_adapter/crlf_newlines/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/crlf_newlines/your_output.pair1.truncated b/validation/pe/incl_adapter/crlf_newlines/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/crlf_newlines/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/crlf_newlines/your_output.pair2.truncated b/validation/pe/incl_adapter/crlf_newlines/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/crlf_newlines/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/crlf_newlines/your_output.settings b/validation/pe/incl_adapter/crlf_newlines/your_output.settings
new file mode 100644
index 0000000..2fcdd43
--- /dev/null
+++ b/validation/pe/incl_adapter/crlf_newlines/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 372265332
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/crlf_newlines/your_output.singleton.truncated b/validation/pe/incl_adapter/crlf_newlines/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/defaults/info.json b/validation/pe/incl_adapter/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/incl_adapter/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/defaults/input_1.fastq b/validation/pe/incl_adapter/defaults/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/defaults/input_2.fastq b/validation/pe/incl_adapter/defaults/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/defaults/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/defaults/your_output.discarded b/validation/pe/incl_adapter/defaults/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/defaults/your_output.pair1.truncated b/validation/pe/incl_adapter/defaults/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/defaults/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/defaults/your_output.pair2.truncated b/validation/pe/incl_adapter/defaults/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/defaults/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/defaults/your_output.settings b/validation/pe/incl_adapter/defaults/your_output.settings
new file mode 100644
index 0000000..2fcdd43
--- /dev/null
+++ b/validation/pe/incl_adapter/defaults/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 372265332
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/defaults/your_output.singleton.truncated b/validation/pe/incl_adapter/defaults/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/both/info.json b/validation/pe/incl_adapter/maxlength/both/info.json
new file mode 100644
index 0000000..15128ad
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "49"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/maxlength/both/input_1.fastq b/validation/pe/incl_adapter/maxlength/both/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/both/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/maxlength/both/input_2.fastq b/validation/pe/incl_adapter/maxlength/both/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/both/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/maxlength/both/your_output.discarded b/validation/pe/incl_adapter/maxlength/both/your_output.discarded
new file mode 100644
index 0000000..c732d6d
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/both/your_output.discarded
@@ -0,0 +1,8 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/maxlength/both/your_output.pair1.truncated b/validation/pe/incl_adapter/maxlength/both/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/both/your_output.pair2.truncated b/validation/pe/incl_adapter/maxlength/both/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/both/your_output.settings b/validation/pe/incl_adapter/maxlength/both/your_output.settings
new file mode 100644
index 0000000..18647ce
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/both/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1200660835
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 49
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	2	2
diff --git a/validation/pe/incl_adapter/maxlength/both/your_output.singleton.truncated b/validation/pe/incl_adapter/maxlength/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/mate1/info.json b/validation/pe/incl_adapter/maxlength/mate1/info.json
new file mode 100644
index 0000000..29f24de
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "49", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/maxlength/mate1/input_1.fastq b/validation/pe/incl_adapter/maxlength/mate1/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/maxlength/mate1/input_2.fastq b/validation/pe/incl_adapter/maxlength/mate1/input_2.fastq
new file mode 100644
index 0000000..e2ab029
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/maxlength/mate1/your_output.discarded b/validation/pe/incl_adapter/maxlength/mate1/your_output.discarded
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate1/your_output.discarded
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/maxlength/mate1/your_output.pair1.truncated b/validation/pe/incl_adapter/maxlength/mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/mate1/your_output.pair2.truncated b/validation/pe/incl_adapter/maxlength/mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/mate1/your_output.settings b/validation/pe/incl_adapter/maxlength/mate1/your_output.settings
new file mode 100644
index 0000000..4569ea8
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate1/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1359054103
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 49
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	1	0	1
+50	0	0	0	1	1
diff --git a/validation/pe/incl_adapter/maxlength/mate1/your_output.singleton.truncated b/validation/pe/incl_adapter/maxlength/mate1/your_output.singleton.truncated
new file mode 100644
index 0000000..cc8d13d
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate1/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATG
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDE
diff --git a/validation/pe/incl_adapter/maxlength/mate2/info.json b/validation/pe/incl_adapter/maxlength/mate2/info.json
new file mode 100644
index 0000000..29f24de
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "49", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/maxlength/mate2/input_1.fastq b/validation/pe/incl_adapter/maxlength/mate2/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/maxlength/mate2/input_2.fastq b/validation/pe/incl_adapter/maxlength/mate2/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/maxlength/mate2/your_output.discarded b/validation/pe/incl_adapter/maxlength/mate2/your_output.discarded
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate2/your_output.discarded
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/maxlength/mate2/your_output.pair1.truncated b/validation/pe/incl_adapter/maxlength/mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/mate2/your_output.pair2.truncated b/validation/pe/incl_adapter/maxlength/mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/maxlength/mate2/your_output.settings b/validation/pe/incl_adapter/maxlength/mate2/your_output.settings
new file mode 100644
index 0000000..f7f912b
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate2/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1361295368
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 49
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 99
+Average length of retained reads: 99
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	1	0	1
+50	0	0	0	1	1
diff --git a/validation/pe/incl_adapter/maxlength/mate2/your_output.singleton.truncated b/validation/pe/incl_adapter/maxlength/mate2/your_output.singleton.truncated
new file mode 100644
index 0000000..420ff60
--- /dev/null
+++ b/validation/pe/incl_adapter/maxlength/mate2/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCC
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDEC
diff --git a/validation/pe/incl_adapter/minlength/both/info.json b/validation/pe/incl_adapter/minlength/both/info.json
new file mode 100644
index 0000000..bbfa80a
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/both/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "50"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/minlength/both/input_1.fastq b/validation/pe/incl_adapter/minlength/both/input_1.fastq
new file mode 100644
index 0000000..a06ed3d
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/both/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/minlength/both/input_2.fastq b/validation/pe/incl_adapter/minlength/both/input_2.fastq
new file mode 100644
index 0000000..6099471
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/both/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/minlength/both/your_output.discarded b/validation/pe/incl_adapter/minlength/both/your_output.discarded
new file mode 100644
index 0000000..565998d
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/both/your_output.discarded
@@ -0,0 +1,8 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCC
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDEC
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATG
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDE
diff --git a/validation/pe/incl_adapter/minlength/both/your_output.pair1.truncated b/validation/pe/incl_adapter/minlength/both/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/minlength/both/your_output.pair2.truncated b/validation/pe/incl_adapter/minlength/both/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/minlength/both/your_output.settings b/validation/pe/incl_adapter/minlength/both/your_output.settings
new file mode 100644
index 0000000..278d662
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/both/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1436203328
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	2	2
diff --git a/validation/pe/incl_adapter/minlength/both/your_output.singleton.truncated b/validation/pe/incl_adapter/minlength/both/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/minlength/mate1/info.json b/validation/pe/incl_adapter/minlength/mate1/info.json
new file mode 100644
index 0000000..55f500d
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate1/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "50", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/minlength/mate1/input_1.fastq b/validation/pe/incl_adapter/minlength/mate1/input_1.fastq
new file mode 100644
index 0000000..b204d93
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate1/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+NCATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/minlength/mate1/input_2.fastq b/validation/pe/incl_adapter/minlength/mate1/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate1/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/minlength/mate1/your_output.discarded b/validation/pe/incl_adapter/minlength/mate1/your_output.discarded
new file mode 100644
index 0000000..38b0cf8
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate1/your_output.discarded
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+CATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+JJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/minlength/mate1/your_output.pair1.truncated b/validation/pe/incl_adapter/minlength/mate1/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/minlength/mate1/your_output.pair2.truncated b/validation/pe/incl_adapter/minlength/mate1/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/minlength/mate1/your_output.settings b/validation/pe/incl_adapter/minlength/mate1/your_output.settings
new file mode 100644
index 0000000..94b75a3
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate1/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1647601792
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 1
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	1	1
+50	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/minlength/mate1/your_output.singleton.truncated b/validation/pe/incl_adapter/minlength/mate1/your_output.singleton.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate1/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/minlength/mate2/info.json b/validation/pe/incl_adapter/minlength/mate2/info.json
new file mode 100644
index 0000000..55f500d
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate2/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "50", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/minlength/mate2/input_1.fastq b/validation/pe/incl_adapter/minlength/mate2/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate2/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/minlength/mate2/input_2.fastq b/validation/pe/incl_adapter/minlength/mate2/input_2.fastq
new file mode 100644
index 0000000..6f7e48c
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate2/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+NGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/minlength/mate2/your_output.discarded b/validation/pe/incl_adapter/minlength/mate2/your_output.discarded
new file mode 100644
index 0000000..3b9efde
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate2/your_output.discarded
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+GGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+IHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/minlength/mate2/your_output.pair1.truncated b/validation/pe/incl_adapter/minlength/mate2/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/minlength/mate2/your_output.pair2.truncated b/validation/pe/incl_adapter/minlength/mate2/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/minlength/mate2/your_output.settings b/validation/pe/incl_adapter/minlength/mate2/your_output.settings
new file mode 100644
index 0000000..42e0a14
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate2/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1757553206
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 50
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 1
+Number of retained nucleotides: 99
+Average length of retained reads: 99
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	1	1
+50	0	0	1	0	1
diff --git a/validation/pe/incl_adapter/minlength/mate2/your_output.singleton.truncated b/validation/pe/incl_adapter/minlength/mate2/your_output.singleton.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/minlength/mate2/your_output.singleton.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/threads/one/info.json b/validation/pe/incl_adapter/threads/one/info.json
new file mode 100644
index 0000000..ff5ec22
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/one/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "1"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/threads/one/input_1.fastq b/validation/pe/incl_adapter/threads/one/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/one/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/threads/one/input_2.fastq b/validation/pe/incl_adapter/threads/one/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/one/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/threads/one/your_output.discarded b/validation/pe/incl_adapter/threads/one/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/threads/one/your_output.pair1.truncated b/validation/pe/incl_adapter/threads/one/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/one/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/threads/one/your_output.pair2.truncated b/validation/pe/incl_adapter/threads/one/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/one/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/threads/one/your_output.settings b/validation/pe/incl_adapter/threads/one/your_output.settings
new file mode 100644
index 0000000..2fcdd43
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/one/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 372265332
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/threads/one/your_output.singleton.truncated b/validation/pe/incl_adapter/threads/one/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/threads/three/info.json b/validation/pe/incl_adapter/threads/three/info.json
new file mode 100644
index 0000000..afe6307
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/three/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "3"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/threads/three/input_1.fastq b/validation/pe/incl_adapter/threads/three/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/three/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/threads/three/input_2.fastq b/validation/pe/incl_adapter/threads/three/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/three/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/threads/three/your_output.discarded b/validation/pe/incl_adapter/threads/three/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/threads/three/your_output.pair1.truncated b/validation/pe/incl_adapter/threads/three/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/three/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/threads/three/your_output.pair2.truncated b/validation/pe/incl_adapter/threads/three/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/three/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/threads/three/your_output.settings b/validation/pe/incl_adapter/threads/three/your_output.settings
new file mode 100644
index 0000000..2fcdd43
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/three/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 372265332
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/threads/three/your_output.singleton.truncated b/validation/pe/incl_adapter/threads/three/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/threads/two/info.json b/validation/pe/incl_adapter/threads/two/info.json
new file mode 100644
index 0000000..6623cb4
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/two/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "2"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/threads/two/input_1.fastq b/validation/pe/incl_adapter/threads/two/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/two/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/threads/two/input_2.fastq b/validation/pe/incl_adapter/threads/two/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/two/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/threads/two/your_output.discarded b/validation/pe/incl_adapter/threads/two/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/threads/two/your_output.pair1.truncated b/validation/pe/incl_adapter/threads/two/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/two/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/threads/two/your_output.pair2.truncated b/validation/pe/incl_adapter/threads/two/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/two/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/threads/two/your_output.settings b/validation/pe/incl_adapter/threads/two/your_output.settings
new file mode 100644
index 0000000..2fcdd43
--- /dev/null
+++ b/validation/pe/incl_adapter/threads/two/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 372265332
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/threads/two/your_output.singleton.truncated b/validation/pe/incl_adapter/threads/two/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/info.json b/validation/pe/incl_adapter/trimns/excl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/excl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/input_1.fastq b/validation/pe/incl_adapter/trimns/excl_ns/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/excl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/input_2.fastq b/validation/pe/incl_adapter/trimns/excl_ns/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/excl_ns/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/your_output.discarded b/validation/pe/incl_adapter/trimns/excl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/your_output.pair1.truncated b/validation/pe/incl_adapter/trimns/excl_ns/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/excl_ns/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/your_output.pair2.truncated b/validation/pe/incl_adapter/trimns/excl_ns/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/excl_ns/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/your_output.settings b/validation/pe/incl_adapter/trimns/excl_ns/your_output.settings
new file mode 100644
index 0000000..09e6e5a
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/excl_ns/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2986012581
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/trimns/excl_ns/your_output.singleton.truncated b/validation/pe/incl_adapter/trimns/excl_ns/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/info.json b/validation/pe/incl_adapter/trimns/incl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/incl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/input_1.fastq b/validation/pe/incl_adapter/trimns/incl_ns/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/incl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/input_2.fastq b/validation/pe/incl_adapter/trimns/incl_ns/input_2.fastq
new file mode 100644
index 0000000..11818d9
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/incl_ns/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGNNNNNNAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/your_output.discarded b/validation/pe/incl_adapter/trimns/incl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/your_output.pair1.truncated b/validation/pe/incl_adapter/trimns/incl_ns/your_output.pair1.truncated
new file mode 100644
index 0000000..420ff60
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/incl_ns/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCC
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDEC
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/your_output.pair2.truncated b/validation/pe/incl_adapter/trimns/incl_ns/your_output.pair2.truncated
new file mode 100644
index 0000000..adb6dbf
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/incl_ns/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAG
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBE
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/your_output.settings b/validation/pe/incl_adapter/trimns/incl_ns/your_output.settings
new file mode 100644
index 0000000..35a47d1
--- /dev/null
+++ b/validation/pe/incl_adapter/trimns/incl_ns/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3028896355
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 93
+Average length of retained reads: 46.5
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	1	0	0	1
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	1	0	0	0	1
diff --git a/validation/pe/incl_adapter/trimns/incl_ns/your_output.singleton.truncated b/validation/pe/incl_adapter/trimns/incl_ns/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimqualities/default/info.json b/validation/pe/incl_adapter/trimqualities/default/info.json
new file mode 100644
index 0000000..853a8b6
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/default/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/trimqualities/default/input_1.fastq b/validation/pe/incl_adapter/trimqualities/default/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/default/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/trimqualities/default/input_2.fastq b/validation/pe/incl_adapter/trimqualities/default/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/default/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/trimqualities/default/your_output.discarded b/validation/pe/incl_adapter/trimqualities/default/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimqualities/default/your_output.pair1.truncated b/validation/pe/incl_adapter/trimqualities/default/your_output.pair1.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/default/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/pe/incl_adapter/trimqualities/default/your_output.pair2.truncated b/validation/pe/incl_adapter/trimqualities/default/your_output.pair2.truncated
new file mode 100644
index 0000000..288131d
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/default/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGT
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDED
diff --git a/validation/pe/incl_adapter/trimqualities/default/your_output.settings b/validation/pe/incl_adapter/trimqualities/default/your_output.settings
new file mode 100644
index 0000000..c8e3460
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/default/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3078066396
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 100
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	1	1	0	0	2
diff --git a/validation/pe/incl_adapter/trimqualities/default/your_output.singleton.truncated b/validation/pe/incl_adapter/trimqualities/default/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/info.json b/validation/pe/incl_adapter/trimqualities/minq35/info.json
new file mode 100644
index 0000000..4d13261
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/minq35/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities", "--minquality", "35"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/input_1.fastq b/validation/pe/incl_adapter/trimqualities/minq35/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/minq35/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/input_2.fastq b/validation/pe/incl_adapter/trimqualities/minq35/input_2.fastq
new file mode 100644
index 0000000..73cb65e
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/minq35/input_2.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATGTAGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCC
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDEDBDBCBCCBBAA?ADAAA@@@>>>><=><<;<:<;87:78753420/,+)!
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/your_output.discarded b/validation/pe/incl_adapter/trimqualities/minq35/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/your_output.pair1.truncated b/validation/pe/incl_adapter/trimqualities/minq35/your_output.pair1.truncated
new file mode 100644
index 0000000..a0bb944
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/minq35/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGC
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDE
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/your_output.pair2.truncated b/validation/pe/incl_adapter/trimqualities/minq35/your_output.pair2.truncated
new file mode 100644
index 0000000..cc8d13d
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/minq35/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/2 data meta
+AGGCCTCCTAGGGAGAGGAGGGTGGATGGAATTAAGGGTGTTAGTCATG
++
+JIHJJIJJJJJIHIHJHJHHJFGIHHHGHGGEGFIHEEDEEFBEDFEDE
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/your_output.settings b/validation/pe/incl_adapter/trimqualities/minq35/your_output.settings
new file mode 100644
index 0000000..66b19ba
--- /dev/null
+++ b/validation/pe/incl_adapter/trimqualities/minq35/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3153498613
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 35: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 97
+Average length of retained reads: 48.5
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	1	0	0	0	1
+49	0	1	0	0	1
diff --git a/validation/pe/incl_adapter/trimqualities/minq35/your_output.singleton.truncated b/validation/pe/incl_adapter/trimqualities/minq35/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/collapse/info.json b/validation/pe/only_adapter/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/pe/only_adapter/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/only_adapter/collapse/input_1.fastq b/validation/pe/only_adapter/collapse/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/pe/only_adapter/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/pe/only_adapter/collapse/input_2.fastq b/validation/pe/only_adapter/collapse/input_2.fastq
new file mode 100644
index 0000000..d3c5e17
--- /dev/null
+++ b/validation/pe/only_adapter/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+JJJJJJHJIHHHHJJHIHJIGHIJHHIGHFHDFFGFFFGEDDFCDEDDEDCCCEDDBBB at CCAABA@@>@?>>?=?>=<;;<:99:7974554410-*'"
diff --git a/validation/pe/only_adapter/collapse/your_output.collapsed b/validation/pe/only_adapter/collapse/your_output.collapsed
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/collapse/your_output.collapsed.truncated b/validation/pe/only_adapter/collapse/your_output.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/collapse/your_output.discarded b/validation/pe/only_adapter/collapse/your_output.discarded
new file mode 100644
index 0000000..7e0e4b0
--- /dev/null
+++ b/validation/pe/only_adapter/collapse/your_output.discarded
@@ -0,0 +1,4 @@
+ at M_CTTTGTSeq_1_14286_0 meta data
+
++
+
diff --git a/validation/pe/only_adapter/collapse/your_output.pair1.truncated b/validation/pe/only_adapter/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/collapse/your_output.pair2.truncated b/validation/pe/only_adapter/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/collapse/your_output.settings b/validation/pe/only_adapter/collapse/your_output.settings
new file mode 100644
index 0000000..be798ca
--- /dev/null
+++ b/validation/pe/only_adapter/collapse/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 416750178
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	1	1
diff --git a/validation/pe/only_adapter/collapse/your_output.singleton.truncated b/validation/pe/only_adapter/collapse/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/combined_output/collapse/info.json b/validation/pe/only_adapter/combined_output/collapse/info.json
new file mode 100644
index 0000000..c795b6f
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/only_adapter/combined_output/collapse/input_1.fastq b/validation/pe/only_adapter/combined_output/collapse/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/pe/only_adapter/combined_output/collapse/input_2.fastq b/validation/pe/only_adapter/combined_output/collapse/input_2.fastq
new file mode 100644
index 0000000..d3c5e17
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/collapse/input_2.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+JJJJJJHJIHHHHJJHIHJIGHIJHHIGHFHDFFGFFFGEDDFCDEDDEDCCCEDDBBB at CCAABA@@>@?>>?=?>=<;;<:99:7974554410-*'"
diff --git a/validation/pe/only_adapter/combined_output/collapse/your_output.pair1.truncated b/validation/pe/only_adapter/combined_output/collapse/your_output.pair1.truncated
new file mode 100644
index 0000000..a41a299
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/collapse/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at M_CTTTGTSeq_1_14286_0/1 meta data
+N
++
+!
diff --git a/validation/pe/only_adapter/combined_output/collapse/your_output.pair2.truncated b/validation/pe/only_adapter/combined_output/collapse/your_output.pair2.truncated
new file mode 100644
index 0000000..f6fb335
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/collapse/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at M_CTTTGTSeq_1_14286_0/2 data meta
+N
++
+!
diff --git a/validation/pe/only_adapter/combined_output/collapse/your_output.settings b/validation/pe/only_adapter/combined_output/collapse/your_output.settings
new file mode 100644
index 0000000..be798ca
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/collapse/your_output.settings
@@ -0,0 +1,45 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 416750178
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0	1	1
diff --git a/validation/pe/only_adapter/combined_output/defaults/info.json b/validation/pe/only_adapter/combined_output/defaults/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/only_adapter/combined_output/defaults/input_1.fastq b/validation/pe/only_adapter/combined_output/defaults/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/pe/only_adapter/combined_output/defaults/input_2.fastq b/validation/pe/only_adapter/combined_output/defaults/input_2.fastq
new file mode 100644
index 0000000..d3c5e17
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/defaults/input_2.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+JJJJJJHJIHHHHJJHIHJIGHIJHHIGHFHDFFGFFFGEDDFCDEDDEDCCCEDDBBB at CCAABA@@>@?>>?=?>=<;;<:99:7974554410-*'"
diff --git a/validation/pe/only_adapter/combined_output/defaults/your_output.pair1.truncated b/validation/pe/only_adapter/combined_output/defaults/your_output.pair1.truncated
new file mode 100644
index 0000000..f7497a4
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/defaults/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+N
++
+!
diff --git a/validation/pe/only_adapter/combined_output/defaults/your_output.pair2.truncated b/validation/pe/only_adapter/combined_output/defaults/your_output.pair2.truncated
new file mode 100644
index 0000000..3fda3d0
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/defaults/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+N
++
+!
diff --git a/validation/pe/only_adapter/combined_output/defaults/your_output.settings b/validation/pe/only_adapter/combined_output/defaults/your_output.settings
new file mode 100644
index 0000000..b77fe5e
--- /dev/null
+++ b/validation/pe/only_adapter/combined_output/defaults/your_output.settings
@@ -0,0 +1,43 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 688407609
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
diff --git a/validation/pe/only_adapter/crlf_newlines/info.json b/validation/pe/only_adapter/crlf_newlines/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/only_adapter/crlf_newlines/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/only_adapter/crlf_newlines/input_1.fastq b/validation/pe/only_adapter/crlf_newlines/input_1.fastq
new file mode 100644
index 0000000..f8b1c49
--- /dev/null
+++ b/validation/pe/only_adapter/crlf_newlines/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/pe/only_adapter/crlf_newlines/input_2.fastq b/validation/pe/only_adapter/crlf_newlines/input_2.fastq
new file mode 100644
index 0000000..9378c7d
--- /dev/null
+++ b/validation/pe/only_adapter/crlf_newlines/input_2.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+JJJJJJHJIHHHHJJHIHJIGHIJHHIGHFHDFFGFFFGEDDFCDEDDEDCCCEDDBBB at CCAABA@@>@?>>?=?>=<;;<:99:7974554410-*'"
diff --git a/validation/pe/only_adapter/crlf_newlines/your_output.discarded b/validation/pe/only_adapter/crlf_newlines/your_output.discarded
new file mode 100644
index 0000000..cb18929
--- /dev/null
+++ b/validation/pe/only_adapter/crlf_newlines/your_output.discarded
@@ -0,0 +1,8 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+
++
+
+ at CTTTGTSeq_1_14286_0/2 data meta
+
++
+
diff --git a/validation/pe/only_adapter/crlf_newlines/your_output.pair1.truncated b/validation/pe/only_adapter/crlf_newlines/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/crlf_newlines/your_output.pair2.truncated b/validation/pe/only_adapter/crlf_newlines/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/crlf_newlines/your_output.settings b/validation/pe/only_adapter/crlf_newlines/your_output.settings
new file mode 100644
index 0000000..8b80d86
--- /dev/null
+++ b/validation/pe/only_adapter/crlf_newlines/your_output.settings
@@ -0,0 +1,43 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 861004460
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
diff --git a/validation/pe/only_adapter/crlf_newlines/your_output.singleton.truncated b/validation/pe/only_adapter/crlf_newlines/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/defaults/info.json b/validation/pe/only_adapter/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/pe/only_adapter/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/only_adapter/defaults/input_1.fastq b/validation/pe/only_adapter/defaults/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/pe/only_adapter/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/pe/only_adapter/defaults/input_2.fastq b/validation/pe/only_adapter/defaults/input_2.fastq
new file mode 100644
index 0000000..d3c5e17
--- /dev/null
+++ b/validation/pe/only_adapter/defaults/input_2.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+JJJJJJHJIHHHHJJHIHJIGHIJHHIGHFHDFFGFFFGEDDFCDEDDEDCCCEDDBBB at CCAABA@@>@?>>?=?>=<;;<:99:7974554410-*'"
diff --git a/validation/pe/only_adapter/defaults/your_output.discarded b/validation/pe/only_adapter/defaults/your_output.discarded
new file mode 100644
index 0000000..cb18929
--- /dev/null
+++ b/validation/pe/only_adapter/defaults/your_output.discarded
@@ -0,0 +1,8 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+
++
+
+ at CTTTGTSeq_1_14286_0/2 data meta
+
++
+
diff --git a/validation/pe/only_adapter/defaults/your_output.pair1.truncated b/validation/pe/only_adapter/defaults/your_output.pair1.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/defaults/your_output.pair2.truncated b/validation/pe/only_adapter/defaults/your_output.pair2.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/defaults/your_output.settings b/validation/pe/only_adapter/defaults/your_output.settings
new file mode 100644
index 0000000..8b80d86
--- /dev/null
+++ b/validation/pe/only_adapter/defaults/your_output.settings
@@ -0,0 +1,43 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 861004460
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 1
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	0	0	0	2	2
diff --git a/validation/pe/only_adapter/defaults/your_output.singleton.truncated b/validation/pe/only_adapter/defaults/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/minlength/info.json b/validation/pe/only_adapter/minlength/info.json
new file mode 100644
index 0000000..8f2c60a
--- /dev/null
+++ b/validation/pe/only_adapter/minlength/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "0"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/pe/only_adapter/minlength/input_1.fastq b/validation/pe/only_adapter/minlength/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/pe/only_adapter/minlength/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/pe/only_adapter/minlength/input_2.fastq b/validation/pe/only_adapter/minlength/input_2.fastq
new file mode 100644
index 0000000..d3c5e17
--- /dev/null
+++ b/validation/pe/only_adapter/minlength/input_2.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
++
+JJJJJJHJIHHHHJJHIHJIGHIJHHIGHFHDFFGFFFGEDDFCDEDDEDCCCEDDBBB at CCAABA@@>@?>>?=?>=<;;<:99:7974554410-*'"
diff --git a/validation/pe/only_adapter/minlength/your_output.discarded b/validation/pe/only_adapter/minlength/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/pe/only_adapter/minlength/your_output.pair1.truncated b/validation/pe/only_adapter/minlength/your_output.pair1.truncated
new file mode 100644
index 0000000..7ace1c2
--- /dev/null
+++ b/validation/pe/only_adapter/minlength/your_output.pair1.truncated
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+
++
+
diff --git a/validation/pe/only_adapter/minlength/your_output.pair2.truncated b/validation/pe/only_adapter/minlength/your_output.pair2.truncated
new file mode 100644
index 0000000..515564a
--- /dev/null
+++ b/validation/pe/only_adapter/minlength/your_output.pair2.truncated
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/2 data meta
+
++
+
diff --git a/validation/pe/only_adapter/minlength/your_output.settings b/validation/pe/only_adapter/minlength/your_output.settings
new file mode 100644
index 0000000..eec7bf5
--- /dev/null
+++ b/validation/pe/only_adapter/minlength/your_output.settings
@@ -0,0 +1,43 @@
+AdapterRemoval ver. 2.1.7
+Trimming of paired-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 934075502
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 0
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+
+
+[Trimming statistics]
+Total number of read pairs: 1
+Number of unaligned read pairs: 0
+Number of well aligned read pairs: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of discarded mate 2 reads: 0
+Number of singleton mate 2 reads: 0
+Number of reads with adapters[1]: 2
+Number of retained reads: 2
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Mate2	Singleton	Discarded	All
+0	1	1	0	0	2
diff --git a/validation/pe/only_adapter/minlength/your_output.singleton.truncated b/validation/pe/only_adapter/minlength/your_output.singleton.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/run b/validation/run
new file mode 100755
index 0000000..ad83a9f
--- /dev/null
+++ b/validation/run
@@ -0,0 +1,498 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Copyright (c) 2016 Mikkel Schubert <MSchubert at snm.ku.dk>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+from __future__ import print_function
+
+import argparse
+import bz2
+import cStringIO
+import difflib
+import gzip
+import json
+import os
+import re
+import subprocess
+import sys
+import tempfile
+import types
+
+
+#############################################################################
+_COLORS_ENABLED = True
+
+
+def _do_print_color(*vargs, **kwargs):
+    """Utility function: Prints using shell colors."""
+    colorcode = kwargs.pop("colorcode")
+    destination = kwargs.pop("file", sys.stdout)
+
+    # No colors if output is redirected (e.g. less, file, etc.)
+    if _COLORS_ENABLED and destination.isatty():
+        vargs = list(vargs)
+        for (index, varg) in enumerate(vargs):
+            varg_lines = []
+            # Newlines terminate the color-code for e.g. 'less', so ensure that
+            # each line is color-coded, while preserving the list of arguments
+            for line in str(varg).split("\n"):
+                varg_lines.append("\033[00;%im%s\033[00m" % (colorcode, line))
+            vargs[index] = "\n".join(varg_lines)
+
+    print(*vargs, file=destination, **kwargs)
+
+    if '\n' in kwargs.get('end', '\n'):
+        destination.flush()
+
+
+def print_ok(*vargs, **kwargs):
+    """Equivalent to print, but prints using shell colorcodes (green)."""
+    _do_print_color(*vargs, colorcode=32, **kwargs)
+
+
+def print_err(*vargs, **kwargs):
+    """Equivalent to print, but prints using shell colorcodes (red)."""
+    _do_print_color(*vargs, colorcode=31, **kwargs)
+
+
+#############################################################################
+UNCOMPRESSED, GZIP, BZIP2 = "raw", "gz", "bz2"
+
+
+def compress(value, compression):
+    fileobj = cStringIO.StringIO()
+
+    if compression == GZIP:
+        handle = gzip.GzipFile('', 'w', 9, fileobj)
+        handle.write(value)
+        handle.close()
+
+        return fileobj.getvalue()
+    elif compression == BZIP2:
+        return bz2.compress(value)
+    else:
+        assert False, compression
+
+
+def decompress(filename):
+    with open(filename) as handle:
+        value = handle.read()
+
+    if value and filename.endswith(".bz2"):
+        if not value.startswith("BZ"):
+            raise TestError("Expected bz2 file at %r, but header is %r"
+                            % (filename, value[:2]))
+
+        value = bz2.decompress(value)
+    elif value and filename.endswith(".gz"):
+        if not value.startswith("\x1f\x8b"):
+            raise TestError("Expected gzip file at %r, but header is %r"
+                            % (filename, value[:2]))
+
+        fileobj = cStringIO.StringIO(value)
+        handle = gzip.GzipFile('', 'r', 9, fileobj)
+
+        value = handle.read()
+
+    return cStringIO.StringIO(value).readlines()
+
+
+#############################################################################
+_EXEC = './build/AdapterRemoval'
+_INFO_FILE = "info.json"
+_INFO_FIELDS = {
+    'arguments': types.ListType,
+    'return_code': types.IntType,
+    'stderr': types.ListType,
+}
+
+
+def pretty_output(s, padding=0, max_lines=float("inf")):
+    padding = " " * padding
+    lines = s.split("\n")
+    if len(lines) > max_lines:
+        lines = lines[:max_lines]
+        lines.append("...")
+
+    result = []
+    for line in lines:
+        result.append("%s>  %s" % (padding, line))
+
+    return "\n".join(result)
+
+
+def interleave(text_1, text_2):
+    lines_1 = text_1.split("\n")
+    lines_2 = text_2.split("\n")
+    iters = (iter(lines_1).next, iter(lines_2).next)
+
+    assert len(lines_1) == len(lines_2)
+
+    result = []
+    while True:
+        try:
+            for it in iters:
+                for _ in xrange(4):
+                    result.append(it())
+        except StopIteration:
+            break
+
+    return "\n".join(result)
+
+
+class TestError(StandardError):
+    pass
+
+
+class TestCase(object):
+    def __init__(self, root, path):
+        self.root = root
+        self.path = path
+        self.name = " :: ".join(path)
+        self._files = self._collect_files(root)
+        self._info = self._read_info(os.path.join(root, _INFO_FILE))
+
+    def __repr__(self):
+        return "TestCase(%r)" % ({'root': self.root,
+                                  'name': self.name,
+                                  'info': self._info,
+                                  'files': self._files})
+
+    def run(self, root):
+        root = os.path.join(root, *self.path)
+
+        interleaved_tests = [False]
+        if self._is_paired():
+            interleaved_tests.append(True)
+
+        for in_compression in (UNCOMPRESSED, GZIP, BZIP2):
+            for out_compression in (UNCOMPRESSED, GZIP, BZIP2):
+                for interleaved in interleaved_tests:
+                    yield "%s>%s%s" % (in_compression,
+                                       out_compression,
+                                       ",intl" if interleaved else "")
+
+                    postfix = "%s_%s%s" % (in_compression,
+                                           out_compression,
+                                           "_intl" if interleaved else "")
+
+                    self._do_run(os.path.join(root, postfix),
+                                 in_compression, out_compression, interleaved)
+
+    def _do_run(self, root, in_compression=UNCOMPRESSED,
+                out_compression=UNCOMPRESSED, interleaved=False):
+        assert in_compression in (UNCOMPRESSED, BZIP2, GZIP)
+        assert out_compression in (UNCOMPRESSED, BZIP2, GZIP)
+        os.makedirs(root)
+
+        input_1, input_2 = self._setup_input(root, in_compression, interleaved)
+        self._do_call(root, input_1, input_2, out_compression, interleaved)
+
+        self._check_file_creation(root, input_1, input_2, out_compression)
+        self._check_file_contents(root, out_compression)
+
+    def _setup_input(self, root, compression, interleaved):
+        input_files = {}
+        for key in ("input_1", "input_2"):
+            if self._files[key] is not None:
+                input_files[key] = open(self._files[key]).read()
+
+        if interleaved:
+            input_files = {"input_1": interleave(input_files["input_1"],
+                                                 input_files["input_2"])}
+
+        final_files = {}
+        for key, value in input_files.iteritems():
+            filename = key + ".fastq"
+            if compression != UNCOMPRESSED:
+                filename += "." + compression
+                value = compress(value, compression)
+
+            with open(os.path.join(root, filename), "w") as handle:
+                handle.write(value)
+
+            final_files[key] = filename
+
+        if 'barcodes' in self._files:
+            with open(os.path.join(root, 'barcodes.txt'), 'w') as handle:
+                handle.writelines(self._files['barcodes'])
+
+        return final_files.get("input_1"), final_files.get("input_2")
+
+    def _do_call(self, root, input_1, input_2, compression, interleaved):
+        command = self._build_command(root, input_1, input_2, compression, interleaved)
+        with open(os.devnull, "w") as dev_null:
+            proc = subprocess.Popen(command,
+                                    stdin=dev_null,
+                                    stdout=subprocess.PIPE,
+                                    stderr=subprocess.PIPE,
+                                    close_fds=True,
+                                    preexec_fn=os.setsid,
+                                    cwd=root)
+
+            stdout, stderr = proc.communicate()
+            if stdout:
+                raise TestError("Unexpected output to STDOUT: %r" % (stdout,))
+
+            for value in self._info["stderr"]:
+                if re.search(value, stderr) is None:
+                    raise TestError("Expected value not found in output:\n"
+                                    "  Searching for:\n%s\n  STDERR:\n%s"
+                                    % (pretty_output(value, 4),
+                                       pretty_output(stderr, 4, 5)))
+
+            if proc.returncode != self._info["return_code"]:
+                raise TestError("ERROR: Expected return-code %i, but "
+                                "AdapterRemoval returned %i:\n%s"
+                                % (self._info["return_code"],
+                                   proc.returncode,
+                                   pretty_output(stderr, 2, 5)))
+
+    def _check_file_creation(self, root, input_1, input_2, compression):
+        expected_files = set(self._files["output"])
+        if 'barcodes' in self._files:
+            expected_files.add('barcodes.txt')
+
+        if compression != UNCOMPRESSED:
+            expected_files_ = set()
+            for value in expected_files:
+                if not value.endswith(".settings") and value != 'barcodes.txt':
+                    expected_files_.add(value + "." + compression)
+                else:
+                    expected_files_.add(value)
+            expected_files = expected_files_
+
+        observed_files = frozenset(os.listdir(root)) - frozenset((input_1,
+                                                                  input_2))
+
+        if expected_files - observed_files:
+            raise TestError("ERROR: Expected output file(s) not created:\n"
+                            "  Expected: %r\n  Observed: %r"
+                            % (sorted(expected_files), sorted(observed_files)))
+        elif observed_files - expected_files:
+            raise TestError("ERROR: Unexpected output file(s) created: %r"
+                            % (sorted(observed_files - expected_files)))
+
+    def _check_file_contents(self, root, compression):
+        for filename, exp_data in sorted(self._files["output"].iteritems()):
+            obs_filename = os.path.join(root, filename)
+            if compression != UNCOMPRESSED:
+                if not filename.endswith(".settings"):
+                    obs_filename += "." + compression
+
+            exp_data = exp_data
+            obs_data = decompress(obs_filename)
+
+            if filename.endswith(".settings"):
+                exp_data = self._mangle_settings(exp_data)
+                obs_data = self._mangle_settings(obs_data)
+
+            self._diff_file_pair_contents(os.path.join(self.root, filename),
+                                          os.path.join(root, filename),
+                                          exp_data, obs_data)
+
+    def _diff_file_pair_contents(self, exp_filename, obs_filename, exp_data, obs_data):
+        if exp_data != obs_data:
+            lines = "".join(difflib.unified_diff(exp_data, obs_data,
+                                                 "expected", "observed"))
+
+            raise TestError("ERROR: Output file(s) differ:\n"
+                            "  Expected: %r\n  Observed: %r\n  Diff:\n%s"
+                            % (exp_filename, obs_filename,
+                               pretty_output(lines, 4)))
+
+    def _build_command(self, root, input_1, input_2, compression, interleaved):
+        command = [os.path.abspath(_EXEC)]
+        if interleaved:
+            command.append("--interleaved-input")
+
+        if 'barcodes' in self._files:
+            command.extend(('--barcode-list', 'barcodes.txt'))
+
+        if input_1 is not None or input_2 is not None:
+            if compression == BZIP2:
+                command.append("--bzip2")
+            elif compression == GZIP:
+                command.append("--gzip")
+
+        if input_1 is not None:
+            command.extend(('--file1', input_1))
+        if input_2 is not None:
+            command.extend(('--file2', input_2))
+
+        command.extend(self._info['arguments'])
+
+        return [field % {"ROOT": root} for field in command]
+
+    def _is_paired(self):
+        return (self._files["input_1"] is not None) \
+            and (self._files["input_2"] is not None)
+
+    @classmethod
+    def _mangle_settings(cls, handle):
+        result = []
+        for line in handle:
+            line = re.sub(r"RNG seed: [0-9]+", "RNG seed: NA", line)
+            line = re.sub(r"AdapterRemoval ver. [0-9]+.[0-9]+.[0-9]+",
+                          "AdapterRemoval ver. X.Y.Z", line)
+            # Removed keyword to allow automatic interleaved tests
+            line = re.sub(r" interleaved paired-end reads",
+                          r" paired-end reads",
+                          line)
+
+            result.append(line)
+
+        return result
+
+    @classmethod
+    def _collect_files(cls, root):
+        result = {
+            "input_1": None,
+            "input_2": None,
+            "output": {},
+        }
+
+        def read_lines(root, filename):
+            return open(os.path.join(root, filename)).readlines()
+
+        for filename in os.listdir(root):
+            if filename.startswith("input_1.fastq"):
+                if result["input_1"] is not None:
+                    raise TestError('Duplicate input_1.fastq* files in %r'
+                                    % (root,))
+                result["input_1"] = os.path.abspath(os.path.join(root,
+                                                                 filename))
+            elif filename.startswith("input_2.fastq"):
+                if result["input_2"] is not None:
+                    raise TestError('Duplicate input_2.fastq* files in %r'
+                                    % (root,))
+                result["input_2"] = os.path.abspath(os.path.join(root,
+                                                                 filename))
+            elif filename not in ('info.json', 'README', 'barcodes.txt'):
+                result["output"][filename] = read_lines(root, filename)
+            elif filename == 'barcodes.txt':
+                result["barcodes"] = read_lines(root, filename)
+
+        return result
+
+    @classmethod
+    def _read_info(cls, filename):
+        with open(filename) as handle:
+            text = handle.read()
+            raw_info = json.loads(text)
+
+        if not isinstance(raw_info, types.DictType):
+            raise TestError('\'info.json\' does not contain dictionary.')
+        elif set(raw_info) - set(_INFO_FIELDS):
+            raise TestError('\'info.json\' does contains unexpected fields; '
+                            'expected keys %r, but found keys unknown keys %r.'
+                            % (sorted(_INFO_FIELDS),
+                               sorted(set(raw_info) - set(_INFO_FIELDS))))
+
+        info = {"arguments": [],
+                "return_code": 0,
+                "stderr": []}
+        info.update(raw_info)
+
+        for key, expected_type in _INFO_FIELDS.items():
+            if not isinstance(info[key], expected_type):
+                raise TestError('Type of %r in \'info.json\' is %s, not a %s.'
+                                % (key, type(info[key]), expected_type))
+            elif isinstance(info[key], types.ListType):
+                for value in info[key]:
+                    if not isinstance(value, types.StringTypes):
+                        raise TestError('Type of value in %r in \'info.json\' '
+                                        'is %s, not a string.'
+                                        % (key, type(value)))
+
+        return info
+
+    @classmethod
+    def collect(cls, root, path=()):
+        tests = []
+
+        for filename in sorted(os.listdir(root)):
+            filepath = os.path.join(root, filename)
+
+            if os.path.isdir(filepath):
+                tests.extend(cls.collect(filepath, path + (filename,)))
+            elif filename == 'info.json':
+                try:
+                    test = TestCase(root, path)
+                except StandardError, error:
+                    print_err("ERROR: %s reading test %r: %s"
+                              % (error.__class__.__name__,
+                                 ' :: '.join(path), error))
+                    continue
+
+                tests.append(test)
+
+        return tests
+
+
+def parse_args(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('work_dir',
+                        help="Directory in which to run test-cases.")
+    parser.add_argument('source_dir',
+                        help="Directory containing test-cases.")
+
+    return parser.parse_args(argv)
+
+
+def main(argv):
+    args = parse_args(argv)
+    if not os.path.exists(_EXEC):
+        print_err("ERROR: Executable does not exist: %r" % (_EXEC,))
+        return 1
+
+    print('Reading test-cases from %r' % (args.source_dir,))
+    tests = TestCase.collect(args.source_dir)
+
+    args.work_dir = tempfile.mkdtemp(dir=args.work_dir)
+    print('Writing test-cases results to %r' % (args.work_dir,))
+
+    n_failures = 0
+    print('\nRunning tests:')
+    for idx, test in enumerate(tests, start=1):
+        print("  %i of %i: %s " % (idx, len(tests), test.name), end='')
+        label = 'unknown'
+
+        try:
+            for label in test.run(args.work_dir):
+                print_ok(".", end="")
+                sys.stdout.flush()
+        except TestError, error:
+            n_failures += 1
+            message = "\n    ".join(str(error).split("\n"))
+            print_err(" %s for %s:\n    %s" % (error.__class__.__name__,
+                                               label, message))
+        else:
+            print_ok(" [OK]")
+
+    if n_failures:
+        print_err("\n%i of %i tests failed .." % (n_failures, len(tests)))
+    else:
+        print_ok("\nAll %i tests succeeded .." % (len(tests),))
+
+    return 0
+
+
+if __name__ == '__main__':
+    sys.exit(main(sys.argv[1:]))
diff --git a/validation/se/excl_adapter/collapse/info.json b/validation/se/excl_adapter/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/se/excl_adapter/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/collapse/input_1.fastq b/validation/se/excl_adapter/collapse/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/collapse/your_output.collapsed b/validation/se/excl_adapter/collapse/your_output.collapsed
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/collapse/your_output.collapsed.truncated b/validation/se/excl_adapter/collapse/your_output.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/collapse/your_output.discarded b/validation/se/excl_adapter/collapse/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/collapse/your_output.settings b/validation/se/excl_adapter/collapse/your_output.settings
new file mode 100644
index 0000000..c556d03
--- /dev/null
+++ b/validation/se/excl_adapter/collapse/your_output.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4051235691
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 100
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	0	0	0	1
diff --git a/validation/se/excl_adapter/collapse/your_output.truncated b/validation/se/excl_adapter/collapse/your_output.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/collapse/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/combined_output/collapse/info.json b/validation/se/excl_adapter/combined_output/collapse/info.json
new file mode 100644
index 0000000..4df4ce6
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/collapse/info.json
@@ -0,0 +1,6 @@
+{
+    "arguments": ["--combined-output", "--collapse"],
+    "return_code": 0,
+    "stderr": [
+    ]
+}
diff --git a/validation/se/excl_adapter/combined_output/collapse/input_1.fastq b/validation/se/excl_adapter/combined_output/collapse/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/combined_output/collapse/your_output.settings b/validation/se/excl_adapter/combined_output/collapse/your_output.settings
new file mode 100644
index 0000000..c556d03
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/collapse/your_output.settings
@@ -0,0 +1,144 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4051235691
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 100
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	0	0	0	0
+51	0	0	0	0	0
+52	0	0	0	0	0
+53	0	0	0	0	0
+54	0	0	0	0	0
+55	0	0	0	0	0
+56	0	0	0	0	0
+57	0	0	0	0	0
+58	0	0	0	0	0
+59	0	0	0	0	0
+60	0	0	0	0	0
+61	0	0	0	0	0
+62	0	0	0	0	0
+63	0	0	0	0	0
+64	0	0	0	0	0
+65	0	0	0	0	0
+66	0	0	0	0	0
+67	0	0	0	0	0
+68	0	0	0	0	0
+69	0	0	0	0	0
+70	0	0	0	0	0
+71	0	0	0	0	0
+72	0	0	0	0	0
+73	0	0	0	0	0
+74	0	0	0	0	0
+75	0	0	0	0	0
+76	0	0	0	0	0
+77	0	0	0	0	0
+78	0	0	0	0	0
+79	0	0	0	0	0
+80	0	0	0	0	0
+81	0	0	0	0	0
+82	0	0	0	0	0
+83	0	0	0	0	0
+84	0	0	0	0	0
+85	0	0	0	0	0
+86	0	0	0	0	0
+87	0	0	0	0	0
+88	0	0	0	0	0
+89	0	0	0	0	0
+90	0	0	0	0	0
+91	0	0	0	0	0
+92	0	0	0	0	0
+93	0	0	0	0	0
+94	0	0	0	0	0
+95	0	0	0	0	0
+96	0	0	0	0	0
+97	0	0	0	0	0
+98	0	0	0	0	0
+99	0	0	0	0	0
+100	1	0	0	0	1
diff --git a/validation/se/excl_adapter/combined_output/collapse/your_output.truncated b/validation/se/excl_adapter/combined_output/collapse/your_output.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/collapse/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/combined_output/discarded/info.json b/validation/se/excl_adapter/combined_output/discarded/info.json
new file mode 100644
index 0000000..20af351
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/discarded/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "999"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/combined_output/discarded/input_1.fastq b/validation/se/excl_adapter/combined_output/discarded/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/discarded/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/combined_output/discarded/your_output.settings b/validation/se/excl_adapter/combined_output/discarded/your_output.settings
new file mode 100644
index 0000000..60c3819
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/discarded/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3702281079
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 999
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	0	0	0
+100	0	1	1
diff --git a/validation/se/excl_adapter/combined_output/discarded/your_output.truncated b/validation/se/excl_adapter/combined_output/discarded/your_output.truncated
new file mode 100644
index 0000000..f37ed49
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/discarded/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+N
++
+!
diff --git a/validation/se/excl_adapter/combined_output/retained/info.json b/validation/se/excl_adapter/combined_output/retained/info.json
new file mode 100644
index 0000000..86b37b0
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/retained/info.json
@@ -0,0 +1,6 @@
+{
+    "arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/combined_output/retained/input_1.fastq b/validation/se/excl_adapter/combined_output/retained/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/retained/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/combined_output/retained/your_output.settings b/validation/se/excl_adapter/combined_output/retained/your_output.settings
new file mode 100644
index 0000000..b2f68fa
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/retained/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3702281079
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 100
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	0	0	0
+100	1	0	1
diff --git a/validation/se/excl_adapter/combined_output/retained/your_output.truncated b/validation/se/excl_adapter/combined_output/retained/your_output.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/combined_output/retained/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/crlf_newlines/info.json b/validation/se/excl_adapter/crlf_newlines/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/se/excl_adapter/crlf_newlines/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/crlf_newlines/input_1.fastq b/validation/se/excl_adapter/crlf_newlines/input_1.fastq
new file mode 100644
index 0000000..b05c582
--- /dev/null
+++ b/validation/se/excl_adapter/crlf_newlines/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/crlf_newlines/your_output.discarded b/validation/se/excl_adapter/crlf_newlines/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/crlf_newlines/your_output.settings b/validation/se/excl_adapter/crlf_newlines/your_output.settings
new file mode 100644
index 0000000..b2f68fa
--- /dev/null
+++ b/validation/se/excl_adapter/crlf_newlines/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3702281079
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 100
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	0	0	0
+100	1	0	1
diff --git a/validation/se/excl_adapter/crlf_newlines/your_output.truncated b/validation/se/excl_adapter/crlf_newlines/your_output.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/crlf_newlines/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/defaults/info.json b/validation/se/excl_adapter/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/se/excl_adapter/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/defaults/input_1.fastq b/validation/se/excl_adapter/defaults/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/defaults/your_output.discarded b/validation/se/excl_adapter/defaults/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/defaults/your_output.settings b/validation/se/excl_adapter/defaults/your_output.settings
new file mode 100644
index 0000000..b2f68fa
--- /dev/null
+++ b/validation/se/excl_adapter/defaults/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 3702281079
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 100
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	0	0	0
+100	1	0	1
diff --git a/validation/se/excl_adapter/defaults/your_output.truncated b/validation/se/excl_adapter/defaults/your_output.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/defaults/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/maxlength/info.json b/validation/se/excl_adapter/maxlength/info.json
new file mode 100644
index 0000000..8b6539a
--- /dev/null
+++ b/validation/se/excl_adapter/maxlength/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "13"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/maxlength/input_1.fastq b/validation/se/excl_adapter/maxlength/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/maxlength/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/maxlength/your_output.discarded b/validation/se/excl_adapter/maxlength/your_output.discarded
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/maxlength/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/maxlength/your_output.settings b/validation/se/excl_adapter/maxlength/your_output.settings
new file mode 100644
index 0000000..03d913a
--- /dev/null
+++ b/validation/se/excl_adapter/maxlength/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1833120783
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 13
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	0	0	0
+100	0	1	1
diff --git a/validation/se/excl_adapter/maxlength/your_output.truncated b/validation/se/excl_adapter/maxlength/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/minlength/info.json b/validation/se/excl_adapter/minlength/info.json
new file mode 100644
index 0000000..376e308
--- /dev/null
+++ b/validation/se/excl_adapter/minlength/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "999"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/minlength/input_1.fastq b/validation/se/excl_adapter/minlength/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/minlength/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/minlength/your_output.discarded b/validation/se/excl_adapter/minlength/your_output.discarded
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/minlength/your_output.discarded
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/minlength/your_output.settings b/validation/se/excl_adapter/minlength/your_output.settings
new file mode 100644
index 0000000..d437f85
--- /dev/null
+++ b/validation/se/excl_adapter/minlength/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1752967089
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 999
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	0	0	0
+100	0	1	1
diff --git a/validation/se/excl_adapter/minlength/your_output.truncated b/validation/se/excl_adapter/minlength/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/trimns/excl_ns/info.json b/validation/se/excl_adapter/trimns/excl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/excl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/trimns/excl_ns/input_1.fastq b/validation/se/excl_adapter/trimns/excl_ns/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/excl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/trimns/excl_ns/your_output.discarded b/validation/se/excl_adapter/trimns/excl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/trimns/excl_ns/your_output.settings b/validation/se/excl_adapter/trimns/excl_ns/your_output.settings
new file mode 100644
index 0000000..53552ec
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/excl_ns/your_output.settings
@@ -0,0 +1,142 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 217798732
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 100
+Average length of retained reads: 100
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	0	0	0
+100	1	0	1
diff --git a/validation/se/excl_adapter/trimns/excl_ns/your_output.truncated b/validation/se/excl_adapter/trimns/excl_ns/your_output.truncated
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/excl_ns/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/trimns/incl_ns/info.json b/validation/se/excl_adapter/trimns/incl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/incl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/trimns/incl_ns/input_1.fastq b/validation/se/excl_adapter/trimns/incl_ns/input_1.fastq
new file mode 100644
index 0000000..f10c00a
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/incl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGNTCAACGATTAAANNNNNN
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/trimns/incl_ns/your_output.discarded b/validation/se/excl_adapter/trimns/incl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/trimns/incl_ns/your_output.settings b/validation/se/excl_adapter/trimns/incl_ns/your_output.settings
new file mode 100644
index 0000000..bf63202
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/incl_ns/your_output.settings
@@ -0,0 +1,136 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 87921694
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 94
+Average length of retained reads: 94
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	1	0	1
diff --git a/validation/se/excl_adapter/trimns/incl_ns/your_output.truncated b/validation/se/excl_adapter/trimns/incl_ns/your_output.truncated
new file mode 100644
index 0000000..3e398be
--- /dev/null
+++ b/validation/se/excl_adapter/trimns/incl_ns/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGNTCAACGATTAAA
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:977775532
diff --git a/validation/se/excl_adapter/trimqualities/default/info.json b/validation/se/excl_adapter/trimqualities/default/info.json
new file mode 100644
index 0000000..853a8b6
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/default/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/trimqualities/default/input_1.fastq b/validation/se/excl_adapter/trimqualities/default/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/default/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/trimqualities/default/your_output.discarded b/validation/se/excl_adapter/trimqualities/default/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/trimqualities/default/your_output.settings b/validation/se/excl_adapter/trimqualities/default/your_output.settings
new file mode 100644
index 0000000..680c46a
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/default/your_output.settings
@@ -0,0 +1,141 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1434085985
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 99
+Average length of retained reads: 99
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	0	0	0
+68	0	0	0
+69	0	0	0
+70	0	0	0
+71	0	0	0
+72	0	0	0
+73	0	0	0
+74	0	0	0
+75	0	0	0
+76	0	0	0
+77	0	0	0
+78	0	0	0
+79	0	0	0
+80	0	0	0
+81	0	0	0
+82	0	0	0
+83	0	0	0
+84	0	0	0
+85	0	0	0
+86	0	0	0
+87	0	0	0
+88	0	0	0
+89	0	0	0
+90	0	0	0
+91	0	0	0
+92	0	0	0
+93	0	0	0
+94	0	0	0
+95	0	0	0
+96	0	0	0
+97	0	0	0
+98	0	0	0
+99	1	0	1
diff --git a/validation/se/excl_adapter/trimqualities/default/your_output.truncated b/validation/se/excl_adapter/trimqualities/default/your_output.truncated
new file mode 100644
index 0000000..eca9533
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/default/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'
diff --git a/validation/se/excl_adapter/trimqualities/minq31/info.json b/validation/se/excl_adapter/trimqualities/minq31/info.json
new file mode 100644
index 0000000..49eb431
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/minq31/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities", "--minquality", "31"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/excl_adapter/trimqualities/minq31/input_1.fastq b/validation/se/excl_adapter/trimqualities/minq31/input_1.fastq
new file mode 100644
index 0000000..8b0a696
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/minq31/input_1.fastq
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTG
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A@@@?>>@==<=<;;;;<:9777755321/,)'!
diff --git a/validation/se/excl_adapter/trimqualities/minq31/your_output.discarded b/validation/se/excl_adapter/trimqualities/minq31/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/excl_adapter/trimqualities/minq31/your_output.settings b/validation/se/excl_adapter/trimqualities/minq31/your_output.settings
new file mode 100644
index 0000000..b1ad7ab
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/minq31/your_output.settings
@@ -0,0 +1,109 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1585058107
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 31: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 1
+Number of well aligned reads: 0
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 0
+Number of retained reads: 1
+Number of retained nucleotides: 67
+Average length of retained reads: 67
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	0	0
+51	0	0	0
+52	0	0	0
+53	0	0	0
+54	0	0	0
+55	0	0	0
+56	0	0	0
+57	0	0	0
+58	0	0	0
+59	0	0	0
+60	0	0	0
+61	0	0	0
+62	0	0	0
+63	0	0	0
+64	0	0	0
+65	0	0	0
+66	0	0	0
+67	1	0	1
diff --git a/validation/se/excl_adapter/trimqualities/minq31/your_output.truncated b/validation/se/excl_adapter/trimqualities/minq31/your_output.truncated
new file mode 100644
index 0000000..9e0da0f
--- /dev/null
+++ b/validation/se/excl_adapter/trimqualities/minq31/your_output.truncated
@@ -0,0 +1,4 @@
+ at ATAGCCSeq_1_2959_500/1 meta data
+TCCATATCAACAATAGGGTTTACGACCTCGATGTTGGATCAGGACATCCCGATGGTGCAGCCGCTAT
++
+JJIJIIJIIIJJGJHGGHJJJFGHGIJHEGHFGGGFFFFFFEEEDDGDCDBECDCACBC@@CBAA at A
diff --git a/validation/se/incl_adapter/collapse/info.json b/validation/se/incl_adapter/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/se/incl_adapter/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/collapse/input_1.fastq b/validation/se/incl_adapter/collapse/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/collapse/your_output.collapsed b/validation/se/incl_adapter/collapse/your_output.collapsed
new file mode 100644
index 0000000..da50b05
--- /dev/null
+++ b/validation/se/incl_adapter/collapse/your_output.collapsed
@@ -0,0 +1,4 @@
+ at M_AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/collapse/your_output.collapsed.truncated b/validation/se/incl_adapter/collapse/your_output.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/collapse/your_output.discarded b/validation/se/incl_adapter/collapse/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/collapse/your_output.settings b/validation/se/incl_adapter/collapse/your_output.settings
new file mode 100644
index 0000000..670547e
--- /dev/null
+++ b/validation/se/incl_adapter/collapse/your_output.settings
@@ -0,0 +1,94 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 566778642
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	1	0	0	1
diff --git a/validation/se/incl_adapter/collapse/your_output.truncated b/validation/se/incl_adapter/collapse/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/collapse_truncated/info.json b/validation/se/incl_adapter/collapse_truncated/info.json
new file mode 100644
index 0000000..498e973
--- /dev/null
+++ b/validation/se/incl_adapter/collapse_truncated/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse", "--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/collapse_truncated/input_1.fastq b/validation/se/incl_adapter/collapse_truncated/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/se/incl_adapter/collapse_truncated/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/collapse_truncated/your_output.collapsed b/validation/se/incl_adapter/collapse_truncated/your_output.collapsed
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/collapse_truncated/your_output.collapsed.truncated b/validation/se/incl_adapter/collapse_truncated/your_output.collapsed.truncated
new file mode 100644
index 0000000..2681420
--- /dev/null
+++ b/validation/se/incl_adapter/collapse_truncated/your_output.collapsed.truncated
@@ -0,0 +1,4 @@
+ at MT_AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCC
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDEC
diff --git a/validation/se/incl_adapter/collapse_truncated/your_output.discarded b/validation/se/incl_adapter/collapse_truncated/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/collapse_truncated/your_output.settings b/validation/se/incl_adapter/collapse_truncated/your_output.settings
new file mode 100644
index 0000000..980a692
--- /dev/null
+++ b/validation/se/incl_adapter/collapse_truncated/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 566778642
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 1
+Number of retained reads: 1
+Number of retained nucleotides: 49
+Average length of retained reads: 49
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	1	0	1
diff --git a/validation/se/incl_adapter/collapse_truncated/your_output.truncated b/validation/se/incl_adapter/collapse_truncated/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/combined_output/collapse/info.json b/validation/se/incl_adapter/combined_output/collapse/info.json
new file mode 100644
index 0000000..4df4ce6
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse/info.json
@@ -0,0 +1,6 @@
+{
+    "arguments": ["--combined-output", "--collapse"],
+    "return_code": 0,
+    "stderr": [
+    ]
+}
diff --git a/validation/se/incl_adapter/combined_output/collapse/input_1.fastq b/validation/se/incl_adapter/combined_output/collapse/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/combined_output/collapse/your_output.settings b/validation/se/incl_adapter/combined_output/collapse/your_output.settings
new file mode 100644
index 0000000..aeb79a9
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse/your_output.settings
@@ -0,0 +1,94 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1432823771
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of full-length collapsed pairs: 1
+Number of truncated collapsed pairs: 0
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	0	0	0
+50	0	1	0	0	1
diff --git a/validation/se/incl_adapter/combined_output/collapse/your_output.truncated b/validation/se/incl_adapter/combined_output/collapse/your_output.truncated
new file mode 100644
index 0000000..da50b05
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse/your_output.truncated
@@ -0,0 +1,4 @@
+ at M_AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/combined_output/collapse_truncated/info.json b/validation/se/incl_adapter/combined_output/collapse_truncated/info.json
new file mode 100644
index 0000000..e173107
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse_truncated/info.json
@@ -0,0 +1,6 @@
+{
+    "arguments": ["--combined-output", "--collapse", "--trimns"],
+    "return_code": 0,
+    "stderr": [
+    ]
+}
diff --git a/validation/se/incl_adapter/combined_output/collapse_truncated/input_1.fastq b/validation/se/incl_adapter/combined_output/collapse_truncated/input_1.fastq
new file mode 100644
index 0000000..b9a8d6e
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse_truncated/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCNAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/combined_output/collapse_truncated/your_output.settings b/validation/se/incl_adapter/combined_output/collapse_truncated/your_output.settings
new file mode 100644
index 0000000..4f9c164
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse_truncated/your_output.settings
@@ -0,0 +1,93 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1432823771
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 1
+Number of retained reads: 1
+Number of retained nucleotides: 49
+Average length of retained reads: 49
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	0	0
+1	0	0	0	0	0
+2	0	0	0	0	0
+3	0	0	0	0	0
+4	0	0	0	0	0
+5	0	0	0	0	0
+6	0	0	0	0	0
+7	0	0	0	0	0
+8	0	0	0	0	0
+9	0	0	0	0	0
+10	0	0	0	0	0
+11	0	0	0	0	0
+12	0	0	0	0	0
+13	0	0	0	0	0
+14	0	0	0	0	0
+15	0	0	0	0	0
+16	0	0	0	0	0
+17	0	0	0	0	0
+18	0	0	0	0	0
+19	0	0	0	0	0
+20	0	0	0	0	0
+21	0	0	0	0	0
+22	0	0	0	0	0
+23	0	0	0	0	0
+24	0	0	0	0	0
+25	0	0	0	0	0
+26	0	0	0	0	0
+27	0	0	0	0	0
+28	0	0	0	0	0
+29	0	0	0	0	0
+30	0	0	0	0	0
+31	0	0	0	0	0
+32	0	0	0	0	0
+33	0	0	0	0	0
+34	0	0	0	0	0
+35	0	0	0	0	0
+36	0	0	0	0	0
+37	0	0	0	0	0
+38	0	0	0	0	0
+39	0	0	0	0	0
+40	0	0	0	0	0
+41	0	0	0	0	0
+42	0	0	0	0	0
+43	0	0	0	0	0
+44	0	0	0	0	0
+45	0	0	0	0	0
+46	0	0	0	0	0
+47	0	0	0	0	0
+48	0	0	0	0	0
+49	0	0	1	0	1
diff --git a/validation/se/incl_adapter/combined_output/collapse_truncated/your_output.truncated b/validation/se/incl_adapter/combined_output/collapse_truncated/your_output.truncated
new file mode 100644
index 0000000..2681420
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/collapse_truncated/your_output.truncated
@@ -0,0 +1,4 @@
+ at MT_AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCC
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDEC
diff --git a/validation/se/incl_adapter/combined_output/discarded/info.json b/validation/se/incl_adapter/combined_output/discarded/info.json
new file mode 100644
index 0000000..20af351
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/discarded/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output", "--minlength", "999"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/combined_output/discarded/input_1.fastq b/validation/se/incl_adapter/combined_output/discarded/input_1.fastq
new file mode 100644
index 0000000..5945391
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/discarded/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/combined_output/discarded/your_output.settings b/validation/se/incl_adapter/combined_output/discarded/your_output.settings
new file mode 100644
index 0000000..04d1d45
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/discarded/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1529034138
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 999
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	1	1
diff --git a/validation/se/incl_adapter/combined_output/discarded/your_output.truncated b/validation/se/incl_adapter/combined_output/discarded/your_output.truncated
new file mode 100644
index 0000000..ace2e64
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/discarded/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+N
++
+!
diff --git a/validation/se/incl_adapter/combined_output/retained/info.json b/validation/se/incl_adapter/combined_output/retained/info.json
new file mode 100644
index 0000000..86b37b0
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/retained/info.json
@@ -0,0 +1,6 @@
+{
+    "arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/combined_output/retained/input_1.fastq b/validation/se/incl_adapter/combined_output/retained/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/retained/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/combined_output/retained/your_output.settings b/validation/se/incl_adapter/combined_output/retained/your_output.settings
new file mode 100644
index 0000000..0907f0f
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/retained/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 1756794576
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/combined_output/retained/your_output.truncated b/validation/se/incl_adapter/combined_output/retained/your_output.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/se/incl_adapter/combined_output/retained/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/crlf_newlines/info.json b/validation/se/incl_adapter/crlf_newlines/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/se/incl_adapter/crlf_newlines/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/crlf_newlines/input_1.fastq b/validation/se/incl_adapter/crlf_newlines/input_1.fastq
new file mode 100644
index 0000000..06b639e
--- /dev/null
+++ b/validation/se/incl_adapter/crlf_newlines/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/crlf_newlines/your_output.discarded b/validation/se/incl_adapter/crlf_newlines/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/crlf_newlines/your_output.settings b/validation/se/incl_adapter/crlf_newlines/your_output.settings
new file mode 100644
index 0000000..4e9e9bb
--- /dev/null
+++ b/validation/se/incl_adapter/crlf_newlines/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 667770639
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/crlf_newlines/your_output.truncated b/validation/se/incl_adapter/crlf_newlines/your_output.truncated
new file mode 100644
index 0000000..4124d5e
--- /dev/null
+++ b/validation/se/incl_adapter/crlf_newlines/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/defaults/info.json b/validation/se/incl_adapter/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/se/incl_adapter/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/defaults/input_1.fastq b/validation/se/incl_adapter/defaults/input_1.fastq
new file mode 100644
index 0000000..5945391
--- /dev/null
+++ b/validation/se/incl_adapter/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/defaults/your_output.discarded b/validation/se/incl_adapter/defaults/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/defaults/your_output.settings b/validation/se/incl_adapter/defaults/your_output.settings
new file mode 100644
index 0000000..4e9e9bb
--- /dev/null
+++ b/validation/se/incl_adapter/defaults/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 667770639
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/defaults/your_output.truncated b/validation/se/incl_adapter/defaults/your_output.truncated
new file mode 100644
index 0000000..4124d5e
--- /dev/null
+++ b/validation/se/incl_adapter/defaults/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/maxlength/info.json b/validation/se/incl_adapter/maxlength/info.json
new file mode 100644
index 0000000..8b6539a
--- /dev/null
+++ b/validation/se/incl_adapter/maxlength/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--maxlength", "13"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/maxlength/input_1.fastq b/validation/se/incl_adapter/maxlength/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/maxlength/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/maxlength/your_output.discarded b/validation/se/incl_adapter/maxlength/your_output.discarded
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/se/incl_adapter/maxlength/your_output.discarded
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/maxlength/your_output.settings b/validation/se/incl_adapter/maxlength/your_output.settings
new file mode 100644
index 0000000..24ee450
--- /dev/null
+++ b/validation/se/incl_adapter/maxlength/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2394757988
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 13
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	1	1
diff --git a/validation/se/incl_adapter/maxlength/your_output.truncated b/validation/se/incl_adapter/maxlength/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/minlength/info.json b/validation/se/incl_adapter/minlength/info.json
new file mode 100644
index 0000000..376e308
--- /dev/null
+++ b/validation/se/incl_adapter/minlength/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "999"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/minlength/input_1.fastq b/validation/se/incl_adapter/minlength/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/minlength/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/minlength/your_output.discarded b/validation/se/incl_adapter/minlength/your_output.discarded
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/se/incl_adapter/minlength/your_output.discarded
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/minlength/your_output.settings b/validation/se/incl_adapter/minlength/your_output.settings
new file mode 100644
index 0000000..3a0f30f
--- /dev/null
+++ b/validation/se/incl_adapter/minlength/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2314668317
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 999
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	0	1	1
diff --git a/validation/se/incl_adapter/minlength/your_output.truncated b/validation/se/incl_adapter/minlength/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/threads/one/info.json b/validation/se/incl_adapter/threads/one/info.json
new file mode 100644
index 0000000..ff5ec22
--- /dev/null
+++ b/validation/se/incl_adapter/threads/one/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "1"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/threads/one/input_1.fastq b/validation/se/incl_adapter/threads/one/input_1.fastq
new file mode 100644
index 0000000..5945391
--- /dev/null
+++ b/validation/se/incl_adapter/threads/one/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/threads/one/your_output.discarded b/validation/se/incl_adapter/threads/one/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/threads/one/your_output.settings b/validation/se/incl_adapter/threads/one/your_output.settings
new file mode 100644
index 0000000..4e9e9bb
--- /dev/null
+++ b/validation/se/incl_adapter/threads/one/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 667770639
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/threads/one/your_output.truncated b/validation/se/incl_adapter/threads/one/your_output.truncated
new file mode 100644
index 0000000..4124d5e
--- /dev/null
+++ b/validation/se/incl_adapter/threads/one/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/threads/three/info.json b/validation/se/incl_adapter/threads/three/info.json
new file mode 100644
index 0000000..afe6307
--- /dev/null
+++ b/validation/se/incl_adapter/threads/three/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "3"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/threads/three/input_1.fastq b/validation/se/incl_adapter/threads/three/input_1.fastq
new file mode 100644
index 0000000..5945391
--- /dev/null
+++ b/validation/se/incl_adapter/threads/three/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/threads/three/your_output.discarded b/validation/se/incl_adapter/threads/three/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/threads/three/your_output.settings b/validation/se/incl_adapter/threads/three/your_output.settings
new file mode 100644
index 0000000..4e9e9bb
--- /dev/null
+++ b/validation/se/incl_adapter/threads/three/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 667770639
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/threads/three/your_output.truncated b/validation/se/incl_adapter/threads/three/your_output.truncated
new file mode 100644
index 0000000..4124d5e
--- /dev/null
+++ b/validation/se/incl_adapter/threads/three/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/threads/two/info.json b/validation/se/incl_adapter/threads/two/info.json
new file mode 100644
index 0000000..6623cb4
--- /dev/null
+++ b/validation/se/incl_adapter/threads/two/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--threads", "2"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/threads/two/input_1.fastq b/validation/se/incl_adapter/threads/two/input_1.fastq
new file mode 100644
index 0000000..5945391
--- /dev/null
+++ b/validation/se/incl_adapter/threads/two/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/threads/two/your_output.discarded b/validation/se/incl_adapter/threads/two/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/threads/two/your_output.settings b/validation/se/incl_adapter/threads/two/your_output.settings
new file mode 100644
index 0000000..4e9e9bb
--- /dev/null
+++ b/validation/se/incl_adapter/threads/two/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 667770639
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/threads/two/your_output.truncated b/validation/se/incl_adapter/threads/two/your_output.truncated
new file mode 100644
index 0000000..4124d5e
--- /dev/null
+++ b/validation/se/incl_adapter/threads/two/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/trimns/excl_ns/info.json b/validation/se/incl_adapter/trimns/excl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/excl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/trimns/excl_ns/input_1.fastq b/validation/se/incl_adapter/trimns/excl_ns/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/excl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/trimns/excl_ns/your_output.discarded b/validation/se/incl_adapter/trimns/excl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/trimns/excl_ns/your_output.settings b/validation/se/incl_adapter/trimns/excl_ns/your_output.settings
new file mode 100644
index 0000000..2fef2ce
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/excl_ns/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2489899758
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/trimns/excl_ns/your_output.truncated b/validation/se/incl_adapter/trimns/excl_ns/your_output.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/excl_ns/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/trimns/incl_ns/info.json b/validation/se/incl_adapter/trimns/incl_ns/info.json
new file mode 100644
index 0000000..2e4e611
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/incl_ns/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimns"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/trimns/incl_ns/input_1.fastq b/validation/se/incl_adapter/trimns/incl_ns/input_1.fastq
new file mode 100644
index 0000000..c878c4e
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/incl_ns/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCNNNNNNNNATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/trimns/incl_ns/your_output.discarded b/validation/se/incl_adapter/trimns/incl_ns/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/trimns/incl_ns/your_output.settings b/validation/se/incl_adapter/trimns/incl_ns/your_output.settings
new file mode 100644
index 0000000..362362a
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/incl_ns/your_output.settings
@@ -0,0 +1,86 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2566824554
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: Yes
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 44
+Average length of retained reads: 44
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	1	0	1
diff --git a/validation/se/incl_adapter/trimns/incl_ns/your_output.truncated b/validation/se/incl_adapter/trimns/incl_ns/your_output.truncated
new file mode 100644
index 0000000..a84542f
--- /dev/null
+++ b/validation/se/incl_adapter/trimns/incl_ns/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGC
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFF
diff --git a/validation/se/incl_adapter/trimqualities/default/info.json b/validation/se/incl_adapter/trimqualities/default/info.json
new file mode 100644
index 0000000..853a8b6
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/default/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/trimqualities/default/input_1.fastq b/validation/se/incl_adapter/trimqualities/default/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/default/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/trimqualities/default/your_output.discarded b/validation/se/incl_adapter/trimqualities/default/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/trimqualities/default/your_output.settings b/validation/se/incl_adapter/trimqualities/default/your_output.settings
new file mode 100644
index 0000000..9a1995c
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/default/your_output.settings
@@ -0,0 +1,92 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2679028121
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 50
+Average length of retained reads: 50
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	0	0	0
+46	0	0	0
+47	0	0	0
+48	0	0	0
+49	0	0	0
+50	1	0	1
diff --git a/validation/se/incl_adapter/trimqualities/default/your_output.truncated b/validation/se/incl_adapter/trimqualities/default/your_output.truncated
new file mode 100644
index 0000000..80b925d
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/default/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCT
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECC
diff --git a/validation/se/incl_adapter/trimqualities/minq36/info.json b/validation/se/incl_adapter/trimqualities/minq36/info.json
new file mode 100644
index 0000000..6d29db8
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/minq36/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--trimqualities", "--minquality", "36"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/incl_adapter/trimqualities/minq36/input_1.fastq b/validation/se/incl_adapter/trimqualities/minq36/input_1.fastq
new file mode 100644
index 0000000..3aa27aa
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/minq36/input_1.fastq
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCAGGCCTAGATCGGAAGAGCACACGTCTGAACTCCAGTCACAAGGGCATCTCGTATG
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFFEDECCBCCBCBEBCDBABABA?A@?@?>==>==<><<:<996978544100-,)!
diff --git a/validation/se/incl_adapter/trimqualities/minq36/your_output.discarded b/validation/se/incl_adapter/trimqualities/minq36/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/incl_adapter/trimqualities/minq36/your_output.settings b/validation/se/incl_adapter/trimqualities/minq36/your_output.settings
new file mode 100644
index 0000000..bca4f41
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/minq36/your_output.settings
@@ -0,0 +1,87 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 2816594278
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 36: Yes
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 45
+Average length of retained reads: 45
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	0	0
+1	0	0	0
+2	0	0	0
+3	0	0	0
+4	0	0	0
+5	0	0	0
+6	0	0	0
+7	0	0	0
+8	0	0	0
+9	0	0	0
+10	0	0	0
+11	0	0	0
+12	0	0	0
+13	0	0	0
+14	0	0	0
+15	0	0	0
+16	0	0	0
+17	0	0	0
+18	0	0	0
+19	0	0	0
+20	0	0	0
+21	0	0	0
+22	0	0	0
+23	0	0	0
+24	0	0	0
+25	0	0	0
+26	0	0	0
+27	0	0	0
+28	0	0	0
+29	0	0	0
+30	0	0	0
+31	0	0	0
+32	0	0	0
+33	0	0	0
+34	0	0	0
+35	0	0	0
+36	0	0	0
+37	0	0	0
+38	0	0	0
+39	0	0	0
+40	0	0	0
+41	0	0	0
+42	0	0	0
+43	0	0	0
+44	0	0	0
+45	1	0	1
diff --git a/validation/se/incl_adapter/trimqualities/minq36/your_output.truncated b/validation/se/incl_adapter/trimqualities/minq36/your_output.truncated
new file mode 100644
index 0000000..374a572
--- /dev/null
+++ b/validation/se/incl_adapter/trimqualities/minq36/your_output.truncated
@@ -0,0 +1,4 @@
+ at AAGGGCSeq_1_5180_50/1 meta data
+ACATGACTAACACCCTTAATTCCATCCACCCTCCTCTCCCTAGCA
++
+IJJHJJIJIIHJHHIGIHIGGGIGFGEFGGFGGEHGFHGFEDFFF
diff --git a/validation/se/only_adapter/collapse/info.json b/validation/se/only_adapter/collapse/info.json
new file mode 100644
index 0000000..22bb852
--- /dev/null
+++ b/validation/se/only_adapter/collapse/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--collapse"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/only_adapter/collapse/input_1.fastq b/validation/se/only_adapter/collapse/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/se/only_adapter/collapse/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/se/only_adapter/collapse/your_output.collapsed b/validation/se/only_adapter/collapse/your_output.collapsed
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/only_adapter/collapse/your_output.collapsed.truncated b/validation/se/only_adapter/collapse/your_output.collapsed.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/only_adapter/collapse/your_output.discarded b/validation/se/only_adapter/collapse/your_output.discarded
new file mode 100644
index 0000000..406f567
--- /dev/null
+++ b/validation/se/only_adapter/collapse/your_output.discarded
@@ -0,0 +1,4 @@
+ at M_CTTTGTSeq_1_14286_0/1 meta data
+
++
+
diff --git a/validation/se/only_adapter/collapse/your_output.settings b/validation/se/only_adapter/collapse/your_output.settings
new file mode 100644
index 0000000..b798ef7
--- /dev/null
+++ b/validation/se/only_adapter/collapse/your_output.settings
@@ -0,0 +1,44 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4215296776
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: Yes
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of full-length collapsed pairs: 0
+Number of truncated collapsed pairs: 0
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Collapsed	CollapsedTruncated	Discarded	All
+0	0	0	0	1	1
diff --git a/validation/se/only_adapter/collapse/your_output.truncated b/validation/se/only_adapter/collapse/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/only_adapter/combined_output/discarded/info.json b/validation/se/only_adapter/combined_output/discarded/info.json
new file mode 100644
index 0000000..f3d8f4d
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/discarded/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--combined-output"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/only_adapter/combined_output/discarded/input_1.fastq b/validation/se/only_adapter/combined_output/discarded/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/discarded/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/se/only_adapter/combined_output/discarded/your_output.settings b/validation/se/only_adapter/combined_output/discarded/your_output.settings
new file mode 100644
index 0000000..de5135c
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/discarded/your_output.settings
@@ -0,0 +1,42 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 913821732
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
diff --git a/validation/se/only_adapter/combined_output/discarded/your_output.truncated b/validation/se/only_adapter/combined_output/discarded/your_output.truncated
new file mode 100644
index 0000000..f7497a4
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/discarded/your_output.truncated
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+N
++
+!
diff --git a/validation/se/only_adapter/combined_output/retained/info.json b/validation/se/only_adapter/combined_output/retained/info.json
new file mode 100644
index 0000000..fa6e1e2
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/retained/info.json
@@ -0,0 +1,6 @@
+{
+    "arguments": ["--combined-output", "--minlength", "0"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/only_adapter/combined_output/retained/input_1.fastq b/validation/se/only_adapter/combined_output/retained/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/retained/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/se/only_adapter/combined_output/retained/your_output.settings b/validation/se/only_adapter/combined_output/retained/your_output.settings
new file mode 100644
index 0000000..1f993f8
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/retained/your_output.settings
@@ -0,0 +1,42 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 984265443
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 0
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	1	0	1
diff --git a/validation/se/only_adapter/combined_output/retained/your_output.truncated b/validation/se/only_adapter/combined_output/retained/your_output.truncated
new file mode 100644
index 0000000..7ace1c2
--- /dev/null
+++ b/validation/se/only_adapter/combined_output/retained/your_output.truncated
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+
++
+
diff --git a/validation/se/only_adapter/crlf_newlines/info.json b/validation/se/only_adapter/crlf_newlines/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/se/only_adapter/crlf_newlines/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/only_adapter/crlf_newlines/input_1.fastq b/validation/se/only_adapter/crlf_newlines/input_1.fastq
new file mode 100644
index 0000000..f8b1c49
--- /dev/null
+++ b/validation/se/only_adapter/crlf_newlines/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/se/only_adapter/crlf_newlines/your_output.discarded b/validation/se/only_adapter/crlf_newlines/your_output.discarded
new file mode 100644
index 0000000..7ace1c2
--- /dev/null
+++ b/validation/se/only_adapter/crlf_newlines/your_output.discarded
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+
++
+
diff --git a/validation/se/only_adapter/crlf_newlines/your_output.settings b/validation/se/only_adapter/crlf_newlines/your_output.settings
new file mode 100644
index 0000000..a3d0412
--- /dev/null
+++ b/validation/se/only_adapter/crlf_newlines/your_output.settings
@@ -0,0 +1,42 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4288002672
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
diff --git a/validation/se/only_adapter/crlf_newlines/your_output.truncated b/validation/se/only_adapter/crlf_newlines/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/only_adapter/defaults/info.json b/validation/se/only_adapter/defaults/info.json
new file mode 100644
index 0000000..b5e48cf
--- /dev/null
+++ b/validation/se/only_adapter/defaults/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": [],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/only_adapter/defaults/input_1.fastq b/validation/se/only_adapter/defaults/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/se/only_adapter/defaults/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/se/only_adapter/defaults/your_output.discarded b/validation/se/only_adapter/defaults/your_output.discarded
new file mode 100644
index 0000000..7ace1c2
--- /dev/null
+++ b/validation/se/only_adapter/defaults/your_output.discarded
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+
++
+
diff --git a/validation/se/only_adapter/defaults/your_output.settings b/validation/se/only_adapter/defaults/your_output.settings
new file mode 100644
index 0000000..a3d0412
--- /dev/null
+++ b/validation/se/only_adapter/defaults/your_output.settings
@@ -0,0 +1,42 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 4288002672
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 15
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 1
+Number of singleton mate 1 reads: 0
+Number of reads with adapters[1]: 1
+Number of retained reads: 0
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	0	1	1
diff --git a/validation/se/only_adapter/defaults/your_output.truncated b/validation/se/only_adapter/defaults/your_output.truncated
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/only_adapter/minlength/info.json b/validation/se/only_adapter/minlength/info.json
new file mode 100644
index 0000000..8f2c60a
--- /dev/null
+++ b/validation/se/only_adapter/minlength/info.json
@@ -0,0 +1,6 @@
+{
+	"arguments": ["--minlength", "0"],
+	"return_code": 0,
+	"stderr": [
+	]
+}
diff --git a/validation/se/only_adapter/minlength/input_1.fastq b/validation/se/only_adapter/minlength/input_1.fastq
new file mode 100644
index 0000000..bb33ab3
--- /dev/null
+++ b/validation/se/only_adapter/minlength/input_1.fastq
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+AGATCGGAAGAGCACACGTCTGAACTCCATTCACCTTTGTATCTCGTATGCCGTCTTCTGCTTGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++
+JGIJJJIJIJJGJGJIHHHGGIGIHGHGGGHEHEGFDFGEEEEGCFDDCCECDCBBCBBACCAA at BACB?>>>>?;=<;=<<::;:9777664010.-)!
diff --git a/validation/se/only_adapter/minlength/your_output.discarded b/validation/se/only_adapter/minlength/your_output.discarded
new file mode 100644
index 0000000..e69de29
diff --git a/validation/se/only_adapter/minlength/your_output.settings b/validation/se/only_adapter/minlength/your_output.settings
new file mode 100644
index 0000000..94e7787
--- /dev/null
+++ b/validation/se/only_adapter/minlength/your_output.settings
@@ -0,0 +1,42 @@
+AdapterRemoval ver. 2.1.7
+Trimming of single-end reads
+
+
+[Adapter sequences]
+Adapter1[1]: AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG
+Adapter2[1]: AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT
+
+
+[Adapter trimming]
+RNG seed: 120751608
+Alignment shift value: 2
+Global mismatch threshold: 0.333333
+Quality format (input): Phred+33
+Quality score max (input): 41
+Quality format (output): Phred+33
+Quality score max (output): 41
+Mate-number seperator (input): '/'
+Trimming Ns: No
+Trimming Phred scores <= 2: No
+Minimum genomic length: 0
+Maximum genomic length: 4294967295
+Collapse overlapping reads: No
+Minimum overlap (in case of collapse): 11
+Minimum adapter overlap: 0
+
+
+[Trimming statistics]
+Total number of reads: 1
+Number of unaligned reads: 0
+Number of well aligned reads: 1
+Number of discarded mate 1 reads: 0
+Number of singleton mate 1 reads: 1
+Number of reads with adapters[1]: 1
+Number of retained reads: 1
+Number of retained nucleotides: 0
+Average length of retained reads: 0
+
+
+[Length distribution]
+Length	Mate1	Discarded	All
+0	1	0	1
diff --git a/validation/se/only_adapter/minlength/your_output.truncated b/validation/se/only_adapter/minlength/your_output.truncated
new file mode 100644
index 0000000..7ace1c2
--- /dev/null
+++ b/validation/se/only_adapter/minlength/your_output.truncated
@@ -0,0 +1,4 @@
+ at CTTTGTSeq_1_14286_0/1 meta data
+
++
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/adapterremoval.git



More information about the debian-med-commit mailing list