protein-quest 0.6.0__py3-none-any.whl → 0.8.0__py3-none-any.whl
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.
- protein_quest/__version__.py +1 -1
- protein_quest/alphafold/entry_summary.py +46 -22
- protein_quest/alphafold/fetch.py +302 -90
- protein_quest/cli.py +337 -98
- protein_quest/mcp_server.py +18 -7
- protein_quest/structure.py +24 -0
- protein_quest/uniprot.py +322 -15
- protein_quest/utils.py +15 -3
- {protein_quest-0.6.0.dist-info → protein_quest-0.8.0.dist-info}/METADATA +54 -7
- {protein_quest-0.6.0.dist-info → protein_quest-0.8.0.dist-info}/RECORD +13 -13
- {protein_quest-0.6.0.dist-info → protein_quest-0.8.0.dist-info}/WHEEL +0 -0
- {protein_quest-0.6.0.dist-info → protein_quest-0.8.0.dist-info}/entry_points.txt +0 -0
- {protein_quest-0.6.0.dist-info → protein_quest-0.8.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: protein_quest
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: Search/retrieve/filter proteins and protein structures
|
|
5
5
|
Project-URL: Homepage, https://github.com/haddocking/protein-quest
|
|
6
6
|
Project-URL: Issues, https://github.com/haddocking/protein-quest/issues
|
|
@@ -11,7 +11,6 @@ Requires-Python: >=3.13
|
|
|
11
11
|
Requires-Dist: aiofiles>=24.1.0
|
|
12
12
|
Requires-Dist: aiohttp-retry>=2.9.1
|
|
13
13
|
Requires-Dist: aiohttp[speedups]>=3.11.18
|
|
14
|
-
Requires-Dist: aiopath>=0.7.7
|
|
15
14
|
Requires-Dist: attrs>=25.3.0
|
|
16
15
|
Requires-Dist: cattrs[orjson]>=24.1.3
|
|
17
16
|
Requires-Dist: dask>=2025.5.1
|
|
@@ -22,12 +21,13 @@ Requires-Dist: platformdirs>=4.3.8
|
|
|
22
21
|
Requires-Dist: psutil>=7.0.0
|
|
23
22
|
Requires-Dist: rich-argparse>=1.7.1
|
|
24
23
|
Requires-Dist: rich>=14.0.0
|
|
24
|
+
Requires-Dist: shtab>=1.7.2
|
|
25
25
|
Requires-Dist: sparqlwrapper>=2.0.0
|
|
26
26
|
Requires-Dist: tqdm>=4.67.1
|
|
27
27
|
Requires-Dist: yarl>=1.20.1
|
|
28
28
|
Provides-Extra: mcp
|
|
29
29
|
Requires-Dist: fastmcp>=2.11.3; extra == 'mcp'
|
|
30
|
-
Requires-Dist: pydantic>=2.
|
|
30
|
+
Requires-Dist: pydantic>=2.12.0; extra == 'mcp'
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
|
|
33
33
|
# protein-quest
|
|
@@ -62,6 +62,7 @@ graph TB;
|
|
|
62
62
|
searchuniprot --> |uniprot_accessions|searchpdbe[/Search PDBe/]
|
|
63
63
|
searchuniprot --> |uniprot_accessions|searchaf[/Search Alphafold/]
|
|
64
64
|
searchuniprot -. uniprot_accessions .-> searchemdb[/Search EMDB/]
|
|
65
|
+
searchuniprot -. uniprot_accessions .-> searchuniprotdetails[/Search UniProt details/]
|
|
65
66
|
searchintactionpartners[/Search interaction partners/] -.-x |uniprot_accessions|searchuniprot
|
|
66
67
|
searchcomplexes[/Search complexes/]
|
|
67
68
|
searchpdbe -->|pdb_ids|fetchpdbe[Retrieve PDBe]
|
|
@@ -73,6 +74,7 @@ graph TB;
|
|
|
73
74
|
confidencefilter --> |mmcif_files| ssfilter{{Filter on secondary structure}}
|
|
74
75
|
residuefilter --> |mmcif_files| ssfilter
|
|
75
76
|
ssfilter -. mmcif_files .-> convert2cif([Convert to cif])
|
|
77
|
+
ssfilter -. mmcif_files .-> convert2uniprot_accessions([Convert to UniProt accessions])
|
|
76
78
|
classDef dashedBorder stroke-dasharray: 5 5;
|
|
77
79
|
goterm:::dashedBorder
|
|
78
80
|
taxonomy:::dashedBorder
|
|
@@ -80,7 +82,9 @@ graph TB;
|
|
|
80
82
|
fetchemdb:::dashedBorder
|
|
81
83
|
searchintactionpartners:::dashedBorder
|
|
82
84
|
searchcomplexes:::dashedBorder
|
|
85
|
+
searchuniprotdetails:::dashedBorder
|
|
83
86
|
convert2cif:::dashedBorder
|
|
87
|
+
convert2uniprot_accessions:::dashedBorder
|
|
84
88
|
```
|
|
85
89
|
|
|
86
90
|
(Dotted nodes and edges are side-quests.)
|
|
@@ -111,7 +115,7 @@ This behavior can be customized with the `--no-cache`, `--cache-dir`, and `--cop
|
|
|
111
115
|
protein-quest search uniprot \
|
|
112
116
|
--taxon-id 9606 \
|
|
113
117
|
--reviewed \
|
|
114
|
-
--subcellular-location-uniprot nucleus \
|
|
118
|
+
--subcellular-location-uniprot "nucleus" \
|
|
115
119
|
--subcellular-location-go GO:0005634 \
|
|
116
120
|
--molecular-function-go GO:0003677 \
|
|
117
121
|
--limit 100 \
|
|
@@ -151,7 +155,7 @@ protein-quest retrieve pdbe pdbe.csv downloads-pdbe/
|
|
|
151
155
|
protein-quest retrieve alphafold alphafold.csv downloads-af/
|
|
152
156
|
```
|
|
153
157
|
|
|
154
|
-
For each entry downloads the
|
|
158
|
+
For each entry downloads the cif file.
|
|
155
159
|
|
|
156
160
|
### To retrieve EMDB volume files
|
|
157
161
|
|
|
@@ -194,7 +198,7 @@ protein-quest filter residue \
|
|
|
194
198
|
|
|
195
199
|
### To filter on secondary structure
|
|
196
200
|
|
|
197
|
-
To filter on structure being mostly alpha helices and have no beta sheets.
|
|
201
|
+
To filter on structure being mostly alpha helices and have no beta sheets. See the following [notebook](https://www.bonvinlab.org/protein-detective/SSE_elements.html) to determine the ratio of secondary structure elements.
|
|
198
202
|
|
|
199
203
|
```shell
|
|
200
204
|
protein-quest filter secondary-structure \
|
|
@@ -245,12 +249,35 @@ query_protein,complex_id,complex_url,complex_title,members
|
|
|
245
249
|
Q05471,CPX-2122,https://www.ebi.ac.uk/complexportal/complex/CPX-2122,Swr1 chromatin remodelling complex,P31376;P35817;P38326;P53201;P53930;P60010;P80428;Q03388;Q03433;Q03940;Q05471;Q06707;Q12464;Q12509
|
|
246
250
|
```
|
|
247
251
|
|
|
252
|
+
### Search for UniProt details
|
|
253
|
+
|
|
254
|
+
To get details (like protein name, sequence length, organism) for a list of UniProt accessions.
|
|
255
|
+
|
|
256
|
+
```shell
|
|
257
|
+
protein-quest search uniprot-details uniprot_accs.txt uniprot_details.csv
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
The `uniprot_details.csv` looks like:
|
|
261
|
+
|
|
262
|
+
```csv
|
|
263
|
+
uniprot_accession,uniprot_id,sequence_length,reviewed,protein_name,taxon_id,taxon_name
|
|
264
|
+
A0A087WUV0,ZN892_HUMAN,522,True,Zinc finger protein 892,9606,Homo sapiens
|
|
265
|
+
```
|
|
266
|
+
|
|
248
267
|
### Convert structure files to .cif format
|
|
249
268
|
|
|
250
269
|
Some tools (for example [powerfit](https://github.com/haddocking/powerfit)) only work with `.cif` files and not `*.cif.gz` or `*.bcif` files.
|
|
251
270
|
|
|
252
271
|
```shell
|
|
253
|
-
protein-quest convert --output-dir ./filtered-cif ./filtered-ss
|
|
272
|
+
protein-quest convert structures --format cif --output-dir ./filtered-cif ./filtered-ss
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Convert structure files to UniProt accessions
|
|
276
|
+
|
|
277
|
+
After running some filters you might want to know which UniProt accessions are still present in the filtered structures.
|
|
278
|
+
|
|
279
|
+
```shell
|
|
280
|
+
protein-quest convert uniprot ./filtered-ss uniprot_accs.filtered.txt
|
|
254
281
|
```
|
|
255
282
|
|
|
256
283
|
## Model Context Protocol (MCP) server
|
|
@@ -273,6 +300,26 @@ protein-quest mcp
|
|
|
273
300
|
|
|
274
301
|
The mcp server contains an prompt template to search/retrieve/filter candidate structures.
|
|
275
302
|
|
|
303
|
+
## Shell autocompletion
|
|
304
|
+
|
|
305
|
+
The `protein-quest` command line tool supports shell autocompletion using [shtab](https://shtab.readthedocs.io/).
|
|
306
|
+
|
|
307
|
+
Initialize for bash shell with:
|
|
308
|
+
|
|
309
|
+
```shell
|
|
310
|
+
mkdir -p ~/.local/share/bash-completion/completions
|
|
311
|
+
protein-quest --print-completion bash > ~/.local/share/bash-completion/completions/protein-quest
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Initialize for zsh shell with:
|
|
315
|
+
|
|
316
|
+
```shell
|
|
317
|
+
mkdir -p ~/.local/share/zsh/site-functions
|
|
318
|
+
protein-quest --print-completion zsh > ~/.local/share/zsh/site-functions/_protein-quest
|
|
319
|
+
fpath=("$HOME/.local/share/zsh/site-functions" $fpath)
|
|
320
|
+
autoload -Uz compinit && compinit
|
|
321
|
+
```
|
|
322
|
+
|
|
276
323
|
## Contributing
|
|
277
324
|
|
|
278
325
|
For development information and contribution guidelines, please see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
protein_quest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
protein_quest/__version__.py,sha256=
|
|
3
|
-
protein_quest/cli.py,sha256=
|
|
2
|
+
protein_quest/__version__.py,sha256=z22DsH46rJUgc917FJyc2z9XDmdScvBS92-z4i4GZ98,56
|
|
3
|
+
protein_quest/cli.py,sha256=bE0Xq93LjdMnDoHeRIDUXUU79LyWICnhX8B3m2Lk8ZE,57264
|
|
4
4
|
protein_quest/converter.py,sha256=Y-Oxf7lDNbEicL6GS-IpNWDwaAiHgIgs5bFAcEHCKdQ,1441
|
|
5
5
|
protein_quest/emdb.py,sha256=641c6RwNYnu-0GBFyCFBiI58fNc0jMkd0ZZ9MW9-Jmc,1501
|
|
6
6
|
protein_quest/filters.py,sha256=Xr-cJTtbNjHKuzmXLBf7yZfqKf_U3RTivcVbr620LVU,5225
|
|
7
7
|
protein_quest/go.py,sha256=lZNEcw8nTc9wpV3cl4y2FG9Lsj8wsXQ6zemmAQs_DWE,5650
|
|
8
8
|
protein_quest/io.py,sha256=ngV_HU2HIQFO-bP2xQj_fhgv0MYjW4puqz_9CxGpBv8,13017
|
|
9
|
-
protein_quest/mcp_server.py,sha256=
|
|
9
|
+
protein_quest/mcp_server.py,sha256=oHbNjN-Lctc2mY-sjEuo82yRsp1bBsHo2Ag5MwsWx8k,8547
|
|
10
10
|
protein_quest/parallel.py,sha256=ZJrLO1t2HXs4EeNctytvBTyROPBq-4-gLf35PiolHf0,3468
|
|
11
11
|
protein_quest/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
12
|
protein_quest/ss.py,sha256=4ZGIHfjTlodYTXqGUKhMnGbgaStYOGaWg2oYrWIjdgo,10118
|
|
13
|
-
protein_quest/structure.py,sha256=
|
|
13
|
+
protein_quest/structure.py,sha256=QozElPz0kbPB_HW-J1WxArTT5e-1vRyBJoBSfHnwoRM,8117
|
|
14
14
|
protein_quest/taxonomy.py,sha256=4mKv8zll4mX02Ow8CTvyqMJE2KJZvcq3QlTjjjLOJJk,5072
|
|
15
|
-
protein_quest/uniprot.py,sha256=
|
|
16
|
-
protein_quest/utils.py,sha256=
|
|
15
|
+
protein_quest/uniprot.py,sha256=kV1lOZ_ugcF-LUff9hvmJPaGwA_uaHPJCL_3DLBIvSE,36798
|
|
16
|
+
protein_quest/utils.py,sha256=5Ncdid-dslggy-Ti1yhOHwdAM7Bxpyia7Re-xDkc2P0,19909
|
|
17
17
|
protein_quest/alphafold/__init__.py,sha256=Ktasi5BRp71wO7-PpOGDpIRRtBEefs8knIdlKQeLQpk,51
|
|
18
18
|
protein_quest/alphafold/confidence.py,sha256=mVAYTIzdbR8xBjRiUzA0at8wJq9vpfEQWPz5cJefLKs,6766
|
|
19
|
-
protein_quest/alphafold/entry_summary.py,sha256=
|
|
20
|
-
protein_quest/alphafold/fetch.py,sha256=
|
|
19
|
+
protein_quest/alphafold/entry_summary.py,sha256=Qhnw75RXFaoOU332g7axg_jYbbdZbUpsGPUOwPNDSeU,2114
|
|
20
|
+
protein_quest/alphafold/fetch.py,sha256=eKCQHkAMko-d36VvRHLCllLxuAXBdbBUhUONOSCPsds,21970
|
|
21
21
|
protein_quest/pdbe/__init__.py,sha256=eNNHtN60NAGea7gvRkIzkoTXsYPK99s-ldIcKWYO6So,61
|
|
22
22
|
protein_quest/pdbe/fetch.py,sha256=e8CHWDX2QzWnVLmYXCfNrscw1UcN1lI9Uz6Z5HmEOEQ,2510
|
|
23
|
-
protein_quest-0.
|
|
24
|
-
protein_quest-0.
|
|
25
|
-
protein_quest-0.
|
|
26
|
-
protein_quest-0.
|
|
27
|
-
protein_quest-0.
|
|
23
|
+
protein_quest-0.8.0.dist-info/METADATA,sha256=jotRxaLadElgixAW72Axk8qL8wAvzl-cq26mYJBy9zc,11335
|
|
24
|
+
protein_quest-0.8.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
25
|
+
protein_quest-0.8.0.dist-info/entry_points.txt,sha256=f1RtOxv9TFBO3w01EMEuFXBTMsqKsQcKlkxmj9zE-0g,57
|
|
26
|
+
protein_quest-0.8.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
27
|
+
protein_quest-0.8.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|