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
|
///A tutorial showing how to nest modifiers.
#include <iostream>
#include <seqan/stream.h>
#include <seqan/modifier.h>
using namespace seqan;
int main()
{
//![string]
String<Dna> myString = "attacgg";
//![string]
///A nested modifier.
//![complement]
typedef ModifiedString<String<Dna>, ModComplementDna> TMyComplement;
//![complement]
//![reverse]
typedef ModifiedString<TMyComplement, ModReverse> TMyReverseComplement;
//![reverse]
///A reverse complemented string.
//![constructor]
TMyReverseComplement myReverseComplement(myString);
//![constructor]
std::cout << "//![output]" << '\n';
//![output]
std::cout << myString << '\n';
std::cout << myReverseComplement << '\n';
replace(myString, 1, 1, "cgt");
std::cout << myString << '\n';
std::cout << myReverseComplement << '\n';
//![output]
std::cout << "//![output]" << '\n';
std::cout << myString << '\n';
//![alternative]
std::cout << DnaStringReverseComplement(myString) << std::endl;
//![alternative]
return 0;
}
|