C functions to detect IUPAC sequences

This commit is contained in:
Celine Mercier
2017-07-05 17:26:03 +02:00
parent 101f764cce
commit d10192ab0e
3 changed files with 92 additions and 0 deletions

View File

@ -54,6 +54,66 @@ bool only_ATGC(const char* seq)
}
bool only_IUPAC_DNA(const char* seq)
{
const char* c = seq;
while (*c)
{
if (!((*c == 'A') || \
(*c == 'T') || \
(*c == 'G') || \
(*c == 'C') || \
(*c == 'U') || \
(*c == 'R') || \
(*c == 'Y') || \
(*c == 'S') || \
(*c == 'W') || \
(*c == 'K') || \
(*c == 'M') || \
(*c == 'B') || \
(*c == 'D') || \
(*c == 'H') || \
(*c == 'V') || \
(*c == 'N') || \
(*c == 'a') || \
(*c == 't') || \
(*c == 'g') || \
(*c == 'c') || \
(*c == 'u') || \
(*c == 'r') || \
(*c == 'y') || \
(*c == 's') || \
(*c == 'w') || \
(*c == 'k') || \
(*c == 'm') || \
(*c == 'b') || \
(*c == 'd') || \
(*c == 'h') || \
(*c == 'v') || \
(*c == 'n') || \
(*c == '.') || \
(*c == '-')))
{
return 0;
}
else
{
c++;
}
}
return 1;
}
bool is_a_DNA_seq(const char* seq)
{
if (only_ATGC(seq))
return true;
return only_IUPAC_DNA(seq);
}
byte_t* encode_seq_on_2_bits(const char* seq, int32_t length)
{
byte_t* seq_b;