Skip to content

Commit

Permalink
fixed unexpected input seq removal
Browse files Browse the repository at this point in the history
  • Loading branch information
smortezah committed Jun 16, 2020
1 parent 7100459 commit f54f59d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 25 deletions.
Binary file modified smashpp
Binary file not shown.
48 changes: 24 additions & 24 deletions src/application.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -265,34 +265,29 @@ void application::prepare_data(std::unique_ptr<Param>& par) {
std::cerr << bold("====[ PREPARE DATA ]==================================\n");

// FASTA/FASTQ to seq
const auto convert_to_seq = [](std::string in, std::string out,
auto convert_to_seq = [](std::string in, std::string out,
const FileType& type) {
std::string msg = "[+] " + italic(in) + " (FAST";
std::string msg = "[+] " + italic(file_name(in)) + " (FAST";
if (type == FileType::fasta)
msg += "A";
else if (type == FileType::fastq)
msg += "Q";
msg += ") -> " + italic(out) + " (seq) ";
std::cerr << msg << "...";
rename(in.c_str(), (in + LBL_BAK).c_str());
to_seq(in + LBL_BAK, in, type);
to_seq(in, out, type);
std::cerr << "\r" << msg << "finished.\n";
};

const std::string ref_seq = file_name_no_ext(par->refName) + ".seq";
const std::string tar_seq = file_name_no_ext(par->tarName) + ".seq";

if (par->refType == FileType::fasta)
convert_to_seq(par->refName, ref_seq, FileType::fasta);
else if (par->refType == FileType::fastq)
convert_to_seq(par->refName, ref_seq, FileType::fastq);
if (par->refType == FileType::fasta || par->refType == FileType::fastq)
convert_to_seq(par->ref, ref_seq, par->refType);
else if (par->refType != FileType::seq)
error("\"" + par->refName + "\" has unknown format.");

if (par->tarType == FileType::fasta)
convert_to_seq(par->tarName, tar_seq, FileType::fasta);
else if (par->tarType == FileType::fastq)
convert_to_seq(par->tarName, tar_seq, FileType::fastq);
if (par->tarType == FileType::fasta || par->tarType == FileType::fastq)
convert_to_seq(par->tar, tar_seq, par->tarType);
else if (par->tarType != FileType::seq)
error("\"" + par->tarName + "\" has unknown format.");

Expand All @@ -309,24 +304,29 @@ void application::remove_temp_seg(std::unique_ptr<Param>& par,
}

void application::remove_temp_seq(std::unique_ptr<Param>& par) {
const std::string ref_seq = file_name_no_ext(par->ref) + ".seq";
const std::string tar_seq = file_name_no_ext(par->tar) + ".seq";

if (par->refType == FileType::fasta || par->refType == FileType::fastq) {
if (!par->saveSeq) {
remove(par->ref.c_str());
} else {
const std::string seq_name = file_name_no_ext(par->ref) + ".seq";
rename(par->ref.c_str(), seq_name.c_str());
}
rename((par->ref + LBL_BAK).c_str(), par->ref.c_str());
remove(ref_seq.c_str());
}
// else {
// const std::string seq_name = file_name_no_ext(par->ref) + ".seq";
// rename(par->ref.c_str(), seq_name.c_str());
// }
// rename((par->ref + LBL_BAK).c_str(), par->ref.c_str());
}

if (par->tarType == FileType::fasta || par->tarType == FileType::fastq) {
if (!par->saveSeq) {
remove(par->tar.c_str());
} else {
const std::string seq_name = file_name_no_ext(par->tar) + ".seq";
rename(par->tar.c_str(), seq_name.c_str());
}
rename((par->tar + LBL_BAK).c_str(), par->tar.c_str());
remove(tar_seq.c_str());
}
// else {
// const std::string seq_name = file_name_no_ext(par->tar) + ".seq";
// rename(par->tar.c_str(), seq_name.c_str());
// }
// rename((par->tar + LBL_BAK).c_str(), par->tar.c_str());
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/file.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ inline static std::string file_name_no_ext(std::string str) {
auto found = str.find_last_of("/\\");
const std::string file_name = str.substr(found + 1);
found = file_name.find_last_of(".");
return str.substr(0, found);
return file_name.substr(0, found);
}

inline static uint64_t file_size(std::string name) {
Expand Down

0 comments on commit f54f59d

Please sign in to comment.