C functions to detect IUPAC sequences
This commit is contained in:
60
src/encode.c
60
src/encode.c
@ -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;
|
||||
|
Reference in New Issue
Block a user