(base) minion@TM1803:~/TALON/testing_suite$ make test set -e; make clean; make[1]: Entering directory '/home/minion/TALON/testing_suite' set -e; if [ -d "scratch" ]; then rm -Rf scratch; fi mkdir scratch; make[1]: Leaving directory '/home/minion/TALON/testing_suite' python build_test_databases.py; pytest; ==================================================================================== test session starts ==================================================================================== platform linux -- Python 3.6.7, pytest-4.5.0, py-1.8.0, pluggy-0.11.0 rootdir: /home/minion/TALON/testing_suite, inifile: pytest.ini collected 126 items test_FSM_identification.py .... [ 3%] test_ISM_identification.py ... [ 5%] test_NIC_identification.py .. [ 7%] test_NNC_identification.py . [ 7%] test_all_SJs_known.py .... [ 11%] test_all_exons_known.py .... [ 14%] test_assignment_chr11_and_Tcf3_examples.py ...... [ 19%] test_compute_alignment_coverage.py . [ 19%] test_compute_alignment_identity.py . [ 20%] test_compute_delta.py .... [ 23%] test_compute_exon_lengths.py .. [ 25%] test_compute_jI.py . [ 26%] test_compute_transcript_end.py .... [ 29%] test_compute_transcript_model_length_from_exons.py . [ 30%] test_create_temp_gene_table.py . [ 30%] test_database_updates.py ............ [ 40%] test_find_gene_match_on_vertex_basis.py ... [ 42%] test_get_introns.py .... [ 46%] test_get_overlap.py .... [ 49%] test_identification_flow.py ........... [ 57%] test_match_all_splice_edges.py .. [ 59%] test_match_all_splice_vertices.py .. [ 61%] test_match_all_transcript_edges.py .. [ 62%] test_monoexonic.py ..... [ 66%] test_permissive_match.py ..... [ 70%] test_post_talon_utils.py ... [ 73%] test_process_remaining_mult_cases.py ... [ 75%] test_queries.py ............. [ 85%] test_search_for_ISM_match.py ... [ 88%] test_search_for_edge.py . [ 88%] test_search_for_overlap_with_gene.py ...... [ 93%] test_search_for_transcript.py .. [ 95%] test_search_for_vertex.py .. [ 96%] test_splitMD.py .... [100%] ===================================================================================== warnings summary ====================================================================================== /home/minion/miniconda3/lib/python3.6/site-packages/_pytest/mark/structures.py:324 /home/minion/miniconda3/lib/python3.6/site-packages/_pytest/mark/structures.py:324: PytestUnknownMarkWarning: Unknown pytest.mark.incremental - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html PytestUnknownMarkWarning, -- Docs: https://docs.pytest.org/en/latest/warnings.html ========================================================================== 126 passed, 1 warnings in 0.29 seconds =========================================================================== (base) minion@TM1803:~/TALON/testing_suite$ python Python 3.6.7 | packaged by conda-forge | (default, Feb 28 2019, 09:07:38) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> q() Traceback (most recent call last): File "", line 1, in NameError: name 'q' is not defined >>> quit() (base) minion@TM1803:~/TALON/testing_suite$ make unit set -e; make clean; make[1]: Entering directory '/home/minion/TALON/testing_suite' set -e; if [ -d "scratch" ]; then rm -Rf scratch; fi mkdir scratch; make[1]: Leaving directory '/home/minion/TALON/testing_suite' pytest -v -m unit; ==================================================================================== test session starts ==================================================================================== platform linux -- Python 3.6.7, pytest-4.5.0, py-1.8.0, pluggy-0.11.0 -- /home/minion/miniconda3/bin/python cachedir: .pytest_cache rootdir: /home/minion/TALON/testing_suite, inifile: pytest.ini collected 126 items / 98 deselected / 28 selected test_compute_alignment_coverage.py::test_compute_alignment_coverage PASSED [ 3%] test_compute_alignment_identity.py::test_compute_alignment_coverage PASSED [ 7%] test_compute_delta.py::TestComputeDelta::test_1 PASSED [ 10%] test_compute_delta.py::TestComputeDelta::test_2 PASSED [ 14%] test_compute_delta.py::TestComputeDelta::test_3 PASSED [ 17%] test_compute_delta.py::TestComputeDelta::test_4 PASSED [ 21%] test_compute_exon_lengths.py::TestComputeExonLens::test_compute_exon_len_plus FAILED [ 25%] test_compute_exon_lengths.py::TestComputeExonLens::test_compute_exon_len_minus FAILED [ 28%] test_compute_jI.py::TestComputejI::test_compute_jI_example1 PASSED [ 32%] test_compute_transcript_end.py::TestComputeTranscriptEnd::test_MN_Only PASSED [ 35%] test_compute_transcript_end.py::TestComputeTranscriptEnd::test_deletion PASSED [ 39%] test_compute_transcript_end.py::TestComputeTranscriptEnd::test_softClipping PASSED [ 42%] test_compute_transcript_end.py::TestComputeTranscriptEnd::test_softClipping_atEnd PASSED [ 46%] test_compute_transcript_model_length_from_exons.py::TestComputeTxLen::test_compute_exon_len_plus FAILED [ 50%] test_find_gene_match_on_vertex_basis.py::TestIdentifyGeneOnVertexBasis::test_perfect_match FAILED [ 53%] test_find_gene_match_on_vertex_basis.py::TestIdentifyGeneOnVertexBasis::test_NNC_type_match FAILED [ 57%] test_find_gene_match_on_vertex_basis.py::TestIdentifyGeneOnVertexBasis::test_no_match FAILED [ 60%] test_get_introns.py::TestGetIntrons::test_noIntrons PASSED [ 64%] test_get_introns.py::TestGetIntrons::test_multiexon_without_jI PASSED [ 67%] test_get_introns.py::TestGetIntrons::test_multiexon_with_jI PASSED [ 71%] test_get_overlap.py::TestGetOverlap::test_1 PASSED [ 75%] test_get_overlap.py::TestGetOverlap::test_2 PASSED [ 78%] test_get_overlap.py::TestGetOverlap::test_3 PASSED [ 82%] test_get_overlap.py::TestGetOverlap::test_4 PASSED [ 85%] test_splitMD.py::TestSplitMD::test_splitMD PASSED [ 89%] test_splitMD.py::TestSplitMD::test_with_mismatches PASSED [ 92%] test_splitMD.py::TestSplitMD::test_with_deletion PASSED [ 96%] test_splitMD.py::TestSplitMD::test_with_deletions_and_mismatches PASSED [100%] ========================================================================================= FAILURES ========================================================================================== ______________________________________________________________________ TestComputeExonLens.test_compute_exon_len_plus _______________________________________________________________________ self = def test_compute_exon_len_plus(self): """ Plus strand example: chr1:1-100 """ conn, cursor = get_db_cursor() build = "toy_build" > exon_lens = lu.get_all_exon_lengths(cursor, build) test_compute_exon_lengths.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def get_all_exon_lengths(cursor, build): """ Compute all exon lengths and store in a dict """ exon_lengths = {} cursor.execute(""" SELECT edge_ID, loc1.position AS pos1, loc2.position AS pos2, abs(loc1.position - loc2.position) + 1 AS diff FROM edge LEFT JOIN location AS loc1 ON edge.v1 = loc1.location_ID LEFT JOIN location AS loc2 ON edge.v2 = loc2.location_ID WHERE edge_type = 'exon' AND loc1.genome_build = '%s' > AND loc2.genome_build = '%s' """ % (build, build)) E sqlite3.OperationalError: no such table: edge ../length_utils.py:19: OperationalError ______________________________________________________________________ TestComputeExonLens.test_compute_exon_len_minus ______________________________________________________________________ self = def test_compute_exon_len_minus(self): """ Minus strand example: chr1:2000-1500 """ conn, cursor = get_db_cursor() build = "toy_build" > exon_lens = lu.get_all_exon_lengths(cursor, build) test_compute_exon_lengths.py:26: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def get_all_exon_lengths(cursor, build): """ Compute all exon lengths and store in a dict """ exon_lengths = {} cursor.execute(""" SELECT edge_ID, loc1.position AS pos1, loc2.position AS pos2, abs(loc1.position - loc2.position) + 1 AS diff FROM edge LEFT JOIN location AS loc1 ON edge.v1 = loc1.location_ID LEFT JOIN location AS loc2 ON edge.v2 = loc2.location_ID WHERE edge_type = 'exon' AND loc1.genome_build = '%s' > AND loc2.genome_build = '%s' """ % (build, build)) E sqlite3.OperationalError: no such table: edge ../length_utils.py:19: OperationalError ________________________________________________________________________ TestComputeTxLen.test_compute_exon_len_plus ________________________________________________________________________ self = def test_compute_exon_len_plus(self): """ Plus strand example: chr1:1-100 """ conn, cursor = get_db_cursor() build = "toy_build" # Get exon lengths > exon_lens = lu.get_all_exon_lengths(cursor, build) test_compute_transcript_model_length_from_exons.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def get_all_exon_lengths(cursor, build): """ Compute all exon lengths and store in a dict """ exon_lengths = {} cursor.execute(""" SELECT edge_ID, loc1.position AS pos1, loc2.position AS pos2, abs(loc1.position - loc2.position) + 1 AS diff FROM edge LEFT JOIN location AS loc1 ON edge.v1 = loc1.location_ID LEFT JOIN location AS loc2 ON edge.v2 = loc2.location_ID WHERE edge_type = 'exon' AND loc1.genome_build = '%s' > AND loc2.genome_build = '%s' """ % (build, build)) E sqlite3.OperationalError: no such table: edge ../length_utils.py:19: OperationalError _____________________________________________________________________ TestIdentifyGeneOnVertexBasis.test_perfect_match ______________________________________________________________________ self = def test_perfect_match(self): """ Example where the vertices perfectly match a gene. """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, "toy_build") test_find_gene_match_on_vertex_basis.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _____________________________________________________________________ TestIdentifyGeneOnVertexBasis.test_NNC_type_match _____________________________________________________________________ self = def test_NNC_type_match(self): """ Example where some vertices match a gene, while others don't. """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, "toy_build") test_find_gene_match_on_vertex_basis.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError ________________________________________________________________________ TestIdentifyGeneOnVertexBasis.test_no_match ________________________________________________________________________ self = def test_no_match(self): """ Example where no match exists """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, "toy_build") test_find_gene_match_on_vertex_basis.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError ===================================================================================== warnings summary ====================================================================================== /home/minion/miniconda3/lib/python3.6/site-packages/_pytest/mark/structures.py:324 /home/minion/miniconda3/lib/python3.6/site-packages/_pytest/mark/structures.py:324: PytestUnknownMarkWarning: Unknown pytest.mark.incremental - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html PytestUnknownMarkWarning, -- Docs: https://docs.pytest.org/en/latest/warnings.html ============================================================== 6 failed, 22 passed, 98 deselected, 1 warnings in 0.24 seconds =============================================================== make: *** [Makefile:10: unit] Error 1 (base) minion@TM1803:~/TALON/testing_suite$ make integration set -e; make clean; make[1]: Entering directory '/home/minion/TALON/testing_suite' set -e; if [ -d "scratch" ]; then rm -Rf scratch; fi mkdir scratch; make[1]: Leaving directory '/home/minion/TALON/testing_suite' pytest -v -m integration; ==================================================================================== test session starts ==================================================================================== platform linux -- Python 3.6.7, pytest-4.5.0, py-1.8.0, pluggy-0.11.0 -- /home/minion/miniconda3/bin/python cachedir: .pytest_cache rootdir: /home/minion/TALON/testing_suite, inifile: pytest.ini collected 126 items / 88 deselected / 38 selected test_FSM_identification.py::TestIdentifyFSM::test_FSM_perfect FAILED [ 2%] test_FSM_identification.py::TestIdentifyFSM::test_FSM_end_diff FAILED [ 5%] test_FSM_identification.py::TestIdentifyFSM::test_FSM_start_diff FAILED [ 7%] test_FSM_identification.py::TestIdentifyFSM::test_no_match FAILED [ 10%] test_ISM_identification.py::TestIdentifyISM::test_ISM_suffix FAILED [ 13%] test_ISM_identification.py::TestIdentifyISM::test_ISM_prefix FAILED [ 15%] test_ISM_identification.py::TestIdentifyISM::test_no_match FAILED [ 18%] test_NIC_identification.py::TestIdentifyNIC::test_NIC_match FAILED [ 21%] test_NIC_identification.py::TestIdentifyNIC::test_antisense FAILED [ 23%] test_NNC_identification.py::TestIdentifyNNC::test_NNC_match FAILED [ 26%] test_assignment_chr11_and_Tcf3_examples.py::TestAssignments::test_ISM_of_Canx FAILED [ 28%] test_assignment_chr11_and_Tcf3_examples.py::TestAssignments::test_prefix_ISM_of_Canx FAILED [ 31%] test_assignment_chr11_and_Tcf3_examples.py::TestAssignments::test_genomic_of_Tcf3 FAILED [ 34%] test_assignment_chr11_and_Tcf3_examples.py::TestAssignments::test_suffix_ISM_of_Tcf3 FAILED [ 36%] test_assignment_chr11_and_Tcf3_examples.py::TestAssignments::test_NIC_of_Drg1 FAILED [ 39%] test_assignment_chr11_and_Tcf3_examples.py::TestAssignments::test_FSM_of_Drg1 FAILED [ 42%] test_identification_flow.py::TestIdentifyFSM::test_FSM_perfect FAILED [ 44%] test_identification_flow.py::TestIdentifyFSM::test_FSM_end_diff FAILED [ 47%] test_identification_flow.py::TestIdentifyFSM::test_NIC_instead_of_ISM FAILED [ 50%] test_identification_flow.py::TestIdentifyFSM::test_ISM_suffix FAILED [ 52%] test_identification_flow.py::TestIdentifyFSM::test_ISM_prefix FAILED [ 55%] test_identification_flow.py::TestIdentifyFSM::test_ISM_internal FAILED [ 57%] test_identification_flow.py::TestIdentifyFSM::test_NIC FAILED [ 60%] test_identification_flow.py::TestIdentifyFSM::test_NNC FAILED [ 63%] test_identification_flow.py::TestIdentifyFSM::test_spliced_antisense FAILED [ 65%] test_identification_flow.py::TestIdentifyFSM::test_genomic_unspliced FAILED [ 68%] test_identification_flow.py::TestIdentifyFSM::test_NIC_with_all_known_edges FAILED [ 71%] test_monoexonic.py::TestIdentifyMonoexonic::test_match FAILED [ 73%] test_monoexonic.py::TestIdentifyMonoexonic::test_partial_match FAILED [ 76%] test_monoexonic.py::TestIdentifyMonoexonic::test_partial_match_3prime FAILED [ 78%] test_monoexonic.py::TestIdentifyMonoexonic::test_overlap_but_no_vertex_match FAILED [ 81%] test_monoexonic.py::TestIdentifyMonoexonic::test_antisense FAILED [ 84%] test_post_talon_utils.py::TestPostTalonUtils::test_filtering FAILED [ 86%] test_post_talon_utils.py::TestPostTalonUtils::test_GTF_integrity PASSED [ 89%] test_post_talon_utils.py::TestPostTalonUtils::test_validate_GTF FAILED [ 92%] test_process_remaining_mult_cases.py::TestIdentifyRemaining::test_intergenic FAILED [ 94%] test_process_remaining_mult_cases.py::TestIdentifyRemaining::test_antisense FAILED [ 97%] test_process_remaining_mult_cases.py::TestIdentifyRemaining::test_genomic FAILED [100%] ========================================================================================= FAILURES ========================================================================================== _____________________________________________________________________________ TestIdentifyFSM.test_FSM_perfect ______________________________________________________________________________ self = def test_FSM_perfect(self): """ Example where the transcript is a perfect full splice match. """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_FSM_identification.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError _____________________________________________________________________________ TestIdentifyFSM.test_FSM_end_diff _____________________________________________________________________________ self = def test_FSM_end_diff(self): """ Example where the transcript is an FSM but has a difference on the ends large enough to be novel. """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_FSM_identification.py:54: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ____________________________________________________________________________ TestIdentifyFSM.test_FSM_start_diff ____________________________________________________________________________ self = def test_FSM_start_diff(self): """ Example where the transcript is an FSM but has a difference on the start large enough to be novel. """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_FSM_identification.py:90: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError _______________________________________________________________________________ TestIdentifyFSM.test_no_match _______________________________________________________________________________ self = def test_no_match(self): """ Example with no FSM match """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_FSM_identification.py:126: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ______________________________________________________________________________ TestIdentifyISM.test_ISM_suffix ______________________________________________________________________________ self = def test_ISM_suffix(self): """ Example where the transcript is an ISM with suffix """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_ISM_identification.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ______________________________________________________________________________ TestIdentifyISM.test_ISM_prefix ______________________________________________________________________________ self = def test_ISM_prefix(self): """ Example where the transcript is a prefix ISM with a novel start """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_ISM_identification.py:55: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError _______________________________________________________________________________ TestIdentifyISM.test_no_match _______________________________________________________________________________ self = def test_no_match(self): """ Example with no ISM match """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_ISM_identification.py:92: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ______________________________________________________________________________ TestIdentifyNIC.test_NIC_match _______________________________________________________________________________ self = def test_NIC_match(self): """ Example where the transcript is an NIC match to an existing one by virtue of skipping an exon. """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_NIC_identification.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ______________________________________________________________________________ TestIdentifyNIC.test_antisense _______________________________________________________________________________ self = def test_antisense(self): """ Example where the vertices are known but there is no same-strand match """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_NIC_identification.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ______________________________________________________________________________ TestIdentifyNNC.test_NNC_match _______________________________________________________________________________ self = def test_NNC_match(self): """ Example where the transcript is an NNC match to an existing one by virtue of a new splice donor. """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_NNC_identification.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError _____________________________________________________________________________ TestAssignments.test_ISM_of_Canx ______________________________________________________________________________ self = def test_ISM_of_Canx(self): """ m54284_180814_204240/72352410/ccs is an ISM transcript of Canx. Comes from BC017 data. """ conn = sqlite3.connect("scratch/chr11_and_Tcf3.db") conn.row_factory = sqlite3.Row cursor = conn.cursor() dataset = "PB65_B017" read_ID = "m54284_180814_204240/72352410/ccs" # Fetch observed entry from table query = """SELECT * from observed WHERE dataset = ? AND read_name = ?""" > assignment = cursor.execute(query, [dataset, read_ID]).fetchall()[0] E sqlite3.OperationalError: no such table: observed test_assignment_chr11_and_Tcf3_examples.py:26: OperationalError __________________________________________________________________________ TestAssignments.test_prefix_ISM_of_Canx __________________________________________________________________________ self = def test_prefix_ISM_of_Canx(self): """ m54284_180814_002203/18677911/ccs is an ISM transcript of Canx at first glance, but it has known 5' and 3' ends, so it should be called NIC. Comes from BC017 data. """ conn = sqlite3.connect("scratch/chr11_and_Tcf3.db") conn.row_factory = sqlite3.Row cursor = conn.cursor() dataset = "PB65_B017" read_ID = "m54284_180814_002203/18677911/ccs" # Fetch observed entry from table query = """SELECT * from observed WHERE dataset = ? AND read_name = ?""" > assignment = cursor.execute(query, [dataset, read_ID]).fetchall()[0] E sqlite3.OperationalError: no such table: observed test_assignment_chr11_and_Tcf3_examples.py:56: OperationalError ___________________________________________________________________________ TestAssignments.test_genomic_of_Tcf3 ____________________________________________________________________________ self = def test_genomic_of_Tcf3(self): """ m54284_180814_002203/19268005/ccs is a genomic transcript of Tcf3 from the BC017 data """ conn = sqlite3.connect("scratch/chr11_and_Tcf3.db") conn.row_factory = sqlite3.Row cursor = conn.cursor() dataset = "PB65_B017" read_ID = "m54284_180814_002203/19268005/ccs" # Fetch observed entry from table query = """SELECT * from observed WHERE dataset = ? AND read_name = ?""" > assignment = cursor.execute(query, [dataset, read_ID]).fetchall()[0] E sqlite3.OperationalError: no such table: observed test_assignment_chr11_and_Tcf3_examples.py:82: OperationalError __________________________________________________________________________ TestAssignments.test_suffix_ISM_of_Tcf3 __________________________________________________________________________ self = def test_suffix_ISM_of_Tcf3(self): """ m54284_180814_002203/18809472/ccs is an ISM suffix transcript of Tcf3. Comes from BC017 data. """ conn = sqlite3.connect("scratch/chr11_and_Tcf3.db") conn.row_factory = sqlite3.Row cursor = conn.cursor() dataset = "PB65_B017" read_ID = "m54284_180814_002203/18809472/ccs" # Fetch observed entry from table query = """SELECT * from observed WHERE dataset = ? AND read_name = ?""" > assignment = cursor.execute(query, [dataset, read_ID]).fetchall()[0] E sqlite3.OperationalError: no such table: observed test_assignment_chr11_and_Tcf3_examples.py:106: OperationalError _____________________________________________________________________________ TestAssignments.test_NIC_of_Drg1 ______________________________________________________________________________ self = def test_NIC_of_Drg1(self): """ For this example, the same read was planted in two different datasets (m54284_180814_002203/49414590/ccs) """ conn = sqlite3.connect("scratch/chr11_and_Tcf3.db") conn.row_factory = sqlite3.Row cursor = conn.cursor() dataset_1 = "PB65_B017" dataset_2 = "PB65_B018" read_ID = "m54284_180814_002203/49414590/ccs" # Fetch observed entry from table query = """SELECT * from observed WHERE dataset IN ('PB65_B017', 'PB65_B018') AND read_name = ?""" > cursor.execute(query, [read_ID]) E sqlite3.OperationalError: no such table: observed test_assignment_chr11_and_Tcf3_examples.py:138: OperationalError _____________________________________________________________________________ TestAssignments.test_FSM_of_Drg1 ______________________________________________________________________________ self = def test_FSM_of_Drg1(self): """ Read m54284_180814_002203/40042763/ccs is an FSM of the Drg1 gene (BC017) """ conn = sqlite3.connect("scratch/chr11_and_Tcf3.db") conn.row_factory = sqlite3.Row cursor = conn.cursor() dataset = "PB65_B017" read_ID = "m54284_180814_002203/40042763/ccs" # Fetch observed entry from table query = """SELECT * from observed WHERE dataset = ? AND read_name = ?""" > assignment = cursor.execute(query, [dataset, read_ID]).fetchall()[0] E sqlite3.OperationalError: no such table: observed test_assignment_chr11_and_Tcf3_examples.py:165: OperationalError _____________________________________________________________________________ TestIdentifyFSM.test_FSM_perfect ______________________________________________________________________________ self = def test_FSM_perfect(self): """ Example where the transcript is a perfect full splice match. """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _____________________________________________________________________________ TestIdentifyFSM.test_FSM_end_diff _____________________________________________________________________________ self = def test_FSM_end_diff(self): """ Example where the transcript is an FSM but has a difference on the ends large enough to be novel. """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError __________________________________________________________________________ TestIdentifyFSM.test_NIC_instead_of_ISM __________________________________________________________________________ self = def test_NIC_instead_of_ISM(self): """ Test case where the transcript looks like an ISM, but is NIC on account of having known starts and ends """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError ______________________________________________________________________________ TestIdentifyFSM.test_ISM_suffix ______________________________________________________________________________ self = def test_ISM_suffix(self): """ Example where the transcript is a suffix ISM """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError ______________________________________________________________________________ TestIdentifyFSM.test_ISM_prefix ______________________________________________________________________________ self = def test_ISM_prefix(self): """ Example where the transcript is a prefix ISM """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _____________________________________________________________________________ TestIdentifyFSM.test_ISM_internal _____________________________________________________________________________ self = def test_ISM_internal(self): """ Example where the transcript matches an internal exon """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:164: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _________________________________________________________________________________ TestIdentifyFSM.test_NIC __________________________________________________________________________________ self = def test_NIC(self): """ Example where the transcript skips an exon """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _________________________________________________________________________________ TestIdentifyFSM.test_NNC __________________________________________________________________________________ self = def test_NNC(self): """ Example where the transcript skips an exon and has a novel splice donor """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:224: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError __________________________________________________________________________ TestIdentifyFSM.test_spliced_antisense ___________________________________________________________________________ self = def test_spliced_antisense(self): """ Example where the transcript matches known vertices but is antisense """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:253: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError __________________________________________________________________________ TestIdentifyFSM.test_genomic_unspliced ___________________________________________________________________________ self = def test_genomic_unspliced(self): """ Monoexonic fragment that overlaps gene 1 """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:283: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _______________________________________________________________________ TestIdentifyFSM.test_NIC_with_all_known_edges _______________________________________________________________________ self = def test_NIC_with_all_known_edges(self): """ Test case derived from a real mouse Map2k4 read. All of edges are known (except 3'), yet the read is NIC not FSM/ISM """ conn = sqlite3.connect("scratch/Map2k4.db") conn.row_factory = sqlite3.Row cursor = conn.cursor() build = "mm10" > talon.make_temp_novel_gene_table(cursor, build) test_identification_flow.py:316: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'mm10' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _____________________________________________________________________________ TestIdentifyMonoexonic.test_match _____________________________________________________________________________ self = def test_match(self): """ Example where the transcript is a moniexonic match. """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_monoexonic.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _________________________________________________________________________ TestIdentifyMonoexonic.test_partial_match _________________________________________________________________________ self = def test_partial_match(self): """ Example where the transcript is short, so it overlaps the annotated transcript but is not an accepted match. the start should get assigned to the annotated start, but the end is novel """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_monoexonic.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _____________________________________________________________________ TestIdentifyMonoexonic.test_partial_match_3prime ______________________________________________________________________ self = def test_partial_match_3prime(self): """ Example where the transcript is short, so it overlaps the annotated transcript but is not an accepted match. the end should get assigned to the annotated end, but the end is novel """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_monoexonic.py:85: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError __________________________________________________________________ TestIdentifyMonoexonic.test_overlap_but_no_vertex_match __________________________________________________________________ self = def test_overlap_but_no_vertex_match(self): """ Example where the transcript is short, so it overlaps the annotated transcript but is not an accepted match. the start should get assigned to the annotated end, but the end is novel """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_monoexonic.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError ___________________________________________________________________________ TestIdentifyMonoexonic.test_antisense ___________________________________________________________________________ self = def test_antisense(self): """ Example where the transcript is antisense """ conn, cursor = get_db_cursor() build = "toy_build" > talon.make_temp_novel_gene_table(cursor, build) test_monoexonic.py:159: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = , build = 'toy_build' def make_temp_novel_gene_table(cursor, build): """ Attaches a temporary database with a table that has the following fields: - gene_ID - chromosome - start - end - strand The purpose is to track novel genes from this run in order to match transcripts to them when other forms of gene assignment have failed. """ command = """ CREATE TEMPORARY TABLE IF NOT EXISTS temp_gene AS SELECT gene_ID, chromosome, start, end, strand FROM (SELECT g.gene_ID, loc.chromosome, MIN(loc.position) as start, MAX(loc.position) as end, g.strand FROM genes as g LEFT JOIN vertex as v ON g.gene_ID = v.gene_ID LEFT JOIN location as loc ON loc.location_ID = v.vertex_ID WHERE loc.genome_build = '%s' GROUP BY g.gene_ID); """ > cursor.execute(command % (build)) E sqlite3.OperationalError: no such table: genes ../talon.py:251: OperationalError _____________________________________________________________________________ TestPostTalonUtils.test_filtering _____________________________________________________________________________ self = def test_filtering(self): """ Make sure that the right transcripts and genes ended up in the whitelist file """ whitelist_file = "scratch/chr11_and_Tcf3_whitelist.csv" > whitelist = qutils.parse_whitelist(whitelist_file) test_post_talon_utils.py:19: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ whitelist_file = 'scratch/chr11_and_Tcf3_whitelist.csv' def parse_whitelist(whitelist_file): """ From the whitelist file, obtain a list of acccepted gene and transcript IDs tuples""" whitelist = set() > with open(whitelist_file, 'r') as f: E FileNotFoundError: [Errno 2] No such file or directory: 'scratch/chr11_and_Tcf3_whitelist.csv' ../query_utils.py:418: FileNotFoundError ___________________________________________________________________________ TestPostTalonUtils.test_validate_GTF ____________________________________________________________________________ self = def test_validate_GTF(self): """ Check whether Bedtools sort runs on the GTF without crashing """ try: subprocess.check_output( > ["bedtools", "sort", "-i", "scratch/chr11_and_Tcf3_talon.gtf"]) test_post_talon_utils.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ timeout = None, popenargs = (['bedtools', 'sort', '-i', 'scratch/chr11_and_Tcf3_talon.gtf'],), kwargs = {} def check_output(*popenargs, timeout=None, **kwargs): r"""Run command with arguments and return its output. If the exit code was non-zero it raises a CalledProcessError. The CalledProcessError object will have the return code in the returncode attribute and output in the output attribute. The arguments are the same as for the Popen constructor. Example: >>> check_output(["ls", "-l", "/dev/null"]) b'crw-rw-rw- 1 root root 1, 3 Oct 18 2007 /dev/null\n' The stdout argument is not allowed as it is used internally. To capture standard error in the result, use stderr=STDOUT. >>> check_output(["/bin/sh", "-c", ... "ls -l non_existent_file ; exit 0"], ... stderr=STDOUT) b'ls: non_existent_file: No such file or directory\n' There is an additional optional argument, "input", allowing you to pass a string to the subprocess's stdin. If you use this argument you may not also use the Popen constructor's "stdin" argument, as it too will be used internally. Example: >>> check_output(["sed", "-e", "s/foo/bar/"], ... input=b"when in the course of fooman events\n") b'when in the course of barman events\n' If universal_newlines=True is passed, the "input" argument must be a string and the return value will be a string rather than bytes. """ if 'stdout' in kwargs: raise ValueError('stdout argument not allowed, it will be overridden.') if 'input' in kwargs and kwargs['input'] is None: # Explicitly passing input=None was previously equivalent to passing an # empty string. That is maintained here for backwards compatibility. kwargs['input'] = '' if kwargs.get('universal_newlines', False) else b'' return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, > **kwargs).stdout ../../miniconda3/lib/python3.6/subprocess.py:336: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ input = None, timeout = None, check = True, popenargs = (['bedtools', 'sort', '-i', 'scratch/chr11_and_Tcf3_talon.gtf'],), kwargs = {'stdout': -1} process = , stdout = b'', stderr = None, retcode = 1 def run(*popenargs, input=None, timeout=None, check=False, **kwargs): """Run command with arguments and return a CompletedProcess instance. The returned instance will have attributes args, returncode, stdout and stderr. By default, stdout and stderr are not captured, and those attributes will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them. If check is True and the exit code was non-zero, it raises a CalledProcessError. The CalledProcessError object will have the return code in the returncode attribute, and output & stderr attributes if those streams were captured. If timeout is given, and the process takes too long, a TimeoutExpired exception will be raised. There is an optional argument "input", allowing you to pass a string to the subprocess's stdin. If you use this argument you may not also use the Popen constructor's "stdin" argument, as it will be used internally. The other arguments are the same as for the Popen constructor. If universal_newlines=True is passed, the "input" argument must be a string and stdout/stderr in the returned object will be strings rather than bytes. """ if input is not None: if 'stdin' in kwargs: raise ValueError('stdin and input arguments may not both be used.') kwargs['stdin'] = PIPE with Popen(*popenargs, **kwargs) as process: try: stdout, stderr = process.communicate(input, timeout=timeout) except TimeoutExpired: process.kill() stdout, stderr = process.communicate() raise TimeoutExpired(process.args, timeout, output=stdout, stderr=stderr) except: process.kill() process.wait() raise retcode = process.poll() if check and retcode: raise CalledProcessError(retcode, process.args, > output=stdout, stderr=stderr) E subprocess.CalledProcessError: Command '['bedtools', 'sort', '-i', 'scratch/chr11_and_Tcf3_talon.gtf']' returned non-zero exit status 1. ../../miniconda3/lib/python3.6/subprocess.py:418: CalledProcessError During handling of the above exception, another exception occurred: self = def test_validate_GTF(self): """ Check whether Bedtools sort runs on the GTF without crashing """ try: subprocess.check_output( ["bedtools", "sort", "-i", "scratch/chr11_and_Tcf3_talon.gtf"]) except: > pytest.fail("Bedtools crashed on chr11_and_Tcf3_talon.gtf") E Failed: Bedtools crashed on chr11_and_Tcf3_talon.gtf test_post_talon_utils.py:36: Failed ----------------------------------------------------------------------------------- Captured stderr call ------------------------------------------------------------------------------------ Error: The requested file (scratch/chr11_and_Tcf3_talon.gtf) could not be opened. Error message: (No such file or directory). Exiting! ___________________________________________________________________________ TestIdentifyRemaining.test_intergenic ___________________________________________________________________________ self = def test_intergenic(self): """ Example where the transcript is an NIC match to an existing one by virtue of a new splice donor. """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_process_remaining_mult_cases.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ___________________________________________________________________________ TestIdentifyRemaining.test_antisense ____________________________________________________________________________ self = def test_antisense(self): """ Example where the transcript is antisense but contains no known splice vertices """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_process_remaining_mult_cases.py:55: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ____________________________________________________________________________ TestIdentifyRemaining.test_genomic _____________________________________________________________________________ self = def test_genomic(self): """ Example where the transcript overlaps a gene but contains no known splice vertices """ conn, cursor = get_db_cursor() build = "toy_build" > edge_dict = talon.make_edge_dict(cursor) test_process_remaining_mult_cases.py:92: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cursor = def make_edge_dict(cursor): """ Format of dict: Key: vertex1_vertex2_type Value: SQLite3 row from edge table """ edge_dict = {} query = """SELECT * FROM edge""" > cursor.execute(query) E sqlite3.OperationalError: no such table: edge ../talon.py:164: OperationalError ===================================================================================== warnings summary ====================================================================================== /home/minion/miniconda3/lib/python3.6/site-packages/_pytest/mark/structures.py:324 /home/minion/miniconda3/lib/python3.6/site-packages/_pytest/mark/structures.py:324: PytestUnknownMarkWarning: Unknown pytest.mark.incremental - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html PytestUnknownMarkWarning, -- Docs: https://docs.pytest.org/en/latest/warnings.html ============================================================== 37 failed, 1 passed, 88 deselected, 1 warnings in 1.06 seconds ===============================================================