seismicrna.filterscan.tests package

Submodules

class seismicrna.filterscan.tests.filterscan_test.ScanTestBase(*args, **kwargs)

Bases: TestCase

Shared simulation infrastructure for the scan tests.

DOMAINS = [('TGACGAACAACGTGTTTGTGAACCATATAGGTAAACGCTGAATGCGTTCGCGCGGAGGGT', ['..(((((((...)))))))..(((......((.(((((.....))))).))......)))', '...(((...(((((((((((.(((.....)))...))).))))))))))).((.....))']), ('TTTGCAGGAAGATGGTCAACTCTACACCTAGTTTTTACCAGTCCACAAGAGTTTGAACTG', ['.(((..(((...((((.((..(((....)))..)).)))).))).))).(((....))).']), ('GTGCCTTAACCTGAGTACGCCCATATCATGGGAGACATTACAACTCAAATTCTAGGTGTG', ['..((((.....(((((...(((((...)))))..........)))))......))))...', '((((.(((...)))))))...((((((.((((..................))))))))))'])]
PROFILE = 'scan'
REF = 'test_ref'
REFS = 'test_refs'
SAMPLE = 'test_sample'
setUp()

Hook method for setting up the test fixture before exercising it.

sim_data(domain_nums: list[int], read_length: int, seed: int)
property sim_dir
tearDown()

Hook method for deconstructing the test fixture after testing it.

class seismicrna.filterscan.tests.filterscan_test.TestAggregatePairs(methodName='runTest')

Bases: TestCase

test_one()
test_three_disjoint()
test_three_nested()
test_three_serial()
test_two_disjoint()
test_two_nested()
test_two_serial()
test_zero()
class seismicrna.filterscan.tests.filterscan_test.TestCalcDomainsFromPairsSimulatedData(methodName='runTest')

Bases: TestCase

Regression test using simulated DMS-MaPseq data of a 1200-nt RNA with a complex, multi-domain structure. Key expectations:

  • Pair (148, 196) must NOT appear in any returned domain: it was the original defect that motivated the algorithm overhaul.

  • Domains covering roughly 276–588 and 909–992 must be present, matching the known structural domains visible in the plot.

ENDPOINT_WINDOW = 2
MIN_MUT_GAP = 4
MIN_NEARBY_PAIRS = 1
MIN_PAIRS = 2
PAIRS_CSV = PosixPath('/opt/hostedtoolcache/Python/3.13.14/x64/lib/python3.13/site-packages/seismicrna/filterscan/tests/long_rna_10_pairs.csv')
PAIR_DISTANCE_PERCENTILE = 95.0
PAIR_FDR = 0.05
TOTAL_END3 = 1200
TOTAL_END5 = 1
classmethod setUpClass()

Hook method for setting up class fixture before running tests in the class.

test_expected_domains()
test_spurious_pair_not_in_any_domain()
class seismicrna.filterscan.tests.filterscan_test.TestCalcTiles(methodName='runTest')

Bases: TestCase

setUp()

Hook method for setting up the test fixture before exercising it.

tearDown()

Hook method for deconstructing the test fixture after testing it.

test_region_not_divisible()
test_tile_length_larger()
test_tile_min_overlap_25()
test_tile_min_overlap_75()
test_total_tile_length_1()
class seismicrna.filterscan.tests.filterscan_test.TestExpandRegionsIntoGaps(methodName='runTest')

Bases: TestCase

test_one()
test_two()
test_zero()
class seismicrna.filterscan.tests.filterscan_test.TestFilterDomainsLength(methodName='runTest')

Bases: TestCase

test_filter_default_length()
test_filter_max_length()
test_filter_min_length()
class seismicrna.filterscan.tests.filterscan_test.TestFilterScan(*args, **kwargs)

Bases: ScanTestBase

Test that filterscan identifies domains without clustering.

run_filterscan_check(idmut_dirs: list[Path], expect_regions: list[tuple[int, int]], **kwargs)
test_domains012_read120()
test_domains012_read180()
test_domains012_read180_cli()
test_domains012_read60()
test_domains02_read60()
class seismicrna.filterscan.tests.filterscan_test.TestInsertRegionsIntoGaps(methodName='runTest')

Bases: TestCase

test_one()
test_two()
test_zero()
class seismicrna.filterscan.tests.filterscan_test.TestSelectPairs(methodName='runTest')

Bases: TestCase

test_select_pairs()