Current release: v0.0.5
RecMpox is a command-line tool that flags potential recombination events in monkeypox viruses. It does not confirm recombination, but highlights genomes that may be recombinant and warrant further investigation. RecMpox works by detecting regions within a genome that appear to originate from two different parental viruses. Such patterns are not conclusive evidence of recombination, as similar signals can also arise from shared ancestral variation, convergent mutations, mixed populations (e.g., co-infections or laboratory contamination), or sequencing and assembly errors.
-phylogeny, RecMpox builds trees from the extracted Ia and Ib tract sequences and infers the nearest outbreak ancestor for each tract, which helps confirm or reject recombination.-phylogeny: Phylogeny folder with alignment, midpoint-rooted tree, and PDF/SVG figures; the tree is also included in the HTML report.⚠️ Note: RecMpox is primarily designed to investigate potential recombination between viruses circulating in sustained human outbreaks (for example, SH2017, SH2023b, and SH2024a). Outside this context, the most robust strategy is to combine MDRF with phylogeny to reduce false positives: elevated MDRF can reflect ancestral structures rather than true recombination, but if both tracts cluster within the same outbreak in the phylogeny, recombination can be excluded. Alternatively, select reference genomes that are genetically close to your consensus sequences.
🔴 Caution — Intra-clade comparisons: When comparing within a clade, set the threshold higher than the default. Intra-clade comparisons yield far fewer diagnostic SNPs (e.g. as low as ~120 between Ia and Ib), meaning each individual SNP carries more weight and small percentages can arise from convergent evolution rather than true recombination. We recommend a minimum threshold of 20% (-m 20) for intra-clade recombinant screening.
First, install conda if you haven’t already:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Then, ensure you have the required channels:
conda config --add channels conda-forge
conda config --add channels bioconda
conda config --add channels defaults
conda config --set channel_priority strict
Standard install RecMpox via Conda:
conda create -n recmpox -c conda-forge -c bioconda recmpox -y
conda activate recmpox
OR, if the above fails:
conda create -y -n recmpox -c conda-forge -c bioconda recmpox python=3.11 --solver libmamba --strict-channel-priority
conda activate recmpox
git clone https://github.com/DaanJansen94/RecMpox.git
cd RecMpox
conda env create -f environment-recmpox.yml
conda activate recmpox
pip install .
conda activate recmpox # Make sure you're in the right environment
cd RecMpox
git pull # Get the latest updates from GitHub
conda env update -n recmpox -f environment-recmpox.yml --prune
pip uninstall -y recmpox
pip install .
# Use built-in references: consensus of 5 earliest genomes obtained from sustained outbreaks
recmpox -i fasta/ -o output -ref Ia,Ib -t 4
recmpox -i fasta/ -o output -ref Ib,IIb -t 4
recmpox -i fasta/ -o output -ref Ia,Ib -phylogeny
# Input can be: FASTA file, directory of .fa/.fasta/.fna, or NCBI accession(s)
recmpox -i consensus.fa -o output -ref Ia,Ib
recmpox -i OZ375330.1 -o output -ref Ib,IIb # UK recombinant case example
recmpox -i accessions.txt -o output -ref Ia,Ib # one accession per line or comma-separated
Note: Either -ref (e.g. Ia,Ib, IIa,IIb, or Ib,IIb) or both -ref1 and -ref2 are required. With -ref, RecMpox downloads the earliest 5 genomes per selected clade (via Pathoplexus) and builds one consensus reference per clade, which are then used as -ref1/-ref2 for the run.
-i, --input: Input: FASTA file, directory of .fa/.fasta/.fna, .txt file of accessions (one per line or comma-separated), or NCBI accession(s). Accessions are downloaded and used as queries.-ref: Reference pair: Ia,Ib or IIa,IIb. Uses built-in defaults.-ref1, -ref2: Custom references (path or NCBI accession). Use with -ref1_g/-ref2_g for labels (e.g. -ref1_g Ia -ref2_g Ib).-o, --output: Output directory-ref1_g, -ref2_g: Genotype labels for TSV/HTML (default from -ref or accession)-m, -MDRF: Minor diagnostic recombinant fraction (%) threshold for calling “potential recombinant” (default: 10). Increase to be more conservative (e.g. 15, 20).-include-indels: Include diagnostic indels (default: SNPs only)-min-indel-size: Min indel length (bp) when using -include-indels (default: 100)-extract-tracts: Split recombinant genomes by ancestry-phylogeny: Phylogeny of recombinant ancestors-t, --threads: Number of threads-q, --quiet: Log to file only# Custom references
recmpox -i fasta/ -o output -ref1 NC_003310.1 -ref2 PP601219.1 -ref1_g Ia -ref2_g Ib -t 4
# Mixed clades (e.g. Ia vs IIb)
recmpox -i fasta/ -o output -ref1 ACC1 -ref2 ACC2 -ref1_g Ia -ref2_g IIb
# Phylogeny of recombinant tracts
recmpox -i fasta/ -o output -ref Ia,Ib -phylogeny
Example HTML output for one sample:

If you use RecMpox in your research, please cite:
Jansen, D., & Vercauteren, K. RecMpox: A Command-Line Tool for Flagging Potential Recombination Events in Monkeypox Viruses (v0.0.5). Zenodo. https://doi.org/10.5281/zenodo.18495962
RecMpox integrates several external bioinformatics tools. Please also cite these tools as appropriate when using RecMpox:
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
If you encounter any problems or have questions, please open an issue on GitHub.