bool ContextBase::determineOutputType() { if (_outputTypeDetermined) { return true; } //test whether output should be BED or BAM. //If the user explicitly requested BED, then it's BED. if (getExplicitBedOutput()) { setOutputFileType(FileRecordTypeChecker::SINGLE_LINE_DELIM_TEXT_FILE_TYPE); _outputTypeDetermined = true; return true; } //Otherwise, if the input is BAM, then the output is BAM if (getFile(0)->getFileType() == FileRecordTypeChecker::BAM_FILE_TYPE) { setOutputFileType(FileRecordTypeChecker::BAM_FILE_TYPE); return true; } //Okay, it's bed. setOutputFileType(FileRecordTypeChecker::SINGLE_LINE_DELIM_TEXT_FILE_TYPE); _outputTypeDetermined = true; return true; }
bool ContextBase::determineOutputType() { if (_outputTypeDetermined) { return true; } //test whether output should be BED or BAM. //If the user explicitly requested BED, then it's BED. if (getExplicitBedOutput()) { setOutputFileType(FileRecordTypeChecker::SINGLE_LINE_DELIM_TEXT_FILE_TYPE); _outputTypeDetermined = true; return true; } //Otherwise, if there are any BAM files in the input, //then the output should be BAM. for (_i = 0; _i < (int)_files.size(); _i++) { if (_files[_i]->getFileType() == FileRecordTypeChecker::BAM_FILE_TYPE) { setOutputFileType(FileRecordTypeChecker::BAM_FILE_TYPE); _bamHeaderAndRefIdx = _i; _outputTypeDetermined = true; return true; } } //Okay, it's bed. setOutputFileType(FileRecordTypeChecker::SINGLE_LINE_DELIM_TEXT_FILE_TYPE); _outputTypeDetermined = true; return true; }
bool ContextIntersect::determineOutputType() { if (_outputTypeDetermined) { return true; } //determine the maximum number of database fields. for (int i=0; i < getNumDatabaseFiles(); i++) { int numFields = getDatabaseFile(i)->getNumFields(); if ( numFields > _maxNumDatabaseFields) { _maxNumDatabaseFields = numFields; } } //If the query is BAM, and bed output wasn't specified, then the output is BAM. if (getQueryFileType() == FileRecordTypeChecker::BAM_FILE_TYPE && !getExplicitBedOutput()) { setOutputFileType(FileRecordTypeChecker::BAM_FILE_TYPE); _outputTypeDetermined = true; return true; } return ContextBase::determineOutputType(); }