Esempio n. 1
0
bool ReadHasMeaningfulQualityValues(FASTQSequence &sequence)
{
    if (sequence.qual.Empty() == true) {
        return 0;
    }
    else {
        int numZero=0, numNonZero=0;
        if (sequence.qual.data == NULL) {
            return false;
        }
        numZero = CountZero(sequence.qual.data, sequence.length);
        numNonZero = sequence.length - numZero;
        int subNumZero = 0, subNonZero = 0;

        if (sequence.substitutionQV.data == NULL) {
            return false;
        }
        subNumZero = CountZero(sequence.substitutionQV.data, sequence.length);
        subNonZero = sequence.length - subNumZero;

        if (numZero < 0.5*numNonZero and subNumZero < 0.5 * subNonZero) {
            return true;
        }
        else {
            return false;
        }
    }
}
Esempio n. 2
0
  // 90度座標のビットボードを通常の座標に戻す。
  Bitboard Util::Reverse90(Bitboard bitboard90) {
    // 通常座標に変換する。
    Bitboard bitboard = 0;
    for (;bitboard90; bitboard90 &= bitboard90 - 1) {
      // 90度座標の位置を得る。
      Square square90 = CountZero(bitboard90);
      // 変換して追加。
      bitboard |= SQUARE[R_ROT90[square90]];
    }

    // 返す。
    return bitboard;
  }
Esempio n. 3
0
  // 135度座標のビットボードを通常の座標に戻す。
  Bitboard Util::Reverse135(Bitboard bitboard135) {
    // 通常座標に変換する。
    Bitboard bitboard = 0;
    for (;bitboard135; bitboard135 &= bitboard135 - 1) {
      // 135度座標の位置を得る。
      Square square135 = CountZero(bitboard135);
      // 変換して追加。
      bitboard |= SQUARE[R_ROT135[square135]];
    }

    // 返す。
    return bitboard;
  }
Esempio n. 4
0
  // 45度座標のビットボードを通常の座標に戻す。
  Bitboard Util::Reverse45(Bitboard bitboard45) {
    // 通常座標に変換する。
    Bitboard bitboard = 0;
    for (;bitboard45; bitboard45 &= bitboard45 - 1) {
      // 45度座標の位置を得る。
      Square square45 = CountZero(bitboard45);
      // 変換して追加。
      bitboard |= SQUARE[R_ROT45[square45]];
    }

    // 返す。
    return bitboard;
  }