A tool for membrane protein preparation and molecular dynamics analysis
Project description
GateWizard
A library and GUI application tool for membrane protein preparation and molecular dynamics analysis.
Features
- Protein Structure Preparation: Clean PDB files, add missing atoms, and optimize structures
- Propka Integration: pKa calculations with automatic protonation state assignment
- Protein Capping: Add ACE/NME caps to protein termini before analysis
- Force Field Support: Compatible with Amber force fields (ff14SB, ff19SB, etc.)
- Membrane System Building: Automated membrane protein insertion and equilibration
- Modern GUI: Built with CustomTkinter for an intuitive user experience
Installation
Quick Installation from PyPI (Recommended)
-
Create a conda environment with scientific dependencies:
conda create -n gatewizard -c conda-forge python sqlite ambertools=24 parmed=4.3.0 -y
-
Activate the environment:
conda activate gatewizard
-
Install GateWizard from PyPI:
pip install gatewizard
Alternative: Development Installation
For developers or to install from source:
-
Clone the repository:
git clone https://github.com/maurobedoya/gatewizard.git cd gatewizard
-
Create environment from file:
conda env create -f environment.yml conda activate gatewizard
-
Install in development mode:
pip install -e .
Dependencies
Core Dependencies (Automatically Installed)
- Python ≥ 3.8
- CustomTkinter ≥ 5.0.0 - Modern GUI framework
- NumPy ≥ 1.21.0 - Numerical computing
- Matplotlib ≥ 3.5.0 - Plotting and visualization
- MDAnalysis ≥ 2.0.0 - Molecular analysis toolkit
- Propka ≥ 3.2.0 - pKa calculations
- BioPython - PDB file handling
Scientific Computing Dependencies (Via Conda)
- AmberTools 24 - Molecular dynamics preparation and analysis
- Parmed 4.3.0 - Parameter/topology file manipulation (must be from conda-forge for compatibility)
External Requirements
- NAMD 3.0.1 - Required for molecular dynamics simulations and equilibration
- Download from: NAMD Official Website
- Must be installed separately and accessible in your system PATH
Usage
Launch the GUI
gatewizard
Command Line Options
gatewizard --help # Show all options
gatewizard --screen 1 # Launch on secondary monitor
gatewizard --debug # Enable debug logging
gatewizard --version # Show version
Upgrading
To upgrade to the latest version:
# Activate your environment
conda activate gatewizard
# Upgrade GateWizard
pip install --upgrade gatewizard
To check your current version:
gatewizard --version
Troubleshooting
Common Issues
ImportError with numpy.compat: This indicates a version conflict between NumPy and Parmed. Make sure to install Parmed via conda-forge as shown in the installation instructions.
pdb4amber command not found: Ensure AmberTools is installed via conda-forge and the gatewizard environment is activated.
GUI not launching:
Check that CustomTkinter is properly installed. Try reinstalling with pip install --force-reinstall customtkinter.
Development
Setting up for Development
# Clone the repository
git clone https://github.com/maurobedoya/gatewizard.git
cd gatewizard
# Create and activate environment
conda env create -f environment.yml
conda activate gatewizard
# Install in development mode
pip install -e .
Project Structure
gatewizard/
├── gatewizard/ # Main source code
│ ├── gui/ # GUI components
│ ├── analysis/ # Analysis modules
│ └── ...
├── docs/ # Documentation (GitHub Pages)
├── tests/ # Test suite
├── environment.yml # Conda environment
├── pyproject.toml # Project configuration
└── README.md # This file
Running Tests
All tests are in the tests/ directory. See tests/README.md for detailed testing documentation.
# Run all tests
python -m pytest tests/
# Run with verbose output
python -m pytest tests/ -v
# Run specific test file
python -m pytest tests/test_propka_improvements.py
# Run with coverage
python -m pytest tests/ --cov=gatewizard --cov-report=html
Documentation
Documentation is built with MkDocs and hosted on GitHub Pages.
# Install MkDocs
pip install mkdocs mkdocs-material
# Serve documentation locally
mkdocs serve
# Build documentation
mkdocs build
# Deploy to GitHub Pages
mkdocs gh-deploy
View documentation at: http://localhost:8000 (when serving locally)
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add/update tests
- Update documentation
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Code Style
- Follow PEP 8 guidelines
- Add docstrings to functions and classes
- Include type hints where appropriate
- Write tests for new features
License
GateWizard is licensed under the MIT License.
Copyright (c) 2025 Constanza González and Mauricio Bedoya
Authors
- Constanza González
- Mauricio Bedoya
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gatewizard-1.0.15.tar.gz.
File metadata
- Download URL: gatewizard-1.0.15.tar.gz
- Upload date:
- Size: 308.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e201c44708f3a564a95e53c986d95346fe075482ac4ec6f6fc85af1564a8abf2
|
|
| MD5 |
23be2bfebc0285f1d2dea7ec0b2816ec
|
|
| BLAKE2b-256 |
89cc453b497750d232e280244cb01525bcd6f01e9c774ed4b271c9908b2be181
|
Provenance
The following attestation bundles were made for gatewizard-1.0.15.tar.gz:
Publisher:
publish-to-pypi.yml on maurobedoya/gatewizard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gatewizard-1.0.15.tar.gz -
Subject digest:
e201c44708f3a564a95e53c986d95346fe075482ac4ec6f6fc85af1564a8abf2 - Sigstore transparency entry: 842933613
- Sigstore integration time:
-
Permalink:
maurobedoya/gatewizard@6dd7b8c053692f9778e550f55cda19f26fdcfeee -
Branch / Tag:
refs/tags/v1.0.15 - Owner: https://github.com/maurobedoya
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@6dd7b8c053692f9778e550f55cda19f26fdcfeee -
Trigger Event:
push
-
Statement type:
File details
Details for the file gatewizard-1.0.15-py3-none-any.whl.
File metadata
- Download URL: gatewizard-1.0.15-py3-none-any.whl
- Upload date:
- Size: 355.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21635348e6baebf00c7a590466248f90a2a0daf095e5b25da7a8db2f023ce083
|
|
| MD5 |
d3459f11dc2c2c17d0b8e3fdaba5add3
|
|
| BLAKE2b-256 |
c3320f1c7e947e8e04cc1dc0b4caa79fed17ec57cd2a7b6dc3c937081e0e2164
|
Provenance
The following attestation bundles were made for gatewizard-1.0.15-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on maurobedoya/gatewizard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gatewizard-1.0.15-py3-none-any.whl -
Subject digest:
21635348e6baebf00c7a590466248f90a2a0daf095e5b25da7a8db2f023ce083 - Sigstore transparency entry: 842933624
- Sigstore integration time:
-
Permalink:
maurobedoya/gatewizard@6dd7b8c053692f9778e550f55cda19f26fdcfeee -
Branch / Tag:
refs/tags/v1.0.15 - Owner: https://github.com/maurobedoya
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@6dd7b8c053692f9778e550f55cda19f26fdcfeee -
Trigger Event:
push
-
Statement type: