Flexiplex is a fast, multithreaded, and user-configurable demultiplexer. Given a set of reads as either FASTQ or FASTA, it will demultiplex and/or identify a sequence of interest, reporting matching reads and read-barcode assignment. Flexiplex works in two modes: (i) when one or more sequences of interest are known, such as barcodes, and (ii) discovery mode—when only the sequence which flanks the region of interest is known.
For a detailed description of how Flexiplex works and compares against other tools, please see our paper.
Below are a few things that Flexiplex can do, but we recommend you check out the documentation for a more detailed guide.
Assign reads - short reads or single-cell long reads - to cellular barcodes
Presets for various chemistries, including 10x Chromium and Visium, are available in the docs.
flexiplex -d 10x3v3 -k barcode_list.txt reads.fastq > new_reads.fastq
Barcode discovery directly from long reads
Flexiplex can search for barcodes, filter against a whitelist, and remove empty droplets using an inflection point method.
flexiplex -f 0 reads.fastq
flexiplex-filter --whitelist 3M-february-2018.txt --outfile filtered.txt flexiplex_barcodes_counts.txt
Error-tolerant search
Flexiplex can perform an error-tolerant grep-like search for a single sequence.
flexiplex -x "CACTCTTGCCTACGCCACTAGC" -d grep -f 3 reads.fasta
And more!
For documentation visit https://davidsongroup.github.io/flexiplex/.
For usage information type flexiplex -h
and flexiplex-filter -h
.
Precompiled binaries are located in bin/
. You can also install Flexiplex using Anaconda: conda install -c bioconda -c conda-forge flexiplex
To compile flexiplex, ensure that gcc is installed, then run:
make
To install flexiplex-filter and binaries into /usr/local/bin, ensure that python3.9
, and python-pip
are installed, then run:
make install
To uninstall, run:
make uninstall