impc-api 1.0.1__tar.gz → 1.0.3__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.
- impc_api-1.0.3/PKG-INFO +210 -0
- impc_api-1.0.3/impc_api.egg-info/PKG-INFO +210 -0
- impc_api-1.0.1/PKG-INFO +0 -100
- impc_api-1.0.1/impc_api.egg-info/PKG-INFO +0 -100
- {impc_api-1.0.1 → impc_api-1.0.3}/LICENSE +0 -0
- {impc_api-1.0.1 → impc_api-1.0.3}/README.md +0 -0
- {impc_api-1.0.1 → impc_api-1.0.3}/impc_api.egg-info/SOURCES.txt +0 -0
- {impc_api-1.0.1 → impc_api-1.0.3}/impc_api.egg-info/dependency_links.txt +0 -0
- {impc_api-1.0.1 → impc_api-1.0.3}/impc_api.egg-info/requires.txt +0 -0
- {impc_api-1.0.1 → impc_api-1.0.3}/impc_api.egg-info/top_level.txt +0 -0
- {impc_api-1.0.1 → impc_api-1.0.3}/setup.cfg +0 -0
impc_api-1.0.3/PKG-INFO
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: impc_api
|
|
3
|
+
Version: 1.0.3
|
|
4
|
+
Summary: A package to facilitate making API request to the IMPC Solr API
|
|
5
|
+
Home-page: https://github.com/mpi2/impc-data-api-workshop
|
|
6
|
+
Author: MPI2, Marina Kan, Diego Pava
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Dist: pandas>=2.2.0
|
|
11
|
+
Requires-Dist: requests>=2.31.0
|
|
12
|
+
Requires-Dist: tqdm>=4.66.4
|
|
13
|
+
Requires-Dist: pydantic>=2.9
|
|
14
|
+
Provides-Extra: dev
|
|
15
|
+
Requires-Dist: pytest>=8.2.2; extra == "dev"
|
|
16
|
+
|
|
17
|
+
# IMPC_API
|
|
18
|
+
|
|
19
|
+
`impc_api` is a Python package.
|
|
20
|
+
|
|
21
|
+
The functions in this package are intended for use in a Jupyter Notebook.
|
|
22
|
+
|
|
23
|
+
## Installation Instructions
|
|
24
|
+
|
|
25
|
+
1. **Create a virtual environment (optional but recommended)**:
|
|
26
|
+
On Mac:
|
|
27
|
+
```bash
|
|
28
|
+
python3 -m venv .venv
|
|
29
|
+
source .venv/bin/activate
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
2. **Install the package**: `pip install impc_api`
|
|
33
|
+
3. **Install Jupyter**: `pip install jupyter`
|
|
34
|
+
4. **Run the Jupyter Notebook**: `jupyter notebook`
|
|
35
|
+
|
|
36
|
+
After executing the command, the Jupyter interface should open in your browser. If it does not, follow the instructions provided in the terminal.
|
|
37
|
+
|
|
38
|
+
5. **Try it out**:
|
|
39
|
+
|
|
40
|
+
Create a [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/) and try some of the examples below:
|
|
41
|
+
|
|
42
|
+
## Available functions
|
|
43
|
+
|
|
44
|
+
The available functions can be imported as:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from impc_api import solr_request, batch_solr_request
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
# 1. Solr request
|
|
51
|
+
|
|
52
|
+
The most basic request to the IMPC solr API
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
num_found, df = solr_request(
|
|
56
|
+
core='genotype-phenotype',
|
|
57
|
+
params={
|
|
58
|
+
'q': '*:*',
|
|
59
|
+
'rows': 10,
|
|
60
|
+
'fl': 'marker_symbol,allele_symbol,parameter_stable_id'
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## a. Facet request
|
|
66
|
+
|
|
67
|
+
`solr_request` allows facet requests
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
num_found, df = solr_request(
|
|
71
|
+
core="genotype-phenotype",
|
|
72
|
+
params={
|
|
73
|
+
"q": "*:*",
|
|
74
|
+
"rows": 0,
|
|
75
|
+
"facet": "on",
|
|
76
|
+
"facet.field": "zygosity",
|
|
77
|
+
"facet.limit": 15,
|
|
78
|
+
"facet.mincount": 1,
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## b. Solr request validation
|
|
84
|
+
|
|
85
|
+
A common pitfall when writing a query is the misspelling of `core` and `fields` arguments. For this, we have included a `validate` argument that raises a warning when these values are not as expected. Note this does not prevent you from executing a query; it just alerts you to a potential issue.
|
|
86
|
+
|
|
87
|
+
### Core validation
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
num_found, df = solr_request(
|
|
91
|
+
core='invalid_core',
|
|
92
|
+
params={
|
|
93
|
+
'q': '*:*',
|
|
94
|
+
'rows': 10
|
|
95
|
+
},
|
|
96
|
+
validate=True
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
> InvalidCoreWarning: Invalid core: "genotype-phenotyp", select from the available cores:
|
|
100
|
+
> dict_keys(['experiment', 'genotype-phenotype', 'impc_images', 'phenodigm', 'statistical-result'])
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Field list validation
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
num_found, df = solr_request(
|
|
107
|
+
core='genotype-phenotype',
|
|
108
|
+
params={
|
|
109
|
+
'q': '*:*',
|
|
110
|
+
'rows': 10,
|
|
111
|
+
'fl': 'invalid_field,marker_symbol,allele_symbol'
|
|
112
|
+
},
|
|
113
|
+
validate=True
|
|
114
|
+
)
|
|
115
|
+
> InvalidFieldWarning: Unexpected field name: "invalid_field". Check the spelling of fields.
|
|
116
|
+
> To see expected fields check the documentation at: https://www.ebi.ac.uk/mi/impc/solrdoc/
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
# 2. Batch Solr Request
|
|
120
|
+
|
|
121
|
+
`batch_solr_request` is available for large queries. This solves issues where a request is too large to fit into memory or where it puts a lot of strain on the API.
|
|
122
|
+
|
|
123
|
+
Use `batch_solr_request` for:
|
|
124
|
+
|
|
125
|
+
- Large queries (>1,000,000)
|
|
126
|
+
- Querying multiple items in a list
|
|
127
|
+
- Downloading data in `json` or `csv` format.
|
|
128
|
+
|
|
129
|
+
## Large queries
|
|
130
|
+
|
|
131
|
+
For large queries you can choose between seeing them in a DataFrame or downloading them in `json` or `csv` format.
|
|
132
|
+
|
|
133
|
+
## a. Large query - see in DataFrame
|
|
134
|
+
|
|
135
|
+
This will fetch your data using the API responsibly and return a Pandas DataFrame
|
|
136
|
+
|
|
137
|
+
When your request is larger than recommended and you have not opted for downloading the data, a warning will be presented and you should follow the instructions to proceed.
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
df = batch_solr_request(
|
|
141
|
+
core='genotype-phenotype',
|
|
142
|
+
params={
|
|
143
|
+
'q':'*:*'
|
|
144
|
+
},
|
|
145
|
+
download=False,
|
|
146
|
+
batch_size=30000
|
|
147
|
+
)
|
|
148
|
+
print(df.head())
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## b. Large query - Download
|
|
152
|
+
|
|
153
|
+
When using the `download=True` option, a file with the requested information will be saved as `filename`. The format is selected based on the `wt` parameter.
|
|
154
|
+
A DataFrame may be returned, provided it does not exceed the memory available on your laptop. If the DataFrame is too large, an error will be raised. For these cases, we recommend you read the downloaded file in batches/chunks.
|
|
155
|
+
|
|
156
|
+
```python
|
|
157
|
+
df = batch_solr_request(
|
|
158
|
+
core='genotype-phenotype',
|
|
159
|
+
params={
|
|
160
|
+
'q':'*:*',
|
|
161
|
+
'wt':'csv'
|
|
162
|
+
},
|
|
163
|
+
download=True,
|
|
164
|
+
filename='geno_pheno_query',
|
|
165
|
+
batch_size=100000
|
|
166
|
+
)
|
|
167
|
+
print(df.head())
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## c. Query by multiple values
|
|
171
|
+
|
|
172
|
+
`batch_solr_request` also allows to search multiple items in a list provided they belong to them same field.
|
|
173
|
+
Pass the list to the `field_list` param and specify the type of `fl` in `field_type`.
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
# List of gene symbols
|
|
177
|
+
genes = ["Zfp580", "Firrm", "Gpld1", "Mbip"]
|
|
178
|
+
|
|
179
|
+
df = batch_solr_request(
|
|
180
|
+
core='genotype-phenotype',
|
|
181
|
+
params={
|
|
182
|
+
'q':'*:*',
|
|
183
|
+
'fl': 'marker_symbol,mp_term_name,p_value',
|
|
184
|
+
'field_list': genes,
|
|
185
|
+
'field_type': 'marker_symbol'
|
|
186
|
+
},
|
|
187
|
+
download = False
|
|
188
|
+
)
|
|
189
|
+
print(df.head())
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
This can be downloaded too:
|
|
193
|
+
|
|
194
|
+
```python
|
|
195
|
+
# List of gene symbols
|
|
196
|
+
genes = ["Zfp580", "Firrm", "Gpld1", "Mbip"]
|
|
197
|
+
|
|
198
|
+
df = batch_solr_request(
|
|
199
|
+
core='genotype-phenotype',
|
|
200
|
+
params={
|
|
201
|
+
'q':'*:*',
|
|
202
|
+
'fl': 'marker_symbol,mp_term_name,p_value',
|
|
203
|
+
'field_list': genes,
|
|
204
|
+
'field_type': 'marker_symbol'
|
|
205
|
+
},
|
|
206
|
+
download = True,
|
|
207
|
+
filename='gene_list_query'
|
|
208
|
+
)
|
|
209
|
+
print(df.head())
|
|
210
|
+
```
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: impc_api
|
|
3
|
+
Version: 1.0.3
|
|
4
|
+
Summary: A package to facilitate making API request to the IMPC Solr API
|
|
5
|
+
Home-page: https://github.com/mpi2/impc-data-api-workshop
|
|
6
|
+
Author: MPI2, Marina Kan, Diego Pava
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Dist: pandas>=2.2.0
|
|
11
|
+
Requires-Dist: requests>=2.31.0
|
|
12
|
+
Requires-Dist: tqdm>=4.66.4
|
|
13
|
+
Requires-Dist: pydantic>=2.9
|
|
14
|
+
Provides-Extra: dev
|
|
15
|
+
Requires-Dist: pytest>=8.2.2; extra == "dev"
|
|
16
|
+
|
|
17
|
+
# IMPC_API
|
|
18
|
+
|
|
19
|
+
`impc_api` is a Python package.
|
|
20
|
+
|
|
21
|
+
The functions in this package are intended for use in a Jupyter Notebook.
|
|
22
|
+
|
|
23
|
+
## Installation Instructions
|
|
24
|
+
|
|
25
|
+
1. **Create a virtual environment (optional but recommended)**:
|
|
26
|
+
On Mac:
|
|
27
|
+
```bash
|
|
28
|
+
python3 -m venv .venv
|
|
29
|
+
source .venv/bin/activate
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
2. **Install the package**: `pip install impc_api`
|
|
33
|
+
3. **Install Jupyter**: `pip install jupyter`
|
|
34
|
+
4. **Run the Jupyter Notebook**: `jupyter notebook`
|
|
35
|
+
|
|
36
|
+
After executing the command, the Jupyter interface should open in your browser. If it does not, follow the instructions provided in the terminal.
|
|
37
|
+
|
|
38
|
+
5. **Try it out**:
|
|
39
|
+
|
|
40
|
+
Create a [Jupyter Notebook](https://jupyter-notebook.readthedocs.io/en/latest/) and try some of the examples below:
|
|
41
|
+
|
|
42
|
+
## Available functions
|
|
43
|
+
|
|
44
|
+
The available functions can be imported as:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from impc_api import solr_request, batch_solr_request
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
# 1. Solr request
|
|
51
|
+
|
|
52
|
+
The most basic request to the IMPC solr API
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
num_found, df = solr_request(
|
|
56
|
+
core='genotype-phenotype',
|
|
57
|
+
params={
|
|
58
|
+
'q': '*:*',
|
|
59
|
+
'rows': 10,
|
|
60
|
+
'fl': 'marker_symbol,allele_symbol,parameter_stable_id'
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## a. Facet request
|
|
66
|
+
|
|
67
|
+
`solr_request` allows facet requests
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
num_found, df = solr_request(
|
|
71
|
+
core="genotype-phenotype",
|
|
72
|
+
params={
|
|
73
|
+
"q": "*:*",
|
|
74
|
+
"rows": 0,
|
|
75
|
+
"facet": "on",
|
|
76
|
+
"facet.field": "zygosity",
|
|
77
|
+
"facet.limit": 15,
|
|
78
|
+
"facet.mincount": 1,
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## b. Solr request validation
|
|
84
|
+
|
|
85
|
+
A common pitfall when writing a query is the misspelling of `core` and `fields` arguments. For this, we have included a `validate` argument that raises a warning when these values are not as expected. Note this does not prevent you from executing a query; it just alerts you to a potential issue.
|
|
86
|
+
|
|
87
|
+
### Core validation
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
num_found, df = solr_request(
|
|
91
|
+
core='invalid_core',
|
|
92
|
+
params={
|
|
93
|
+
'q': '*:*',
|
|
94
|
+
'rows': 10
|
|
95
|
+
},
|
|
96
|
+
validate=True
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
> InvalidCoreWarning: Invalid core: "genotype-phenotyp", select from the available cores:
|
|
100
|
+
> dict_keys(['experiment', 'genotype-phenotype', 'impc_images', 'phenodigm', 'statistical-result'])
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Field list validation
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
num_found, df = solr_request(
|
|
107
|
+
core='genotype-phenotype',
|
|
108
|
+
params={
|
|
109
|
+
'q': '*:*',
|
|
110
|
+
'rows': 10,
|
|
111
|
+
'fl': 'invalid_field,marker_symbol,allele_symbol'
|
|
112
|
+
},
|
|
113
|
+
validate=True
|
|
114
|
+
)
|
|
115
|
+
> InvalidFieldWarning: Unexpected field name: "invalid_field". Check the spelling of fields.
|
|
116
|
+
> To see expected fields check the documentation at: https://www.ebi.ac.uk/mi/impc/solrdoc/
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
# 2. Batch Solr Request
|
|
120
|
+
|
|
121
|
+
`batch_solr_request` is available for large queries. This solves issues where a request is too large to fit into memory or where it puts a lot of strain on the API.
|
|
122
|
+
|
|
123
|
+
Use `batch_solr_request` for:
|
|
124
|
+
|
|
125
|
+
- Large queries (>1,000,000)
|
|
126
|
+
- Querying multiple items in a list
|
|
127
|
+
- Downloading data in `json` or `csv` format.
|
|
128
|
+
|
|
129
|
+
## Large queries
|
|
130
|
+
|
|
131
|
+
For large queries you can choose between seeing them in a DataFrame or downloading them in `json` or `csv` format.
|
|
132
|
+
|
|
133
|
+
## a. Large query - see in DataFrame
|
|
134
|
+
|
|
135
|
+
This will fetch your data using the API responsibly and return a Pandas DataFrame
|
|
136
|
+
|
|
137
|
+
When your request is larger than recommended and you have not opted for downloading the data, a warning will be presented and you should follow the instructions to proceed.
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
df = batch_solr_request(
|
|
141
|
+
core='genotype-phenotype',
|
|
142
|
+
params={
|
|
143
|
+
'q':'*:*'
|
|
144
|
+
},
|
|
145
|
+
download=False,
|
|
146
|
+
batch_size=30000
|
|
147
|
+
)
|
|
148
|
+
print(df.head())
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## b. Large query - Download
|
|
152
|
+
|
|
153
|
+
When using the `download=True` option, a file with the requested information will be saved as `filename`. The format is selected based on the `wt` parameter.
|
|
154
|
+
A DataFrame may be returned, provided it does not exceed the memory available on your laptop. If the DataFrame is too large, an error will be raised. For these cases, we recommend you read the downloaded file in batches/chunks.
|
|
155
|
+
|
|
156
|
+
```python
|
|
157
|
+
df = batch_solr_request(
|
|
158
|
+
core='genotype-phenotype',
|
|
159
|
+
params={
|
|
160
|
+
'q':'*:*',
|
|
161
|
+
'wt':'csv'
|
|
162
|
+
},
|
|
163
|
+
download=True,
|
|
164
|
+
filename='geno_pheno_query',
|
|
165
|
+
batch_size=100000
|
|
166
|
+
)
|
|
167
|
+
print(df.head())
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## c. Query by multiple values
|
|
171
|
+
|
|
172
|
+
`batch_solr_request` also allows to search multiple items in a list provided they belong to them same field.
|
|
173
|
+
Pass the list to the `field_list` param and specify the type of `fl` in `field_type`.
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
# List of gene symbols
|
|
177
|
+
genes = ["Zfp580", "Firrm", "Gpld1", "Mbip"]
|
|
178
|
+
|
|
179
|
+
df = batch_solr_request(
|
|
180
|
+
core='genotype-phenotype',
|
|
181
|
+
params={
|
|
182
|
+
'q':'*:*',
|
|
183
|
+
'fl': 'marker_symbol,mp_term_name,p_value',
|
|
184
|
+
'field_list': genes,
|
|
185
|
+
'field_type': 'marker_symbol'
|
|
186
|
+
},
|
|
187
|
+
download = False
|
|
188
|
+
)
|
|
189
|
+
print(df.head())
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
This can be downloaded too:
|
|
193
|
+
|
|
194
|
+
```python
|
|
195
|
+
# List of gene symbols
|
|
196
|
+
genes = ["Zfp580", "Firrm", "Gpld1", "Mbip"]
|
|
197
|
+
|
|
198
|
+
df = batch_solr_request(
|
|
199
|
+
core='genotype-phenotype',
|
|
200
|
+
params={
|
|
201
|
+
'q':'*:*',
|
|
202
|
+
'fl': 'marker_symbol,mp_term_name,p_value',
|
|
203
|
+
'field_list': genes,
|
|
204
|
+
'field_type': 'marker_symbol'
|
|
205
|
+
},
|
|
206
|
+
download = True,
|
|
207
|
+
filename='gene_list_query'
|
|
208
|
+
)
|
|
209
|
+
print(df.head())
|
|
210
|
+
```
|
impc_api-1.0.1/PKG-INFO
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: impc_api
|
|
3
|
-
Version: 1.0.1
|
|
4
|
-
Summary: A package to facilitate making API request to the IMPC Solr API
|
|
5
|
-
Home-page: https://github.com/mpi2/impc-data-api-workshop
|
|
6
|
-
Author: MPI2, Marina Kan, Diego Pava
|
|
7
|
-
Requires-Python: >=3.10
|
|
8
|
-
Description-Content-Type: text/markdown
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Requires-Dist: pandas>=2.2.0
|
|
11
|
-
Requires-Dist: requests>=2.31.0
|
|
12
|
-
Requires-Dist: tqdm>=4.66.4
|
|
13
|
-
Requires-Dist: pydantic>=2.9
|
|
14
|
-
Provides-Extra: dev
|
|
15
|
-
Requires-Dist: pytest>=8.2.2; extra == "dev"
|
|
16
|
-
|
|
17
|
-
# IMPC Data API Workshop Repository
|
|
18
|
-
Welcome to the IMPC Data API Workshop repository! This repository is designed to provide all the resources you need to follow along with our workshop on building and using data APIs. Below is an overview of the contents of this repository:
|
|
19
|
-
1. **Exercises**<br>
|
|
20
|
-
The `exercises` folder contains hands-on practice tasks and correct answers. If you would like to go through the exercises, use `impc_workshop_exercises.ipynb`. If you would like to look at the correct answers, take a look at `impc_workshop_answers.ipynb`.
|
|
21
|
-
|
|
22
|
-
2. **Presentations**<br>
|
|
23
|
-
The `presentations` folder includes all the slide decks used during the workshop sessions.
|
|
24
|
-
|
|
25
|
-
3. **Cheat Sheet**<br>
|
|
26
|
-
The `cheat_sheet.ipynb` file is a Jupyter Notebook that serves as a quick reference guide for common API tasks and commands.
|
|
27
|
-
|
|
28
|
-
### Useful Links
|
|
29
|
-
- [IMPC website](https://www.mousephenotype.org/)
|
|
30
|
-
- [IMPC SOLR cores documentation](https://www.ebi.ac.uk/mi/impc/solrdoc/)
|
|
31
|
-
- [IMPReSS](https://www.mousephenotype.org/impress/index) | International Mouse Phenotyping Resource of Standardised Screens
|
|
32
|
-
- [GenTaR](https://www.gentar.org/tracker/#/) | The Genome Targeting Repository<br>
|
|
33
|
-
### Phenodigm useful links:<br>
|
|
34
|
-
- [IMPC disease models summary](https://www.mousephenotype.org/help/data-visualization/gene-pages/disease-models/)
|
|
35
|
-
- [IMPC disease associations](https://www.mousephenotype.org/help/data-analysis/disease-associations/)
|
|
36
|
-
- [Disease Models Portal](https://diseasemodels.research.its.qmul.ac.uk)
|
|
37
|
-
- [OMIM](https://www.omim.org/) | Online Mendelian Inheritance in Man
|
|
38
|
-
- [Orphanet](https://www.orpha.net)
|
|
39
|
-
|
|
40
|
-
# Installation Guide
|
|
41
|
-
Whether you attended the workshop or want to explore the exercises, here is a guide to work locally.
|
|
42
|
-
<br>
|
|
43
|
-
To use the Jupyter notebook with the exercises, you need to set up an environment to run it. We suggest two options:
|
|
44
|
-
1. **Local Installation (More control, but more setup)**: Install on your machine. This allows ease of access, execution of complex queries, and uses your computational resources, but can be challenging if you haven't used `pip` before. *We highly recommend this option*.
|
|
45
|
-
2. **Using Binder (Easier to set up, but less resources available)**: A limited computing environment via [Binder](https://mybinder.org).
|
|
46
|
-
|
|
47
|
-
## Option 1. Local Installation with `pip` and Jupyter
|
|
48
|
-
|
|
49
|
-
We recommend using Python 3.10
|
|
50
|
-
|
|
51
|
-
1. **Create a virtual environment (optional but recommended)**:
|
|
52
|
-
```bash
|
|
53
|
-
python3 -m venv my_venv
|
|
54
|
-
source my_venv/bin/activate
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
2. **Install Jupyter Notebook**:
|
|
58
|
-
You can find the installation instructions [here](https://jupyter.org/install#jupyter-notebook). If you are using a virtual environment, make sure you install Jupyter notebook inside the environment.
|
|
59
|
-
|
|
60
|
-
4. **Clone the repository**: Open your terminal and run:
|
|
61
|
-
```bash
|
|
62
|
-
git clone https://github.com/mpi2/impc-data-api-workshop
|
|
63
|
-
```
|
|
64
|
-
5. **Update pip**:
|
|
65
|
-
```bash
|
|
66
|
-
pip install --upgrade pip
|
|
67
|
-
```
|
|
68
|
-
6. **Install the dependencies**:
|
|
69
|
-
```bash
|
|
70
|
-
cd impc-data-api-workshop
|
|
71
|
-
pip install -r requirements.txt
|
|
72
|
-
```
|
|
73
|
-
7. **Start Jupyter Notebook**:
|
|
74
|
-
```bash
|
|
75
|
-
jupyter notebook
|
|
76
|
-
```
|
|
77
|
-
8. This will open a new browser window with the Jupyter interface. On the sidebar, navigate to the exercises directory.
|
|
78
|
-
9. Open the `impc_workshop_exercises.ipynb` file.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
## Option 2. Using Binder
|
|
82
|
-
|
|
83
|
-
If you prefer an easier way to interact with the material, try [Binder](https://mybinder.org)
|
|
84
|
-
|
|
85
|
-
We advice this approach for preliminary exploration of the material, if you wish to write your own queries we encourage you to attempt a the local setup.
|
|
86
|
-
|
|
87
|
-
1. Navigate to the Binder website.
|
|
88
|
-
2. Paste the URL of this repository as instructed.
|
|
89
|
-
3. This will start a Docker container with the dependencies from `requirements.txt`. All you have to do is wait.
|
|
90
|
-
4. Once it is done loading, a new window with a Jupyter notebook session will start.
|
|
91
|
-
|
|
92
|
-
**NOTES**:
|
|
93
|
-
- Should you wish to save any changes you make to the Jupyter notebooks, follow Binder's instructions.
|
|
94
|
-
- Binder has a maximum of simultaneous users per repo, to ensure you can use the material, opt for [Installation Option 1](#1-local-installation-with-pip-and-jupyter).
|
|
95
|
-
- Note some of the existing queries in the exercises might not work due to the resource cap from Binder.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
Happy coding!
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: impc_api
|
|
3
|
-
Version: 1.0.1
|
|
4
|
-
Summary: A package to facilitate making API request to the IMPC Solr API
|
|
5
|
-
Home-page: https://github.com/mpi2/impc-data-api-workshop
|
|
6
|
-
Author: MPI2, Marina Kan, Diego Pava
|
|
7
|
-
Requires-Python: >=3.10
|
|
8
|
-
Description-Content-Type: text/markdown
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Requires-Dist: pandas>=2.2.0
|
|
11
|
-
Requires-Dist: requests>=2.31.0
|
|
12
|
-
Requires-Dist: tqdm>=4.66.4
|
|
13
|
-
Requires-Dist: pydantic>=2.9
|
|
14
|
-
Provides-Extra: dev
|
|
15
|
-
Requires-Dist: pytest>=8.2.2; extra == "dev"
|
|
16
|
-
|
|
17
|
-
# IMPC Data API Workshop Repository
|
|
18
|
-
Welcome to the IMPC Data API Workshop repository! This repository is designed to provide all the resources you need to follow along with our workshop on building and using data APIs. Below is an overview of the contents of this repository:
|
|
19
|
-
1. **Exercises**<br>
|
|
20
|
-
The `exercises` folder contains hands-on practice tasks and correct answers. If you would like to go through the exercises, use `impc_workshop_exercises.ipynb`. If you would like to look at the correct answers, take a look at `impc_workshop_answers.ipynb`.
|
|
21
|
-
|
|
22
|
-
2. **Presentations**<br>
|
|
23
|
-
The `presentations` folder includes all the slide decks used during the workshop sessions.
|
|
24
|
-
|
|
25
|
-
3. **Cheat Sheet**<br>
|
|
26
|
-
The `cheat_sheet.ipynb` file is a Jupyter Notebook that serves as a quick reference guide for common API tasks and commands.
|
|
27
|
-
|
|
28
|
-
### Useful Links
|
|
29
|
-
- [IMPC website](https://www.mousephenotype.org/)
|
|
30
|
-
- [IMPC SOLR cores documentation](https://www.ebi.ac.uk/mi/impc/solrdoc/)
|
|
31
|
-
- [IMPReSS](https://www.mousephenotype.org/impress/index) | International Mouse Phenotyping Resource of Standardised Screens
|
|
32
|
-
- [GenTaR](https://www.gentar.org/tracker/#/) | The Genome Targeting Repository<br>
|
|
33
|
-
### Phenodigm useful links:<br>
|
|
34
|
-
- [IMPC disease models summary](https://www.mousephenotype.org/help/data-visualization/gene-pages/disease-models/)
|
|
35
|
-
- [IMPC disease associations](https://www.mousephenotype.org/help/data-analysis/disease-associations/)
|
|
36
|
-
- [Disease Models Portal](https://diseasemodels.research.its.qmul.ac.uk)
|
|
37
|
-
- [OMIM](https://www.omim.org/) | Online Mendelian Inheritance in Man
|
|
38
|
-
- [Orphanet](https://www.orpha.net)
|
|
39
|
-
|
|
40
|
-
# Installation Guide
|
|
41
|
-
Whether you attended the workshop or want to explore the exercises, here is a guide to work locally.
|
|
42
|
-
<br>
|
|
43
|
-
To use the Jupyter notebook with the exercises, you need to set up an environment to run it. We suggest two options:
|
|
44
|
-
1. **Local Installation (More control, but more setup)**: Install on your machine. This allows ease of access, execution of complex queries, and uses your computational resources, but can be challenging if you haven't used `pip` before. *We highly recommend this option*.
|
|
45
|
-
2. **Using Binder (Easier to set up, but less resources available)**: A limited computing environment via [Binder](https://mybinder.org).
|
|
46
|
-
|
|
47
|
-
## Option 1. Local Installation with `pip` and Jupyter
|
|
48
|
-
|
|
49
|
-
We recommend using Python 3.10
|
|
50
|
-
|
|
51
|
-
1. **Create a virtual environment (optional but recommended)**:
|
|
52
|
-
```bash
|
|
53
|
-
python3 -m venv my_venv
|
|
54
|
-
source my_venv/bin/activate
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
2. **Install Jupyter Notebook**:
|
|
58
|
-
You can find the installation instructions [here](https://jupyter.org/install#jupyter-notebook). If you are using a virtual environment, make sure you install Jupyter notebook inside the environment.
|
|
59
|
-
|
|
60
|
-
4. **Clone the repository**: Open your terminal and run:
|
|
61
|
-
```bash
|
|
62
|
-
git clone https://github.com/mpi2/impc-data-api-workshop
|
|
63
|
-
```
|
|
64
|
-
5. **Update pip**:
|
|
65
|
-
```bash
|
|
66
|
-
pip install --upgrade pip
|
|
67
|
-
```
|
|
68
|
-
6. **Install the dependencies**:
|
|
69
|
-
```bash
|
|
70
|
-
cd impc-data-api-workshop
|
|
71
|
-
pip install -r requirements.txt
|
|
72
|
-
```
|
|
73
|
-
7. **Start Jupyter Notebook**:
|
|
74
|
-
```bash
|
|
75
|
-
jupyter notebook
|
|
76
|
-
```
|
|
77
|
-
8. This will open a new browser window with the Jupyter interface. On the sidebar, navigate to the exercises directory.
|
|
78
|
-
9. Open the `impc_workshop_exercises.ipynb` file.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
## Option 2. Using Binder
|
|
82
|
-
|
|
83
|
-
If you prefer an easier way to interact with the material, try [Binder](https://mybinder.org)
|
|
84
|
-
|
|
85
|
-
We advice this approach for preliminary exploration of the material, if you wish to write your own queries we encourage you to attempt a the local setup.
|
|
86
|
-
|
|
87
|
-
1. Navigate to the Binder website.
|
|
88
|
-
2. Paste the URL of this repository as instructed.
|
|
89
|
-
3. This will start a Docker container with the dependencies from `requirements.txt`. All you have to do is wait.
|
|
90
|
-
4. Once it is done loading, a new window with a Jupyter notebook session will start.
|
|
91
|
-
|
|
92
|
-
**NOTES**:
|
|
93
|
-
- Should you wish to save any changes you make to the Jupyter notebooks, follow Binder's instructions.
|
|
94
|
-
- Binder has a maximum of simultaneous users per repo, to ensure you can use the material, opt for [Installation Option 1](#1-local-installation-with-pip-and-jupyter).
|
|
95
|
-
- Note some of the existing queries in the exercises might not work due to the resource cap from Binder.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
Happy coding!
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|