cool-seq-tool 0.10.0__tar.gz → 0.11.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/PKG-INFO +2 -2
  2. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/mappers/exon_genomic_coords.py +14 -20
  3. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool.egg-info/PKG-INFO +2 -2
  4. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/mappers/test_exon_genomic_coords.py +1 -1
  5. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.coveragerc +0 -0
  6. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.github/ISSUE_TEMPLATE/bug-report.yaml +0 -0
  7. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.github/ISSUE_TEMPLATE/feature-request.yaml +0 -0
  8. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.github/workflows/checks.yaml +0 -0
  9. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.github/workflows/pr-priority-label.yaml +0 -0
  10. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.github/workflows/release.yml +0 -0
  11. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.github/workflows/stale.yaml +0 -0
  12. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.gitignore +0 -0
  13. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.pre-commit-config.yaml +0 -0
  14. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/.readthedocs.yaml +0 -0
  15. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/CITATION.cff +0 -0
  16. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/LICENSE +0 -0
  17. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/README.md +0 -0
  18. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/Makefile +0 -0
  19. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/make.bat +0 -0
  20. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/_static/img/biomart.png +0 -0
  21. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/_templates/module_summary.rst +0 -0
  22. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/changelog.rst +0 -0
  23. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/conf.py +0 -0
  24. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/contributing.rst +0 -0
  25. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/index.rst +0 -0
  26. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/install.rst +0 -0
  27. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/license.rst +0 -0
  28. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/reference/index.rst +0 -0
  29. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/transcript_selection.rst +0 -0
  30. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/docs/source/usage.rst +0 -0
  31. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/pyproject.toml +0 -0
  32. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/setup.cfg +0 -0
  33. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/__init__.py +0 -0
  34. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/app.py +0 -0
  35. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/handlers/__init__.py +0 -0
  36. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/handlers/seqrepo_access.py +0 -0
  37. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/mappers/__init__.py +0 -0
  38. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/mappers/alignment.py +0 -0
  39. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/mappers/liftover.py +0 -0
  40. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/mappers/mane_transcript.py +0 -0
  41. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/resources/__init__.py +0 -0
  42. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/resources/data_files.py +0 -0
  43. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/resources/status.py +0 -0
  44. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/resources/transcript_mapping.tsv +0 -0
  45. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/schemas.py +0 -0
  46. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/sources/__init__.py +0 -0
  47. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/sources/mane_transcript_mappings.py +0 -0
  48. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/sources/transcript_mappings.py +0 -0
  49. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/sources/uta_database.py +0 -0
  50. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool/utils.py +0 -0
  51. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool.egg-info/SOURCES.txt +0 -0
  52. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool.egg-info/dependency_links.txt +0 -0
  53. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool.egg-info/requires.txt +0 -0
  54. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/src/cool_seq_tool.egg-info/top_level.txt +0 -0
  55. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/conftest.py +0 -0
  56. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/handlers/test_seqrepo_access.py +0 -0
  57. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/mappers/test_alignment.py +0 -0
  58. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/mappers/test_liftover.py +0 -0
  59. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/mappers/test_mane_transcript.py +0 -0
  60. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/sources/test_mane_transcript_mappings.py +0 -0
  61. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/sources/test_uta_database.py +0 -0
  62. {cool_seq_tool-0.10.0 → cool_seq_tool-0.11.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: cool_seq_tool
3
- Version: 0.10.0
3
+ Version: 0.11.0
4
4
  Summary: Common Operation on Lots of Sequences Tool
5
5
  Author: Kori Kuzma, James Stevenson, Katie Stahl, Alex Wagner
6
6
  License: MIT License
@@ -865,14 +865,14 @@ class ExonGenomicCoordsMapper:
865
865
  if use_alt_start_i and coordinate_type == CoordinateType.RESIDUE:
866
866
  genomic_pos = genomic_pos - 1 # Convert residue coordinate to inter-residue
867
867
 
868
- # Validate that the breakpoint occurs on a transcript given a gene
869
- coordinate_check = await self._validate_gene_coordinates(
870
- pos=genomic_pos, genomic_ac=genomic_ac, gene=gene
868
+ # Validate that the breakpoint between the first and last exon for the selected transcript
869
+ coordinate_check = await self._validate_genomic_breakpoint(
870
+ pos=genomic_pos, genomic_ac=genomic_ac, tx_ac=transcript
871
871
  )
872
872
  if not coordinate_check:
873
873
  return GenomicTxSeg(
874
874
  errors=[
875
- f"{genomic_pos} on {genomic_ac} does not occur within the exons for {gene}"
875
+ f"{genomic_pos} on {genomic_ac} does not occur within the exons for {transcript}"
876
876
  ]
877
877
  )
878
878
 
@@ -943,38 +943,32 @@ class ExonGenomicCoordsMapper:
943
943
  )
944
944
  return liftover_data[1] if liftover_data else None
945
945
 
946
- async def _validate_gene_coordinates(
946
+ async def _validate_genomic_breakpoint(
947
947
  self,
948
948
  pos: int,
949
949
  genomic_ac: str,
950
- gene: str,
950
+ tx_ac: str,
951
951
  ) -> bool:
952
952
  """Validate that a genomic coordinate falls within the first and last exon
953
- given a gene and accession
953
+ for a transcript on a given accession
954
954
 
955
955
  :param pos: Genomic position on ``genomic_ac``
956
956
  :param genomic_ac: RefSeq genomic accession, e.g. ``"NC_000007.14"``
957
- :param gene: A valid, case-sensitive HGNC gene symbol
957
+ :param transcript: A transcript accession
958
958
  :return: ``True`` if the coordinate falls within the first and last exon
959
- for the gene, ``False`` if not
959
+ for the transcript, ``False`` if not
960
960
  """
961
961
  query = f"""
962
962
  WITH tx_boundaries AS (
963
- SELECT
964
- tx_ac,
965
- hgnc,
966
- MIN(alt_start_i) as min_start,
967
- MAX(alt_end_i) as max_end
963
+ SELECT
964
+ MIN(alt_start_i) AS min_start,
965
+ MAX(alt_end_i) AS max_end
968
966
  FROM {self.uta_db.schema}.tx_exon_aln_v
969
- WHERE hgnc = '{gene}'
967
+ WHERE tx_ac = '{tx_ac}'
970
968
  AND alt_ac = '{genomic_ac}'
971
- GROUP BY tx_ac, hgnc
972
969
  )
973
- SELECT DISTINCT hgnc
974
- FROM tx_boundaries
970
+ SELECT * FROM tx_boundaries
975
971
  WHERE {pos} between tx_boundaries.min_start and tx_boundaries.max_end
976
- ORDER BY hgnc
977
- LIMIT 1;
978
972
  """ # noqa: S608
979
973
  results = await self.uta_db.execute_query(query)
980
974
  return bool(results)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: cool_seq_tool
3
- Version: 0.10.0
3
+ Version: 0.11.0
4
4
  Summary: Common Operation on Lots of Sequences Tool
5
5
  Author: Kori Kuzma, James Stevenson, Katie Stahl, Alex Wagner
6
6
  License: MIT License
@@ -1516,7 +1516,7 @@ async def test_invalid(test_egc_mapper):
1516
1516
  )
1517
1517
  genomic_tx_seg_service_checks(resp, is_valid=False)
1518
1518
  assert resp.errors == [
1519
- "9999999999998 on NC_000001.11 does not occur within the exons for TPM3"
1519
+ "9999999999998 on NC_000001.11 does not occur within the exons for NM_152263.3"
1520
1520
  ]
1521
1521
 
1522
1522
  # Must supply either gene or transcript
File without changes
File without changes
File without changes