BioMate represents a collection of scripts and utility tools for everyday processing of biological data, conveniently gathered into a single Python package.
To check the package information and available sub-commands, you can run biomate --help.
- Blabber - FASTA, FASTQ or plain text sequence generator. It can be used to re-generate a demultiplexed flowcell folder using a sample sheet as input.
- Dirstruct - Extract or create a directory structure. It can be used to simulate nested folder structures for testing purposes.
- Indexer - Indexing tool for FASTA/FASTQ files. It can be used to search for expected indexes and get 'fuzzy' information.
- FastRewind - Convert a demultiplexed folder back into the Illumina NovaSeqXPlus output. It can be used to generate a subset for demultiplex testing.
- Nspector - Inspect FASTQ files for N-base content and their distribution across flowcell tiles and sequencing cycles.
- Strainer - Evaluate index mixing across flowcell lanes by identifying sample indexes from one lane appearing in undetermined reads of another.
- Waif - Report the barcodes that remain undetermined in every demultiplexing run of a lane, with an estimated read count.
In addition to the --version option, which prints the current version of the BioMate package, the following options can be provided before any sub-command (e.g. biomate <OPTION> <SUBCOMMAND>), and they will be propagated to the sub-command execution:
--verbose: Increase verbosity of the output by setting the logging level toDEBUG. This will print additional information about the execution of the sub-command.--quiet: Decrease verbosity of the output by setting the logging level toERROR. This will suppress most of the output, only printing errors.
Note: By default, the logging level is set to
INFO, which will print general information about the execution of the sub-command, but not the detailed debug information.
Important: In some cases (e.g. when the output will be printed to the standard output), the
--quietoption will be applied automatically to avoid cluttering the output with unnecessary information. In such cases, the logging level will be set toERRORregardless of the--verboseor--quietoptions.
The demultiplexing test recipes (e.g. make test_mix) require the Illumina BCL-convert executable. BCL-convert is a proprietary Illumina tool whose redistribution is prohibited, so it is not included in this repository. To use it:
- Download BCL-convert from the Illumina website and accept the license terms.
- Place the
bcl-convertexecutable in theassets/directory of this repository, i.e. asassets/bcl-convert. - The file is listed in
.gitignoreand must never be committed.
The Makefile looks for the executable at assets/bcl-convert by default. If the tool is installed elsewhere, set the BCLCONVERT variable to its full path (e.g. make BCLCONVERT=/full/path/to/bcl-convert test_mix).
BCL-convert opens thousands of BCL and filter files in parallel, so it needs a high open-file (nofile) limit. The Makefile raises the soft limit to BCLCONVERT_NOFILE (default 65535) in the same shell that runs BCL-convert, and aborts with an actionable error if the resulting limit is below BCLCONVERT_MIN_NOFILE (default 4096). If your session cannot reach that minimum (for example, when the hard limit is 1024), raise it before running the recipes:
ulimit -Sn 65535
or add a nofile entry to /etc/security/limits.conf. Otherwise BCL-convert aborts in strict mode with a misleading Missing ... file error.