Differences Uclust vs Usearch

160 views
Skip to first unread message

daniele pietrucci

unread,
Apr 10, 2017, 9:15:53 AM4/10/17
to Qiime 1 Forum
Hi,
I'm trying to understand the differencies between Uclust and Usearch.
I've studied the Usearch algorithm and it was pretty clear, with a very good explanation of the unique word counts (http://drive5.com/usearch/manual/usearch_flow.html - http://drive5.com/usearch/manual/usearch_algo.html). I've read that Uclust employs USEARCH as a subroutine (https://doi.org/10.1093/bioinformatics/btq461), but I didnt understand how it works. I thought that sequences were sorted and then clustered in UCLUST, so how USEARCH is involved in this clustering process? What is the Uclust strategy?

I've noticed that the user chan choose between Usearch and Uclust in the OTU picking ("pick_otus.py") step, but only Uclust is avalaible in the "assign_taxonomy.py". The Uclust consensus taxonomy assigner is a different version of the Uclust clustering algorithm?

Thanks very much for any help or suggestion!

Colin Brislawn

unread,
Apr 10, 2017, 1:31:38 PM4/10/17
to Qiime 1 Forum
Good morning Daniele,

Great question. I think that part of the confusion comes from the fact that these are all made by the same solo developer, who has reused the same names for multiple things.

Robert Edgar, famous for the MUSCLE program that performs MSA, released a fast, heuristic program for search and clustering. It's in this paper: 

This program was originally called uclust, then the name was changed to usearch because the core search algorithm is broadly applicable for all kinds of biological search, not just clustering. So the program / algorithm call uclust, is now called usearch. This algorithm is now released in the program called usearch, which is confusing because it's same same algorithm implemented in the original uclust program.

The usearch algorithm has also been implemented in the open-source program VSEARCH: 

Qiime1 has scripts that make use of different versions of Robert Edgar's software. For example, assign_taxonony.py uses the old version, uclust, for search. The pick_otus.py script does clustering with many different software packages, including the default (old uclust) and two newer version of this program (usearch and usearch61). 

Does this help answer your question?
Colin


Reply all
Reply to author
Forward
0 new messages