mirror of
https://github.com/biopython/biopython.git
synced 2025-10-20 21:53:47 +08:00
$ ruff check --fix --select=I \ --config=lint.isort.force-single-line=true \ --config=lint.isort.order-by-type=false \ BioSQL/ Bio/ Tests/ Scripts/ Doc/ setup.py Using ruff version 0.4.10
1331 lines
59 KiB
Python
1331 lines
59 KiB
Python
# Copyright 2012 by Wibowo Arindrarto. All rights reserved.
|
|
# This code is part of the Biopython distribution and governed by its
|
|
# license. Please see the LICENSE file that should have been included
|
|
# as part of this package.
|
|
|
|
"""Tests for SearchIO BlatIO parsers."""
|
|
|
|
import os
|
|
import unittest
|
|
|
|
from Bio.SearchIO import parse
|
|
|
|
# test case files are in the Blast directory
|
|
TEST_DIR = "Blat"
|
|
FMT = "blat-psl"
|
|
|
|
|
|
def get_file(filename):
|
|
"""Return the path of a test file."""
|
|
return os.path.join(TEST_DIR, filename)
|
|
|
|
|
|
class BlatPslCases(unittest.TestCase):
|
|
def test_psl_34_001(self, testf="psl_34_001.psl", pslx=False):
|
|
"""Test parsing blat output (psl_34_001.psl)."""
|
|
blat_file = get_file(testf)
|
|
self.qresults = list(parse(blat_file, FMT, pslx=pslx))
|
|
self.assertEqual(2, len(self.qresults))
|
|
# check common attributes
|
|
for qresult in self.qresults:
|
|
for hit in qresult:
|
|
self.assertEqual(qresult.id, hit.query_id)
|
|
for hsp in hit:
|
|
self.assertEqual(hit.id, hsp.hit_id)
|
|
self.assertEqual(qresult.id, hsp.query_id)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
self.assertEqual("hg18_dna", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(33, qresult.seq_len)
|
|
self.assertEqual(3, len(qresult))
|
|
# first qresult, first hit
|
|
hit = qresult[0]
|
|
self.assertEqual("chr4", hit.id)
|
|
self.assertEqual(191154276, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(16, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(11, hsp.query_start)
|
|
self.assertEqual(61646095, hsp.hit_start)
|
|
self.assertEqual(27, hsp.query_end)
|
|
self.assertEqual(61646111, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([16], hsp.query_span_all)
|
|
self.assertEqual([16], hsp.hit_span_all)
|
|
self.assertEqual([(11, 27)], hsp.query_range_all)
|
|
self.assertEqual([(61646095, 61646111)], hsp.hit_range_all)
|
|
# first qresult, second hit
|
|
hit = qresult[1]
|
|
self.assertEqual("chr1", hit.id)
|
|
self.assertEqual(249250621, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(33, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(0, hsp.query_start)
|
|
self.assertEqual(10271783, hsp.hit_start)
|
|
self.assertEqual(33, hsp.query_end)
|
|
self.assertEqual(10271816, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([33], hsp.query_span_all)
|
|
self.assertEqual([33], hsp.hit_span_all)
|
|
self.assertEqual([(0, 33)], hsp.query_range_all)
|
|
self.assertEqual([(10271783, 10271816)], hsp.hit_range_all)
|
|
# first qresult, third hit
|
|
hit = qresult[2]
|
|
self.assertEqual("chr2", hit.id)
|
|
self.assertEqual(243199373, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual(17, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(8, hsp.query_start)
|
|
self.assertEqual(53575980, hsp.hit_start)
|
|
self.assertEqual(25, hsp.query_end)
|
|
self.assertEqual(53575997, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([17], hsp.query_span_all)
|
|
self.assertEqual([17], hsp.hit_span_all)
|
|
self.assertEqual([(8, 25)], hsp.query_range_all)
|
|
self.assertEqual([(53575980, 53575997)], hsp.hit_range_all)
|
|
|
|
# test second qresult
|
|
qresult = self.qresults[1]
|
|
self.assertEqual("hg19_dna", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(50, qresult.seq_len)
|
|
self.assertEqual(10, len(qresult))
|
|
# second qresult, first hit
|
|
hit = qresult[0]
|
|
self.assertEqual("chr9", hit.id)
|
|
self.assertEqual(141213431, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# second qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(38, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(9, hsp.query_start)
|
|
self.assertEqual(85737865, hsp.hit_start)
|
|
self.assertEqual(50, hsp.query_end)
|
|
self.assertEqual(85737906, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([41], hsp.query_span_all)
|
|
self.assertEqual([41], hsp.hit_span_all)
|
|
self.assertEqual([(9, 50)], hsp.query_range_all)
|
|
self.assertEqual([(85737865, 85737906)], hsp.hit_range_all)
|
|
# second qresult, second hit
|
|
hit = qresult[1]
|
|
self.assertEqual("chr8", hit.id)
|
|
self.assertEqual(146364022, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# second qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(41, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(8, hsp.query_start)
|
|
self.assertEqual(95160479, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(95160520, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([41], hsp.query_span_all)
|
|
self.assertEqual([41], hsp.hit_span_all)
|
|
self.assertEqual([(8, 49)], hsp.query_range_all)
|
|
self.assertEqual([(95160479, 95160520)], hsp.hit_range_all)
|
|
# second qresult, third hit
|
|
hit = qresult[2]
|
|
self.assertEqual("chr22", hit.id)
|
|
self.assertEqual(51304566, hit.seq_len)
|
|
self.assertEqual(2, len(hit.hsps))
|
|
# second qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual(33, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(11, hsp.query_start)
|
|
self.assertEqual(42144400, hsp.hit_start)
|
|
self.assertEqual(47, hsp.query_end)
|
|
self.assertEqual(42144436, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([36], hsp.query_span_all)
|
|
self.assertEqual([36], hsp.hit_span_all)
|
|
self.assertEqual([(11, 47)], hsp.query_range_all)
|
|
self.assertEqual([(42144400, 42144436)], hsp.hit_range_all)
|
|
# second qresult, third hit, second hsp
|
|
hsp = qresult[2].hsps[1]
|
|
self.assertEqual(35, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(2, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(12, hsp.query_start)
|
|
self.assertEqual(48997405, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(48997442, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([37], hsp.query_span_all)
|
|
self.assertEqual([37], hsp.hit_span_all)
|
|
self.assertEqual([(12, 49)], hsp.query_range_all)
|
|
self.assertEqual([(48997405, 48997442)], hsp.hit_range_all)
|
|
# second qresult, fourth hit
|
|
hit = qresult[3]
|
|
self.assertEqual("chr2", hit.id)
|
|
self.assertEqual(243199373, hit.seq_len)
|
|
self.assertEqual(2, len(hit.hsps))
|
|
# second qresult, fourth hit, first hsp
|
|
hsp = qresult[3].hsps[0]
|
|
self.assertEqual(43, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(1, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(1, hsp.query_gapopen_num)
|
|
self.assertEqual(4, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(1, hsp.query_start)
|
|
self.assertEqual(183925984, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(183926028, hsp.hit_end)
|
|
self.assertEqual(2, len(hsp))
|
|
self.assertEqual([6, 38], hsp.query_span_all)
|
|
self.assertEqual([6, 38], hsp.hit_span_all)
|
|
self.assertEqual([(1, 7), (11, 49)], hsp.query_range_all)
|
|
self.assertEqual([1, 11], hsp.query_start_all)
|
|
self.assertEqual([7, 49], hsp.query_end_all)
|
|
self.assertEqual(
|
|
[(183925984, 183925990), (183925990, 183926028)], hsp.hit_range_all
|
|
)
|
|
self.assertEqual([183925984, 183925990], hsp.hit_start_all)
|
|
self.assertEqual([183925990, 183926028], hsp.hit_end_all)
|
|
# second qresult, fourth hit, second hsp
|
|
hsp = qresult[3].hsps[1]
|
|
self.assertEqual(35, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(1, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(13, hsp.query_start)
|
|
self.assertEqual(120641740, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(120641776, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([36], hsp.query_span_all)
|
|
self.assertEqual([36], hsp.hit_span_all)
|
|
self.assertEqual([(13, 49)], hsp.query_range_all)
|
|
self.assertEqual([(120641740, 120641776)], hsp.hit_range_all)
|
|
# second qresult, fifth hit
|
|
hit = qresult[4]
|
|
self.assertEqual("chr19", hit.id)
|
|
self.assertEqual(59128983, hit.seq_len)
|
|
self.assertEqual(3, len(hit.hsps))
|
|
# second qresult, fifth hit, first hsp
|
|
hsp = qresult[4].hsps[0]
|
|
self.assertEqual(34, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(2, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(1, hsp.hit_gapopen_num)
|
|
self.assertEqual(134, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(35483340, hsp.hit_start)
|
|
self.assertEqual(46, hsp.query_end)
|
|
self.assertEqual(35483510, hsp.hit_end)
|
|
self.assertEqual(2, len(hsp))
|
|
self.assertEqual([25, 11], hsp.query_span_all)
|
|
self.assertEqual([25, 11], hsp.hit_span_all)
|
|
self.assertEqual([(10, 35), (35, 46)], hsp.query_range_all)
|
|
self.assertEqual(
|
|
[(35483340, 35483365), (35483499, 35483510)], hsp.hit_range_all
|
|
)
|
|
# second qresult, fifth hit, second hsp
|
|
hsp = qresult[4].hsps[1]
|
|
self.assertEqual(39, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(54017130, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(54017169, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([39], hsp.query_span_all)
|
|
self.assertEqual([39], hsp.hit_span_all)
|
|
self.assertEqual([(10, 49)], hsp.query_range_all)
|
|
self.assertEqual([(54017130, 54017169)], hsp.hit_range_all)
|
|
# second qresult, fifth hit, third hsp
|
|
hsp = qresult[4].hsps[2]
|
|
self.assertEqual(36, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(553742, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(553781, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([39], hsp.query_span_all)
|
|
self.assertEqual([39], hsp.hit_span_all)
|
|
self.assertEqual([(10, 49)], hsp.query_range_all)
|
|
self.assertEqual([(553742, 553781)], hsp.hit_range_all)
|
|
|
|
def test_psl_34_002(self, testf="psl_34_002.psl", pslx=False):
|
|
"""Test parsing blat output (psl_34_001.psl)."""
|
|
blat_file = get_file(testf)
|
|
self.qresults = list(parse(blat_file, FMT, pslx=pslx))
|
|
self.assertEqual(0, len(self.qresults))
|
|
|
|
def test_psl_34_003(self, testf="psl_34_003.psl", pslx=False):
|
|
"""Test parsing blat output (psl_34_003.psl)."""
|
|
blat_file = get_file(testf)
|
|
self.qresults = list(parse(blat_file, FMT, pslx=pslx))
|
|
self.assertEqual(1, len(self.qresults))
|
|
# check common attributes
|
|
for qresult in self.qresults:
|
|
for hit in qresult:
|
|
self.assertEqual(qresult.id, hit.query_id)
|
|
for hsp in hit:
|
|
self.assertEqual(hit.id, hsp.hit_id)
|
|
self.assertEqual(qresult.id, hsp.query_id)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
self.assertEqual("hg18_dna", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(33, qresult.seq_len)
|
|
self.assertEqual(3, len(qresult))
|
|
# first qresult, first hit
|
|
hit = qresult[0]
|
|
self.assertEqual("chr4", hit.id)
|
|
self.assertEqual(191154276, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(16, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(11, hsp.query_start)
|
|
self.assertEqual(61646095, hsp.hit_start)
|
|
self.assertEqual(27, hsp.query_end)
|
|
self.assertEqual(61646111, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([16], hsp.query_span_all)
|
|
self.assertEqual([16], hsp.hit_span_all)
|
|
self.assertEqual([(11, 27)], hsp.query_range_all)
|
|
self.assertEqual([(61646095, 61646111)], hsp.hit_range_all)
|
|
# first qresult, second hit
|
|
hit = qresult[1]
|
|
self.assertEqual("chr1", hit.id)
|
|
self.assertEqual(249250621, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(33, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(0, hsp.query_start)
|
|
self.assertEqual(10271783, hsp.hit_start)
|
|
self.assertEqual(33, hsp.query_end)
|
|
self.assertEqual(10271816, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([33], hsp.query_span_all)
|
|
self.assertEqual([33], hsp.hit_span_all)
|
|
self.assertEqual([(0, 33)], hsp.query_range_all)
|
|
self.assertEqual([(10271783, 10271816)], hsp.hit_range_all)
|
|
# first qresult, third hit
|
|
hit = qresult[2]
|
|
self.assertEqual("chr2", hit.id)
|
|
self.assertEqual(243199373, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual(17, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(8, hsp.query_start)
|
|
self.assertEqual(53575980, hsp.hit_start)
|
|
self.assertEqual(25, hsp.query_end)
|
|
self.assertEqual(53575997, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([17], hsp.query_span_all)
|
|
self.assertEqual([17], hsp.hit_span_all)
|
|
self.assertEqual([(8, 25)], hsp.query_range_all)
|
|
self.assertEqual([(53575980, 53575997)], hsp.hit_range_all)
|
|
|
|
def test_psl_34_004(self, testf="psl_34_004.psl", pslx=False):
|
|
"""Test parsing blat output (psl_34_004.psl)."""
|
|
blat_file = get_file(testf)
|
|
self.qresults = list(parse(blat_file, FMT, pslx=pslx))
|
|
self.assertEqual(1, len(self.qresults))
|
|
# check common attributes
|
|
for qresult in self.qresults:
|
|
for hit in qresult:
|
|
self.assertEqual(qresult.id, hit.query_id)
|
|
for hsp in hit:
|
|
self.assertEqual(hit.id, hsp.hit_id)
|
|
self.assertEqual(qresult.id, hsp.query_id)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
self.assertEqual("hg19_dna", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(50, qresult.seq_len)
|
|
self.assertEqual(10, len(qresult))
|
|
# first qresult, first hit
|
|
hit = qresult[0]
|
|
self.assertEqual("chr9", hit.id)
|
|
self.assertEqual(141213431, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(38, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(9, hsp.query_start)
|
|
self.assertEqual(85737865, hsp.hit_start)
|
|
self.assertEqual(50, hsp.query_end)
|
|
self.assertEqual(85737906, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([41], hsp.query_span_all)
|
|
self.assertEqual([41], hsp.hit_span_all)
|
|
self.assertEqual([(9, 50)], hsp.query_range_all)
|
|
self.assertEqual([(85737865, 85737906)], hsp.hit_range_all)
|
|
# first qresult, second hit
|
|
hit = qresult[1]
|
|
self.assertEqual("chr8", hit.id)
|
|
self.assertEqual(146364022, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(41, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(8, hsp.query_start)
|
|
self.assertEqual(95160479, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(95160520, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([41], hsp.query_span_all)
|
|
self.assertEqual([41], hsp.hit_span_all)
|
|
self.assertEqual([(8, 49)], hsp.query_range_all)
|
|
self.assertEqual([(95160479, 95160520)], hsp.hit_range_all)
|
|
# first qresult, third hit
|
|
hit = qresult[2]
|
|
self.assertEqual("chr22", hit.id)
|
|
self.assertEqual(51304566, hit.seq_len)
|
|
self.assertEqual(2, len(hit.hsps))
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual(33, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(11, hsp.query_start)
|
|
self.assertEqual(42144400, hsp.hit_start)
|
|
self.assertEqual(47, hsp.query_end)
|
|
self.assertEqual(42144436, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([36], hsp.query_span_all)
|
|
self.assertEqual([36], hsp.hit_span_all)
|
|
self.assertEqual([(11, 47)], hsp.query_range_all)
|
|
self.assertEqual([(42144400, 42144436)], hsp.hit_range_all)
|
|
# first qresult, third hit, second hsp
|
|
hsp = qresult[2].hsps[1]
|
|
self.assertEqual(35, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(2, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(12, hsp.query_start)
|
|
self.assertEqual(48997405, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(48997442, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([37], hsp.query_span_all)
|
|
self.assertEqual([37], hsp.hit_span_all)
|
|
self.assertEqual([(12, 49)], hsp.query_range_all)
|
|
self.assertEqual([(48997405, 48997442)], hsp.hit_range_all)
|
|
# first qresult, fourth hit
|
|
hit = qresult[3]
|
|
self.assertEqual("chr2", hit.id)
|
|
self.assertEqual(243199373, hit.seq_len)
|
|
self.assertEqual(2, len(hit.hsps))
|
|
# first qresult, fourth hit, first hsp
|
|
hsp = qresult[3].hsps[0]
|
|
self.assertEqual(43, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(1, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(1, hsp.query_gapopen_num)
|
|
self.assertEqual(4, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(1, hsp.query_start)
|
|
self.assertEqual(183925984, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(183926028, hsp.hit_end)
|
|
self.assertEqual(2, len(hsp))
|
|
self.assertEqual([6, 38], hsp.query_span_all)
|
|
self.assertEqual([6, 38], hsp.hit_span_all)
|
|
self.assertEqual([(1, 7), (11, 49)], hsp.query_range_all)
|
|
self.assertEqual(
|
|
[(183925984, 183925990), (183925990, 183926028)], hsp.hit_range_all
|
|
)
|
|
# first qresult, fourth hit, second hsp
|
|
hsp = qresult[3].hsps[1]
|
|
self.assertEqual(35, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(1, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(13, hsp.query_start)
|
|
self.assertEqual(120641740, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(120641776, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([36], hsp.query_span_all)
|
|
self.assertEqual([36], hsp.hit_span_all)
|
|
self.assertEqual([(13, 49)], hsp.query_range_all)
|
|
self.assertEqual([(120641740, 120641776)], hsp.hit_range_all)
|
|
# first qresult, fifth hit
|
|
hit = qresult[4]
|
|
self.assertEqual("chr19", hit.id)
|
|
self.assertEqual(59128983, hit.seq_len)
|
|
self.assertEqual(3, len(hit.hsps))
|
|
# first qresult, fifth hit, first hsp
|
|
hsp = qresult[4].hsps[0]
|
|
self.assertEqual(34, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(2, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(1, hsp.hit_gapopen_num)
|
|
self.assertEqual(134, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(35483340, hsp.hit_start)
|
|
self.assertEqual(46, hsp.query_end)
|
|
self.assertEqual(35483510, hsp.hit_end)
|
|
self.assertEqual(2, len(hsp))
|
|
self.assertEqual([25, 11], hsp.query_span_all)
|
|
self.assertEqual([25, 11], hsp.hit_span_all)
|
|
self.assertEqual([(10, 35), (35, 46)], hsp.query_range_all)
|
|
self.assertEqual(
|
|
[(35483340, 35483365), (35483499, 35483510)], hsp.hit_range_all
|
|
)
|
|
# first qresult, fifth hit, second hsp
|
|
hsp = qresult[4].hsps[1]
|
|
self.assertEqual(39, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(54017130, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(54017169, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([39], hsp.query_span_all)
|
|
self.assertEqual([39], hsp.hit_span_all)
|
|
self.assertEqual([(10, 49)], hsp.query_range_all)
|
|
self.assertEqual([(54017130, 54017169)], hsp.hit_range_all)
|
|
# first qresult, fifth hit, third hsp
|
|
hsp = qresult[4].hsps[2]
|
|
self.assertEqual(36, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(553742, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(553781, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([39], hsp.query_span_all)
|
|
self.assertEqual([39], hsp.hit_span_all)
|
|
self.assertEqual([(10, 49)], hsp.query_range_all)
|
|
self.assertEqual([(553742, 553781)], hsp.hit_range_all)
|
|
|
|
def test_psl_34_005(self, testf="psl_34_005.psl", pslx=False):
|
|
"""Test parsing blat output (psl_34_005.psl)."""
|
|
blat_file = get_file(testf)
|
|
self.qresults = list(parse(blat_file, FMT, pslx=pslx))
|
|
self.assertEqual(2, len(self.qresults))
|
|
# check common attributes
|
|
for qresult in self.qresults:
|
|
for hit in qresult:
|
|
self.assertEqual(qresult.id, hit.query_id)
|
|
for hsp in hit:
|
|
self.assertEqual(hit.id, hsp.hit_id)
|
|
self.assertEqual(qresult.id, hsp.query_id)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
self.assertEqual("hg18_dna", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(33, qresult.seq_len)
|
|
self.assertEqual(3, len(qresult))
|
|
# first qresult, first hit
|
|
hit = qresult[0]
|
|
self.assertEqual("chr4", hit.id)
|
|
self.assertEqual(191154276, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(16, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(11, hsp.query_start)
|
|
self.assertEqual(61646095, hsp.hit_start)
|
|
self.assertEqual(27, hsp.query_end)
|
|
self.assertEqual(61646111, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([16], hsp.query_span_all)
|
|
self.assertEqual([16], hsp.hit_span_all)
|
|
self.assertEqual([(11, 27)], hsp.query_range_all)
|
|
self.assertEqual([(61646095, 61646111)], hsp.hit_range_all)
|
|
# first qresult, second hit
|
|
hit = qresult[1]
|
|
self.assertEqual("chr1", hit.id)
|
|
self.assertEqual(249250621, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(33, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(0, hsp.query_start)
|
|
self.assertEqual(10271783, hsp.hit_start)
|
|
self.assertEqual(33, hsp.query_end)
|
|
self.assertEqual(10271816, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([33], hsp.query_span_all)
|
|
self.assertEqual([33], hsp.hit_span_all)
|
|
self.assertEqual([(0, 33)], hsp.query_range_all)
|
|
self.assertEqual([(10271783, 10271816)], hsp.hit_range_all)
|
|
# first qresult, third hit
|
|
hit = qresult[2]
|
|
self.assertEqual("chr2", hit.id)
|
|
self.assertEqual(243199373, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual(17, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(8, hsp.query_start)
|
|
self.assertEqual(53575980, hsp.hit_start)
|
|
self.assertEqual(25, hsp.query_end)
|
|
self.assertEqual(53575997, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([17], hsp.query_span_all)
|
|
self.assertEqual([17], hsp.hit_span_all)
|
|
self.assertEqual([(8, 25)], hsp.query_range_all)
|
|
self.assertEqual([(53575980, 53575997)], hsp.hit_range_all)
|
|
|
|
# test second qresult
|
|
qresult = self.qresults[1]
|
|
self.assertEqual("hg19_dna", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(50, qresult.seq_len)
|
|
self.assertEqual(10, len(qresult))
|
|
# second qresult, first hit
|
|
hit = qresult[0]
|
|
self.assertEqual("chr9", hit.id)
|
|
self.assertEqual(141213431, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# second qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(38, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(9, hsp.query_start)
|
|
self.assertEqual(85737865, hsp.hit_start)
|
|
self.assertEqual(50, hsp.query_end)
|
|
self.assertEqual(85737906, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([41], hsp.query_span_all)
|
|
self.assertEqual([41], hsp.hit_span_all)
|
|
self.assertEqual([(9, 50)], hsp.query_range_all)
|
|
self.assertEqual([(85737865, 85737906)], hsp.hit_range_all)
|
|
# second qresult, second hit
|
|
hit = qresult[1]
|
|
self.assertEqual("chr8", hit.id)
|
|
self.assertEqual(146364022, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# second qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(41, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(8, hsp.query_start)
|
|
self.assertEqual(95160479, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(95160520, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([41], hsp.query_span_all)
|
|
self.assertEqual([41], hsp.hit_span_all)
|
|
self.assertEqual([(8, 49)], hsp.query_range_all)
|
|
self.assertEqual([(95160479, 95160520)], hsp.hit_range_all)
|
|
# second qresult, third hit
|
|
hit = qresult[2]
|
|
self.assertEqual("chr22", hit.id)
|
|
self.assertEqual(51304566, hit.seq_len)
|
|
self.assertEqual(2, len(hit.hsps))
|
|
# second qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual(33, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(11, hsp.query_start)
|
|
self.assertEqual(42144400, hsp.hit_start)
|
|
self.assertEqual(47, hsp.query_end)
|
|
self.assertEqual(42144436, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([36], hsp.query_span_all)
|
|
self.assertEqual([36], hsp.hit_span_all)
|
|
self.assertEqual([(11, 47)], hsp.query_range_all)
|
|
self.assertEqual([(42144400, 42144436)], hsp.hit_range_all)
|
|
# second qresult, third hit, second hsp
|
|
hsp = qresult[2].hsps[1]
|
|
self.assertEqual(35, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(2, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(12, hsp.query_start)
|
|
self.assertEqual(48997405, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(48997442, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([37], hsp.query_span_all)
|
|
self.assertEqual([37], hsp.hit_span_all)
|
|
self.assertEqual([(12, 49)], hsp.query_range_all)
|
|
self.assertEqual([(48997405, 48997442)], hsp.hit_range_all)
|
|
# second qresult, fourth hit
|
|
hit = qresult[3]
|
|
self.assertEqual("chr2", hit.id)
|
|
self.assertEqual(243199373, hit.seq_len)
|
|
self.assertEqual(2, len(hit.hsps))
|
|
# second qresult, fourth hit, first hsp
|
|
hsp = qresult[3].hsps[0]
|
|
self.assertEqual(43, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(1, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(1, hsp.query_gapopen_num)
|
|
self.assertEqual(4, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(1, hsp.query_start)
|
|
self.assertEqual(183925984, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(183926028, hsp.hit_end)
|
|
self.assertEqual(2, len(hsp))
|
|
self.assertEqual([6, 38], hsp.query_span_all)
|
|
self.assertEqual([6, 38], hsp.hit_span_all)
|
|
self.assertEqual([(1, 7), (11, 49)], hsp.query_range_all)
|
|
self.assertEqual(
|
|
[(183925984, 183925990), (183925990, 183926028)], hsp.hit_range_all
|
|
)
|
|
# second qresult, fourth hit, second hsp
|
|
hsp = qresult[3].hsps[1]
|
|
self.assertEqual(35, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(1, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(13, hsp.query_start)
|
|
self.assertEqual(120641740, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(120641776, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([36], hsp.query_span_all)
|
|
self.assertEqual([36], hsp.hit_span_all)
|
|
self.assertEqual([(13, 49)], hsp.query_range_all)
|
|
self.assertEqual([(120641740, 120641776)], hsp.hit_range_all)
|
|
# second qresult, fifth hit
|
|
hit = qresult[4]
|
|
self.assertEqual("chr19", hit.id)
|
|
self.assertEqual(59128983, hit.seq_len)
|
|
self.assertEqual(3, len(hit.hsps))
|
|
# second qresult, fifth hit, first hsp
|
|
hsp = qresult[4].hsps[0]
|
|
self.assertEqual(34, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(2, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(1, hsp.hit_gapopen_num)
|
|
self.assertEqual(134, hsp.hit_gap_num)
|
|
self.assertEqual(1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(35483340, hsp.hit_start)
|
|
self.assertEqual(46, hsp.query_end)
|
|
self.assertEqual(35483510, hsp.hit_end)
|
|
self.assertEqual(2, len(hsp))
|
|
self.assertEqual([25, 11], hsp.query_span_all)
|
|
self.assertEqual([25, 11], hsp.hit_span_all)
|
|
self.assertEqual([(10, 35), (35, 46)], hsp.query_range_all)
|
|
self.assertEqual(
|
|
[(35483340, 35483365), (35483499, 35483510)], hsp.hit_range_all
|
|
)
|
|
# second qresult, fifth hit, second hsp
|
|
hsp = qresult[4].hsps[1]
|
|
self.assertEqual(39, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(54017130, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(54017169, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([39], hsp.query_span_all)
|
|
self.assertEqual([39], hsp.hit_span_all)
|
|
self.assertEqual([(10, 49)], hsp.query_range_all)
|
|
self.assertEqual([(54017130, 54017169)], hsp.hit_range_all)
|
|
# second qresult, fifth hit, third hsp
|
|
hsp = qresult[4].hsps[2]
|
|
self.assertEqual(36, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(3, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(-1, hsp[0].query_strand)
|
|
self.assertEqual(10, hsp.query_start)
|
|
self.assertEqual(553742, hsp.hit_start)
|
|
self.assertEqual(49, hsp.query_end)
|
|
self.assertEqual(553781, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([39], hsp.query_span_all)
|
|
self.assertEqual([39], hsp.hit_span_all)
|
|
self.assertEqual([(10, 49)], hsp.query_range_all)
|
|
self.assertEqual([(553742, 553781)], hsp.hit_range_all)
|
|
|
|
def test_psl_35_001(self, testf="psl_35_001.psl", pslx=False):
|
|
"""Test parsing blat output (psl_35_001.psl)."""
|
|
blat_file = get_file(testf)
|
|
self.qresults = list(parse(blat_file, FMT, pslx=pslx))
|
|
self.assertEqual(1, len(self.qresults))
|
|
# check common attributes
|
|
for qresult in self.qresults:
|
|
for hit in qresult:
|
|
self.assertEqual(qresult.id, hit.query_id)
|
|
for hsp in hit:
|
|
self.assertEqual(hit.id, hsp.hit_id)
|
|
self.assertEqual(qresult.id, hsp.query_id)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
self.assertEqual("CAG33136.1", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(230, qresult.seq_len)
|
|
self.assertEqual(2, len(qresult))
|
|
# first qresult, first hit
|
|
hit = qresult[0]
|
|
self.assertEqual("chr13", hit.id)
|
|
self.assertEqual(114364328, hit.seq_len)
|
|
self.assertEqual(6, len(hit.hsps))
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(52, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(0, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(0, hsp.query_gapopen_num)
|
|
self.assertEqual(0, hsp.query_gap_num)
|
|
self.assertEqual(0, hsp.hit_gapopen_num)
|
|
self.assertEqual(0, hsp.hit_gap_num)
|
|
self.assertEqual(0, hsp[0].query_strand)
|
|
self.assertEqual(61, hsp.query_start)
|
|
self.assertEqual(75566694, hsp.hit_start)
|
|
self.assertEqual(113, hsp.query_end)
|
|
self.assertEqual(75566850, hsp.hit_end)
|
|
self.assertEqual(1, len(hsp))
|
|
self.assertEqual([52], hsp.query_span_all)
|
|
self.assertEqual([156], hsp.hit_span_all)
|
|
self.assertEqual([(61, 113)], hsp.query_range_all)
|
|
self.assertEqual([(75566694, 75566850)], hsp.hit_range_all)
|
|
|
|
def test_psl_35_002(self, testf="psl_35_002.psl", pslx=False):
|
|
"""Test parsing blat output (psl_35_002.psl)."""
|
|
blat_file = get_file(testf)
|
|
self.qresults = list(parse(blat_file, FMT, pslx=pslx))
|
|
self.assertEqual(1, len(self.qresults))
|
|
# check common attributes
|
|
for qresult in self.qresults:
|
|
for hit in qresult:
|
|
self.assertEqual(qresult.id, hit.query_id)
|
|
for hsp in hit:
|
|
self.assertEqual(hit.id, hsp.hit_id)
|
|
self.assertEqual(qresult.id, hsp.query_id)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
self.assertEqual("CAG33136.1", qresult.id)
|
|
self.assertEqual("blat", qresult.program)
|
|
self.assertEqual(230, qresult.seq_len)
|
|
self.assertEqual(3, len(qresult))
|
|
# first qresult, last hit
|
|
hit = qresult[-1]
|
|
self.assertEqual("KI537194", hit.id)
|
|
self.assertEqual(37111980, hit.seq_len)
|
|
self.assertEqual(1, len(hit.hsps))
|
|
# # first qresult, last hit, first hsp
|
|
hsp = hit.hsps[-1]
|
|
self.assertEqual(204, hsp.match_num)
|
|
self.assertEqual(0, hsp.match_rep_num)
|
|
self.assertEqual(6, hsp.mismatch_num)
|
|
self.assertEqual(0, hsp.n_num)
|
|
self.assertEqual(1, hsp.query_gapopen_num)
|
|
self.assertEqual(20, hsp.query_gap_num)
|
|
self.assertEqual(1, hsp.hit_gapopen_num)
|
|
self.assertEqual(1, hsp.hit_gap_num)
|
|
self.assertEqual(0, hsp[0].query_strand)
|
|
self.assertEqual(-1, hsp[0].hit_strand)
|
|
self.assertEqual(0, hsp.query_start)
|
|
self.assertEqual(20872390, hsp.hit_start)
|
|
self.assertEqual(230, hsp.query_end)
|
|
self.assertEqual(20873021, hsp.hit_end)
|
|
self.assertEqual(2, len(hsp))
|
|
self.assertEqual([183, 27], hsp.query_span_all)
|
|
self.assertEqual([549, 81], hsp.hit_span_all)
|
|
self.assertEqual([(0, 183), (203, 230)], hsp.query_range_all)
|
|
self.assertEqual(
|
|
[(20872472, 20873021), (20872390, 20872471)], hsp.hit_range_all
|
|
)
|
|
|
|
|
|
class BlatPslxCases(BlatPslCases):
|
|
def test_pslx_34_001(self, testf="pslx_34_001.pslx"):
|
|
"""Test parsing blat output (pslx_34_001.pslx)."""
|
|
BlatPslCases.test_psl_34_001(self, "pslx_34_001.pslx", pslx=True)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual("aggtaaactgccttca", hsp.query_all[0].seq)
|
|
self.assertEqual("aggtaaactgccttca", hsp.hit_all[0].seq)
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual("atgagcttccaaggtaaactgccttcaagattc", hsp.query_all[0].seq)
|
|
self.assertEqual("atgagcttccaaggtaaactgccttcaagattc", hsp.hit_all[0].seq)
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual("aaggcagtttaccttgg", hsp.query_all[0].seq)
|
|
self.assertEqual("aaggcagtttaccttgg", hsp.hit_all[0].seq)
|
|
|
|
# test second qresult
|
|
qresult = self.qresults[1]
|
|
# second qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(
|
|
"acaaaggggctgggcgtggtggctcacacctgtaatcccaa", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual(
|
|
"acaaaggggctgggcgcagtggctcacgcctgtaatcccaa", hsp.hit_all[0].seq
|
|
)
|
|
# second qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(
|
|
"cacaaaggggctgggcgtggtggctcacacctgtaatccca", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual(
|
|
"cacaaaggggctgggcgtggtggctcacacctgtaatccca", hsp.hit_all[0].seq
|
|
)
|
|
# second qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacacctgtaatcc", hsp.query_all[0].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtagctcatgcctgtaatcc", hsp.hit_all[0].seq)
|
|
# second qresult, third hit, second hsp
|
|
hsp = qresult[2].hsps[1]
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccctt", hsp.query_all[0].seq)
|
|
self.assertEqual("tgggattacaggcgggagccaccacgcccagcccctt", hsp.hit_all[0].seq)
|
|
# second qresult, fourth hit, first hsp
|
|
hsp = qresult[3].hsps[0]
|
|
self.assertEqual("aaaaat", hsp.query_all[0].seq)
|
|
self.assertEqual("aaaaat", hsp.hit_all[0].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacacctgtaatccca", hsp.query_all[1].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacgcctgtaatccca", hsp.hit_all[1].seq)
|
|
# second qresult, fourth hit, second hsp
|
|
hsp = qresult[3].hsps[1]
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccct", hsp.query_all[0].seq)
|
|
self.assertEqual("tgggattacaggcgtgagccaccacgcccagcccct", hsp.hit_all[0].seq)
|
|
# second qresult, fifth hit, first hsp
|
|
hsp = qresult[4].hsps[0]
|
|
self.assertEqual("caaaggggctgggcgtggtggctca", hsp.query_all[0].seq)
|
|
self.assertEqual("caaaggggctgggcgtagtggctga", hsp.hit_all[0].seq)
|
|
self.assertEqual("cacctgtaatc", hsp.query_all[1].seq)
|
|
self.assertEqual("cacctgtaatc", hsp.hit_all[1].seq)
|
|
# second qresult, fifth hit, second hsp
|
|
hsp = qresult[4].hsps[1]
|
|
self.assertEqual(
|
|
"tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.hit_all[0].seq)
|
|
# second qresult, fifth hit, third hsp
|
|
hsp = qresult[4].hsps[2]
|
|
self.assertEqual(
|
|
"tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual("tgggatgacaggggtgaggcaccacgcccagcccctttg", hsp.hit_all[0].seq)
|
|
|
|
def test_pslx_34_002(self, testf="pslx_34_002.pslx"):
|
|
"""Test parsing blat output (pslx_34_002.pslx)."""
|
|
BlatPslCases.test_psl_34_002(self, "pslx_34_002.pslx", pslx=True)
|
|
|
|
def test_pslx_34_003(self, testf="pslx_34_003.pslx"):
|
|
"""Test parsing blat output (pslx_34_003.pslx)."""
|
|
BlatPslCases.test_psl_34_003(self, "pslx_34_003.pslx", pslx=True)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual("aggtaaactgccttca", hsp.query_all[0].seq)
|
|
self.assertEqual("aggtaaactgccttca", hsp.hit_all[0].seq)
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual("atgagcttccaaggtaaactgccttcaagattc", hsp.query_all[0].seq)
|
|
self.assertEqual("atgagcttccaaggtaaactgccttcaagattc", hsp.hit_all[0].seq)
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual("aaggcagtttaccttgg", hsp.query_all[0].seq)
|
|
self.assertEqual("aaggcagtttaccttgg", hsp.hit_all[0].seq)
|
|
|
|
def test_pslx_34_004(self, testf="pslx_34_004.pslx"):
|
|
"""Test parsing blat output (pslx_34_004.pslx)."""
|
|
BlatPslCases.test_psl_34_004(self, "pslx_34_004.pslx", pslx=True)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(
|
|
"acaaaggggctgggcgtggtggctcacacctgtaatcccaa", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual(
|
|
"acaaaggggctgggcgcagtggctcacgcctgtaatcccaa", hsp.hit_all[0].seq
|
|
)
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(
|
|
"cacaaaggggctgggcgtggtggctcacacctgtaatccca", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual(
|
|
"cacaaaggggctgggcgtggtggctcacacctgtaatccca", hsp.hit_all[0].seq
|
|
)
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacacctgtaatcc", hsp.query_all[0].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtagctcatgcctgtaatcc", hsp.hit_all[0].seq)
|
|
# first qresult, third hit, second hsp
|
|
hsp = qresult[2].hsps[1]
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccctt", hsp.query_all[0].seq)
|
|
self.assertEqual("tgggattacaggcgggagccaccacgcccagcccctt", hsp.hit_all[0].seq)
|
|
# first qresult, fourth hit, first hsp
|
|
hsp = qresult[3].hsps[0]
|
|
self.assertEqual("aaaaat", hsp.query_all[0].seq)
|
|
self.assertEqual("aaaaat", hsp.hit_all[0].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacacctgtaatccca", hsp.query_all[1].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacgcctgtaatccca", hsp.hit_all[1].seq)
|
|
# first qresult, fourth hit, second hsp
|
|
hsp = qresult[3].hsps[1]
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccct", hsp.query_all[0].seq)
|
|
self.assertEqual("tgggattacaggcgtgagccaccacgcccagcccct", hsp.hit_all[0].seq)
|
|
# first qresult, fifth hit, first hsp
|
|
hsp = qresult[4].hsps[0]
|
|
self.assertEqual("caaaggggctgggcgtggtggctca", hsp.query_all[0].seq)
|
|
self.assertEqual("caaaggggctgggcgtagtggctga", hsp.hit_all[0].seq)
|
|
self.assertEqual("cacctgtaatc", hsp.query_all[1].seq)
|
|
self.assertEqual("cacctgtaatc", hsp.hit_all[1].seq)
|
|
# first qresult, fifth hit, second hsp
|
|
hsp = qresult[4].hsps[1]
|
|
self.assertEqual(
|
|
"tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.hit_all[0].seq)
|
|
# first qresult, fifth hit, third hsp
|
|
hsp = qresult[4].hsps[2]
|
|
self.assertEqual(
|
|
"tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual("tgggatgacaggggtgaggcaccacgcccagcccctttg", hsp.hit_all[0].seq)
|
|
|
|
def test_pslx_34_005(self, testf="pslx_34_005.pslx"):
|
|
"""Test parsing blat output (pslx_34_005.pslx)."""
|
|
BlatPslCases.test_psl_34_005(self, "pslx_34_005.pslx", pslx=True)
|
|
|
|
# test first qresult
|
|
qresult = self.qresults[0]
|
|
# first qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual("aggtaaactgccttca", hsp.query_all[0].seq)
|
|
self.assertEqual("aggtaaactgccttca", hsp.hit_all[0].seq)
|
|
# first qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual("atgagcttccaaggtaaactgccttcaagattc", hsp.query_all[0].seq)
|
|
self.assertEqual("atgagcttccaaggtaaactgccttcaagattc", hsp.hit_all[0].seq)
|
|
# first qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual("aaggcagtttaccttgg", hsp.query_all[0].seq)
|
|
self.assertEqual("aaggcagtttaccttgg", hsp.hit_all[0].seq)
|
|
|
|
# test second qresult
|
|
qresult = self.qresults[1]
|
|
# second qresult, first hit, first hsp
|
|
hsp = qresult[0].hsps[0]
|
|
self.assertEqual(
|
|
"acaaaggggctgggcgtggtggctcacacctgtaatcccaa", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual(
|
|
"acaaaggggctgggcgcagtggctcacgcctgtaatcccaa", hsp.hit_all[0].seq
|
|
)
|
|
# second qresult, second hit, first hsp
|
|
hsp = qresult[1].hsps[0]
|
|
self.assertEqual(
|
|
"cacaaaggggctgggcgtggtggctcacacctgtaatccca", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual(
|
|
"cacaaaggggctgggcgtggtggctcacacctgtaatccca", hsp.hit_all[0].seq
|
|
)
|
|
# second qresult, third hit, first hsp
|
|
hsp = qresult[2].hsps[0]
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacacctgtaatcc", hsp.query_all[0].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtagctcatgcctgtaatcc", hsp.hit_all[0].seq)
|
|
# second qresult, third hit, second hsp
|
|
hsp = qresult[2].hsps[1]
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccctt", hsp.query_all[0].seq)
|
|
self.assertEqual("tgggattacaggcgggagccaccacgcccagcccctt", hsp.hit_all[0].seq)
|
|
# second qresult, fourth hit, first hsp
|
|
hsp = qresult[3].hsps[0]
|
|
self.assertEqual("aaaaat", hsp.query_all[0].seq)
|
|
self.assertEqual("aaaaat", hsp.hit_all[0].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacacctgtaatccca", hsp.query_all[1].seq)
|
|
self.assertEqual("aaaggggctgggcgtggtggctcacgcctgtaatccca", hsp.hit_all[1].seq)
|
|
# second qresult, fourth hit, second hsp
|
|
hsp = qresult[3].hsps[1]
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccct", hsp.query_all[0].seq)
|
|
self.assertEqual("tgggattacaggcgtgagccaccacgcccagcccct", hsp.hit_all[0].seq)
|
|
# second qresult, fifth hit, first hsp
|
|
hsp = qresult[4].hsps[0]
|
|
self.assertEqual("caaaggggctgggcgtggtggctca", hsp.query_all[0].seq)
|
|
self.assertEqual("caaaggggctgggcgtagtggctga", hsp.hit_all[0].seq)
|
|
self.assertEqual("cacctgtaatc", hsp.query_all[1].seq)
|
|
self.assertEqual("cacctgtaatc", hsp.hit_all[1].seq)
|
|
# second qresult, fifth hit, second hsp
|
|
hsp = qresult[4].hsps[1]
|
|
self.assertEqual(
|
|
"tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual("tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.hit_all[0].seq)
|
|
# second qresult, fifth hit, third hsp
|
|
hsp = qresult[4].hsps[2]
|
|
self.assertEqual(
|
|
"tgggattacaggtgtgagccaccacgcccagcccctttg", hsp.query_all[0].seq
|
|
)
|
|
self.assertEqual("tgggatgacaggggtgaggcaccacgcccagcccctttg", hsp.hit_all[0].seq)
|
|
|
|
def test_pslx_35_002(self, testf="pslx_35_002.pslx"):
|
|
"""Test parsing blat output (pslx_35_002.pslx)."""
|
|
BlatPslCases.test_psl_35_002(self, "pslx_35_002.pslx", pslx=True)
|
|
|
|
# first qresult, last hit, first hsp
|
|
qresult = self.qresults[0]
|
|
hsp = qresult[-1].hsps[0]
|
|
|
|
self.assertEqual(
|
|
"MEGQRWLPLEANPEVTNQFLKQLGLHPNWQFVDVY", hsp.query_all[0].seq[:35]
|
|
)
|
|
self.assertEqual(
|
|
"ETSAHEGQTEAPSIDEKVDLHFIALVHVDGHLYEL", hsp.query_all[0].seq[-35:]
|
|
)
|
|
self.assertEqual("DAIEVCKKFMERDPDELRFNAIALSAA", hsp.query_all[1].seq)
|
|
|
|
self.assertEqual("MESQRWLPLEANPEVTNQFLKQLGLHPNWQCVDVY", hsp.hit_all[0].seq[:35])
|
|
self.assertEqual(
|
|
"ETSAHEGQTEAPNIDEKVDLHFIALVHVDGHLYEL", hsp.hit_all[0].seq[-35:]
|
|
)
|
|
self.assertEqual("DAIEVCKKFMERDPDELRFNAIALSAA", hsp.hit_all[1].seq)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
runner = unittest.TextTestRunner(verbosity=2)
|
|
unittest.main(testRunner=runner)
|