def fullcomp(seq):
<EOL>seq = seq.replace("<STR_LIT:A>", '<STR_LIT:u>').replace('<STR_LIT:T>', '<STR_LIT:v>').replace('<STR_LIT:C>', '<STR_LIT:p>').replace('<STR_LIT>', '<STR_LIT:z>').replace('<STR_LIT:u>', '<STR_LIT:T>').replace('<STR_LIT:v>', '<STR_LIT:A>').replace('<STR_LIT:p>', '<STR_LIT>').replace('<STR_LIT:z>', '<STR_LIT:C>')<EOL>seq = seq.replace('<STR_LIT:R>', '<STR_LIT:u>').replace('<STR_LIT>', '<STR_LIT:v>').replace('<STR_LIT:Y>', '<STR_LIT:b>').replace('<STR_LIT:M>', '<STR_LIT:o>').replace('<STR_LIT:u>', '<STR_LIT:Y>').replace('<STR_LIT:v>', '<STR_LIT:M>').replace('<STR_LIT:b>', '<STR_LIT:R>').replace('<STR_LIT:o>', '<STR_LIT>')<EOL>seq = seq.replace('<STR_LIT:r>', '<STR_LIT:u>').replace('<STR_LIT:k>', '<STR_LIT:v>').replace('<STR_LIT:y>', '<STR_LIT:b>').replace('<STR_LIT:m>', '<STR_LIT:o>').replace('<STR_LIT:u>', '<STR_LIT:y>').replace('<STR_LIT:v>', '<STR_LIT:m>').replace('<STR_LIT:b>', '<STR_LIT:r>').replace('<STR_LIT:o>', '<STR_LIT:k>')<EOL>return seq<EOL>
returns complement of sequence including ambiguity characters,
    and saves lower case info for multiple hetero sequences