// Open dsm files, which are possibly zipped void openDsmFile(igzstream& dsm_stream, const std::string& file_name) { // Check for a .gz extension if (!std::regex_match(file_name, gzipped)) { // Warn std::cerr << "WARNING: Input file " + file_name + " is not gzip compressed, which is recommended\n"; } dsm_stream.open(file_name.c_str()); // Push binary file into buffer // Set stream buffer of istream to the one just opened, and check ok if (!dsm_stream.good()) { throw std::runtime_error("Could not open kmer file " + file_name + "\n"); } }