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 or try the 10x single-cell long-read RNA-Seq tutorial.
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.fastqBarcode 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.txtError-tolerant search
Flexiplex can perform an error-tolerant grep-like search for a single sequence.
flexiplex -x "CACTCTTGCCTACGCCACTAGC" -d grep -f 3 reads.fastaAnd more!
For documentation visit https://davidsongroup.github.io/flexiplex/.
For usage information type flexiplex -h and flexiplex-filter -h.
Precompiled binaries for Flexiplex are located in the Releases section. You can also install Flexiplex using Anaconda: conda install -c bioconda -c conda-forge flexiplex
flexiplex-filter can be installed locally using Make, but we recommend using the uv package manager, which will automatically manage dependencies in a temporary virtualenv. Just invoke flexiplex-filter using
uvx --from git+https://github.com/davidsongroup/flexiplex.git#subdirectory=scripts \
flexiplex-filter --helpTo 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