I think there’s a minor bug with the naming of output files from the shhh.flows() command in mothur 1.23.1 which results in file names with “double-dots” in them (e.g. “N0_1.trim…shhh.fasta” rather than “N0_1.trim.shhh.fasta”).
I see the same behaviour with both the precompiled Linux binaries (64-bit) and when I build from source; I made these changes to shhhercommand.cpp seems to fix it:
--- Mothur.source/shhhercommand.cpp 2012-01-11 12:36:34.000000000 +0000
+++ Mothur.source.new/shhhercommand.cpp 2012-02-27 16:04:53.977885050 +0000
@@ -2152,7 +2152,7 @@
try {
string thisOutputDir = outputDir;
if (outputDir == "") { thisOutputDir += m->hasPath(flowFileName); }
- string qualityFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + ".shhh.qual";
+ string qualityFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + "shhh.qual";
ofstream qualityFile;
m->openOutputFile(qualityFileName, qualityFile);
@@ -2259,7 +2259,7 @@
try {
string thisOutputDir = outputDir;
if (outputDir == "") { thisOutputDir += m->hasPath(flowFileName); }
- string fastaFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + ".shhh.fasta";
+ string fastaFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + "shhh.fasta";
ofstream fastaFile;
m->openOutputFile(fastaFileName, fastaFile);
@@ -2307,7 +2307,7 @@
try {
string thisOutputDir = outputDir;
if (outputDir == "") { thisOutputDir += m->hasPath(flowFileName); }
- string nameFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + ".shhh.names";
+ string nameFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + "shhh.names";
ofstream nameFile;
m->openOutputFile(nameFileName, nameFile);
@@ -2346,7 +2346,7 @@
string thisOutputDir = outputDir;
if (outputDir == "") { thisOutputDir += m->hasPath(flowFileName); }
string fileRoot = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName));
- string groupFileName = fileRoot + ".shhh.groups";
+ string groupFileName = fileRoot + "shhh.groups";
ofstream groupFile;
m->openOutputFile(groupFileName, groupFile);
@@ -2370,7 +2370,7 @@
try {
string thisOutputDir = outputDir;
if (outputDir == "") { thisOutputDir += m->hasPath(flowFileName); }
- string otuCountsFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + ".shhh.counts";
+ string otuCountsFileName = thisOutputDir + m->getRootName(m->getSimpleName(flowFileName)) + "shhh.counts";
ofstream otuCountsFile;
m->openOutputFile(otuCountsFileName, otuCountsFile);
Best wishes, Peter