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)
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
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)
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)