Package bgu.bio.algorithms.alignment

Source Code of bgu.bio.algorithms.alignment.TestSequenceAlignmentAndWithOutMatrix

package bgu.bio.algorithms.alignment;

import java.util.Random;

import org.junit.Assert;
import org.junit.Test;

import bgu.bio.util.AffineGapScoringMatrix;
import bgu.bio.util.IdentityScoringMatrix;
import bgu.bio.util.ScoringMatrix;
import bgu.bio.util.alphabet.AlphabetUtils;
import bgu.bio.util.alphabet.RnaAlphabet;

public class TestSequenceAlignmentAndWithOutMatrix {

  @Test
  public void testAffineSmall1() {
    AffineGapGlobalSequenceAlignment affine = new AffineGapGlobalSequenceAlignment(
        10, 10, RnaAlphabet.getInstance(), new AffineGapScoringMatrix(
            "matrix/NUC-Affine-sim-RIBOSUM85-60.matrix",
            RnaAlphabet.getInstance()));
    affine.setSequences("GA", "");
    affine.buildMatrix();
    Assert.assertEquals(-3.0, affine.getAlignmentScore(), 0.001);
   
    affine.setSequences("GA".toCharArray(),2, "GA".toCharArray(),0);
    affine.buildMatrix();
    Assert.assertEquals(-3.0, affine.getAlignmentScore(), 0.001);
  }

  @Test
  public void randomTest() {
    AlphabetUtils alphabet = RnaAlphabet.getInstance();
    ScoringMatrix matrix = new IdentityScoringMatrix(alphabet);

    GlobalSequenceAlignment alignMat = new GlobalSequenceAlignment(0, 0,
        alphabet, matrix);
    GlobalSequenceAlignmentNoMatrix alignNoMat = new GlobalSequenceAlignmentNoMatrix(
        0, 0, alphabet, matrix);

    Random rand = new Random();
    final int size = 200;
    final int repeats = 1000;
    char[] seq1 = new char[size];
    char[] seq2 = new char[size];
    for (int i = 0; i < repeats; i++) {

      alphabet.randomSequence(seq1, size, rand);
      alphabet.randomSequence(seq2, size, rand);

      alignMat.setSequences(new String(seq1), new String(seq2));
      alignNoMat.setSequences(seq1, seq2);

      alignMat.buildMatrix();
      alignNoMat.buildMatrix();

      if (alignMat.getAlignmentScore() - alignNoMat.getAlignmentScore() != 0) {
        alignMat.printAlignments();
        System.out.println("------------");
        alignMat.printDPMatrix();
        System.out.println("------------");
        alignNoMat.printDPMatrix();
        Assert.fail("Problem on test " + i + "\nSeq1: "
            + new String(seq1) + "\nSeq2: " + new String(seq2)
            + "\nWith score: " + alignMat.getAlignmentScore()
            + "\nWithout score: " + alignNoMat.getAlignmentScore());

      }

    }
  }
}
TOP

Related Classes of bgu.bio.algorithms.alignment.TestSequenceAlignmentAndWithOutMatrix

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.