hbat 2.2.13.dev31__tar.gz → 2.2.14__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.
- {hbat-2.2.13.dev31 → hbat-2.2.14}/PKG-INFO +1 -1
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/parameters.rst +6 -61
- hbat-2.2.14/docs/source/pdbfixing.rst +172 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/_version.py +2 -2
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/parameter_panel.py +1 -1
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_molecular_validation.py +7 -2
- hbat-2.2.13.dev31/docs/source/pdbfixing.rst +0 -705
- {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/cleanup-prereleases.yml +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/joss-paper.yml +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/release.yml +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/test.yml +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/CITATION.cff +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/CODE_OF_CONDUCT.md +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/CONTRIBUTING.md +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/LICENSE +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/MANIFEST.in +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/Makefile +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/README.md +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/build_standalone.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/build_standalone_linux.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/build_standalone_windows.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/conda/meta.yaml +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/Makefile +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/requirements.txt +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/_static/custom.css +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/_static/light-theme.css +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/ccd_analyzer.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/constants_generator.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/generate_ccd_constants.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/cli/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/app.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/atomic_data.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/misc.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/parameters.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/pdb_constants.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/interactions.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/np_analyzer.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/np_vector.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/pdb_fixer.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/pdb_parser.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/structure.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/examples/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/gui/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/utilities/atom_utils.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/utilities/graphviz_utils.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/utilities/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/cli.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/conf.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/development.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/index.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/installation.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/license.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/logic.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/quickstart.rst +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/1bhl.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/1gai.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/1ubi.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/2izf.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4jsv.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4laz.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4ub7.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4x21.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/6rsa.pdb +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/drug_design_strict.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/high_resolution.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/low_resolution.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/membrane_proteins.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/nmr_structures.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/standard_resolution.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/strong_interactions_only.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/weak_interactions_permissive.hbat +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/ccd_analyzer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/constants_generator.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/generate_ccd_constants.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/cli/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/cli/main.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/app.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/atomic_data.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/misc.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/parameters.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/pdb_constants.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/residue_bonds.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/analysis.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/analyzer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/app_config.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/atom_classifier.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/interactions.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/np_analyzer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/np_vector.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/pdb_fixer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/pdb_parser.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/structure.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/chain_visualization.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/export_manager.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/graphviz_preferences_dialog.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/graphviz_renderer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/main_window.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/matplotlib_renderer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/results_panel.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/visualization_renderer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/utilities/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/utilities/atom_utils.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/utilities/graphviz_utils.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.egg-info/SOURCES.txt +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.icns +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.ico +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.png +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.svg +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat_cli.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat_gui.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/paper/paper.bib +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/paper/paper.md +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/pyproject.toml +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/pytest.ini +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/requirements-dev.txt +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/requirements.txt +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/setup.cfg +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/README.md +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/cli/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/cli/test_cli_main.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/cli/test_cli_output_formats.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/conftest.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_cli_workflows.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_complete_workflows.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_graphviz_workflows.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_gui_workflows.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/gui/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/gui/test_gui_components.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_analyzer_components.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_cli_integration.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_graphviz_renderer.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_pdb_parsing.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/performance/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/performance/test_ccd_performance.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/performance/test_performance_workflows.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/run_tests.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/__init__.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_cli_parsing.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_graphviz_utils.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_gui_components.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_interactions.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_parameters.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_scrollable_canvas.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_structures.py +0 -0
- {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_vector_math.py +0 -0
|
@@ -5,7 +5,7 @@ This document provides comprehensive explanations of all analysis parameters use
|
|
|
5
5
|
|
|
6
6
|
.. contents:: Table of Contents
|
|
7
7
|
:local:
|
|
8
|
-
:depth:
|
|
8
|
+
:depth: 1
|
|
9
9
|
|
|
10
10
|
Overview
|
|
11
11
|
--------
|
|
@@ -321,7 +321,7 @@ fix_pdb_enabled (Default: True)
|
|
|
321
321
|
- **Disable for**: Pre-processed structures, performance-critical workflows
|
|
322
322
|
- **Default disabled**: Preserves original analysis behavior
|
|
323
323
|
|
|
324
|
-
fix_pdb_method (Default: "
|
|
324
|
+
fix_pdb_method (Default: "pdbfixer")
|
|
325
325
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
326
326
|
|
|
327
327
|
**Definition**: Choose the method for structure fixing operations.
|
|
@@ -331,33 +331,7 @@ fix_pdb_method (Default: "openbabel")
|
|
|
331
331
|
- **"openbabel"**: Fast hydrogen addition, good for routine analysis
|
|
332
332
|
- **"pdbfixer"**: Comprehensive fixing with advanced capabilities
|
|
333
333
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
.. list-table::
|
|
337
|
-
:header-rows: 1
|
|
338
|
-
:widths: 25 35 40
|
|
339
|
-
|
|
340
|
-
* - Capability
|
|
341
|
-
- OpenBabel
|
|
342
|
-
- PDBFixer
|
|
343
|
-
* - Add hydrogens
|
|
344
|
-
- ✓ Fast and reliable
|
|
345
|
-
- ✓ pH-dependent protonation
|
|
346
|
-
* - Add heavy atoms
|
|
347
|
-
- ✗ Not supported
|
|
348
|
-
- ✓ Complete missing atoms
|
|
349
|
-
* - Convert residues
|
|
350
|
-
- ✗ Limited
|
|
351
|
-
- ✓ Comprehensive database
|
|
352
|
-
* - Remove heterogens
|
|
353
|
-
- ✗ Not supported
|
|
354
|
-
- ✓ Selective removal
|
|
355
|
-
* - Speed
|
|
356
|
-
- Very fast
|
|
357
|
-
- Moderate
|
|
358
|
-
* - Dependencies
|
|
359
|
-
- Lightweight
|
|
360
|
-
- Requires OpenMM
|
|
334
|
+
See :doc:`pdbfixing` for more details on each method.
|
|
361
335
|
|
|
362
336
|
fix_pdb_add_hydrogens (Default: True)
|
|
363
337
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
@@ -472,39 +446,10 @@ fix_pdb_keep_water (Default: True, PDBFixer only)
|
|
|
472
446
|
- **With water**: More comprehensive interaction networks, water-mediated bonds
|
|
473
447
|
- **Without water**: Direct protein interactions only, simplified patterns
|
|
474
448
|
|
|
475
|
-
Advanced PDB Fixing Parameters
|
|
476
|
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
477
|
-
|
|
478
|
-
pH Parameter (PDBFixer method)
|
|
479
|
-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
480
|
-
|
|
481
|
-
**Definition**: pH value for determining protonation states (default: 7.0).
|
|
482
|
-
|
|
483
|
-
**Affected residues**:
|
|
484
|
-
|
|
485
|
-
- **Histidine**: Protonation of ND1/NE2 based on pH
|
|
486
|
-
- **Aspartic acid**: Protonation state of carboxyl group
|
|
487
|
-
- **Glutamic acid**: Protonation state of carboxyl group
|
|
488
|
-
- **Lysine**: Amino group protonation
|
|
489
|
-
- **Arginine**: Guanidinium group state
|
|
490
|
-
- **Cysteine**: Potential disulfide bond formation
|
|
491
|
-
|
|
492
|
-
**pH ranges and effects**:
|
|
493
|
-
|
|
494
|
-
- **Low pH (< 4)**: More protonated states, positively charged
|
|
495
|
-
- **Physiological pH (7.0)**: Standard protonation patterns
|
|
496
|
-
- **High pH (> 10)**: More deprotonated states, negatively charged
|
|
497
|
-
|
|
498
|
-
**Setting guidelines**:
|
|
499
|
-
|
|
500
|
-
- **pH 7.0**: Standard for most protein analyses
|
|
501
|
-
- **pH 6.0**: Slightly acidic conditions (some enzymes)
|
|
502
|
-
- **pH 8.0**: Slightly basic conditions (alkaline phosphatases)
|
|
503
|
-
|
|
504
449
|
General Analysis Parameters
|
|
505
450
|
----------------------------
|
|
506
451
|
|
|
507
|
-
Covalent Bond Detection Factor (Default: 0.
|
|
452
|
+
Covalent Bond Detection Factor (Default: 0.6)
|
|
508
453
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
509
454
|
|
|
510
455
|
**Definition**: Multiplier applied to Van der Waals radii sum for covalent bond detection.
|
|
@@ -525,8 +470,8 @@ Covalent Bond Detection Factor (Default: 0.85)
|
|
|
525
470
|
|
|
526
471
|
**Typical values**:
|
|
527
472
|
|
|
528
|
-
- **0.
|
|
529
|
-
- **0.
|
|
473
|
+
- **0.55**: Strict covalent bond detection
|
|
474
|
+
- **0.60** (default): Standard bond detection based on typical covalent/VdW ratio
|
|
530
475
|
- **1.00**: Maximum permissive (uses full Van der Waals radii sum)
|
|
531
476
|
|
|
532
477
|
Analysis Mode
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
PDB Structure Fixing
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
This document provides details about HBAT's PDB fixing capabilities, which can automatically enhance protein structures by adding missing atoms, converting residues, and cleaning up structural issues.
|
|
5
|
+
|
|
6
|
+
.. contents:: Table of Contents
|
|
7
|
+
:local:
|
|
8
|
+
:depth: 1
|
|
9
|
+
|
|
10
|
+
Overview
|
|
11
|
+
--------
|
|
12
|
+
|
|
13
|
+
HBAT includes integrated PDB structure fixing capabilities that can significantly improve the quality of structural analysis by:
|
|
14
|
+
|
|
15
|
+
- Adding missing hydrogen atoms using OpenBabel or PDBFixer
|
|
16
|
+
- Adding missing heavy atoms using PDBFixer
|
|
17
|
+
- Converting non-standard residues to standard equivalents
|
|
18
|
+
- Removing unwanted heterogens while optionally keeping water molecules
|
|
19
|
+
- Improving structure quality for more accurate interaction analysis
|
|
20
|
+
|
|
21
|
+
These capabilities are particularly valuable when working with:
|
|
22
|
+
|
|
23
|
+
- Crystal structures missing hydrogen atoms
|
|
24
|
+
- Low-resolution structures with incomplete side chains
|
|
25
|
+
- NMR structures requiring standardization
|
|
26
|
+
- Structures containing non-standard amino acid residues
|
|
27
|
+
- Structures with unwanted ligands or contaminants
|
|
28
|
+
|
|
29
|
+
Why PDB Fixing is Important
|
|
30
|
+
---------------------------
|
|
31
|
+
|
|
32
|
+
Most PDB structures from X-ray crystallography lack hydrogen atoms because they are too small to be reliably determined at typical resolutions. Since hydrogen bonds are critical for:
|
|
33
|
+
|
|
34
|
+
- Protein stability: Secondary and tertiary structure maintenance
|
|
35
|
+
- Enzyme catalysis: Active site interactions and mechanism
|
|
36
|
+
- Protein-protein interactions: Interface stabilization
|
|
37
|
+
- Ligand binding: Drug-target interactions
|
|
38
|
+
|
|
39
|
+
Accurate hydrogen placement is essential for meaningful interaction analysis.
|
|
40
|
+
|
|
41
|
+
Supported Methods
|
|
42
|
+
-----------------
|
|
43
|
+
|
|
44
|
+
HBAT supports two powerful methods for structure enhancement: PDBFixer and OpenBabel.
|
|
45
|
+
|
|
46
|
+
.. list-table::
|
|
47
|
+
:header-rows: 1
|
|
48
|
+
:widths: 25 35 40
|
|
49
|
+
|
|
50
|
+
* - Capability
|
|
51
|
+
- OpenBabel
|
|
52
|
+
- PDBFixer
|
|
53
|
+
* - Add hydrogens
|
|
54
|
+
- ✓ Fast and reliable
|
|
55
|
+
- ✓ pH-dependent protonation
|
|
56
|
+
* - Add heavy atoms
|
|
57
|
+
- ✗ Not supported
|
|
58
|
+
- ✓ Complete missing atoms
|
|
59
|
+
* - Convert residues
|
|
60
|
+
- ✗ Limited
|
|
61
|
+
- ✓ Comprehensive database
|
|
62
|
+
* - Remove heterogens
|
|
63
|
+
- ✗ Not supported
|
|
64
|
+
- ✓ Selective removal
|
|
65
|
+
* - Speed
|
|
66
|
+
- Very fast
|
|
67
|
+
- Moderate
|
|
68
|
+
* - Dependencies
|
|
69
|
+
- Lightweight
|
|
70
|
+
- Requires OpenMM
|
|
71
|
+
* - Documentation
|
|
72
|
+
- `OpenBabel documentation <https://open-babel.readthedocs.io/en/latest/Command-line_tools/babel.html>`_
|
|
73
|
+
- `PDBFixer Documentation <https://htmlpreview.github.io/?https://github.com/abhishektiwari/pdbfixer-wheel/blob/master/Manual.html>`_
|
|
74
|
+
|
|
75
|
+
PDB Fixing Parameters
|
|
76
|
+
---------------------
|
|
77
|
+
|
|
78
|
+
HBAT provides comprehensive control over structure fixing through various parameters:
|
|
79
|
+
|
|
80
|
+
Core Parameters
|
|
81
|
+
~~~~~~~~~~~~~~~
|
|
82
|
+
|
|
83
|
+
.. list-table::
|
|
84
|
+
:header-rows: 1
|
|
85
|
+
:widths: 25 15 10 50
|
|
86
|
+
|
|
87
|
+
* - Parameter
|
|
88
|
+
- Default
|
|
89
|
+
- Type
|
|
90
|
+
- Description
|
|
91
|
+
* - ``fix_pdb_enabled``
|
|
92
|
+
- True
|
|
93
|
+
- Boolean
|
|
94
|
+
- Enable/disable PDB structure fixing
|
|
95
|
+
* - ``fix_pdb_method``
|
|
96
|
+
- "pdbfixer"
|
|
97
|
+
- String
|
|
98
|
+
- Method to use: "openbabel" or "pdbfixer"
|
|
99
|
+
* - ``fix_pdb_add_hydrogens``
|
|
100
|
+
- True
|
|
101
|
+
- Boolean
|
|
102
|
+
- Add missing hydrogen atoms
|
|
103
|
+
* - ``fix_pdb_add_heavy_atoms``
|
|
104
|
+
- False
|
|
105
|
+
- Boolean
|
|
106
|
+
- Add missing heavy atoms (PDBFixer only)
|
|
107
|
+
* - ``fix_pdb_replace_nonstandard``
|
|
108
|
+
- False
|
|
109
|
+
- Boolean
|
|
110
|
+
- Convert non-standard residues (PDBFixer only)
|
|
111
|
+
* - ``fix_pdb_remove_heterogens``
|
|
112
|
+
- False
|
|
113
|
+
- Boolean
|
|
114
|
+
- Remove unwanted heterogens (PDBFixer only)
|
|
115
|
+
* - ``fix_pdb_keep_water``
|
|
116
|
+
- True
|
|
117
|
+
- Boolean
|
|
118
|
+
- Keep water molecules when removing heterogens
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
.. image:: https://static.abhishek-tiwari.com/hbat/pdb-fixing-ui-v1.png
|
|
122
|
+
:width: 600px
|
|
123
|
+
:align: center
|
|
124
|
+
:alt: PDB Fixing Parameters in HBAT GUI
|
|
125
|
+
|
|
126
|
+
Advanced Parameters
|
|
127
|
+
~~~~~~~~~~~~~~~~~~~
|
|
128
|
+
|
|
129
|
+
For PDBFixer, additional options are available but there are not supported by HBAT yet.
|
|
130
|
+
|
|
131
|
+
.. list-table::
|
|
132
|
+
:header-rows: 1
|
|
133
|
+
:widths: 25 15 60
|
|
134
|
+
|
|
135
|
+
* - Parameter
|
|
136
|
+
- Default
|
|
137
|
+
- Description
|
|
138
|
+
* - ``pH``
|
|
139
|
+
- 7.0
|
|
140
|
+
- pH value for protonation state determination
|
|
141
|
+
* - ``model_residues``
|
|
142
|
+
- False
|
|
143
|
+
- Add missing residues to complete chains
|
|
144
|
+
* - ``keep_ids``
|
|
145
|
+
- True
|
|
146
|
+
- Preserve original atom numbering
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
References and Further Reading
|
|
150
|
+
------------------------------
|
|
151
|
+
|
|
152
|
+
OpenBabel
|
|
153
|
+
~~~~~~~~~
|
|
154
|
+
|
|
155
|
+
- O'Boyle, N.M. et al. "Open Babel: An open chemical toolbox" J. Cheminform. 3, 33 (2011)
|
|
156
|
+
- OpenBabel Documentation: http://openbabel.org/docs/
|
|
157
|
+
|
|
158
|
+
PDBFixer
|
|
159
|
+
~~~~~~~~
|
|
160
|
+
|
|
161
|
+
- Eastman, P. et al. "OpenMM 4: A Reusable, Extensible, Hardware Independent Library" J. Chem. Theory Comput. 9, 461-469 (2013)
|
|
162
|
+
- PDBFixer Documentation: https://github.com/openmm/pdbfixer
|
|
163
|
+
|
|
164
|
+
Structure Preparation
|
|
165
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
166
|
+
|
|
167
|
+
- Madhavi Sastry, G. et al. "Protein and ligand preparation: parameters, protocols, and influence on virtual screening enrichments" J. Comput. Aided Mol. Des. 27, 221-234 (2013)
|
|
168
|
+
- Shelley, J.C. et al. "A versatile approach for assigning partial charges and valence electron densities in proteins" J. Comput. Chem. 28, 1145-1152 (2007)
|
|
169
|
+
|
|
170
|
+
----
|
|
171
|
+
|
|
172
|
+
For questions about PDB fixing functionality or specific use cases, please refer to the HBAT documentation or open an issue on the GitHub repository.
|
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '2.2.
|
|
21
|
-
__version_tuple__ = version_tuple = (2, 2,
|
|
20
|
+
__version__ = version = '2.2.14'
|
|
21
|
+
__version_tuple__ = version_tuple = (2, 2, 14)
|
|
@@ -846,7 +846,7 @@ class ParameterPanel:
|
|
|
846
846
|
if "pdb_fixing" in params:
|
|
847
847
|
pdb_fix = params["pdb_fixing"]
|
|
848
848
|
self.fix_pdb_enabled.set(pdb_fix.get("enabled", False))
|
|
849
|
-
self.fix_pdb_method.set(pdb_fix.get("method", "
|
|
849
|
+
self.fix_pdb_method.set(pdb_fix.get("method", "pdbfixer"))
|
|
850
850
|
self.fix_pdb_add_hydrogens.set(pdb_fix.get("add_hydrogens", True))
|
|
851
851
|
self.fix_pdb_add_heavy_atoms.set(pdb_fix.get("add_heavy_atoms", False))
|
|
852
852
|
self.fix_pdb_replace_nonstandard.set(
|
|
@@ -176,7 +176,12 @@ class TestMolecularValidation:
|
|
|
176
176
|
|
|
177
177
|
def test_reference_structure_consistency(self, sample_pdb_file):
|
|
178
178
|
"""Test consistency of results for reference structure (6RSA)."""
|
|
179
|
-
|
|
179
|
+
from hbat.core.analysis import AnalysisParameters
|
|
180
|
+
|
|
181
|
+
# Create parameters with PDB fixing disabled for consistent results
|
|
182
|
+
params = AnalysisParameters(fix_pdb_enabled=False)
|
|
183
|
+
|
|
184
|
+
analyzer = MolecularInteractionAnalyzer(parameters=params)
|
|
180
185
|
|
|
181
186
|
# Run analysis twice to test consistency
|
|
182
187
|
success1 = analyzer.analyze_file(sample_pdb_file)
|
|
@@ -184,7 +189,7 @@ class TestMolecularValidation:
|
|
|
184
189
|
stats1 = analyzer.get_summary()
|
|
185
190
|
|
|
186
191
|
# Create new analyzer for second run
|
|
187
|
-
analyzer2 = MolecularInteractionAnalyzer()
|
|
192
|
+
analyzer2 = MolecularInteractionAnalyzer(parameters=params)
|
|
188
193
|
success2 = analyzer2.analyze_file(sample_pdb_file)
|
|
189
194
|
assert success2, "Second analysis should succeed"
|
|
190
195
|
stats2 = analyzer2.get_summary()
|