This commit is contained in:
Zengtudor 2024-09-18 16:44:17 +08:00
parent ba4fa5e19f
commit b746564993

View File

@ -12,6 +12,7 @@
#include"tools.hpp" #include"tools.hpp"
#include <cstring> #include <cstring>
#include <string> #include <string>
#include <string_view>
// std::string reversedComplement(std::string DNAsequence); // std::string reversedComplement(std::string DNAsequence);
@ -33,22 +34,38 @@ void reverseComplement(std::array<char, MAX_SIZE> &DNAsequence,const size_t buf_
for (i = 0; i < q; i++) for (i = 0; i < q; i++)
{ {
char &l = DNAsequence[i]; char &l = DNAsequence[i];
if (DNAsequence[i] == 'A') if (DNAsequence[i] == 'A'){
l = l + 'T'; // l = l + 'T';
if (DNAsequence[i] == 'a') l = 'T';
l = l + 'T'; }
if (DNAsequence[i] == 'c') if (DNAsequence[i] == 'a'){
l = l + 'G'; // l = l + 'T';
if (DNAsequence[i] == 'C') l = 'T';
l = l + 'G'; }
if (DNAsequence[i] == 'g') if (DNAsequence[i] == 'c'){
l = l + 'C'; // l = l + 'G';
if (DNAsequence[i] == 'G') l = 'G';
l = l + 'C'; }
if (DNAsequence[i] == 't') if (DNAsequence[i] == 'C'){
l = l + 'A'; // l = l + 'G';
if (DNAsequence[i] == 'T') l = 'G';
l = l + 'A'; }
if (DNAsequence[i] == 'g'){
// l = l + 'C';
l = 'C';
}
if (DNAsequence[i] == 'G'){
// l = l + 'C';
l = 'C';
}
if (DNAsequence[i] == 't'){
// l = l + 'A';
l = 'A';
}
if (DNAsequence[i] == 'T'){
// l = l + 'A';
l = 'A';
}
} }
} }
@ -74,12 +91,15 @@ int main()
{ {
int m = lines%2; int m = lines%2;
const auto buf_len = strlen(buf.data()); const auto buf_len = strlen(buf.data());
const std::string_view suffix("\n");
if (m == 1){ if (m == 1){
// output_file_stream << reverseComplement(buf) << endl; // output_file_stream << reverseComplement(buf) << endl;
reverseComplement(buf,buf_len); reverseComplement(buf,buf_len);
} }
output_file_stream.write(buf.data(), buf_len); for(int i=0;i<suffix.size();i++){
buf[buf_len+i]=suffix[i];
}
output_file_stream.write(buf.data(), buf_len+suffix.size());
lines++; lines++;
} }