Skip to main content

SonicParanoid: fast, easy and accurate orthology inference

Project description

Downloads Latest version Python versions License


A fast, accurate and easy to use orthology inference tool.


SonicParanoid is a stand-alone software for the identification of orthologous relationships among multiple species. SonicParanoid is an open source software released under the GNU GENERAL PUBLIC LICENSE, Version 3.0 (GPLv3), implemented in Python3, Cython, and C++. It works on Linux and Mac OSX.


The software is designed to run using multiple processors and proved to be up to 1245X faster than InParanoid, generally faster than avaliable tools, with an accuracy comparable to that of well-established orthology inference tools.


SonicParanoid was tested on the 2011 and 2018 versions of a benchmark proteome datasets provided by the Quest for Orthologs (QfO) consortium (, and its accuracy was assessed, and compared to that of many other methods, using a publicly available orthology benchmarking service (

Easy to use

Thanks to its speed, accuracy, and usability SonicParanoid substantially relieves the difficulties of orthology inference for biologists who need to construct and maintain their own genomic datasets.


For more detail on how to use and install SonicParanoid go its web-page:


Salvatore Cosentino and Wataru Iwasaki (2018) SonicParanoid: fast, accurate and easy orthology inference.
Bioinformatics. Volume 35, Issue 1, 1 January 2019, Pages 149–151,


1.3.5 (December 11, 2020)

  • Enhancement: by default alignments are now compressed using the DEFLATE method in order to save storage space. The default compression level is 5 but it can be changed using the --compression-lev parameter.
  • Enhancement: reduces the I/O operations.
  • Usability: Added guide for the installation using CONDA to the web-page
  • Usability: removed homebrew as a requirement on MacOS
  • Usability: general improvements to the web-page
  • Maintenance: added filetype as a dependency
  • Fix: Execution error when using python 3.6

1.3.4 (July 25, 2020)

  • Enhancement: execution is 5~10% faster when many small proteomes are given input (e.g. > 1000)
  • Enhancement: considerably reduced IO when generating the alignments
  • Enhancement: when the available CPUs are more than the required alignment jobs these will be equally split between jobs instead of using 1 thread per job. This considerably reduces execution times when few big proteomes are in input, and many threads are available.
  • Enhancement: more informative output from the command line
  • Enhancement: output directories are now easier to browse even when many input files are provided
  • Enhancement: MCL binaries automatically installed for Linux and MacOS
  • Enhancement: warnings are shown only in debug mode
  • Enhancement: avoid users to restart a run using a different MMseqs sensitivity
  • Enhancement: automatically remove incomplete alignments when restarting a run
  • Maintenance: added wheel as a dependency and removed sh
  • Maintenance: upgraded to MMseqs2 version 11-e1a1c
  • Fix: Inconsistent results when using non-indexed target databases. Big thanks to Keito for providing the dataset.
  • Fix: wrongly formatted execution times in the alignments stats file.
  • Breaking change: alignments and ortholog tables are now organized into subdirectories, please check the web-page for details

1.3.2 (April 23, 2020)

  • Enhancement: Added support for Python 3.8
  • Maintenance: Increased minimum version for packages, Cython(0.29); pandas(1.0); numpy(1.18); scikit-learn(0.22); scipy(1.2.1); mypy(0.720); biopython(1.73)
  • Maintenance: Retrained prediction models using the latest version scikit-learn (0.22)
  • Fix: Too many open files error. Big thanks to Eva Deutekom
  • Fix: Removed scikit-lean warnings

1.3.0 (November 26, 2019)

  • Enhancement: SonicParanoid is much faster when using high sensitivity modes! Check the web-page
  • Enhancement: run directory names embed information about the run settings
  • Enhancement: generated temporary files are much smaller now
  • Fix: error with only 2 input species. Big thanks to Benjamin Hume
  • Fix: force overwriting of MMseqs2 binaries if the version is different from the supported one
  • Usability: Tested on Arch-based Manjaro Linux
  • Others: Big thanks to Shun Yamanouchi for providing some challenging datasets used for testing
  • Maintenance: upgraded to MMseqs2 version 10-6d92c

1.2.6 (August 26, 2019)

  • Fix: to many files open error which sometimes happened when using more than 20 threads

1.2.5 (August 7, 2019)

  • Fix: Logical threads are considered instead of physical cores in the adjustment of the threads number
  • Requirements: a minimum of 1.75 gigabytes per thread is required (the number of threads is automatically adjusted)
  • Enhancement: added parameter --force-all-threads to bypass the check for minimum per-thread memory

1.2.4 (July 14, 2019)

  • Enhancement: Added control to avoid selecting a number threads higher than the available physical CPU cores (big thanks to Shun Yamanouchi)
  • Fix: Removed some scipy warnings, now shown only in debug mode (thanks to Alexie Papanicolaou)
  • Requirements: psutils>=5.6.0 is now required
  • Requirements: mypy>=0.701 is now required
  • Requirements: at least Python 3.6 is now required

1.2.3 (June 7, 2019)

  • Enhancement: some error messages are more informative (big thanks to Jeff Stein)

1.2.2 (May 13, 2019)

  • Fix: solved a bug that caused MCL to be not properly compiled on some Linux distributions
  • Info: source code migrated to GitLab

1.2.1 (May 10, 2019)

  • Fix: solved bug related to random missing alignments
  • Info: this issue was first described in here

1.2.0 (April 26, 2019)

  • Change: Markov Clustering (MCL) is now used by default for the creation of ortholog groups
  • Enhancement: the MCL inflation can be controlled through the parameter --inflation
  • Enhancement: Output file with single-copy ortholog groups
  • Feature: single-linkage clustering for ortholog groups creation through the --single-linkage parameter
  • Enhancement: added secondary program to filter ortholog groups
  • Info: type sonicparanoid-extract --help to see the list of options
  • Enhancement: Filter ortholog groups by species ID
  • Enhancement: Filter ortholog groups by species composition (e.g. only groups with a given number of species)
  • Enhancement: Extract FASTA sequences of orthologs in selected groups
  • Fix: The correct version of SonicParanoid is now shown in the help
  • Others: General bug fixes and under-the-hood improvements

1.1.2 (March, 2019)

  • Enhancement: Filter ortholog groups by species ID
  • Enhancement: Filter ortholog groups by species composition (e.g. only groups with a given number of species)
  • Enhancement: Extract FASTA files corresponding orthologs in selected groups
  • Fix: The correct version of SonicParanoid is now shown in the help

1.1.1 (January 24, 2019)

  • Enhancement: No restriction on file names
  • Enhancement: No restriction on symbols used in FASTA headers
  • Enhancement: Added file with genes that could not be inserted in any group (not orthologs)
  • Enhancement: Added some statistics on the predicted ortholog groups
  • Enhancement: Update runs are automatically detected
  • Enhancement: Improved inference of in-paralogs
  • Enhancement: The directory structure has been redesigned to better support run updated

1.0.14 (October 19, 2018)

  • Enhancement: a warning is shown if non-protein sequences are given in input
  • Enhancement: upgraded to MMseqs2 6-f5a1c
  • Enhancement: SonicParanoid is now available through Bioconda

1.0.13 (September 18, 2018)

  • Fix: allow FASTA headers containing the '@' symbol

1.0.12 (September 7, 2018)

  • Improved accuracy
  • Added new sensitivity mode (most-sensitive)
  • Fix: internal input directory is wiped at every new run
  • Fix: available disk space calculation

1.0.11 (August 7, 2018)

  • Added new program (sonicparanoid-extract) to process output multi-species clusters
  • Added the possibility to analyse only 2 proteomes
  • Added support for Python3.7
  • Python3 versions: 3.5, 3.6, 3.7
  • Upgraded MMseqs2 (commit: a856ce, August 6, 2018)

1.0.9 (May 10, 2018)

  • First public release
  • Python3 versions: 3.4, 3.5, 3.6

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for sonicparanoid, version 1.3.5
Filename, size File type Python version Upload date Hashes
Filename, size sonicparanoid-1.3.5-cp37-cp37m-macosx_10_14_x86_64.whl (40.2 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size sonicparanoid-1.3.5.tar.gz (39.6 MB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page