OTU ID dismatched the taxonomy

112 views
Skip to first unread message

damocha...@gmail.com

unread,
Sep 22, 2017, 8:08:06 PM9/22/17
to Qiime 1 Forum
I am using qiime1.9.1.I want to analyze my data with SILVA_128_QIIME_release,so I change my qiime_config file.The default qiime_config and the new qiime_config are in attachment.
Then I run print_qiime_config.py –t 。The result comes OK.
And I start my analysis. First command # pick_open_reference_otus.py -o otus/ -i slout/1DH006_1.fna.Second command # biom convert -i otus/otu_table_mc2_w_tax_no_pynast_failures.biom -o otus/table.from_biom_w_taxonomy.txt --to-tsv --header-key taxonomy.They all go well.But the question is that in the file table.from_biom_w_taxonomy.txt OTU ID mismatched the taxonomy. eg. In file table.from_biom_w_taxonomy.txt OTU ID DQ797217.1.1403 matchs taxonomy D_0__Bacteria;D_1__Bacteroidetes;D_2__Bacteroidia;D_3__Bacteroidales;D_4__Prevotellaceae;D_5__Prevotella.But in consensus_taxonomy_7_levels.txt of SILVA_128_QIIME_release OTU ID DQ797217.1.1403 matchs taxonomy D_0__Bacteria;D_1__Bacteroidetes;D_2__Bacteroidia;D_3__Bacteroidales;D_4__Bacteroidaceae;D_5__Bacteroides;D_6__uncultured bacteriu. I am confused.By the way in file rep_set_tax_assignments.txt OTU ID also mismatched the taxonomy. Any help is needed.Thank you.
new_qiime_config.txt
default_qiime_config.txt
print_qiime_config.py.txt
log_20170921124028.txt

Barvaz Sini

unread,
Sep 24, 2017, 3:56:43 PM9/24/17
to Qiime 1 Forum
Hi,
Is this taxonomy problem only with this one specific OTU id you supplied? Or is it in all of the OTU taxonomy assignments?

Thanks
Amnon

damocha...@gmail.com

unread,
Sep 24, 2017, 10:59:15 PM9/24/17
to Qiime 1 Forum
Thank you for your reply. It is in almost of the OTU taxonomy assignments.

Barvaz Sini

unread,
Sep 26, 2017, 3:47:31 PM9/26/17
to Qiime 1 Forum
Can you try two things in the assign_taxonomy.py command:
1. change the assignment method (-m flag) to either rdp or blast) (the default if you don't specify is uclust, which maybe had some problems with silva - see here)
2. provide the parameters --id_to_taxonomy_fp and --reference_seqs_fp directly rather than in the config file

Let me know if any of these suggestions worked
thanks
Amnon

damocha...@gmail.com

unread,
Sep 27, 2017, 11:19:35 AM9/27/17
to Qiime 1 Forum
First,I tried assign_taxonomy.py -i otus/rep_set.fna -m blast -r ../SILVA_128_QIIME_release/rep_set/rep_set_16S_only/97/97_otus_16S.fasta -t ../SILVA_128_QIIME_release/taxonomy/16S_only/97/consensus_taxonomy_7_levels.txt .The result was also mismatched. I am using qiime1.9.1 not qiime1.8.I do not know if this is the reason.
When I tried assign_taxonomy.py -i otus/rep_set.fna -m rdp -o rdp_assigned_taxonomy -r ../SILVA_128_QIIME_release/rep_set/rep_set_16S_only/97/97_otus_16S.fasta -t ../SILVA_128_QIIME_release/taxonomy/16S_only/97/consensus_taxonomy_7_levels.txt.It came 
Traceback (most recent call last):
  File "/usr/local/bin/assign_taxonomy.py", line 417, in <module>
    main()
  File "/usr/local/bin/assign_taxonomy.py", line 394, in main
    log_path=log_path)
  File "/usr/local/lib/python2.7/dist-packages/qiime/assign_taxonomy.py", line 860, in __call__
    max_memory=max_memory, tmp_dir=tmp_dir)
  File "/usr/local/lib/python2.7/dist-packages/bfillings/rdp_classifier.py", line 515, in train_rdp_classifier_and_assign_taxonomy
    tmp_dir=tmp_dir)
  File "/usr/local/lib/python2.7/dist-packages/bfillings/rdp_classifier.py", line 485, in train_rdp_classifier
    return app(training_seqs_file)
  File "/usr/local/lib/python2.7/dist-packages/bfillings/rdp_classifier.py", line 327, in __call__
    remove_tmp=remove_tmp)
  File "/usr/local/lib/python2.7/dist-packages/burrito/util.py", line 285, in __call__
    'StdErr:\n%s\n' % open(errfile).read())
burrito.util.ApplicationError: Unacceptable application exit status: 1
Command:
cd "/home/qiime/Desktop/silvatest_no_ulcust/"; java -Xmx4000M -cp "/qiime_software/rdpclassifier-2.2-release/rdp_classifier-2.2.jar" edu.msu.cme.rdp.classifier.train.ClassifierTraineeMaker "/tmp/RdpTaxonomy_oyPPOo.txt" "/tmp/tmpcDuwMkGwIlYSNPWtkut9.txt" 1 version1 cogent "/tmp/RdpTrainer_4jJhbO" > "/tmp/tmpvWCRae9y7RJXriI1dhkH.txt" 2> "/tmp/tmpgEO5fcWXtxBjLB23ZOH7.txt"
StdOut:

StdErr:
Copyright 2006 Michigan State University Board of Trustees.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Authors's mailng address:
Center for Microbial Ecology
2225A Biomedical Physical Science
Michigan State University
East Lansing, Michigan USA 48824-4320
E-mail: James R. Cole at co...@msu.edu
Qiong Wang at wang...@msu.edu
James M. Tiedje at tie...@msu.edu


Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at edu.msu.cme.rdp.classifier.train.RawHierarchyTree.initWordOccurrence(RawHierarchyTree.java:108)
at edu.msu.cme.rdp.classifier.train.TreeFactory.addSequencewithLineage(TreeFactory.java:211)
at edu.msu.cme.rdp.classifier.train.TreeFactory.addSequence(TreeFactory.java:139)
at edu.msu.cme.rdp.classifier.train.ClassifierTraineeMaker.<init>(ClassifierTraineeMaker.java:47)
at edu.msu.cme.rdp.classifier.train.ClassifierTraineeMaker.main(ClassifierTraineeMaker.java:133)
By the way, when I used pick_open_reference_otus.py to assign taxonomy on my miseq data against Silva128 data base,the mismatched problem came.But when I used pick_closed_reference_otus.py to assign taxonomy on the same miseq data against Silva128 data base,it can assign the OTUs correctly.
Thank you for the help.

Jose Antonio Navas Molina

unread,
Oct 6, 2017, 12:19:19 PM10/6/17
to Qiime 1 Forum
Hi!

The OTU picking step and the taxonomy assignment step are executed independently. During the taxonomy assignment step, the script doesn't look at the OTU ids, but looks directly at the sequences. Differences on how these algorithms are implemented and how they perform the searches, may produce different results, hence the mismatch between the taxonomies and the OTU ids.

In the closed reference step, the taxonomy is assigned based on the OTU ids, the script looks at the OTU id and searches for it in the reference's taxonomy, and that's why in this case the taxonomy is not mismatched.

Hope this helps!
Reply all
Reply to author
Forward
0 new messages