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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: protein_quest
3
- Version: 0.6.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.11.7; extra == 'mcp'
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 summary.json and cif file.
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=z_nR_Ti0YfIwFSKDD18DIrz_r3zxWQ8EGCNr2XUWkY0,56
3
- protein_quest/cli.py,sha256=pWwMIzWBrtqhZbvTIkvd1XhA5u9J-WAAg7A3hJZGtlk,46201
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=rQv2srhF3_SYYK1TD3htIyxNiunU7a8FDC7CYT_oJFE,8269
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=1FTKN0mYKTwZHlyIB4ORSAgSHFKK-UAK7T-qoFo1vyI,7162
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=92G5YiJAJwUBKJQHPrM6DZlaLe-XG4qBg0zy0BDGFYY,24354
16
- protein_quest/utils.py,sha256=6OF8X4ia_z1HOYiXy6e-zEWlp_bF1DoZCVrCSg1qivY,19076
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=GtE3rT7wH3vIOOeiXY2s80Fo6EzdoqlcvakW8K591Yk,1257
20
- protein_quest/alphafold/fetch.py,sha256=n5SlqbQfU1PE4X8saV4O1nCrKRn3Q2UcMlrNw5-163w,12801
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.6.0.dist-info/METADATA,sha256=8rX0ixi4Xl516LkxOlOKKRe364nKIjP7mKn67xuOcDA,9623
24
- protein_quest-0.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
25
- protein_quest-0.6.0.dist-info/entry_points.txt,sha256=f1RtOxv9TFBO3w01EMEuFXBTMsqKsQcKlkxmj9zE-0g,57
26
- protein_quest-0.6.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
27
- protein_quest-0.6.0.dist-info/RECORD,,
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,,