cool-seq-tool 0.11.0__tar.gz → 0.12.1__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.
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/PKG-INFO +1 -1
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/install.rst +5 -5
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/usage.rst +1 -1
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/schemas.py +10 -2
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/sources/mane_transcript_mappings.py +46 -14
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/sources/uta_database.py +1 -1
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool.egg-info/PKG-INFO +1 -1
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/conftest.py +12 -3
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/mappers/test_mane_transcript.py +2 -2
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/sources/test_mane_transcript_mappings.py +72 -10
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.coveragerc +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.github/ISSUE_TEMPLATE/bug-report.yaml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.github/ISSUE_TEMPLATE/feature-request.yaml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.github/workflows/checks.yaml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.github/workflows/pr-priority-label.yaml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.github/workflows/release.yml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.github/workflows/stale.yaml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.gitignore +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.pre-commit-config.yaml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/.readthedocs.yaml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/CITATION.cff +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/LICENSE +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/README.md +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/Makefile +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/make.bat +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/_static/img/biomart.png +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/_templates/module_summary.rst +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/changelog.rst +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/conf.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/contributing.rst +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/index.rst +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/license.rst +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/reference/index.rst +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/docs/source/transcript_selection.rst +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/pyproject.toml +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/setup.cfg +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/__init__.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/app.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/handlers/__init__.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/handlers/seqrepo_access.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/mappers/__init__.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/mappers/alignment.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/mappers/exon_genomic_coords.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/mappers/liftover.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/mappers/mane_transcript.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/resources/__init__.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/resources/data_files.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/resources/status.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/resources/transcript_mapping.tsv +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/sources/__init__.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/sources/transcript_mappings.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/utils.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool.egg-info/SOURCES.txt +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool.egg-info/dependency_links.txt +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool.egg-info/requires.txt +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool.egg-info/top_level.txt +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/handlers/test_seqrepo_access.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/mappers/test_alignment.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/mappers/test_exon_genomic_coords.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/mappers/test_liftover.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/sources/test_uta_database.py +0 -0
- {cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/test_utils.py +0 -0
@@ -40,11 +40,11 @@ Cool-Seq-Tool requires an available instance of the Universal Transcript Archive
|
|
40
40
|
createuser -U postgres anonymous
|
41
41
|
createdb -U postgres -O uta_admin uta
|
42
42
|
|
43
|
-
export UTA_VERSION=
|
43
|
+
export UTA_VERSION=uta_20241220.pgd.gz # most recent as of 2025/03/10
|
44
44
|
curl -O https://dl.biocommons.org/uta/$UTA_VERSION
|
45
45
|
gzip -cdq ${UTA_VERSION} | psql -h localhost -U uta_admin --echo-errors --single-transaction -v ON_ERROR_STOP=1 -d uta -p 5432
|
46
46
|
|
47
|
-
By default, Cool-Seq-Tool expects to connect to the UTA database via a PostgreSQL connection served local on port 5432, under the PostgreSQL username ``uta_admin`` and the schema ``
|
47
|
+
By default, Cool-Seq-Tool expects to connect to the UTA database via a PostgreSQL connection served local on port 5432, under the PostgreSQL username ``uta_admin`` and the schema ``uta_20241220``.
|
48
48
|
|
49
49
|
Set up SeqRepo
|
50
50
|
--------------
|
@@ -56,20 +56,20 @@ Cool-Seq-Tool requires access to `SeqRepo <https://github.com/biocommons/biocomm
|
|
56
56
|
.. code-block::
|
57
57
|
|
58
58
|
pip install seqrepo
|
59
|
-
export SEQREPO_VERSION=2024-
|
59
|
+
export SEQREPO_VERSION=2024-12-20
|
60
60
|
sudo mkdir /usr/local/share/seqrepo
|
61
61
|
sudo chown $USER /usr/local/share/seqrepo
|
62
62
|
seqrepo pull -i $SEQREPO_VERSION
|
63
63
|
|
64
64
|
.. note::
|
65
65
|
|
66
|
-
Our lab typically uses the latest SeqRepo release, which is ``2024-
|
66
|
+
Our lab typically uses the latest SeqRepo release, which is ``2024-12-20`` as of this commit. To check for the presence of newer snapshots, use the ``seqrepo list-remote-instances`` CLI command.
|
67
67
|
|
68
68
|
While this should no longer occur with the latest SeqRepo release, some users in the past have reported experiencing the following error:
|
69
69
|
|
70
70
|
.. code-block::
|
71
71
|
|
72
|
-
PermissionError: [Error 13] Permission denied: '/usr/local/share/seqrepo/2024-
|
72
|
+
PermissionError: [Error 13] Permission denied: '/usr/local/share/seqrepo/2024-12-20._fkuefgd' -> '/usr/local/share/seqrepo/2024-12-20'
|
73
73
|
|
74
74
|
Try moving data manually with ``sudo``:
|
75
75
|
|
@@ -80,7 +80,7 @@ Individual classes will accept arguments upon initialization to set parameters r
|
|
80
80
|
* - ``SEQREPO_ROOT_DIR``
|
81
81
|
- Path to SeqRepo directory (i.e. contains ``aliases.sqlite3`` database file, and ``sequences`` directory). Used by :py:class:`SeqRepoAccess <cool_seq_tool.handlers.seqrepo_access.SeqRepoAccess>`. If not defined, defaults to ``/usr/local/share/seqrepo/latest``.
|
82
82
|
* - ``UTA_DB_URL``
|
83
|
-
- A `libpq connection string <https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING>`_, i.e. of the form ``postgresql://<user>:<password>@<host>:<port>/<database>/<schema>``, used by the :py:class:`UtaDatabase <cool_seq_tool.sources.uta_database.UtaDatabase>` class. By default, it is set to ``postgresql://uta_admin:uta@localhost:5432/uta/
|
83
|
+
- A `libpq connection string <https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING>`_, i.e. of the form ``postgresql://<user>:<password>@<host>:<port>/<database>/<schema>``, used by the :py:class:`UtaDatabase <cool_seq_tool.sources.uta_database.UtaDatabase>` class. By default, it is set to ``postgresql://uta_admin:uta@localhost:5432/uta/uta_20241220``.
|
84
84
|
* - ``LIFTOVER_CHAIN_37_TO_38``
|
85
85
|
- A path to a `chainfile <https://genome.ucsc.edu/goldenPath/help/chain.html>`_ for lifting from GRCh37 to GRCh38. Used by the :py:class:`LiftOver <cool_seq_tool.mappers.liftover.LiftOver>` class as input to `agct <https://pypi.org/project/agct/>`_. If not provided, agct will fetch it automatically from UCSC.
|
86
86
|
* - ``LIFTOVER_CHAIN_38_TO_37``
|
@@ -43,11 +43,18 @@ class Assembly(str, Enum):
|
|
43
43
|
return [item.value for item in cls]
|
44
44
|
|
45
45
|
|
46
|
+
class ManeStatus(str, Enum):
|
47
|
+
"""Define constraints for mane status"""
|
48
|
+
|
49
|
+
SELECT = "mane_select"
|
50
|
+
PLUS_CLINICAL = "mane_plus_clinical"
|
51
|
+
|
52
|
+
|
46
53
|
class TranscriptPriority(str, Enum):
|
47
54
|
"""Create Enum for Transcript Priority labels"""
|
48
55
|
|
49
|
-
MANE_SELECT =
|
50
|
-
MANE_PLUS_CLINICAL =
|
56
|
+
MANE_SELECT = ManeStatus.SELECT.value
|
57
|
+
MANE_PLUS_CLINICAL = ManeStatus.PLUS_CLINICAL.value
|
51
58
|
LONGEST_COMPATIBLE_REMAINING = "longest_compatible_remaining"
|
52
59
|
GRCH38 = "grch38"
|
53
60
|
|
@@ -137,6 +144,7 @@ class ManeGeneData(BaseModel, extra="forbid"):
|
|
137
144
|
ncbi_gene_id: StrictInt
|
138
145
|
hgnc_id: StrictInt | None
|
139
146
|
symbol: StrictStr
|
147
|
+
status: list[ManeStatus]
|
140
148
|
|
141
149
|
|
142
150
|
class ServiceMeta(BaseModelForbidExtra):
|
{cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/sources/mane_transcript_mappings.py
RENAMED
@@ -117,26 +117,58 @@ class ManeTranscriptMappings:
|
|
117
117
|
:param end: Genomic end position. Assumes residue coordinates.
|
118
118
|
:return: Unique MANE gene(s) found for a genomic location
|
119
119
|
"""
|
120
|
+
# Only interested in rows where genomic location lives
|
120
121
|
mane_rows = self.df.filter(
|
121
122
|
(start >= pl.col("chr_start"))
|
122
123
|
& (end <= pl.col("chr_end"))
|
123
124
|
& (pl.col("GRCh38_chr") == ac)
|
124
|
-
)
|
125
|
+
)
|
125
126
|
|
126
|
-
if
|
127
|
+
if mane_rows.is_empty():
|
127
128
|
return []
|
128
129
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
130
|
+
# Group rows by NCBI ID, transform values to representation we want, MANE status
|
131
|
+
# will be converted to list with DESC order
|
132
|
+
mane_rows = mane_rows.group_by("#NCBI_GeneID").agg(
|
133
|
+
[
|
134
|
+
pl.col("#NCBI_GeneID")
|
135
|
+
.first()
|
136
|
+
.str.split_exact(":", 1)
|
137
|
+
.struct.field("field_1")
|
138
|
+
.cast(pl.Int32)
|
139
|
+
.alias("ncbi_gene_id"),
|
140
|
+
pl.col("HGNC_ID")
|
141
|
+
.first()
|
142
|
+
.str.split_exact(":", 1)
|
143
|
+
.struct.field("field_1")
|
144
|
+
.cast(pl.Int32)
|
145
|
+
.alias("hgnc_id"),
|
146
|
+
pl.col("MANE_status")
|
147
|
+
.unique()
|
148
|
+
.str.to_lowercase()
|
149
|
+
.str.replace_all(" ", "_")
|
150
|
+
.alias("status")
|
151
|
+
.sort(descending=True),
|
152
|
+
pl.col("symbol").first(),
|
153
|
+
]
|
154
|
+
)
|
155
|
+
|
156
|
+
# Sort final rows based on MANE status
|
157
|
+
# First by length (which means gene has both select and plus clinical)
|
158
|
+
# Then by DESC order
|
159
|
+
# Then by NCBI ID ASC order
|
160
|
+
mane_rows = (
|
161
|
+
mane_rows.with_columns(
|
162
|
+
[
|
163
|
+
pl.col("status").list.len().alias("status_count"),
|
164
|
+
pl.col("status").list.join("_").alias("status_str"),
|
165
|
+
pl.col("ncbi_gene_id"),
|
166
|
+
]
|
167
|
+
)
|
168
|
+
.sort(
|
169
|
+
["status_count", "status_str", "ncbi_gene_id"],
|
170
|
+
descending=[True, True, False],
|
171
|
+
)
|
172
|
+
.drop(["status_count", "status_str", "#NCBI_GeneID"])
|
140
173
|
)
|
141
|
-
mane_rows = mane_rows.select(["ncbi_gene_id", "hgnc_id", "symbol"])
|
142
174
|
return [ManeGeneData(**mane_gene) for mane_gene in mane_rows.to_dicts()]
|
@@ -27,7 +27,7 @@ from cool_seq_tool.schemas import (
|
|
27
27
|
UTADatabaseType = TypeVar("UTADatabaseType", bound="UtaDatabase")
|
28
28
|
|
29
29
|
UTA_DB_URL = environ.get(
|
30
|
-
"UTA_DB_URL", "postgresql://uta_admin:uta@localhost:5432/uta/
|
30
|
+
"UTA_DB_URL", "postgresql://uta_admin:uta@localhost:5432/uta/uta_20241220"
|
31
31
|
)
|
32
32
|
|
33
33
|
_logger = logging.getLogger(__name__)
|
@@ -340,10 +340,19 @@ def genomic_tx_data():
|
|
340
340
|
@pytest.fixture(scope="session")
|
341
341
|
def egfr_mane_gene():
|
342
342
|
"""Create test fixture for EGFR MANE gene"""
|
343
|
-
return ManeGeneData(
|
343
|
+
return ManeGeneData(
|
344
|
+
ncbi_gene_id=1956, hgnc_id=3236, symbol="EGFR", status=["mane_select"]
|
345
|
+
)
|
344
346
|
|
345
347
|
|
346
348
|
@pytest.fixture(scope="session")
|
347
|
-
def
|
349
|
+
def braf_mane_genes():
|
348
350
|
"""Create test fixture for BRAF MANE gene"""
|
349
|
-
return
|
351
|
+
return [
|
352
|
+
ManeGeneData(
|
353
|
+
ncbi_gene_id=673,
|
354
|
+
hgnc_id=1097,
|
355
|
+
symbol="BRAF",
|
356
|
+
status=["mane_select", "mane_plus_clinical"],
|
357
|
+
),
|
358
|
+
]
|
@@ -143,13 +143,13 @@ def grch38_egfr(egfr_mane_gene):
|
|
143
143
|
|
144
144
|
|
145
145
|
@pytest.fixture(scope="module")
|
146
|
-
def grch38_braf(
|
146
|
+
def grch38_braf(braf_mane_genes):
|
147
147
|
"""Create a test fixture for grch38 responses BRAF V600E (genomic)."""
|
148
148
|
params = {
|
149
149
|
"pos": (140753335, 140753336),
|
150
150
|
"status": TranscriptPriority.GRCH38.value,
|
151
151
|
"ac": "NC_000007.14",
|
152
|
-
"mane_genes":
|
152
|
+
"mane_genes": braf_mane_genes,
|
153
153
|
}
|
154
154
|
return GenomicRepresentation(**params)
|
155
155
|
|
{cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/tests/sources/test_mane_transcript_mappings.py
RENAMED
@@ -209,28 +209,75 @@ def test_get_mane_data_from_chr_pos(
|
|
209
209
|
|
210
210
|
|
211
211
|
def test_get_genomic_mane_genes(
|
212
|
-
test_mane_transcript_mappings,
|
212
|
+
test_mane_transcript_mappings, braf_mane_genes, egfr_mane_gene
|
213
213
|
):
|
214
214
|
"""Test that get_genomic_mane_genes method works correctly"""
|
215
215
|
new_df = pl.DataFrame(
|
216
216
|
{
|
217
|
-
"#NCBI_GeneID": [
|
217
|
+
"#NCBI_GeneID": [
|
218
|
+
"GeneID:673",
|
219
|
+
"GeneID:673",
|
220
|
+
"GeneID:1956",
|
221
|
+
"GeneID:1",
|
222
|
+
"GeneID:2",
|
223
|
+
"GeneID:2",
|
224
|
+
"GeneID:3",
|
225
|
+
],
|
218
226
|
"Ensembl_Gene": [
|
219
227
|
"ENSG00000157764.14",
|
220
228
|
"ENSG00000157764.14",
|
221
229
|
"ENSG00000146648.21",
|
222
230
|
"ENSG1.1",
|
231
|
+
"ENSG1.1",
|
232
|
+
"ENSG1.1",
|
233
|
+
"ENSG1.1",
|
234
|
+
],
|
235
|
+
"HGNC_ID": [
|
236
|
+
"HGNC:1097",
|
237
|
+
"HGNC:1097",
|
238
|
+
"HGNC:3236",
|
239
|
+
"HGNC:1",
|
240
|
+
"HGNC:2",
|
241
|
+
"HGNC:2",
|
242
|
+
"HGNC:3",
|
223
243
|
],
|
224
|
-
"
|
225
|
-
"symbol": ["BRAF", "BRAF", "EGFR", "Dummy"],
|
244
|
+
"symbol": ["BRAF", "BRAF", "EGFR", "Dummy1", "Dummy2", "Dummy2", "Dummy3"],
|
226
245
|
"GRCh38_chr": [
|
227
246
|
"NC_000007.14",
|
228
247
|
"NC_000007.14",
|
229
248
|
"NC_000007.14",
|
230
249
|
"NC_000007.14",
|
250
|
+
"NC_000007.14",
|
251
|
+
"NC_000007.14",
|
252
|
+
"NC_000007.14",
|
253
|
+
],
|
254
|
+
"chr_start": [
|
255
|
+
140719337,
|
256
|
+
140730665,
|
257
|
+
55019017,
|
258
|
+
55019017,
|
259
|
+
55019017,
|
260
|
+
55019017,
|
261
|
+
55019017,
|
262
|
+
],
|
263
|
+
"chr_end": [
|
264
|
+
140924929,
|
265
|
+
140924929,
|
266
|
+
55211628,
|
267
|
+
55211628,
|
268
|
+
55211628,
|
269
|
+
55211628,
|
270
|
+
55211628,
|
271
|
+
],
|
272
|
+
"MANE_status": [
|
273
|
+
"MANE Plus Clinical",
|
274
|
+
"MANE Select",
|
275
|
+
"MANE Select",
|
276
|
+
"MANE Plus Clinical",
|
277
|
+
"MANE Select",
|
278
|
+
"MANE Plus Clinical",
|
279
|
+
"MANE Select",
|
231
280
|
],
|
232
|
-
"chr_start": [140719337, 140730665, 55019017, 55019017],
|
233
|
-
"chr_end": [140924929, 140924929, 55211628, 55211628],
|
234
281
|
}
|
235
282
|
)
|
236
283
|
|
@@ -238,14 +285,29 @@ def test_get_genomic_mane_genes(
|
|
238
285
|
mane_genes = test_mane_transcript_mappings.get_genomic_mane_genes(
|
239
286
|
"NC_000007.14", 140753336, 140753336
|
240
287
|
)
|
241
|
-
assert mane_genes ==
|
288
|
+
assert mane_genes == braf_mane_genes
|
242
289
|
|
243
290
|
mane_genes = test_mane_transcript_mappings.get_genomic_mane_genes(
|
244
291
|
"NC_000007.14", 55191822, 55191822
|
245
292
|
)
|
246
|
-
assert
|
247
|
-
|
248
|
-
|
293
|
+
assert mane_genes == [
|
294
|
+
ManeGeneData(
|
295
|
+
ncbi_gene_id=2,
|
296
|
+
hgnc_id=2,
|
297
|
+
symbol="Dummy2",
|
298
|
+
status=["mane_select", "mane_plus_clinical"],
|
299
|
+
),
|
300
|
+
ManeGeneData(
|
301
|
+
ncbi_gene_id=3, hgnc_id=3, symbol="Dummy3", status=["mane_select"]
|
302
|
+
),
|
303
|
+
egfr_mane_gene,
|
304
|
+
ManeGeneData(
|
305
|
+
ncbi_gene_id=1,
|
306
|
+
hgnc_id=1,
|
307
|
+
symbol="Dummy1",
|
308
|
+
status=["mane_plus_clinical"],
|
309
|
+
),
|
310
|
+
]
|
249
311
|
|
250
312
|
# No MANE genes found for given genomic location
|
251
313
|
mane_genes = test_mane_transcript_mappings.get_genomic_mane_genes(
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/mappers/exon_genomic_coords.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/resources/transcript_mapping.tsv
RENAMED
File without changes
|
File without changes
|
{cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool/sources/transcript_mappings.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{cool_seq_tool-0.11.0 → cool_seq_tool-0.12.1}/src/cool_seq_tool.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|