//generate blastdb
databaseLeft = new BlastDB(-1.0, -1.0, 1, -3);
+
for (int i = 0; i < templateSeqs.size(); i++) { databaseLeft->addSequence(*templateSeqs[i]); }
databaseLeft->generateDB();
databaseLeft->setNumSeqs(templateSeqs.size());
//generate blastdb
databaseLeft = new BlastDB(-1.0, -1.0, 1, -3);
+
for (int i = 0; i < thisTemplate.size(); i++) { if (m->control_pressed) { return thisTemplate; } databaseLeft->addSequence(*thisTemplate[i]); }
databaseLeft->generateDB();
databaseLeft->setNumSeqs(thisTemplate.size());
\r
#include "mothur.h"\r
#include "mothurout.h"\r
+#include "currentfile.h"\r
\r
class Command;\r
\r
Command* command;\r
Command* shellcommand;\r
Command* pipecommand;\r
+ \r
MothurOut* m;\r
+ CurrentFile* currentFile;\r
+ \r
map<string, string> commands;\r
map<string, string>::iterator it;\r
string outputDir, inputDir, logFileName;\r
string candAln = alignment->getSeqAAln();
string tempAln = alignment->getSeqBAln();
-
+
if(candAln == ""){
candidateSeq->setPairwise("");
candidateSeq->setPairwise(candAln); // set the pairwise sequences in the Sequence objects for
templateSeq->setPairwise(tempAln); // the candidate and template sequences
+
}
catch(exception& e) {
m->errorOut(e, "Nast", "pairwiseAlignSeqs");
// here we do steps C-F of Fig. 2 from DeSantis et al.
try {
-
- //cout << candAln << endl;
- //cout << tempAln << endl;
- //cout << newTemplateAlign << endl;
- //cout << endl;
int longAlignmentLength = newTemplateAlign.length();
alignment->align(seqI.getUnaligned(), seqJ.getUnaligned());
seqI.setAligned(alignment->getSeqAAln());
seqJ.setAligned(alignment->getSeqBAln());
+
distCalculator->calcDist(seqI, seqJ);
double dist = distCalculator->getDist();
qualForwardMap.resize(maxLength);
qualReverseMap.resize(maxLength);
for(int i=0;i<maxLength;i++){
- qualForwardMap[i].assign(maxLength,0);
- qualReverseMap[i].assign(maxLength,0);
+ qualForwardMap[i].assign(41,0);
+ qualReverseMap[i].assign(41,0);
}
}
//***************************************************************************************************************
void SeqErrorCommand::printQualityFR(vector<vector<int> > qualForwardMap, vector<vector<int> > qualReverseMap){
- try{
-
- int lastRow = 0;
- int lastColumn = 0;
+ try{
+ int numRows = 0;
+ int numColumns = qualForwardMap[0].size();
for(int i=0;i<qualForwardMap.size();i++){
- for(int j=0;j<qualForwardMap[i].size();j++){
+ for(int j=0;j<numColumns;j++){
if(qualForwardMap[i][j] != 0){
- if(lastRow < i) { lastRow = i+2; }
- if(lastColumn < j) { lastColumn = j+2; }
+ if(numRows < i) { numRows = i+20; }
}
}
}
m->openOutputFile(qualityForwardFileName, qualityForwardFile);
outputNames.push_back(qualityForwardFileName); outputTypes["error.qual.forward"].push_back(qualityForwardFileName);
- for(int i=0;i<lastColumn;i++){ qualityForwardFile << '\t' << i; } qualityForwardFile << endl;
+ for(int i=0;i<numColumns;i++){ qualityForwardFile << '\t' << i; } qualityForwardFile << endl;
- for(int i=0;i<lastRow;i++){
+ for(int i=0;i<numRows;i++){
qualityForwardFile << i+1;
- for(int j=0;j<lastColumn;j++){
+ for(int j=0;j<numColumns;j++){
qualityForwardFile << '\t' << qualForwardMap[i][j];
}
m->openOutputFile(qualityReverseFileName, qualityReverseFile);
outputNames.push_back(qualityReverseFileName); outputTypes["error.qual.reverse"].push_back(qualityReverseFileName);
- for(int i=0;i<lastColumn;i++){ qualityReverseFile << '\t' << i; } qualityReverseFile << endl;
- for(int i=0;i<lastRow;i++){
+ for(int i=0;i<numColumns;i++){ qualityReverseFile << '\t' << i; } qualityReverseFile << endl;
+ for(int i=0;i<numRows;i++){
qualityReverseFile << i+1;
- for(int j=0;j<lastColumn;j++){
+ for(int j=0;j<numColumns;j++){
qualityReverseFile << '\t' << qualReverseMap[i][j];
}
qualityReverseFile << endl;
m->errorOut(e, "SeqErrorCommand", "printErrorFRFile");
exit(1);
}
+
}
-
//***************************************************************************************************************
void ShhherCommand::writeSequences(vector<int> otuCounts){
try {
- flowOrder = "TACG";
string fastaFileName = flowFileName.substr(0,flowFileName.find_last_of('.')) + ".pn.fasta";
ofstream fastaFile;
if(otuCounts[i] > 0){
fastaFile << '>' << seqNameVector[aaI[i][0]] << endl;
- for(int j=8;j<numFlowCells;j++){
+ string newSeq = "";
+
+ for(int j=0;j<numFlowCells;j++){
char base = flowOrder[j % 4];
for(int k=0;k<uniqueFlowgrams[index * numFlowCells + j];k++){
- fastaFile << base;
+ newSeq += base;
}
}
- fastaFile << endl;
+
+ fastaFile << newSeq.substr(4) << endl;
}
}
fastaFile.close();
ofstream otuCountsFile;
m->openOutputFile(otuCountsFileName, otuCountsFile);
- string bases = "TACG";
+ string bases = flowOrder;
for(int i=0;i<numOTUs;i++){
//output the translated version of the centroid sequence for the otu
int sequence = aaI[i][j];
otuCountsFile << seqNameVector[sequence] << '\t';
- for(int k=8;k<lengths[sequence];k++){
+ string newSeq = "";
+
+ for(int k=0;k<lengths[sequence];k++){
char base = bases[k % 4];
int freq = int(0.01 * (double)flowDataIntI[sequence * numFlowCells + k] + 0.5);
-
+
for(int s=0;s<freq;s++){
- otuCountsFile << base;
+ newSeq += base;
+ //otuCountsFile << base;
}
}
- otuCountsFile << endl;
+ otuCountsFile << newSeq.substr(4) << endl;
}
otuCountsFile << endl;
}