Skip to main content

A tool for membrane protein preparation and molecular dynamics analysis

Project description

GateWizard

PyPI version Python Documentation DOI License: MIT GitHub stars

A library and GUI application tool for membrane protein preparation and molecular dynamics analysis.

📖 Read the Documentation

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)

  1. Create a conda environment with scientific dependencies:

    conda create -n gatewizard -c conda-forge python sqlite ambertools=24 parmed=4.3.0 -y
    
  2. Activate the environment:

    conda activate gatewizard
    
  3. Install GateWizard from PyPI:

    pip install gatewizard
    

Alternative: Development Installation

For developers or to install from source:

  1. Clone the repository:

    git clone https://github.com/maurobedoya/gatewizard.git
    cd gatewizard
    
  2. Create environment from file:

    conda env create -f environment.yml
    conda activate gatewizard
    
  3. 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
  • RDKit ≥ 2023.3.1 - Ligand 2D structure visualization

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

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:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add/update tests
  5. Update documentation
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gatewizard-1.0.24.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gatewizard-1.0.24-py3-none-any.whl (2.9 MB view details)

Uploaded Python 3

File details

Details for the file gatewizard-1.0.24.tar.gz.

File metadata

  • Download URL: gatewizard-1.0.24.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gatewizard-1.0.24.tar.gz
Algorithm Hash digest
SHA256 eec5ab93b167d0fbdb183bc5e5705553eb6e44d923ee36f4feb1895b4e5fe3b3
MD5 fe40d2ddcad7212936c30230d030ad6f
BLAKE2b-256 dab7c9dcbffe2d15f86927734582d9bc447954c19d944b09981da5030dda02c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for gatewizard-1.0.24.tar.gz:

Publisher: publish-to-pypi.yml on maurobedoya/gatewizard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gatewizard-1.0.24-py3-none-any.whl.

File metadata

  • Download URL: gatewizard-1.0.24-py3-none-any.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gatewizard-1.0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 142647032d5bf7d106aa9ad24ad90196ea7ced3bdd3127db6cba8e5025adccb2
MD5 28e8100713bfc8323ad7b6bb27559813
BLAKE2b-256 989206264e8f4148f1ca364a2b8b558cdd49e8b31c7eb3d7ff628457e471013c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gatewizard-1.0.24-py3-none-any.whl:

Publisher: publish-to-pypi.yml on maurobedoya/gatewizard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page