1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
// The comment lines containing ![fragment-line] are there for the
// documentation system. You can ignore them when reading this file.
//![full]
//![top]
#include <seqan/sequence.h>
#include <seqan/basic.h>
#include <seqan/stream.h>
#include <seqan/file.h>
#include <seqan/modifier.h>
using namespace seqan2;
Dna getRevCompl(Dna const & nucleotide)
{
if (nucleotide == 'A')
return 'T';
if (nucleotide == 'T')
return 'A';
if (nucleotide == 'C')
return 'G';
return 'C';
}
int main()
{
DnaString genome = "TATATACGCGCGAGTCGT";
DnaString revComplGenome;
//![top]
//1.
resize(revComplGenome, length(genome));
//2.
for (unsigned i = 0; i < length(genome); ++i)
revComplGenome[length(genome) - 1 - i] = getRevCompl(genome[i]);
//3.
std::cout << genome << std::endl;
std::cout << revComplGenome << std::endl;
//![bottom]
// And to check if your output is correct,
// use the given SeqAn function reverseComplement(),
// which modifies the sequence in-place:
reverseComplement(genome);
std::cout << genome << std::endl;
return 0;
}
//![bottom]
//![full]
|