claudemol 0.1.0__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.
- claudemol-0.1.0/.gitignore +125 -0
- claudemol-0.1.0/LICENSE +21 -0
- claudemol-0.1.0/PKG-INFO +158 -0
- claudemol-0.1.0/README.md +136 -0
- claudemol-0.1.0/claude-plugin/README.md +44 -0
- claudemol-0.1.0/pyproject.toml +58 -0
- claudemol-0.1.0/src/claudemol/__init__.py +32 -0
- claudemol-0.1.0/src/claudemol/cli.py +167 -0
- claudemol-0.1.0/src/claudemol/connection.py +249 -0
- claudemol-0.1.0/src/claudemol/plugin.py +186 -0
- claudemol-0.1.0/src/claudemol/session.py +295 -0
- claudemol-0.1.0/src/claudemol/view.py +137 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.Python
|
|
7
|
+
build/
|
|
8
|
+
develop-eggs/
|
|
9
|
+
dist/
|
|
10
|
+
downloads/
|
|
11
|
+
eggs/
|
|
12
|
+
.eggs/
|
|
13
|
+
lib/
|
|
14
|
+
lib64/
|
|
15
|
+
parts/
|
|
16
|
+
sdist/
|
|
17
|
+
var/
|
|
18
|
+
wheels/
|
|
19
|
+
share/python-wheels/
|
|
20
|
+
*.egg-info/
|
|
21
|
+
.installed.cfg
|
|
22
|
+
*.egg
|
|
23
|
+
MANIFEST
|
|
24
|
+
|
|
25
|
+
# Virtual Environments
|
|
26
|
+
venv/
|
|
27
|
+
.venv/
|
|
28
|
+
env/
|
|
29
|
+
ENV/
|
|
30
|
+
env.bak/
|
|
31
|
+
venv.bak/
|
|
32
|
+
|
|
33
|
+
# PyCharm
|
|
34
|
+
.idea/
|
|
35
|
+
|
|
36
|
+
# VS Code
|
|
37
|
+
.vscode/
|
|
38
|
+
*.code-workspace
|
|
39
|
+
|
|
40
|
+
# Jupyter Notebook
|
|
41
|
+
.ipynb_checkpoints
|
|
42
|
+
|
|
43
|
+
# pyenv
|
|
44
|
+
.python-version
|
|
45
|
+
|
|
46
|
+
# Environment variables
|
|
47
|
+
.env
|
|
48
|
+
.env.local
|
|
49
|
+
.env.*.local
|
|
50
|
+
|
|
51
|
+
# macOS
|
|
52
|
+
.DS_Store
|
|
53
|
+
.AppleDouble
|
|
54
|
+
.LSOverride
|
|
55
|
+
Icon
|
|
56
|
+
._*
|
|
57
|
+
.DocumentRevisions-V100
|
|
58
|
+
.fseventsd
|
|
59
|
+
.Spotlight-V100
|
|
60
|
+
.TemporaryItems
|
|
61
|
+
.Trashes
|
|
62
|
+
.VolumeIcon.icns
|
|
63
|
+
.com.apple.timemachine.donotpresent
|
|
64
|
+
|
|
65
|
+
# Windows
|
|
66
|
+
Thumbs.db
|
|
67
|
+
Thumbs.db:encryptable
|
|
68
|
+
ehthumbs.db
|
|
69
|
+
ehthumbs_vista.db
|
|
70
|
+
*.stackdump
|
|
71
|
+
[Dd]esktop.ini
|
|
72
|
+
$RECYCLE.BIN/
|
|
73
|
+
*.cab
|
|
74
|
+
*.msi
|
|
75
|
+
*.msix
|
|
76
|
+
*.msm
|
|
77
|
+
*.msp
|
|
78
|
+
*.lnk
|
|
79
|
+
|
|
80
|
+
# Linux
|
|
81
|
+
*~
|
|
82
|
+
.fuse_hidden*
|
|
83
|
+
.directory
|
|
84
|
+
.Trash-*
|
|
85
|
+
.nfs*
|
|
86
|
+
|
|
87
|
+
# Project-specific
|
|
88
|
+
images/
|
|
89
|
+
|
|
90
|
+
# Testing
|
|
91
|
+
.pytest_cache/
|
|
92
|
+
.coverage
|
|
93
|
+
htmlcov/
|
|
94
|
+
.tox/
|
|
95
|
+
.hypothesis/
|
|
96
|
+
*.cover
|
|
97
|
+
*.log
|
|
98
|
+
|
|
99
|
+
# Type checking
|
|
100
|
+
.mypy_cache/
|
|
101
|
+
.dmypy.json
|
|
102
|
+
dmypy.json
|
|
103
|
+
.pyre/
|
|
104
|
+
.pytype/
|
|
105
|
+
|
|
106
|
+
# Ruff
|
|
107
|
+
.ruff_cache/
|
|
108
|
+
|
|
109
|
+
# uv
|
|
110
|
+
.uv/
|
|
111
|
+
settings.json
|
|
112
|
+
.mcp.json
|
|
113
|
+
|
|
114
|
+
# Structure files (downloaded during sessions)
|
|
115
|
+
*.cif
|
|
116
|
+
*.pdb
|
|
117
|
+
*.pdb1
|
|
118
|
+
*.ccp4
|
|
119
|
+
*.mtz
|
|
120
|
+
|
|
121
|
+
# Scratch directory for temporary images
|
|
122
|
+
scratch/
|
|
123
|
+
|
|
124
|
+
# Ralph loop local state
|
|
125
|
+
.claude/ralph-loop.local.md
|
claudemol-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Vishnu Rajan Tejus
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
claudemol-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: claudemol
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: PyMOL integration for Claude Code - control molecular visualization via natural language
|
|
5
|
+
Project-URL: Homepage, https://github.com/ANaka/ai-mol
|
|
6
|
+
Project-URL: Repository, https://github.com/ANaka/ai-mol
|
|
7
|
+
Author: Alex Naka
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: ai,claude,molecular-visualization,pymol,structural-biology
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
|
|
23
|
+
# ai-mol: Control PyMOL with Claude Code
|
|
24
|
+
|
|
25
|
+
Control PyMOL through natural language using Claude Code. This integration enables conversational structural biology, molecular visualization, and analysis.
|
|
26
|
+
|
|
27
|
+
https://github.com/user-attachments/assets/687f43dc-d45e-477e-ac2b-7438e175cb36
|
|
28
|
+
|
|
29
|
+
## Features
|
|
30
|
+
|
|
31
|
+
- **Natural language control**: Tell Claude what you want to visualize and it executes PyMOL commands
|
|
32
|
+
- **Direct socket communication**: Claude Code talks directly to PyMOL (no intermediary server)
|
|
33
|
+
- **Full PyMOL access**: Manipulate representations, colors, views, perform measurements, alignments, and more
|
|
34
|
+
- **Skill-based workflows**: Built-in skills for common tasks like binding site visualization and publication figures
|
|
35
|
+
|
|
36
|
+
## Architecture
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Claude Code → TCP Socket (port 9880) → PyMOL Plugin → cmd.* execution
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Quick Start
|
|
43
|
+
|
|
44
|
+
### Prerequisites
|
|
45
|
+
|
|
46
|
+
- PyMOL installed on your system
|
|
47
|
+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI installed
|
|
48
|
+
- Python 3.10+
|
|
49
|
+
|
|
50
|
+
### Installation
|
|
51
|
+
|
|
52
|
+
1. **Clone the repository:**
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
git clone https://github.com/ANaka/ai-mol
|
|
56
|
+
cd ai-mol
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
2. **Set up the PyMOL plugin:**
|
|
60
|
+
|
|
61
|
+
Add this line to your `~/.pymolrc` (create it if it doesn't exist):
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
run /path/to/ai-mol/claude_socket_plugin.py
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Replace `/path/to/ai-mol` with the actual path where you cloned the repository.
|
|
68
|
+
|
|
69
|
+
3. **Start using it:**
|
|
70
|
+
|
|
71
|
+
Open Claude Code in the `ai-mol` directory and say:
|
|
72
|
+
|
|
73
|
+
> "Open PyMOL and load structure 1UBQ"
|
|
74
|
+
|
|
75
|
+
Claude will launch PyMOL (with the socket listener active) and load the structure.
|
|
76
|
+
|
|
77
|
+
## Usage
|
|
78
|
+
|
|
79
|
+
### Starting a Session
|
|
80
|
+
|
|
81
|
+
Simply ask Claude to open PyMOL or load a structure:
|
|
82
|
+
|
|
83
|
+
- "Open PyMOL"
|
|
84
|
+
- "Load PDB 4HHB and show as cartoon"
|
|
85
|
+
- "Fetch 1UBQ from the PDB"
|
|
86
|
+
|
|
87
|
+
Claude will launch PyMOL if it's not already running.
|
|
88
|
+
|
|
89
|
+
### Example Commands
|
|
90
|
+
|
|
91
|
+
- "Color the protein by secondary structure"
|
|
92
|
+
- "Show the binding site residues within 5Å of the ligand as sticks"
|
|
93
|
+
- "Align these two structures and calculate RMSD"
|
|
94
|
+
- "Create a publication-quality figure with ray tracing"
|
|
95
|
+
- "Make a 360° rotation movie"
|
|
96
|
+
|
|
97
|
+
### PyMOL Console Commands
|
|
98
|
+
|
|
99
|
+
Check or control the socket listener from PyMOL's command line:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
claude_status # Check if listener is running
|
|
103
|
+
claude_stop # Stop the listener
|
|
104
|
+
claude_start # Start the listener
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Available Skills
|
|
108
|
+
|
|
109
|
+
Claude Code has built-in skills for common workflows:
|
|
110
|
+
|
|
111
|
+
- **pymol-fundamentals** - Basic visualization, selections, coloring
|
|
112
|
+
- **protein-structure-basics** - Secondary structure, B-factor, representations
|
|
113
|
+
- **binding-site-visualization** - Protein-ligand interactions
|
|
114
|
+
- **structure-alignment-analysis** - Comparing and aligning structures
|
|
115
|
+
- **antibody-visualization** - CDR loops, epitopes, Fab structures
|
|
116
|
+
- **publication-figures** - High-quality figure export
|
|
117
|
+
- **movie-creation** - Animations and rotations
|
|
118
|
+
|
|
119
|
+
## Troubleshooting
|
|
120
|
+
|
|
121
|
+
### Connection Issues
|
|
122
|
+
|
|
123
|
+
- **"Could not connect to PyMOL"**: Make sure PyMOL is running and the plugin is loaded
|
|
124
|
+
- **Check listener status**: Run `claude_status` in PyMOL's command line
|
|
125
|
+
- **Restart listener**: Run `claude_stop` then `claude_start` in PyMOL
|
|
126
|
+
|
|
127
|
+
### Plugin Not Loading
|
|
128
|
+
|
|
129
|
+
- Verify the path in your `~/.pymolrc` is correct
|
|
130
|
+
- Check PyMOL's output for any error messages on startup
|
|
131
|
+
- Try running `run /path/to/claude_socket_plugin.py` manually in PyMOL
|
|
132
|
+
|
|
133
|
+
### First-Time Setup Help
|
|
134
|
+
|
|
135
|
+
Run the `/pymol-setup` skill in Claude Code for guided setup assistance.
|
|
136
|
+
|
|
137
|
+
## Configuration
|
|
138
|
+
|
|
139
|
+
The default socket port is **9880**. Both the plugin and Claude Code connection module use this port.
|
|
140
|
+
|
|
141
|
+
Key files:
|
|
142
|
+
- `claude_socket_plugin.py` - PyMOL plugin (headless, auto-loads via pymolrc)
|
|
143
|
+
- `pymol_connection.py` - Python module for socket communication
|
|
144
|
+
- `.claude/skills/` - Claude Code skills for PyMOL workflows
|
|
145
|
+
|
|
146
|
+
## Limitations
|
|
147
|
+
|
|
148
|
+
- PyMOL and Claude Code must run on the same machine (localhost connection)
|
|
149
|
+
- One active connection at a time
|
|
150
|
+
- Some complex multi-step operations may need guidance
|
|
151
|
+
|
|
152
|
+
## Contributing
|
|
153
|
+
|
|
154
|
+
Contributions welcome! This project aims to build comprehensive skills for Claude-PyMOL interaction. If you discover useful patterns or workflows, consider adding them as skills.
|
|
155
|
+
|
|
156
|
+
## License
|
|
157
|
+
|
|
158
|
+
MIT License - see LICENSE file for details.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# ai-mol: Control PyMOL with Claude Code
|
|
2
|
+
|
|
3
|
+
Control PyMOL through natural language using Claude Code. This integration enables conversational structural biology, molecular visualization, and analysis.
|
|
4
|
+
|
|
5
|
+
https://github.com/user-attachments/assets/687f43dc-d45e-477e-ac2b-7438e175cb36
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Natural language control**: Tell Claude what you want to visualize and it executes PyMOL commands
|
|
10
|
+
- **Direct socket communication**: Claude Code talks directly to PyMOL (no intermediary server)
|
|
11
|
+
- **Full PyMOL access**: Manipulate representations, colors, views, perform measurements, alignments, and more
|
|
12
|
+
- **Skill-based workflows**: Built-in skills for common tasks like binding site visualization and publication figures
|
|
13
|
+
|
|
14
|
+
## Architecture
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Claude Code → TCP Socket (port 9880) → PyMOL Plugin → cmd.* execution
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
21
|
+
|
|
22
|
+
### Prerequisites
|
|
23
|
+
|
|
24
|
+
- PyMOL installed on your system
|
|
25
|
+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI installed
|
|
26
|
+
- Python 3.10+
|
|
27
|
+
|
|
28
|
+
### Installation
|
|
29
|
+
|
|
30
|
+
1. **Clone the repository:**
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
git clone https://github.com/ANaka/ai-mol
|
|
34
|
+
cd ai-mol
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
2. **Set up the PyMOL plugin:**
|
|
38
|
+
|
|
39
|
+
Add this line to your `~/.pymolrc` (create it if it doesn't exist):
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
run /path/to/ai-mol/claude_socket_plugin.py
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Replace `/path/to/ai-mol` with the actual path where you cloned the repository.
|
|
46
|
+
|
|
47
|
+
3. **Start using it:**
|
|
48
|
+
|
|
49
|
+
Open Claude Code in the `ai-mol` directory and say:
|
|
50
|
+
|
|
51
|
+
> "Open PyMOL and load structure 1UBQ"
|
|
52
|
+
|
|
53
|
+
Claude will launch PyMOL (with the socket listener active) and load the structure.
|
|
54
|
+
|
|
55
|
+
## Usage
|
|
56
|
+
|
|
57
|
+
### Starting a Session
|
|
58
|
+
|
|
59
|
+
Simply ask Claude to open PyMOL or load a structure:
|
|
60
|
+
|
|
61
|
+
- "Open PyMOL"
|
|
62
|
+
- "Load PDB 4HHB and show as cartoon"
|
|
63
|
+
- "Fetch 1UBQ from the PDB"
|
|
64
|
+
|
|
65
|
+
Claude will launch PyMOL if it's not already running.
|
|
66
|
+
|
|
67
|
+
### Example Commands
|
|
68
|
+
|
|
69
|
+
- "Color the protein by secondary structure"
|
|
70
|
+
- "Show the binding site residues within 5Å of the ligand as sticks"
|
|
71
|
+
- "Align these two structures and calculate RMSD"
|
|
72
|
+
- "Create a publication-quality figure with ray tracing"
|
|
73
|
+
- "Make a 360° rotation movie"
|
|
74
|
+
|
|
75
|
+
### PyMOL Console Commands
|
|
76
|
+
|
|
77
|
+
Check or control the socket listener from PyMOL's command line:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
claude_status # Check if listener is running
|
|
81
|
+
claude_stop # Stop the listener
|
|
82
|
+
claude_start # Start the listener
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Available Skills
|
|
86
|
+
|
|
87
|
+
Claude Code has built-in skills for common workflows:
|
|
88
|
+
|
|
89
|
+
- **pymol-fundamentals** - Basic visualization, selections, coloring
|
|
90
|
+
- **protein-structure-basics** - Secondary structure, B-factor, representations
|
|
91
|
+
- **binding-site-visualization** - Protein-ligand interactions
|
|
92
|
+
- **structure-alignment-analysis** - Comparing and aligning structures
|
|
93
|
+
- **antibody-visualization** - CDR loops, epitopes, Fab structures
|
|
94
|
+
- **publication-figures** - High-quality figure export
|
|
95
|
+
- **movie-creation** - Animations and rotations
|
|
96
|
+
|
|
97
|
+
## Troubleshooting
|
|
98
|
+
|
|
99
|
+
### Connection Issues
|
|
100
|
+
|
|
101
|
+
- **"Could not connect to PyMOL"**: Make sure PyMOL is running and the plugin is loaded
|
|
102
|
+
- **Check listener status**: Run `claude_status` in PyMOL's command line
|
|
103
|
+
- **Restart listener**: Run `claude_stop` then `claude_start` in PyMOL
|
|
104
|
+
|
|
105
|
+
### Plugin Not Loading
|
|
106
|
+
|
|
107
|
+
- Verify the path in your `~/.pymolrc` is correct
|
|
108
|
+
- Check PyMOL's output for any error messages on startup
|
|
109
|
+
- Try running `run /path/to/claude_socket_plugin.py` manually in PyMOL
|
|
110
|
+
|
|
111
|
+
### First-Time Setup Help
|
|
112
|
+
|
|
113
|
+
Run the `/pymol-setup` skill in Claude Code for guided setup assistance.
|
|
114
|
+
|
|
115
|
+
## Configuration
|
|
116
|
+
|
|
117
|
+
The default socket port is **9880**. Both the plugin and Claude Code connection module use this port.
|
|
118
|
+
|
|
119
|
+
Key files:
|
|
120
|
+
- `claude_socket_plugin.py` - PyMOL plugin (headless, auto-loads via pymolrc)
|
|
121
|
+
- `pymol_connection.py` - Python module for socket communication
|
|
122
|
+
- `.claude/skills/` - Claude Code skills for PyMOL workflows
|
|
123
|
+
|
|
124
|
+
## Limitations
|
|
125
|
+
|
|
126
|
+
- PyMOL and Claude Code must run on the same machine (localhost connection)
|
|
127
|
+
- One active connection at a time
|
|
128
|
+
- Some complex multi-step operations may need guidance
|
|
129
|
+
|
|
130
|
+
## Contributing
|
|
131
|
+
|
|
132
|
+
Contributions welcome! This project aims to build comprehensive skills for Claude-PyMOL interaction. If you discover useful patterns or workflows, consider adding them as skills.
|
|
133
|
+
|
|
134
|
+
## License
|
|
135
|
+
|
|
136
|
+
MIT License - see LICENSE file for details.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# ai-mol Skills for Claude Code
|
|
2
|
+
|
|
3
|
+
PyMOL visualization skills for Claude Code.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
/plugin marketplace add ANaka/ai-mol?path=claude-plugin
|
|
9
|
+
/plugin install ai-mol-skills
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Then restart Claude Code.
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
You need the `ai-mol` pip package installed:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pip install ai-mol
|
|
20
|
+
ai-mol setup
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Available Skills
|
|
24
|
+
|
|
25
|
+
- **pymol-fundamentals** - Basic PyMOL operations: loading structures, selections, representations
|
|
26
|
+
- **protein-structure-basics** - Visualizing protein secondary structure, B-factors, surfaces
|
|
27
|
+
- **binding-site-visualization** - Protein-ligand binding pockets and active sites
|
|
28
|
+
- **antibody-visualization** - Antibody structures, CDR loops, epitopes
|
|
29
|
+
- **structure-alignment-analysis** - Comparing and aligning protein structures
|
|
30
|
+
- **publication-figures** - Creating publication-quality molecular figures
|
|
31
|
+
- **movie-creation** - Animations, rotations, and morphing sequences
|
|
32
|
+
- **pymol-setup** - First-time PyMOL configuration
|
|
33
|
+
- **pymol-connect** - Connecting to PyMOL sessions
|
|
34
|
+
|
|
35
|
+
## Usage
|
|
36
|
+
|
|
37
|
+
Once installed, just describe what you want to visualize:
|
|
38
|
+
|
|
39
|
+
- "Load 1ubq and show it as a cartoon"
|
|
40
|
+
- "Visualize the binding site of 1hsg"
|
|
41
|
+
- "Create a publication figure of this protein"
|
|
42
|
+
- "Align these two structures and show the differences"
|
|
43
|
+
|
|
44
|
+
Claude will use the appropriate skill automatically.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "claudemol"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "PyMOL integration for Claude Code - control molecular visualization via natural language"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.10"
|
|
7
|
+
authors = [{ name = "Alex Naka" }]
|
|
8
|
+
keywords = ["pymol", "molecular-visualization", "claude", "ai", "structural-biology"]
|
|
9
|
+
license = { text = "MIT" }
|
|
10
|
+
classifiers = [
|
|
11
|
+
"Development Status :: 4 - Beta",
|
|
12
|
+
"Intended Audience :: Science/Research",
|
|
13
|
+
"License :: OSI Approved :: MIT License",
|
|
14
|
+
"Programming Language :: Python :: 3",
|
|
15
|
+
"Programming Language :: Python :: 3.10",
|
|
16
|
+
"Programming Language :: Python :: 3.11",
|
|
17
|
+
"Programming Language :: Python :: 3.12",
|
|
18
|
+
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
19
|
+
"Topic :: Scientific/Engineering :: Visualization",
|
|
20
|
+
]
|
|
21
|
+
dependencies = []
|
|
22
|
+
|
|
23
|
+
[project.scripts]
|
|
24
|
+
claudemol = "claudemol.cli:main"
|
|
25
|
+
|
|
26
|
+
[project.urls]
|
|
27
|
+
Homepage = "https://github.com/ANaka/ai-mol"
|
|
28
|
+
Repository = "https://github.com/ANaka/ai-mol"
|
|
29
|
+
|
|
30
|
+
[build-system]
|
|
31
|
+
requires = ["hatchling"]
|
|
32
|
+
build-backend = "hatchling.build"
|
|
33
|
+
|
|
34
|
+
[tool.hatch.build.targets.wheel]
|
|
35
|
+
packages = ["src/claudemol"]
|
|
36
|
+
|
|
37
|
+
[tool.hatch.build.targets.sdist]
|
|
38
|
+
include = [
|
|
39
|
+
"src/claudemol/**/*.py",
|
|
40
|
+
"README.md",
|
|
41
|
+
"LICENSE",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[tool.pyright]
|
|
45
|
+
include = ["src/claudemol"]
|
|
46
|
+
venvPath = "."
|
|
47
|
+
venv = ".venv"
|
|
48
|
+
|
|
49
|
+
[tool.ruff.lint]
|
|
50
|
+
select = ["E", "F", "I"]
|
|
51
|
+
ignore = []
|
|
52
|
+
|
|
53
|
+
[tool.ruff]
|
|
54
|
+
line-length = 88
|
|
55
|
+
target-version = "py310"
|
|
56
|
+
|
|
57
|
+
[tool.uv]
|
|
58
|
+
dev-dependencies = ["pyright>=1.1.379", "pytest>=8.3.3", "ruff>=0.6.9"]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""
|
|
2
|
+
claudemol: PyMOL integration for Claude Code
|
|
3
|
+
|
|
4
|
+
Connect to PyMOL via socket for AI-assisted molecular visualization.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from claudemol.connection import (
|
|
8
|
+
PyMOLConnection,
|
|
9
|
+
connect_or_launch,
|
|
10
|
+
launch_pymol,
|
|
11
|
+
find_pymol_command,
|
|
12
|
+
check_pymol_installed,
|
|
13
|
+
)
|
|
14
|
+
from claudemol.session import (
|
|
15
|
+
PyMOLSession,
|
|
16
|
+
get_session,
|
|
17
|
+
ensure_running,
|
|
18
|
+
stop_pymol,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
__version__ = "0.1.0"
|
|
22
|
+
__all__ = [
|
|
23
|
+
"PyMOLConnection",
|
|
24
|
+
"PyMOLSession",
|
|
25
|
+
"connect_or_launch",
|
|
26
|
+
"launch_pymol",
|
|
27
|
+
"find_pymol_command",
|
|
28
|
+
"check_pymol_installed",
|
|
29
|
+
"get_session",
|
|
30
|
+
"ensure_running",
|
|
31
|
+
"stop_pymol",
|
|
32
|
+
]
|