I'm trying to install QIIME natively. I already got the normal pipleline running. The only thing is that I can’t install DOTUR. I already contacted Pat Schloss from DOTUR and he said : “We are no longer supporting dotur since it has been vastly improved upon in mothur. I would encourage you to use that instead. Pat”
I don’t know where Qiime uses dotur for or that the installation of mother only is enough. Can someone help with this?
When i just want to install DOTUR i get these errors:
g++ dotur.C -O4 -o dotur
In file included from dotur.C:6:
otu.h: In member function 'void DistanceMatrix::read(std::string, int)':
otu.h:70: error: 'exit' was not declared in this scope
otu.h:87: error: 'rand' was not declared in this scope
otu.h:87: error: 'RAND_MAX' was not declared in this scope
otu.h: In member function 'int DistanceMatrix::print_nonred_w(std::string, std::string, std::string, int, int&, std::vector<float, std::allocator<float> >&)':
otu.h:336: error: 'sort' was not declared in this scope
otu.h:380: error: 'sort' was not declared in this scope
In file included from dotur.C:7:
richness.h: In member function 'void OTUMatrix::readotu()':
richness.h:53: error: 'exit' was not declared in this scope
richness.h: In member function 'void OTUMatrix::readlist(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)':
richness.h:105: error: 'exit' was not declared in this scope
richness.h: In member function 'void OTUMatrix::rarefaction(std::vector<int, std::allocator<int> >&, int, int)':
richness.h:270: error: 'rand' was not declared in this scope
richness.h:270: error: 'RAND_MAX' was not declared in this scope
richness.h:276: error: 'rand' was not declared in this scope
richness.h:276: error: 'RAND_MAX' was not declared in this scope
richness.h:337: error: 'sort' was not declared in this scope
dotur.C: In function 'void usageError(char*)':
dotur.C:35: error: 'exit' was not declared in this scope
dotur.C: In function 'int main(int, char**)':
dotur.C:80: error: 'srand' was not declared in this scope
dotur.C:104: error: 'strcmp' was not declared in this scope
Regards and thanks for the help,
Marc Jan Bonder
Academic Centre for Dentistry Amsterdam (ACTA)
We normally get this package from here
http://www.plantpath.wisc.edu/fac/joh/DOTUR/dotur-1.53.tgz and the
problem with the compile is that some libraries are missing in certain
files, so you can open them, add them and try to recompile the tool.
The changes are:
#include <cstdlib> to richness.h and otu.h
#include <algorithm> to otu.h
#include <cstring> to dotur.C
Now, you only need to install a dependency if you are planning to use
it, if not you are fine without it. In the case of dotur we use to use
it in pick_otus.py but it seems that we removed its support and forgot
to do the same from the print_qiime_config.py script and the install
instructions. Sorry for this and thank you for bring it to our
attention; I added the bug to be solve in the next release:
https://sourceforge.net/tracker/?func=detail&aid=3323052&group_id=272178&atid=1157164.
Cheers
--
Antonio González Peña
Research Assistant, Knight Lab
University of Colorado at Boulder
https://chem.colorado.edu/knightgroup/