@Override
  public int compareTo(final BasePairCharType c) {
    final char input = getChar();
    final char compare = c.getChar();

    if (input == compare) {
      return 0;
    } else {
      switch (input) {
        case ' ':
          return -1;
        case 'N':
          if (compare == ' ') return 1;
          else return -1;
        case 'A':
          if (compare == ' ' || compare == 'N') return 1;
          else return -1;
        case 'T':
          if (compare == 'G' || compare == 'C') return -1;
          else return 1;
        case 'G':
          if (compare == 'C') return -1;
          else return 1;
        default:
          return 1;
      }
    }
  }
 @Override
 public void set(final BasePairCharType c) {
   dataAccess.setValue(i, c.getChar());
 }