Hi QIIME2 developers, contributors, and moderators,
Thank you very much for actively maintaining the infrastructure of QIIME2 and moderating the QIIME2 forum. I am processing my shotgun metagenomic sequencing reads using woltka and QIIME2 for taxonomic annotation. Right now, I would like to continue performing stratified functional annotation, so ideally the taxonomic names (to be stratified by genes) should be as close as possible to the one produced by qiime greengenes2 taxonomy-from-table. Concretely, I need a stratified feature table like so (screenshot from woltka's github readme), and I am using woltka to try to get the table I need:
I am following some guides from the woltka github page, but not sure if I am doing it correctly. I put my current codes at the bottom of this post. There are some parts that I am not sure about:
The taxonomic annotation has a filtering step, which filters the OGU table against Greengenes2 database, since not all WoL2 IDs are in the database. From my understanding, specifying the Greengenes2 lineage in the --map flag on woltka explicitly only assign genome IDs to reads that are in the Greegenes2 lineage file. Thus, the --map flag is sort of a "replacement" for the filtering step performed with qiime greengenes2 filter-feature. Could you please help me correct if my understanding is inaccurate?
I am also not sure how the taxonomic annotation will work (for species name) with woltka classify --map <lineage.txt>, since there are 14,149 genome IDs in the lineage file whereas there are only 1,866 WoL2 IDs that share exact taxonomic name with their Greengenes2 counterpart. Not sure if this will be a problem for the stratified output.
Is there a way to simplify the stratified taxonomic annotation that still allows me to use Greengenes2, either in woltka or some native functions from QIIME2 that I am unaware of?
Thank you very much in advance for your enlightenment and looking forward to hearing your thoughts and learning more from you!
Hello @emnatasha I am the maintainer of Woltka. Is my understanding correct that your goal is to generate a feature table in which feature IDs are like "Actinobacteria|GO:0000006" (i.e., taxonomy/function stratified), and be able to operate on the taxonomy part separately? Can you read this document to see if it helps?
I am not fully clear about greengenes2-woltka interaction. I can only comment on Woltka's functionality.
Thanks for your time to read through my post and your reply. Yes, the understanding is correct. I have read the document you pointed, but the issue is that I am not sure if I am using the correct mapping file that allows me to align the stratified table with the Greengenes2 taxonomic results. I am currently using this file: orf-to-ko.map.xz.
Or perhaps what I can do is to first run taxonomic annotation with gene stratification with woltka, and then perform two things:
But how do I get the OGU IDs from the first step? I still need the OGU ID as an input for QIIME2 Greengenes2 annotation. So for instance, the Feature ID I am expecting is formatted as such:
Hello @emnatasha, Got it. To get stratified features, you will need to Woltka twice -- the first run classifies data by OGU, and the second run classifies data by GO, while taking the classification result of the first run with the --stratify parameter. See the instruction here: woltka/doc/stratify.md at main · qiyunzhu/woltka · GitHub
You said you perhaps can first run taxonomic annotation with gene stratification with woltka. This thought is on the right track, but it needs two modifications: 1) the first run does't need gene stratification. 2) the first run doesn't even need taxonomy. You can simply run it as woltka classify -i indir -o outdir to get OGUs.