Both programs output an empty file when given a non-aligned file / alignment (ex: dataset/example.007.AA.only_seqs) and asked to save in a alignment-format (clustal, phylip, etc)
The program warns about this problem, but the check is done in functions 'alignmentXToFile' when the file has been created.
The problem seems to be on function "alignment::saveAlignment(char *destFile)" on "alignment.cpp", line 607-673:
bool alignment::saveAlignment(char *destFile) {
ofstream file;
if(sequences == NULL)
return false;
if((residNumber == 0) || (sequenNumber == 0)) {
cerr << endl << "WARNING: Output alignment has not been generated. "
<< "It is empty." << endl << endl;
return true;
}
/* File open and correct open check */
file.open(destFile);
if(!file) return false;
/* Depending on the output format, we call to the appropiate function */
switch(oformat) {
case 1:
alignmentClustalToFile(file);
break;
case 3:
alignmentNBRF_PirToFile(file);
break;
case 8:
alignmentFastaToFile(file);
break;
case 11:
alignmentPhylip3_2ToFile(file);
break;
case 12:
alignmentPhylipToFile(file);
break;
case 13:
alignmentPhylip_PamlToFile(file);
break;
case 17:
alignmentNexusToFile(file);
break;
case 21: case 22:
alignmentMegaToFile(file);
break;
case 99:
getSequences(file);
break;
case 100:
alignmentColourHTML(file);
break;
default:
return false;
}
/* Close the output file */
file.close();
/* All is OK, return true */
return true;
}
Is done after opening the ofstream, thus, making an empty file.