예제 #1
0
static void test_util_rev_nibble_lookup()
{
  test_status("Testing rev_nibble_lookup()");
  size_t i;
  for(i = 0; i < 16; i++) {
    TASSERT(rev_nibble_lookup(i) == rev_nibble(i));
    TASSERT(rev_nibble_lookup(rev_nibble_lookup(i)) == i);
  }
}
예제 #2
0
// kmer_col_edge_str should be 9 chars long
// Return pointer to kmer_col_edge_str
char* db_node_get_edges_str(Edges edges, char* kmer_col_edge_str)
{
  int i;
  char str[] = "acgt";

  char left = edges >> 4;
  left = (char)rev_nibble(left);
  char right = edges & 0xf;

  for(i = 0; i < 4; i++)
    kmer_col_edge_str[i] = (left & (0x1 << i) ? str[i] : '.');

  for(i = 0; i < 4; i++)
    kmer_col_edge_str[i+4] = (char)toupper(right & (0x1 << i) ? str[i] : '.');

  kmer_col_edge_str[8] = '\0';

  return kmer_col_edge_str;
}
static char* get_edges_str(char edges, char* kmer_colour_edge_str)
{
  int i;

  char str[] = "acgt";

  char left = edges >> 4;
  left = rev_nibble(left);
  char right = edges & 0xf;

  for(i = 0; i < 4; i++)
    kmer_colour_edge_str[i] = (left & (0x1 << i) ? str[i] : '.');

  for(i = 0; i < 4; i++)
    kmer_colour_edge_str[i+4] = toupper(right & (0x1 << i) ? str[i] : '.');

  kmer_colour_edge_str[8] = '\0';

  return kmer_colour_edge_str;
}