Metaxa and Illumina data
For the last months I have been (part time) struggling with getting Metaxa to eat Illumina paired-end data. This is a pretty tricky task, mainly due to the fact that Illumina reads are so much shorter than those obtained by Sanger and 454 sequencing. Therefore, I am more than happy to inform the community that today (the day before I go on vacation) I have a working prototype up and running. In fact, calling it a prototype is unfair, it is a quite far gone piece of software by now. Currently, I am running it on test data sets, and I will try to keep it running over the next couple of weeks. Thereafter, I hope to be able to release it sometime this autumn (but don’t expect a September release!), harnessing the power of Illumina sequencing for SSU identification. Stayed tuned, and have a great summer!
Presentation at SocBiN 2012
For those of you who like to listen to (or look at) me, I will be giving a presentation at this year’s SocBiN conference in Stockholm. My presentation has the long and quite informative title: Comprehensive Analysis of Antibiotic Resistance Genes in River Sediment, Well Water and Soil Microbial Communities Using Metagenomic DNA Sequencing. The talk is scheduled in the Using Next generation sequence data session, right after Jeroen Raes and Christopher Quince… It’s a short talk, so I will probably need to keep it simple, but it will be the first time I present results generated in relation with my present position, which I personally feel is very nice. We’re moving forward!
Pfam team aims at cleaning erroneous protein families
The guys at Pfam recently introduced a new database, called AntiFam, which will provide HMM profiles for some groups of sequences that seemingly formed larger protein families, although they were not actually real proteins. For example, rRNA sequences could contain putative ORFs, that seems to be conserved over broad lineages; with the only problem being that they are not translated into proteins in real life, as they are part of an rRNA [1].
With this initiative the Xfam team wants to “reduce the number of spurious proteins that make their way into the protein sequence databases.” I have run into this problem myself at some occasions with suspicious sequences in GenBank, and I highly encourage this development towards consistency and correctness in sequence databases. It is of extreme importance that databases remain reliable if we want bioinformatics to tell us anything about organismal or community functions. The Antifam database is a first step towards such a cleanup of the databases, and as such I would like to applaud Pfam for taking actions in this direction.
To my knowledge, GenBank are doing what they can with e.g. barcoding data (SSU, LSU, ITS sequences), but for bioinformatics and metagenomics (and even genomics) to remain viable, these initiatives needs to come quickly; and automated (but still very sensitive) tools for this needs to get our focus immediately. For example, Metaxa [2] could be used as a tool to clean up SSU sequences of misclassified origin. More such tools are needed, and a lot of work remains to be done in the area of keeping databases trustworthy in the age of large-scale sequencing.
References
- Tripp, H. J., Hewson, I., Boyarsky, S., Stuart, J. M., & Zehr, J. P. (2011). Misannotations of rRNA can now generate 90% false positive protein matches in metatranscriptomic studies. Nucleic Acids Research, 39(20), 8792–8802. doi:10.1093/nar/gkr576
- Bengtsson, J., Eriksson, K. M., Hartmann, M., Wang, Z., Shenoy, B. D., Grelet, G.-A., Abarenkov, K., et al. (2011). Metaxa: a software tool for automated detection and discrimination among ribosomal small subunit (12S/16S/18S) sequences of archaea, bacteria, eukaryotes, mitochondria, and chloroplasts in metagenomes and environmental sequencing datasets. Antonie van Leeuwenhoek, 100(3), 471–475. doi:10.1007/s10482-011-9598-6
GoBiG Introduction Meeting
The newly formed bioinformatics network for PhD students in Gothenburg (GoBiG), will have an introductory meeting next week, on thursday the 26th at Chalmers. See this page for more info.
What is it like, being a bioinformatician 2012?
Michael Barton, Pierre Lindenbaum, and Rob Syme are currently running a survey on what it is like to be a bioinformatician today. The survey has a history since back in 2008, and I think everyone who’s doing bioinformatics should take it. It aims “to understand the field of bioinformatics by surveying the people whom work in it,” which I think is a nice objective for running a survey. It will be interesting to see what comes out of it. Take the survey, and read more about it at: http://bioinfsurvey.org/
Finally – Metaxa 1.1
I am extremely happy to announce that Metaxa 1.1 (first announced back in July) has finally left the beta stage, and is now designated as a feature complete 1.1 update. We consider this update stable for production use. The 1.1 update utilize hmmsearch instead of hmmscan for higher extraction speeds and better accuracy. This clever trick was inspired by a blog post by HMMER’s creator Sean Eddy on hmmscan vs hmmsearch (http://selab.janelia.org/people/eddys/blog/?p=424). As the speedup comes from the extraction step, the speed increase will be largest for huge data sets with only a small proportion of actual SSU sequences (typically large 454 metagenomes).
What took so long, you might ask, as I promised an imminent release already in August. Well, during testing a difference in scoring was discovered. This difference did not have any implications for long sequences (> ~350 bp), but caused Metaxa to have problems on short reads (most evident on ~150 bp and shorter). Therefore, the scoring system had to be redesigned, which in turn required more extensive testing. Now, however, Metaxa 1.1 has a fine-tuned scoring system, which by default is based on scores instead of E-values, and in some instances have even better detection accuracy than the old Metaxa version. We encourage everyone to try out this new version of Metaxa (although the 1.0.2 version will remain available for download). It should be bug free, but we cannot ensure 100% compatibility in all usage scenarios. Therefore, we are happy if you report any bugs or inconsistencies to the e-mail address: metaxa (at] microbiology [dot) se.
The new version of Metaxa can be downloaded here: https://microbiology.se/software/metaxa/ Please note that the manual has not yet been updated yet, so use the help feature for the up-to-date options. Happy SSU detecting!
Swedish Bioinformatics Workshop 2011
The 11th annual meeting of PhD students and Postdoc researchers in Bioinformatics in Sweden will take place in Lund the 29-30 September. The workshop is an opportunity for young researchers to meet, exchange ideas, and keep up to date with the growing body of knowledge. I will go there, and you should be there too! Besides, it’s free for PhD students and Postdocs! All info can be found at the workshop website. The last time I was there (2010) really fueled some interesting discussions, and I am really looking forward to the event this year. Hope to meet you there, fellow Swedish bioinformaticians!
Metaxa FAQ
Finally, the Metaxa FAQ is ready! If you have any other questions, please mail them to metaxa [at] microbiology [dot] se, and I will include them in the FAQ at some later point. I would like to thank anyone who has contributed with questions, suggestions, comments and other types of feedback so far. It really helps improving this software. The FAQ is found here.
You may also wonder what has happened to the stable version of the 1.1 Metaxa speedup I promised in July. It is still on the way, but due to a minor computer failure and other CPU-heavy tasks being of higher priority the software still has not been fully tested. As we want to release a truly stable and functional update, we need to hold back on the package for some more time. Be patient, or try out the beta that is already available.
2x+ Metaxa speedup on the way
I’m working on an update to Metaxa that will bring at least double speed to the program (and even more when run on really large data sets on many cores). While there is still no real release version of this update (version 1.1), I have today posted a public “beta”, which you can use for testing purposes. Do not use this version for anything important (e.g. research) as it contains at least one known bug (and maybe even more I haven’t discovered yet). I would appreciate, if you are interested, that you download this version and e-mailed any bugs or inconsistencies found to me (firstname.lastname[at]microbiology.se).
Note that to install this version, you first need to download and install the current version of Metaxa (1.0.2). Then the new version can be used with the old’s databases.
Using Metaxa to automatically classify SSUs to the species level
One potential use for Metaxa (paper) is to include it in a pipeline for classification of SSU rRNA in metagenomic data (or other environmental sequencing sets). However, as Metaxa is provided from this site, it only classifies SSUs to the domain level (archaea, bacteria and eukaryotes, with the addition of chloroplasts and mitochondria). It is also able to do some (pretty rough) species guesses using the “--guess_species T
” option. An easy solution to implement would be to pass the Metaxa output, e.g. “metaxa_output.bacteria.fasta” to BLAST, and compare all these sequences to the sequences in e.g. the SILVA or GreenGenes database. There is, however, a way to improve this, which uses Metaxa’s ability to compares sequences to custom databases. In this tutorial, I will show you how to achieve this.
Before we start, you will of course need to download and install Metaxa, and its required software packages (BLAST, HMMER, MAFFT). When you have done this, we can get going with the database customization. I will in this tutorial use the SILVA database for SSU classification. However, the basic idea for the tutorial should be easily applicable to GreenGenes and other rRNA databases as well.
- Visit SILVA through this link, and download the file named “SSURef_106_tax_silva.fasta.tgz”. The file is pretty big so it may take a while to download it. If you’re running Metaxa on a server, you’ll have to get the SILVA-file to the server somehow.
- Unzip and untar the file (Mac OS X makes this neatly by doubleclicking the file, on linux you can do it on the command line by typing “
tar -xvzf SSURef_106_tax_silva.fasta.tgz
“). This will give you a FASTA-file. - The FASTA-file needs to be prepared a bit for Metaxa usage. First, we need to give Metaxa identifiers it can understand. Metaxa identifies sequences’ origins by the last character in their identifier, e.g. “>A16379.1.1496.B”. Here, “.B” indicates that this is a bacterial sequence. We are now going to use the unix command sed to process the file and insert the appropriate identifiers.
- We begin with the archaeal sequences. To get those straight, we type:
sed "s/ Archaea;/.A - Archaea;/" SSURef_106_tax_silva.fasta > temp1
Notice that we direct the output to a temporary file. It is bad practice to replace the input file with the output file, so we work with two temp-files instead. - The next step is also easy, now we find all eukaryote sequences and add E:s to the identifiers:
sed "s/ Eukaryota;/.E - Eukaryota;/" temp1 > temp2
- Now it becomes a little more complicated, as SILVA classes mitochondrial and chloroplast SSU sequences as subclasses of bacteria. However, there is a neat little trick we can use. First we do the same with the bacterial sequences as with the archaeal and eukaryote:
sed "s/ Bacteria;/.B - Bacteria;/" temp2 > temp1
- Now, we can use two a little more complicated commands to annotate the mitochondrial and chloroplast sequences:
sed "s/\.B - \(Bacteria;.*;[Mm]itochondria;\)/.M - \1/" temp1 > temp2
sed "s/\.B - \(Bacteria;.*;[Cc]hloroplast;\)/.C - \1/" temp2 > temp1 - We also need to get “rid” of the unclassified sequences, by assigning them to the “other” origin (O):
sed "s/ Unclassified;/.O - Unclassified;/" temp1 > temp2
- We begin with the archaeal sequences. To get those straight, we type:
- That wasn’t too complicated, was it? We can now check the number of different sequences in the file by typing the pretty complicated command:
grep ">" temp2 | cut -f 1 -d " " | rev | cut -f 1 -d "." | sort | uniq -c
If you have been working with the same files as me, you should now see the following numbers:
23172 A
471949 B
3712 C
55937 E
534 M
226 O - At this stage, we need to remove the full taxonomy from the FASTA headers, as Metaxa cannot handle species names of this length. We do this by typing:
sed "s/ - .*;/ - /" temp2 > temp1
- We can now change the temp-file into a FASTA file, and delete the other temp-file:
mv temp1 SSURef.fasta
rm temp2 - We now need to configure Metaxa to use the database. First, we format a BLAST-database from the FASTA-file we just created:
formatdb -i SSURef.fasta -t "SSURef Metaxa DB" -o T -p F
- With that done, we can now run Metaxa using this database instead of the classification database that comes with the program. By specifying that we want to guess the species origin of sequences, we can get (as accurate as SILVA lets us be) which species each sequence in our set come from. We do this by using the
-d
and the--guess_species
options:
metaxa -i test.fasta -d SSURef.fasta -o TEST --guess_species T --cpu 2
The input in this case was the test file that comes with Metaxa. Note also that we’re using two CPUs to get multithreaded speeds. Remember that you must provide the full (or relative) path to the database files we just created, if you are not running Metaxa from the same directory as the database resides in. - The output should now look like this (taken from the bacterial file):
>coryGlut_Bielefeld_dna Bacterial 16S SSU rRNA, best species guess: Corynebacterium glutamicum
CGAACGCTG...
>gi|116668568:792344-793860 Bacterial 16S SSU rRNA, best species guess: Arthrobacter sp. J3.40
TGAACGCTG...
>gi|117927211:c1399163-1397655 Bacterial 16S SSU rRNA, best species guess: Acidothermus cellulolyticus
>CGAACGCTG...
And so on. As you can see the species names are now located at the end of each definition line, and can easily be extracted using sed, e.g. “grep ">" TEST.bacteria.fasta | sed "s/.*: //"
“.
And that’s it. It’s pretty simple, and can easily be scripted. In fact, I have already made the bash script for you. That means that the short version is, download the script, download the sequence file from SILVA, move into the directory you have downloaded the file to and run the script by typing: ./prepare_silva_for_metaxa.sh
A few notes at the end. The benefit of using this approach is that we maintain the sorting capabilities, marking of uncertain sequences and error checking of Metaxa, but we don’t have to add another BLAST step after Metaxa has finished. However, as this database we create is a lot bigger than the database that comes with Metaxa, the running time of the classification step will be substantially longer. This is in most cases acceptable, as that time is the same as the time it would have taken to run BLAST on the Metaxa output. It should also be noted that this approach limits Metaxa’s ability of classifying 12S sequences, as there are no such sequences in SILVA. Good luck with classifying your metagenome SSUs (and if you use Metaxa in your research, remember to cite the paper)!