Skip to content

Commit b92d05c

Browse files
committed
feat: update chainfile dependency, return score
1 parent 771c784 commit b92d05c

8 files changed

Lines changed: 171 additions & 89 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Call ``convert_coordinate()``:
3535

3636
```python3
3737
c.convert_coordinate("chr7", 140453136, 140453137, Strand.POSITIVE)
38-
# returns [LiftoverResult(chrom='chr7', start=140753336, end=140753337, strand=<Strand.POSITIVE: '+'>)]
38+
# returns [LiftoverResult(chrom='chr7', start=140753336, end=140753337, strand=<Strand.POSITIVE: '+'>, score=14633688187)]
3939
```
4040

4141
## Development

analysis/requirements.txt

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
-e file:///Users/jss009/code/agct
2+
appnope==0.1.4
3+
asttokens==3.0.1
4+
certifi==2025.6.15
5+
charset-normalizer==3.4.2
6+
click==8.2.1
7+
comm==0.2.3
8+
coverage==7.9.1
9+
debugpy==1.8.20
10+
decorator==5.2.1
11+
executing==2.2.1
12+
idna==3.10
13+
iniconfig==2.1.0
14+
ipykernel==7.2.0
15+
ipython==9.11.0
16+
ipython-pygments-lexers==1.1.1
17+
jedi==0.19.2
18+
jupyter-client==8.8.0
19+
jupyter-core==5.9.1
20+
matplotlib-inline==0.2.1
21+
maturin==1.8.7
22+
nest-asyncio==1.6.0
23+
packaging==25.0
24+
parso==0.8.6
25+
pexpect==4.9.0
26+
platformdirs==4.9.4
27+
pluggy==1.6.0
28+
prek==0.2.24
29+
prompt-toolkit==3.0.52
30+
psutil==7.2.2
31+
ptyprocess==0.7.0
32+
pure-eval==0.2.3
33+
pygments==2.19.2
34+
pyliftover==0.4.1
35+
pytest==8.4.1
36+
pytest-cov==6.2.1
37+
python-dateutil==2.9.0.post0
38+
pyzmq==27.1.0
39+
requests==2.32.4
40+
ruff==0.14.10
41+
six==1.17.0
42+
stack-data==0.6.3
43+
tornado==6.5.5
44+
tqdm==4.67.1
45+
traitlets==5.14.3
46+
urllib3==2.5.0
47+
wags-tails==0.3.2
48+
wcwidth==0.6.0

