Skip to content

Commit da03a18

Browse files
authored
Merge pull request #112 from cancervariants/issue-106
Issue 106
2 parents c2dda37 + 95ee417 commit da03a18

File tree

90 files changed

+3016
-1565
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+3016
-1565
lines changed

.flake8

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ exclude =
77
source
88
outputs
99
docs/*
10+
variant/version.py

Pipfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ pyyaml = "*"
1717
jupyter = "*"
1818
ipykernel = "*"
1919
twine = "*"
20+
matplotlib = "*"
2021

2122
[packages]
2223
hgvs = "*"
@@ -30,5 +31,5 @@ uvicorn = "*"
3031
pydantic = "*"
3132
uvloop = "*"
3233
httptools = "*"
33-
"ga4gh.vrs" = {extras = ["extras"], version = "*"}
34+
"ga4gh.vrs" = {version = "==0.7.0rc3", extras = ["extras"]}
3435
gene-normalizer = "*"

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@ seqrepo_date_dir=$(ls -d */)
1919
sudo mv $seqrepo_date_dir latest
2020
```
2121

22+
Variant Normalizer also uses [uta](https://github.com/biocommons/uta).
23+
24+
To install:
25+
```
26+
uta_v=uta_20180821
27+
docker pull biocommons/uta:$uta_v
28+
export UTA_DB_URL=postgresql://anonymous@localhost:5432/uta/uta_20180821
29+
docker-compose -f docker-compose.yml up
30+
```
31+
2232
### Data
2333
Variant Normalization uses [Ensembl BioMart](http://www.ensembl.org/biomart/martview) to retrieve `variant/data/transcript_mappings.tsv`. We currently use `Human Genes (GRCh38.p13)` for the dataset and the following attributes we use are: Gene stable ID, Gene stable ID version, Transcript stable ID, Transcript stable ID version, Protein stable ID, Protein stable ID version, RefSeq match transcript (MANE Select), Gene name.
2434

@@ -60,6 +70,12 @@ pytest tests/
6070
```
6171

