USEARCH 64-bit is now FREE!

In June 2024 Robert Edgar donated binaries for versions 5 through 11 of USEARCH to the public domain. You can now download them for free, including the 64-bit versions that used to cost $1,500, from this GitHub repository. At the same time USEARCH version 12 was launched as an open-source project at https://github.com/rcedgar/usearch12. See this paper announcing the open-source project.

Reference

Zhou Y, Liu YX, Li X. 2024. USEARCH 12: Open-source software for sequencing analysis in bioinformatics and microbiome. Imeta 3:e236.

RDP Website Discontinued

After more than 30 years in one form or another, the RDP website is no more. The server has died, the code is old, funding is exhausted, staff have retired or moved on. Developed in the pyrosequencing era, the pipeline tools are overwhelmed by today’s larger Illumina data sets.

The website is survived by the stand-alone version of the RDP Classifier available on Sourceforge and the command line version of RDP Tools. The later can be installed following the instructions on this website and here. Knowing there are still users of FunGene, we were hoping to find someone to host it, but so far with no takers. We have a nearly functional Amazon machine image of FunGene that could be used to build new gene models for Xander. If you are interested in using it or taking over FunGene, please leave a comment or email me (see the contact page).

SeqKit

SeqKit is an excellent program with 32 sub-commands for manipulating fasta and fastq files. Its abilities include converting fastq to fasta format, extracting amplicon regions, dereplication, filtering by length, removing gaps and reverse complementing sequences, to name just a few. I find it particularly useful in sampling large sequence files for the purpose of creating smaller datasets to be used in developing processing pipelines. It can even rematch forward and reverse reads should they somehow become unmatched in your workflow.

SeqKit is most easily installed using one of the package managers conda, mamba or micromamba. For example:

micromamba create --name seqkit -c bioconda seqkit

After installation and activation, get a list of available commands with:

seqkit --help

and help on any of the individual commands with:

seqkit <command> --help

For example,

seqkit seq --help

Scanning FastQC Results for Many Files

The first step in working with sequencing data should always be evaluating its quality. This can be done with the FastQC program which generates html formatted reports you can read in your browser, but if you have hundreds of paired-read files, do you really want to examine them all one by one? I know I don’t, and so up until now I have been examining a subset, say 10 or 12 of the files. But I recently discovered an R package capable of summarizing the results, and using tidyverse functions you can filter the summary to show only samples with potential problems.

The name of the package is, unsurprisingly perhaps, fastqcr and it can be installed from the CRAN repository using the “Packages” tab in RStudio or  by entering the following command in the R terminal:

install.packages("fastqcr")

See the GitHub page https://github.com/kassambara/fastqcr for full instructions on the use of the package.

Not all of the reports are pertinent for processing 16S rRNA gene amplicon data, so I have been using something like the following to examine such data:

library(fastqcr)
library(dplyr)
rpt <- qc_aggregate(qc.dir = "fastqc/")
rpt |> print(n=11)

Where my FastQC results are in the directory fastqc/ under my working directory. This produces something like:

From this we can see the names of the individual reports (modules) per file and that the sequences should all be 301 bp in length. With this information we can filter rpt to show which samples have potential problems regarding overall sequence quality and the presence of uncalled bases or adapter sequences.

rpt |>
  dplyr::filter(module %in% c('Per base sequence quality',
                              'Per base N content',
                              'Adapter Content'),
               status != 'PASS' | `seq.length` != 301) |>
  print(n=Inf)

For this example data, we get the following:

If there were no potential problems for the items, you would get an empty result.

speedyseq – Enhanced phyloseq Functions

I recently discovered the R package speedyseq by Michael McLaren. It includes much faster implementations of some phyloseq functions : tax_glom(), tip_glom(), and the plotting functions that make use of psmelt()plot_bar(), plot_heatmap(), and plot_tree(). There are also lots of convenience functions including ones for extracting the otu, sample data and taxonomy tables, and even the entire phyloseq object, as tibbles.

For further information, check out the Readme file on GitHub at https://github.com/mikemc/speedyseq.

speedyseq can be installed in R using either of the following methods:

if (!requireNamespace("remotes", quietly = TRUE))
    install.packages("remotes")
remotes::install_github("mikemc/speedyseq")

Or:

if (!requireNamespace("devtools", quietly =TRUE))
    install.packages("devtools")
devtools::install_github("mikemc/speedyseq"