analysis/speed_test.ipynb

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,22 @@
55
"id": "e70c802c-9a54-41e2-a928-7ea685017195",
66
"metadata": {},
77
"source": [
8+
"We don't necessarily intend to keep this up to date; this notebook can be reproduced as of the commit that it's associated with.\n",
9+
"\n",
810
"Don't forget to run `maturin develop --release`!"
911
]
1012
},
1113
{
1214
"cell_type": "code",
13-
"execution_count": 1,
15+
"execution_count": 8,
1416
"id": "856fbc60-6896-4824-8956-b466e29ddc69",
1517
"metadata": {},
1618
"outputs": [],
1719
"source": [
1820
"from pyliftover import LiftOver\n",
1921
"\n",
20-
"from agct import Converter"
22+
"from agct import Converter\n",
23+
"from agct.seqref_registry import Assembly"
2124
]
2225
},
2326
{
@@ -46,7 +49,7 @@
4649
"name": "stdout",
4750
"output_type": "stream",
4851
"text": [
49-
"1.11 s ± 26.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
52+
"498 ms ± 6.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
5053
]
5154
}
5255
],
@@ -57,21 +60,21 @@
5760
},
5861
{
5962
"cell_type": "code",
60-
"execution_count": 3,
63+
"execution_count": 10,
6164
"id": "2332acf9-c6eb-42ac-8426-fe46eba132a0",
6265
"metadata": {},
6366
"outputs": [
6467
{
6568
"name": "stdout",
6669
"output_type": "stream",
6770
"text": [
68-
"217 ms ± 9.13 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
71+
"50.9 ms ± 807 μs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
6972
]
7073
}
7174
],
7275
"source": [
7376
"%%timeit\n",
74-
"converter = Converter(\"hg38\", \"hg19\")"
77+
"converter = Converter(Assembly.HG38, Assembly.HG19)"
7578
]
7679
},
7780
{
@@ -84,15 +87,15 @@
8487
},
8588
{
8689
"cell_type": "code",
87-
"execution_count": 4,
90+
"execution_count": 11,
8891
"id": "ae47dbbb-c9ad-46b4-9f4d-14823bbf26f2",
8992
"metadata": {},
9093
"outputs": [
9194
{
9295
"name": "stdout",
9396
"output_type": "stream",
9497
"text": [
95-
"1.09 s ± 14.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
98+
"512 ms ± 16.8 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
9699
]
97100
}
98101
],
@@ -104,22 +107,22 @@
104107
},
105108
{
106109
"cell_type": "code",
107-
"execution_count": 5,
110+
"execution_count": 13,
108111
"id": "729abc9a-6429-4cb6-aaca-4bac4cd762f8",
109112
"metadata": {},
110113
"outputs": [
111114
{
112115
"name": "stdout",
113116
"output_type": "stream",
114117
"text": [
115-
"215 ms ± 6.9 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
118+
"50.6 ms ± 1.17 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
116119
]
117120
}
118121
],
119122
"source": [
120123
"%%timeit\n",
121-
"converter = Converter(\"hg38\", \"hg19\")\n",
122-
"converter.convert_coordinate(\"chr5\", 1404391, \"+\")"
124+
"converter = Converter(Assembly.HG38, Assembly.HG19)\n",
125+
"converter.convert_coordinate(\"chr5\", 1404391, 1404391, \"+\")"
123126
]
124127
},
125128
{
@@ -132,27 +135,27 @@
132135
},
133136
{
134137
"cell_type": "code",
135-
"execution_count": 6,
138+
"execution_count": 14,
136139
"id": "7c51c0cb-e997-4ece-8a68-8e946b9dde3d",
137140
"metadata": {},
138141
"outputs": [],
139142
"source": [
140143
"# load beforehand\n",
141144
"pyl = LiftOver(\"hg38\", \"hg19\")\n",
142-
"converter = Converter(\"hg38\", \"hg19\")"
145+
"converter = Converter(Assembly.HG38, Assembly.HG19)"
143146
]
144147
},
145148
{
146149
"cell_type": "code",
147-
"execution_count": 7,
150+
"execution_count": 15,
148151
"id": "b68a6af6-1a89-414f-b4f1-2378f3c4f50d",
149152
"metadata": {},
150153
"outputs": [
151154
{
152155
"name": "stdout",
153156
"output_type": "stream",
154157
"text": [
155-
"1.97 µs ± 72.9 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)\n"
158+
"1.04 μs ± 27.1 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)\n"
156159
]
157160
}
158161
],
@@ -163,21 +166,21 @@
163166
},
164167
{
165168
"cell_type": "code",
166-
"execution_count": 8,
169+
"execution_count": 16,
167170
"id": "e6643c38-f9f5-4ed6-a277-9642e731e6bc",
168171
"metadata": {},
169172
"outputs": [
170173
{
171174
"name": "stdout",
172175
"output_type": "stream",
173176
"text": [
174-
"2.77 µs ± 103 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)\n"
177+
"713 ns ± 9.94 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)\n"
175178
]
176179
}
177180
],
178181
"source": [
179182
"%%timeit\n",
180-
"converter.convert_coordinate(\"chr5\", 1404391, \"+\")"
183+
"converter.convert_coordinate(\"chr5\", 1404391, 1404391, \"+\")"
181184
]
182185
},
183186
{
@@ -198,15 +201,15 @@
198201
},
199202
{
200203
"cell_type": "code",
201-
"execution_count": 9,
204+
"execution_count": 17,
202205
"id": "181231d8-3f00-407b-86a3-1ae268d4d931",
203206
"metadata": {},
204207
"outputs": [
205208
{
206209
"name": "stdout",
207210
"output_type": "stream",
208211
"text": [
209-
"303 ms ± 13.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
212+
"149 ms ± 2.79 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
210213
]
211214
}
212215
],
@@ -217,21 +220,21 @@
217220
},
218221
{
219222
"cell_type": "code",
220-
"execution_count": 10,
223+
"execution_count": 18,
221224
"id": "7822b8e7-939d-4b6d-85f6-514999c55602",
222225
"metadata": {},
223226
"outputs": [
224227
{
225228
"name": "stdout",
226229
"output_type": "stream",
227230
"text": [
228-
"62.6 ms ± 2.99 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
231+
"8.95 ms ± 73.5 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
229232
]
230233
}
231234
],
232235
"source": [
233236
"%%timeit\n",
234-
"converter = Converter(\"hg19\", \"hg38\")"
237+
"converter = Converter(Assembly.HG19, Assembly.HG38)"
235238
]
236239
},
237240
{
@@ -244,15 +247,15 @@
244247
},
245248
{
246249
"cell_type": "code",
247-
"execution_count": 11,
250+
"execution_count": 19,
248251
"id": "0ab6aeb8-88da-45e8-9efe-8b4a7825bcff",
249252
"metadata": {},
250253
"outputs": [
251254
{
252255
"name": "stdout",
253256
"output_type": "stream",
254257
"text": [
255-
"318 ms ± 15.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
258+
"151 ms ± 1.51 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
256259
]
257260
}
258261
],
@@ -264,22 +267,22 @@
264267
},
265268
{
266269
"cell_type": "code",
267-
"execution_count": 12,
270+
"execution_count": 21,
268271
"id": "a014955a-5451-4b10-83bd-4d4843ddc227",
269272
"metadata": {},
270273
"outputs": [
271274
{
272275
"name": "stdout",
273276
"output_type": "stream",
274277
"text": [
275-
"57.8 ms ± 742 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n"
278+
"8.68 ms ± 59.2 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
276279
]
277280
}
278281
],
279282
"source": [
280283
"%%timeit\n",
281-
"converter = Converter(\"hg19\", \"hg38\")\n",
282-
"converter.convert_coordinate(\"chr5\", 1404391, \"+\")"
284+
"converter = Converter(Assembly.HG19, Assembly.HG38)\n",
285+
"converter.convert_coordinate(\"chr5\", 1404391, 1404391, \"+\")"
283286
]
284287
},
285288
{
@@ -292,27 +295,27 @@
292295
},
293296
{
294297
"cell_type": "code",
295-
"execution_count": 13,
298+
"execution_count": 22,
296299
"id": "a516e0a8-02b1-4ce5-8e69-3d0badcaffa4",
297300
"metadata": {},
298301
"outputs": [],
299302
"source": [
300303
"# load beforehand\n",
301304
"pyl = LiftOver(\"hg19\", \"hg38\")\n",
302-
"converter = Converter(\"hg19\", \"hg38\")"
305+
"converter = Converter(Assembly.HG19, Assembly.HG38)"
303306
]
304307
},
305308
{
306309
"cell_type": "code",
307-
"execution_count": 14,
310+
"execution_count": 23,
308311
"id": "d433fee3-9c40-4633-be5e-2649b723968e",
309312
"metadata": {},
310313
"outputs": [
311314
{
312315
"name": "stdout",
313316
"output_type": "stream",
314317
"text": [
315-
"2.16 µs ± 232 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)\n"
318+
"1.06 μs ± 7.62 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)\n"
316319
]
317320
}
318321
],
@@ -323,29 +326,29 @@
323326
},
324327
{
325328
"cell_type": "code",
326-
"execution_count": 15,
329+
"execution_count": 24,
327330
"id": "5bb82164-e123-47ae-a748-7d4c4898fcb2",
328331
"metadata": {},
329332
"outputs": [
330333
{
331334
"name": "stdout",
332335
"output_type": "stream",
333336
"text": [
334-
"2.87 µs ± 65 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)\n"
337+
"718 ns ± 1.6 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)\n"
335338
]
336339
}
337340
],
338341
"source": [
339342
"%%timeit\n",
340-
"converter.convert_coordinate(\"chr5\", 1404391, \"+\")"
343+
"converter.convert_coordinate(\"chr5\", 1404391, 1404391, \"+\")"
341344
]
342345
}
343346
],
344347
"metadata": {
345348
"kernelspec": {
346-
"display_name": "liftovertest",
349+
"display_name": "agct",
347350
"language": "python",
348-
"name": "liftovertest"
351+
"name": "agct"
349352
},
350353
"language_info": {
351354
"codemirror_mode": {
@@ -357,7 +360,7 @@
357360
"name": "python",
358361
"nbconvert_exporter": "python",
359362
"pygments_lexer": "ipython3",
360-
"version": "3.11.0"
363+
"version": "3.13.2"
361364
}
362365
},
363366
"nbformat": 4,

pyproject.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,8 @@ mypy-init-return = true
135135

136136
[tool.ruff.format]
137137
docstring-code-format = true
138+
139+
[dependency-groups]
140+
dev = [
141+
"ipykernel>=7.2.0",
142+
]

0 commit comments

Comments
 (0)