6272
### Starting the Variant Normalization Service
73+
74+
`gene-normalizer`s dynamodb must be running and run the following:
75+
```
76+
docker-compose -f docker-compose.yml up
77+
```
78+
6379
From the _root_ directory of the repository:
6480
```
6581
uvicorn variant.main:app --reload

docker-compose.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
version: "3"
2+
3+
services:
4+
seqrepo-rest-service:
5+
# Test: curl http://localhost:5000/seqrepo/1/sequence/refseq:NM_000551.3
6+
expose:
7+
- 5000
8+
ports:
9+
- 5000:5000
10+
image: biocommons/seqrepo-rest-service:latest
11+
volumes:
12+
- ./variant/data/seqrepo:/usr/local/share/seqrepo
13+
14+
uta:
15+
# Test:
16+
# psql -XAt postgres://anonymous@localhost/uta -c 'select count(*) from transcript'
17+
# 249909
18+
expose:
19+
- 5432
20+
ports:
21+
- 5432:5432
22+
environment:
23+
- POSTGRES_PASSWORD=password
24+
- POSTGRES_USER=user
25+
image: biocommons/uta:uta_20180821
26+
volumes:
27+
- ./variant/data/uta_20180821:/var/lib/postgresql/data
28+
29+
volumes:
30+
seqrepo_vol:
31+
external: true
32+
uta_vol:
33+
external: true

requirements-dev.txt

Lines changed: 59 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -10,92 +10,99 @@
1010

1111
-i https://pypi.org/simple
1212
-e .
13-
anyio==2.2.0; python_full_version >= '3.6.2'
13+
anyio==3.1.0; python_full_version >= '3.6.2'
1414
appdirs==1.4.4
1515
appnope==0.1.2; sys_platform == 'darwin'
16-
argcomplete==1.12.2
16+
argcomplete==1.12.3
1717
argh==0.26.2
1818
argon2-cffi==20.1.0
1919
async-generator==1.10; python_version >= '3.5'
20-
attrs==20.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
21-
babel==2.9.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
20+
attrs==21.2.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
21+
babel==2.9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
2222
backcall==0.2.0
2323
backports-datetime-fromisoformat==1.0.0
2424
beautifulsoup4==4.9.3
25-
biocommons.seqrepo==0.6.3
26-
bioutils==0.5.2.post3; python_version >= '3.6'
25+
biocommons.seqrepo==0.6.3.post1
26+
bioutils==0.5.5; python_version >= '3.6'
2727
bleach==3.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
28-
boto3==1.17.50; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
29-
botocore==1.20.50; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
28+
boto3==1.17.79; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
29+
botocore==1.20.79; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
3030
bs4==0.0.1
3131
canonicaljson==1.4.0; python_version ~= '3.5'
3232
certifi==2020.12.5
3333
cffi==1.14.5
34-
cfgv==3.2.0; python_full_version >= '3.6.1'
34+
cfgv==3.3.0; python_full_version >= '3.6.1'
3535
chardet==4.0.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
3636
civicpy==1.1.3; python_version >= '3.5'
3737
click==7.1.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
38+
colorama==0.4.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
3839
coloredlogs==15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
3940
configparser==5.0.2; python_version >= '3.6'
40-
coverage==5.5
41-
coveralls==3.0.1
41+
coverage[toml]==5.5
42+
coveralls==3.1.0
4243
cssselect==1.1.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
44+
cycler==0.10.0
4345
decorator==4.4.2
4446
defusedxml==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
4547
deprecation==2.1.0
4648
distlib==0.3.1
4749
docopt==0.6.2
50+
docutils==0.17.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
4851
entrypoints==0.3; python_version >= '2.7'
4952
fake-useragent==0.1.11
50-
fastapi==0.63.0
53+
fastapi==0.65.1
5154
filelock==3.0.12
5255
flake8-docstrings==1.6.0
53-
flake8==3.9.0
54-
frozendict==1.2
55-
ga4gh.vrs[extras]==0.6.4
56+
flake8==3.9.2
57+
frozendict==2.0.2; python_version >= '3.6'
58+
ga4gh.vrs[extras]==0.7.0rc3
5659
gene-normalizer==0.1.5
5760
gffutils==0.10.1
5861
h11==0.12.0; python_version >= '3.6'
5962
hgvs==1.5.1
60-
httptools==0.1.1
63+
httptools==0.2.0
6164
humanfriendly==9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
62-
identify==2.2.3; python_full_version >= '3.6.1'
65+
identify==2.2.6; python_full_version >= '3.6.1'
6366
idna==2.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
67+
importlib-metadata==4.0.1; python_version >= '3.6'
6468
inflection==0.5.1; python_version >= '3.5'
6569
iniconfig==1.1.1
66-
ipykernel==5.5.3
70+
ipykernel==5.5.5
6771
ipython-genutils==0.2.0
68-
ipython==7.22.0; python_version >= '3.7'
72+
ipython==7.23.1; python_version >= '3.7'
6973
ipywidgets==7.6.3
7074
jedi==0.18.0; python_version >= '3.6'
71-
jinja2==2.11.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
75+
jinja2==3.0.1; python_version >= '3.6'
7276
jmespath==0.10.0; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
7377
json5==0.9.5
7478
jsonschema==3.2.0
7579
jupyter-client==6.1.12; python_version >= '3.5'
7680
jupyter-console==6.4.0; python_version >= '3.6'
7781
jupyter-core==4.7.1; python_version >= '3.6'
78-
jupyter-packaging==0.9.1; python_version >= '3.6'
79-
jupyter-server==1.6.1; python_version >= '3.6'
82+
jupyter-server==1.8.0; python_version >= '3.6'
8083
jupyter==1.0.0
8184
jupyterlab-pygments==0.1.2
82-
jupyterlab-server==2.4.0; python_version >= '3.6'
85+
jupyterlab-server==2.5.2; python_version >= '3.6'
8386
jupyterlab-widgets==1.0.0; python_version >= '3.6'
84-
jupyterlab==3.0.14
87+
jupyterlab==3.0.16
88+
keyring==23.0.1; python_version >= '3.6'
89+
kiwisolver==1.3.1; python_version >= '3.6'
8590
lxml==4.6.3
8691
markdown==3.3.4; python_version >= '3.6'
87-
markupsafe==1.1.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
92+
markupsafe==2.0.1; python_version >= '3.6'
93+
matplotlib-inline==0.1.2; python_version >= '3.5'
94+
matplotlib==3.4.2
8895
mccabe==0.6.1
8996
mistune==0.8.4
90-
nbclassic==0.2.7; python_version >= '3.6'
97+
nbclassic==0.3.1; python_version >= '3.6'
9198
nbclient==0.5.3; python_full_version >= '3.6.1'
9299
nbconvert==6.0.7; python_version >= '3.6'
93100
nbformat==5.1.3; python_version >= '3.5'
94101
nest-asyncio==1.5.1; python_version >= '3.5'
95102
networkx==2.5.1; python_version >= '3.6'
96103
nodeenv==1.6.0
97-
notebook==6.3.0; python_version >= '3.6'
98-
numpy==1.20.2; python_version >= '3.7'
104+
notebook==6.4.0; python_version >= '3.6'
105+
numpy==1.20.3; python_version >= '3.7'
99106
obonet==0.3.0; python_version >= '3.5'
100107
packaging==20.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
101108
pandas==1.2.4; python_full_version >= '3.7.1'
@@ -105,64 +112,70 @@ parsley==1.3
105112
parso==0.8.2; python_version >= '3.6'
106113
pexpect==4.8.0; sys_platform != 'win32'
107114
pickleshare==0.7.5
115+
pillow==8.2.0; python_version >= '3.6'
116+
pkginfo==1.7.0
108117
pluggy==0.13.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
109-
pre-commit==2.12.0
118+
pre-commit==2.13.0
110119
prometheus-client==0.10.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
111120
prompt-toolkit==3.0.18; python_full_version >= '3.6.1'
112121
psycopg2-binary==2.8.6; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
113122
ptyprocess==0.7.0
114123
py==1.10.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
115124
pycodestyle==2.7.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
116125
pycparser==2.20; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
117-
pydantic==1.8.1
118-
pydocstyle==6.0.0; python_version >= '3.6'
126+
pydantic==1.8.2
127+
pydocstyle==6.1.1; python_version >= '3.6'
119128
pyee==8.1.0
120129
pyfaidx==0.5.9.5
121130
pyflakes==2.3.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
122-
pygments==2.8.1; python_version >= '3.5'
131+
pygments==2.9.0; python_version >= '3.5'
123132
pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
124133
pyppeteer==0.2.5; python_version < '4' and python_full_version >= '3.6.1'
125134
pyquery==1.4.3
126135
pyrsistent==0.17.3; python_version >= '3.5'
127136
pysam==0.16.0.1
128-
pytest-cov==2.11.1
129-
pytest==6.2.3
137+
pytest-cov==2.12.0
138+
pytest==6.2.4
130139
python-dateutil==2.8.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
131140
python-jsonschema-objects==0.3.10
132141
pytz==2021.1
133142
pyyaml==5.4.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
134143
pyzmq==22.0.3; python_version >= '3.6'
135-
qtconsole==5.0.3; python_version >= '3.6'
144+
qtconsole==5.1.0; python_version >= '3.6'
136145
qtpy==1.9.0
146+
readme-renderer==29.0
137147
requests-html==0.10.0; python_version >= '3.6'
148+
requests-toolbelt==0.9.1
138149
requests==2.25.1
139-
s3transfer==0.3.6
150+
rfc3986==1.5.0
151+
s3transfer==0.4.2
140152
send2trash==1.5.0
141153
simplejson==3.17.2; python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3'
142-
six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
154+
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
143155
sniffio==1.2.0; python_version >= '3.5'
144156
snowballstemmer==2.1.0
145157
soupsieve==2.2.1; python_version >= '3'
146158
sqlparse==0.4.1; python_version >= '3.5'
147-
starlette==0.13.6; python_version >= '3.6'
159+
starlette==0.14.2; python_version >= '3.6'
148160
tabulate==0.8.9
149-
terminado==0.9.4; python_version >= '3.6'
150-
testpath==0.4.4
161+
terminado==0.10.0; python_version >= '3.6'
162+
testpath==0.5.0; python_version >= '3.5'
151163
toml==0.10.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
152-
tomlkit==0.7.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
153164
tornado==6.1; python_version >= '3.5'
154-
tqdm==4.60.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
165+
tqdm==4.61.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
155166
traitlets==5.0.5; python_version >= '3.7'
156-
typing-extensions==3.7.4.3
167+
twine==3.4.1
168+
typing-extensions==3.10.0.0
157169
urllib3==1.26.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
158170
uvicorn==0.13.4
159171
uvloop==0.15.2
160172
vcfpy==0.13.3
161-
virtualenv==20.4.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
173+
virtualenv==20.4.7; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
162174
w3lib==1.22.0
163175
wcwidth==0.2.5
164176
webencodings==0.5.1
177+
websocket-client==1.0.1; python_version >= '3.6'
165178
websockets==8.1
166-
wheel==0.36.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
167179
widgetsnbextension==3.5.1
168-
yoyo-migrations==7.3.1
180+
yoyo-migrations==7.3.2
181+
zipp==3.4.1; python_version >= '3.6'

requirements.txt

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88
-i https://pypi.org/simple
99
appdirs==1.4.4
1010
appnope==0.1.2; sys_platform == 'darwin'
11-
argcomplete==1.12.2
11+
argcomplete==1.12.3
1212
argh==0.26.2
13-
attrs==20.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
13+
attrs==21.2.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
1414
backcall==0.2.0
1515
backports-datetime-fromisoformat==1.0.0
1616
beautifulsoup4==4.9.3
17-
biocommons.seqrepo==0.6.3
18-
bioutils==0.5.2.post3; python_version >= '3.6'
19-
boto3==1.17.50; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
20-
botocore==1.20.50; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
17+
biocommons.seqrepo==0.6.3.post1
18+
bioutils==0.5.5; python_version >= '3.6'
19+
boto3==1.17.79; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
20+
botocore==1.20.79; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
2121
bs4==0.0.1
2222
canonicaljson==1.4.0; python_version ~= '3.5'
2323
certifi==2020.12.5
@@ -30,26 +30,27 @@ cssselect==1.1.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3
3030
decorator==4.4.2
3131
deprecation==2.1.0
3232
fake-useragent==0.1.11
33-
fastapi==0.63.0
34-
frozendict==1.2
35-
ga4gh.vrs[extras]==0.6.4
33+
fastapi==0.65.1
34+
frozendict==2.0.2; python_version >= '3.6'
35+
ga4gh.vrs[extras]==0.7.0rc3
3636
gene-normalizer==0.1.5
3737
gffutils==0.10.1
3838
h11==0.12.0; python_version >= '3.6'
3939
hgvs==1.5.1
40-
httptools==0.1.1
40+
httptools==0.2.0
4141
humanfriendly==9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
4242
idna==2.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
4343
inflection==0.5.1; python_version >= '3.5'
4444
ipython-genutils==0.2.0
45-
ipython==7.22.0; python_version >= '3.7'
45+
ipython==7.23.1; python_version >= '3.7'
4646
jedi==0.18.0; python_version >= '3.6'
4747
jmespath==0.10.0; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
4848
jsonschema==3.2.0
4949
lxml==4.6.3
5050
markdown==3.3.4; python_version >= '3.6'
51+
matplotlib-inline==0.1.2; python_version >= '3.5'
5152
networkx==2.5.1; python_version >= '3.6'
52-
numpy==1.20.2; python_version >= '3.7'
53+
numpy==1.20.3; python_version >= '3.7'
5354
obonet==0.3.0; python_version >= '3.5'
5455
packaging==20.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
5556
pandas==1.2.4; python_full_version >= '3.7.1'
@@ -61,10 +62,10 @@ pickleshare==0.7.5
6162
prompt-toolkit==3.0.18; python_full_version >= '3.6.1'
6263
psycopg2-binary==2.8.6; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
6364
ptyprocess==0.7.0
64-
pydantic==1.8.1
65+
pydantic==1.8.2
6566
pyee==8.1.0
6667
pyfaidx==0.5.9.5
67-
pygments==2.8.1; python_version >= '3.5'
68+
pygments==2.9.0; python_version >= '3.5'
6869
pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
6970
pyppeteer==0.2.5; python_version < '4' and python_full_version >= '3.6.1'
7071
pyquery==1.4.3
@@ -76,21 +77,21 @@ pytz==2021.1
7677
pyyaml==5.4.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
7778
requests-html==0.10.0; python_version >= '3.6'
7879
requests==2.25.1
79-
s3transfer==0.3.6
80+
s3transfer==0.4.2
8081
simplejson==3.17.2; python_version >= '2.5' and python_version not in '3.0, 3.1, 3.2, 3.3'
81-
six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
82+
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
8283
soupsieve==2.2.1; python_version >= '3'
8384
sqlparse==0.4.1; python_version >= '3.5'
84-
starlette==0.13.6; python_version >= '3.6'
85+
starlette==0.14.2; python_version >= '3.6'
8586
tabulate==0.8.9
86-
tqdm==4.60.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
87+
tqdm==4.61.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
8788
traitlets==5.0.5; python_version >= '3.7'
88-
typing-extensions==3.7.4.3
89+
typing-extensions==3.10.0.0
8990
urllib3==1.26.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
9091
uvicorn==0.13.4
9192
uvloop==0.15.2
9293
vcfpy==0.13.3
9394
w3lib==1.22.0
9495
wcwidth==0.2.5
9596
websockets==8.1
96-
yoyo-migrations==7.3.1
97+
yoyo-migrations==7.3.2

0 commit comments

Comments
 (0)