pocketmapper 0.0.2rc0__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.
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pocketmapper
|
|
3
|
+
Version: 0.0.2rc0
|
|
4
|
+
Summary: A tool for mapping surface pockets in PDB structures
|
|
5
|
+
Author: Lachlan Ellingboe
|
|
6
|
+
Author-email: Lachlan.Ellingboe@icr.ac.uk
|
|
7
|
+
License: MIT
|
|
8
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
9
|
+
Classifier: Programming Language :: Python
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Requires-Python: >=3.12
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: bio
|
|
18
|
+
Requires-Dist: fire
|
|
19
|
+
Requires-Dist: numpy
|
|
20
|
+
Requires-Dist: pandas
|
|
21
|
+
Requires-Dist: tqdm
|
|
22
|
+
Provides-Extra: dev
|
|
23
|
+
Requires-Dist: black; extra == "dev"
|
|
24
|
+
Requires-Dist: bump2version; extra == "dev"
|
|
25
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
26
|
+
Requires-Dist: flake8; extra == "dev"
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
PocketMapper
|
|
30
|
+
============
|
|
31
|
+
|
|
32
|
+
PocketMapper is a command-line tool to fetch protein structures, compute PISA-derived pockets,
|
|
33
|
+
extract atomic coordinates from mmCIF files, perform local or Foldseek alignments, compare
|
|
34
|
+
pockets across structures and write results to disk. It is intended for comparative analysis
|
|
35
|
+
of binding pockets between query and target protein chains.
|
|
36
|
+
|
|
37
|
+
Features
|
|
38
|
+
- Download and cache mmCIF files
|
|
39
|
+
- Preprocess/mmCIF splitting using gemmi
|
|
40
|
+
- Retrieve PISA interface/pocket information and store pocket data
|
|
41
|
+
- Extract CA coordinates from divided structures
|
|
42
|
+
- Perform local alignments or Foldseek-based alignments
|
|
43
|
+
- Compare pockets using alignment and substitution scoring (BLOSUM62)
|
|
44
|
+
- Save tabular results and auxiliary JSON files to a results directory
|
|
45
|
+
|
|
46
|
+
Requirements
|
|
47
|
+
- Python 3.8+
|
|
48
|
+
- pandas
|
|
49
|
+
- gemmi
|
|
50
|
+
- pisa (project-specific downloader wrapper used by this package)
|
|
51
|
+
- foldseek (optional, required only when using Foldseek alignment)
|
|
52
|
+
- Additional dependencies: lib (project helper module), LocalAligner class (local_aligner.py)
|
|
53
|
+
- Command-line wrapper: fire
|
|
54
|
+
|
|
55
|
+
Installation
|
|
56
|
+
1. Clone the repository (or copy the project into your workspace).
|
|
57
|
+
2. Create a virtualenv and install dependencies:
|
|
58
|
+
python -m venv .venv
|
|
59
|
+
source .venv/bin/activate
|
|
60
|
+
pip install -r requirements.txt
|
|
61
|
+
|
|
62
|
+
3. Ensure external tools are available:
|
|
63
|
+
- foldseek (if using Foldseek): install and available on PATH
|
|
64
|
+
|
|
65
|
+
Quick start / Usage
|
|
66
|
+
- Basic local alignment run for a single pair:
|
|
67
|
+
pocketmapper search --query 1ABC_A_B --target 2XYZ_C_D --results_dir ./out
|
|
68
|
+
|
|
69
|
+
- Batch mode using files with one PDB_CHAIN_CHAIN per line:
|
|
70
|
+
pocketmapper search --query queries.txt --target targets.txt --settings config.json
|
|
71
|
+
|
|
72
|
+
- Use bundled Foldseek DB:
|
|
73
|
+
pocketmapper search --query 1ABC_A_B --target ted --foldseek True --results_dir ./out_fs
|
|
74
|
+
|
|
75
|
+
Options
|
|
76
|
+
- --query: Query identifier or path. Accepts a single PDB_CHAIN_CHAIN (e.g. 1ABC_A_B) or a file with one per line.
|
|
77
|
+
- --target: Target identifier or path. Accepts single PDB_CHAIN_CHAIN, file, or 'ted' for bundled Foldseek DB.
|
|
78
|
+
- --settings: Path to JSON settings file. CLI args override settings file.
|
|
79
|
+
- --cache_dir: Directory for caching downloaded or intermediate files.
|
|
80
|
+
- --results_dir: Directory to write results and temporary divided structures.
|
|
81
|
+
- --verbose / --debug: Increase log verbosity.
|
|
82
|
+
- --foldseek: If true, run Foldseek alignments (requires foldseek binary and appropriate DB).
|
|
83
|
+
- --pisa_pockets: Whether to retrieve PISA pockets (default: true).
|
|
84
|
+
|
|
85
|
+
Configuration (settings JSON)
|
|
86
|
+
The settings JSON may include keys such as:
|
|
87
|
+
- cache_dir, structure_dir, pocket_dir, pisa_dir, divided_struct_dir
|
|
88
|
+
- results_dir, query_dir, target_dir, alignment_path, pocket_comparison_path
|
|
89
|
+
- foldseek (bool), pisa_pockets (bool), structure (bool)
|
|
90
|
+
|
|
91
|
+
Outputs
|
|
92
|
+
- alignment.tsv: Alignment report (Foldseek or local aligner)
|
|
93
|
+
- pocket_comparison.tsv: Final pocket comparison table
|
|
94
|
+
- pisa_pockets and intermediate JSON snapshots under pisa_dir
|
|
95
|
+
- unknown_ids.json (if unknown Foldseek aliases are encountered)
|
|
96
|
+
- Divided mmCIF files and temporary directories under results_dir
|
|
97
|
+
|
|
98
|
+
Design / Workflow
|
|
99
|
+
1. Parse CLI args and settings
|
|
100
|
+
2. Determine types of query/target (single PDB_CHAIN_CHAIN, file, or foldseek DB)
|
|
101
|
+
3. Fetch mmCIF structures to cache (structure_dir)
|
|
102
|
+
4. Preprocess and divide structures (gemmi) into per-domain files (divided_struct_dir)
|
|
103
|
+
5. Retrieve PISA interface data and compute pockets (pisa)
|
|
104
|
+
6. Extract CA coordinates from divided mmCIFs
|
|
105
|
+
7. Perform alignment (local or foldseek)
|
|
106
|
+
8. Compare pockets using alignments and BLOSUM scoring
|
|
107
|
+
9. Save results and clean up temporary directories
|
|
108
|
+
|
|
109
|
+
Extending or Debugging
|
|
110
|
+
- Increase verbosity with --verbose or --debug to get more details in logs.
|
|
111
|
+
- The library 'lib' contains helper functions for fetching mmCIFs, preprocessing and comparing pockets.
|
|
112
|
+
- Local alignment logic is in local_aligner.py (LocalAligner).
|
|
113
|
+
- The default logging writes to test.log in the current working directory.
|
|
114
|
+
|
|
115
|
+
License
|
|
116
|
+
- Add your preferred license information here.
|
|
117
|
+
|
|
118
|
+
Contributing
|
|
119
|
+
- Report issues or open pull requests against the repository.
|
|
120
|
+
- Add tests for new functionality and keep changes small and focused.
|
|
121
|
+
|
|
122
|
+
Contact / Authors
|
|
123
|
+
- See project repository for maintainer and contributor information.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
pocketmapper-0.0.2rc0.dist-info/licenses/LICENSE,sha256=t-zc4Zc6RloNIReZtTJj2pJ4J5JsO12mjEoB3-U6NJo,1064
|
|
2
|
+
pocketmapper-0.0.2rc0.dist-info/METADATA,sha256=EURnc3HyFOBjrcgKaQLv-3LZj7YBf2MAhCMayh9Q3Fo,5416
|
|
3
|
+
pocketmapper-0.0.2rc0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
4
|
+
pocketmapper-0.0.2rc0.dist-info/entry_points.txt,sha256=R4oSutBm1WdbgDig7Dm_ODSu_KkrbQ3qVGh9kUf2WDc,51
|
|
5
|
+
pocketmapper-0.0.2rc0.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
6
|
+
pocketmapper-0.0.2rc0.dist-info/RECORD,,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2025 Lachlan Ellingboe
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|