GateWizard (API)
Python library for membrane protein preparation, system building, equilibration setup, and MD trajectory analysis.
This repository is the API only. It does not include a graphical interface.
If you want a desktop app, use gatewizard-gui, a separate project that calls this library. You can use the API without the GUI, and the GUI without cloning this repo (it installs the API via pip).
📖 Documentation · 💬 Discussions (API + GUI community forum)
Features
- Preparation — clean structures, pKa (PROPKA), protonation, and termini capping
- Membrane builder — orient protein, pack lipids and solvent, Amber parametrization (tleap)
- Equilibration — CHARMM-GUI-style protocols for NAMD, GROMACS, and OpenMM (NVT, NPT, NPAT, NPγT)
- Analysis — trajectory metrics, structural analysis, and plotting helpers
- Force fields — Amber protein models (e.g. ff14SB, ff19SB) and common water/lipid setups
Install
conda create -n gatewizard -c conda-forge python sqlite ambertools=24 parmed=4.3.0 openmm cudatoolkit -y
conda activate gatewizard
pip install "gatewizard[full]"
pip install -r requirements-orientation.txt
MemPrO is installed from the MemPrO GitHub release (v0.1.0).
For optional extras without OpenMM (NAMD/GROMACS only):
pip install gatewizard
From source (includes openmm + cudatoolkit via conda):
git clone https://github.com/maurobedoya/gatewizard.git
cd gatewizard
conda env create -f environment.yml
conda activate gatewizard
pip install -e .
Check the version:
python -c "import gatewizard; print(gatewizard.__version__)"
Dependencies
GateWizard is split across two repositories (API + GUI). Below is the full dependency stack; subsections mark what this repo installs automatically.
Python — core (pip install gatewizard) · this repo
Installed automatically:
| Package | Role |
|---|---|
| Python ≥ 3.8 | Runtime |
| NumPy | Numerical arrays |
| Matplotlib | Plots and analysis figures |
| MDAnalysis | Trajectories and topologies |
| lipyphilic | Membrane / lipid analysis |
| PROPKA | pKa and protonation |
| RDKit | Ligand 2D structures |
| Pillow | Image I/O |
| psique | Structure / sequence tools |
| requests | HTTP helpers |
Python — optional [full] · this repo
| Package | Role |
|---|---|
| ParmEd | Topology conversion (GROMACS, etc.) |
| OpenMM | Equilibration / MD (Python; use with conda cudatoolkit for GPU) |
| MemPrO | Membrane orientation (GitHub) |
Install: pip install "gatewizard[full]" then pip install -r requirements-orientation.txt for MemPrO.
Python — GUI backend · gatewizard-gui
| Package | Role |
|---|---|
| FastAPI | Local HTTP API for the desktop app |
| Uvicorn | ASGI server |
| gatewizard[full] | This API (installed into the embedded runtime) |
Conda (building + OpenMM GPU) · this repo via environment.yml; GUI embeds on Linux/WSL/macOS
| Package | Role |
|---|---|
| AmberTools 24 | tleap, antechamber, packmol, pdb4amber, … |
| ParmEd 4.3.0 | From conda-forge (AmberTools-compatible) |
| OpenMM ≥ 8.0 | MD engine (Python) |
| cudatoolkit | OpenMM CUDA platform (Linux/WSL + NVIDIA driver) |
Desktop app · gatewizard-gui
| Package | Role |
|---|---|
| Electron | Desktop shell |
| Node.js 20+ | App and build runtime |
| Svelte 5 | UI framework |
| Vite | Frontend bundler |
| Tailwind CSS | Styling |
| Three.js + Threlte | 3D structure viewer |
| electron-updater | In-app update checks |
External MD engines (install separately · neither repo)
| Tool | Role |
|---|---|
| NAMD | Run NAMD equilibration — namd3 / namd2 on PATH |
| GROMACS | Run GROMACS equilibration — gmx on PATH (prefer conda-forge CPU gromacs; CUDA conda builds often hang next to OpenMM — see Installation) |
OpenMM needs no separate binary — use openmm + cudatoolkit (conda) with gatewizard[full]. Auto-selects CUDA → OpenCL → CPU; override with PLATFORM=CUDA bash run_equilibration.sh.
python -c "import openmm; print([openmm.Platform.getPlatform(i).getName() for i in range(openmm.Platform.getNumPlatforms())])"
Provided by this repository
| Component | Included |
|---|---|
gatewizard Python package (core + [full] extras) |
yes |
environment.yml (AmberTools, OpenMM, cudatoolkit, …) |
yes |
| Desktop app (Electron, Svelte, viewer) | no — gatewizard-gui |
| FastAPI backend | no — GUI repo |
| NAMD / GROMACS binaries | no — user install |
Desktop GUI
gatewizard-gui — Electron app for the same workflow with a visual interface. It manages its own Python runtime and can update the API from the app. First-launch bootstrap installs CPU GROMACS by default (CUDA GROMACS is opt-in); details in Installation → Desktop GUI runtime.
Community and support
| Need | Where |
|---|---|
| Questions, workflows, methodology | Discussions — central forum for API and GUI (use labels like api, gui, api:installation, gui:installation) |
| API bug or feature | Issues in this repo |
| GUI bug or feature | Issues in gatewizard-gui |
| Docs and troubleshooting | Documentation |
New to the project? Read the welcome post and say hello in the comments.
Metadata
Release files for gatewizard 1.0.53
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gatewizard-1.0.53.tar.gz | 456.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gatewizard-1.0.53-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / gatewizard-1.0.53.tar.gz
| Download URL | gatewizard-1.0.53.tar.gz |
|---|---|
| Size | 456.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eae1fd3b5021f25ccf5b7f48cfae045ba591bc123b0510c857189a182e1b7f02
|
|
BLAKE2b-256 checksum How to use checksums |
1cca36c058bcab36eb3178f50faf017d65be04643c8b7b51b26e387cab503b59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / gatewizard-1.0.53-py3-none-any.whl
| Download URL | gatewizard-1.0.53-py3-none-any.whl |
|---|---|
| Size | 680.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2e37d76a262481cdac438ef01df4ab026716fadf9e5b46579f8f3b2f3e62dcb
|
|
BLAKE2b-256 checksum How to use checksums |
14bca4b88aa873551f48a4f8307b88ebffb4ee7e2411fcf4e82d361a537054b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|