def test_Align2_reversed(self):
     """Tests the Align method, reversing query and ref from above."""
     aligner = ssw.Aligner()
     filter_ = ssw.Filter()
     aligner.set_reference_sequence(QUERY)
     alignment = aligner.align(REF, filter_)
     self.assertEqual(21, alignment.sw_score)
     self.assertEqual(8, alignment.query_begin)
     self.assertEqual(21, alignment.query_end)
     self.assertEqual(0, alignment.ref_begin)
     self.assertEqual(14, alignment.ref_end)
     self.assertEqual(2, alignment.mismatches)
     self.assertEqual('8S4=1X4=1D5=17S', alignment.cigar_string)
 def test_Align(self):
     """Tests the Align method."""
     aligner = ssw.Aligner()
     filter_ = ssw.Filter()
     length = aligner.set_reference_sequence(REF)
     self.assertEqual(len(REF), length)
     alignment = aligner.align(QUERY, filter_)
     self.assertEqual(21, alignment.sw_score)
     self.assertEqual(8, alignment.sw_score_next_best)
     self.assertEqual(8, alignment.ref_begin)
     self.assertEqual(21, alignment.ref_end)
     self.assertEqual(0, alignment.query_begin)
     self.assertEqual(14, alignment.query_end)
     self.assertEqual(4, alignment.ref_end_next_best)
     self.assertEqual(2, alignment.mismatches)
     self.assertEqual('4=1X4=1I5=', alignment.cigar_string)
Example #3
0
    def __init__(self, query_seq, match, mismatch, gap_open_penalty,
                 gap_extend_penalty):
        """Creates a new LibSSWPairwiseAligner, aligning against query_seq.

    Arguments:
      query_seq: str, the string we'll align our targets against.
      match: int > 0, alignment match score.
      mismatch: int > 0, alignment mismatch score.
      gap_open_penalty: int > 0, alignment gap_open penalty score.
      gap_extend_penalty: int > 0, alignment gap_extension penalty score.
    """
        self.filter = libssw.Filter()
        self.aligner = libssw.Aligner.construct(
            match_score=match,
            mismatch_penalty=mismatch,
            gap_opening_penalty=gap_open_penalty,
            gap_extending_penalty=gap_extend_penalty)
        self.query = query_seq
Example #4
0
    def test_longer(self):
        """Test longer strings, so the second-best alignment is considered."""
        ref = 'TTTTGGGGGGGGGGGGG'
        query = 'TTATTGGGGGGGGGGGGG'
        match = 4
        mismatch = 2
        gap_extend_penalty = 2
        gap_open_penalty = 4

        aligner = ssw.Aligner.construct(
            match_score=match,
            mismatch_penalty=mismatch,
            gap_opening_penalty=gap_open_penalty,
            gap_extending_penalty=gap_extend_penalty)
        filter_ = ssw.Filter()
        length = aligner.set_reference_sequence(ref)
        self.assertEqual(len(ref), length)
        alignment = aligner.align(query, filter_)
        p(alignment)
        self.assertEqual('2=1I15=', alignment.cigar_string)
Example #5
0
    def test_short(self):
        """Test very short strings."""
        ref = 'tttt'
        query = 'ttAtt'
        match = 4
        mismatch = 2
        gap_extend_penalty = 2
        gap_open_penalty = 4

        aligner = ssw.Aligner.construct(
            match_score=match,
            mismatch_penalty=mismatch,
            gap_opening_penalty=gap_open_penalty,
            gap_extending_penalty=gap_extend_penalty)
        filter_ = ssw.Filter()
        length = aligner.set_reference_sequence(ref)
        self.assertEqual(len(ref), length)
        alignment = aligner.align(query, filter_)
        p(alignment)
        self.assertEqual('2=1I2=', alignment.cigar_string)