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.
Files changed (157) hide show
  1. {hbat-2.2.13.dev31 → hbat-2.2.14}/PKG-INFO +1 -1
  2. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/parameters.rst +6 -61
  3. hbat-2.2.14/docs/source/pdbfixing.rst +172 -0
  4. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/_version.py +2 -2
  5. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/parameter_panel.py +1 -1
  6. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_molecular_validation.py +7 -2
  7. hbat-2.2.13.dev31/docs/source/pdbfixing.rst +0 -705
  8. {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/cleanup-prereleases.yml +0 -0
  9. {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/joss-paper.yml +0 -0
  10. {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/release.yml +0 -0
  11. {hbat-2.2.13.dev31 → hbat-2.2.14}/.github/workflows/test.yml +0 -0
  12. {hbat-2.2.13.dev31 → hbat-2.2.14}/CITATION.cff +0 -0
  13. {hbat-2.2.13.dev31 → hbat-2.2.14}/CODE_OF_CONDUCT.md +0 -0
  14. {hbat-2.2.13.dev31 → hbat-2.2.14}/CONTRIBUTING.md +0 -0
  15. {hbat-2.2.13.dev31 → hbat-2.2.14}/LICENSE +0 -0
  16. {hbat-2.2.13.dev31 → hbat-2.2.14}/MANIFEST.in +0 -0
  17. {hbat-2.2.13.dev31 → hbat-2.2.14}/Makefile +0 -0
  18. {hbat-2.2.13.dev31 → hbat-2.2.14}/README.md +0 -0
  19. {hbat-2.2.13.dev31 → hbat-2.2.14}/build_standalone.py +0 -0
  20. {hbat-2.2.13.dev31 → hbat-2.2.14}/build_standalone_linux.py +0 -0
  21. {hbat-2.2.13.dev31 → hbat-2.2.14}/build_standalone_windows.py +0 -0
  22. {hbat-2.2.13.dev31 → hbat-2.2.14}/conda/meta.yaml +0 -0
  23. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/Makefile +0 -0
  24. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/requirements.txt +0 -0
  25. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/_static/custom.css +0 -0
  26. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/_static/light-theme.css +0 -0
  27. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/ccd_analyzer.rst +0 -0
  28. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/constants_generator.rst +0 -0
  29. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/generate_ccd_constants.rst +0 -0
  30. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/ccd/index.rst +0 -0
  31. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/cli/index.rst +0 -0
  32. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/app.rst +0 -0
  33. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/atomic_data.rst +0 -0
  34. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/index.rst +0 -0
  35. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/misc.rst +0 -0
  36. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/parameters.rst +0 -0
  37. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/constants/pdb_constants.rst +0 -0
  38. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/index.rst +0 -0
  39. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/interactions.rst +0 -0
  40. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/np_analyzer.rst +0 -0
  41. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/np_vector.rst +0 -0
  42. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/pdb_fixer.rst +0 -0
  43. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/pdb_parser.rst +0 -0
  44. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/core/structure.rst +0 -0
  45. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/examples/index.rst +0 -0
  46. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/gui/index.rst +0 -0
  47. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/index.rst +0 -0
  48. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/utilities/atom_utils.rst +0 -0
  49. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/utilities/graphviz_utils.rst +0 -0
  50. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/api/utilities/index.rst +0 -0
  51. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/cli.rst +0 -0
  52. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/conf.py +0 -0
  53. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/development.rst +0 -0
  54. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/index.rst +0 -0
  55. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/installation.rst +0 -0
  56. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/license.rst +0 -0
  57. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/logic.rst +0 -0
  58. {hbat-2.2.13.dev31 → hbat-2.2.14}/docs/source/quickstart.rst +0 -0
  59. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/1bhl.pdb +0 -0
  60. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/1gai.pdb +0 -0
  61. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/1ubi.pdb +0 -0
  62. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/2izf.pdb +0 -0
  63. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4jsv.pdb +0 -0
  64. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4laz.pdb +0 -0
  65. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4ub7.pdb +0 -0
  66. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/4x21.pdb +0 -0
  67. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_pdb_files/6rsa.pdb +0 -0
  68. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/drug_design_strict.hbat +0 -0
  69. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/high_resolution.hbat +0 -0
  70. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/low_resolution.hbat +0 -0
  71. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/membrane_proteins.hbat +0 -0
  72. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/nmr_structures.hbat +0 -0
  73. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/standard_resolution.hbat +0 -0
  74. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/strong_interactions_only.hbat +0 -0
  75. {hbat-2.2.13.dev31 → hbat-2.2.14}/example_presets/weak_interactions_permissive.hbat +0 -0
  76. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/__init__.py +0 -0
  77. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/__init__.py +0 -0
  78. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/ccd_analyzer.py +0 -0
  79. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/constants_generator.py +0 -0
  80. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/ccd/generate_ccd_constants.py +0 -0
  81. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/cli/__init__.py +0 -0
  82. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/cli/main.py +0 -0
  83. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/__init__.py +0 -0
  84. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/app.py +0 -0
  85. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/atomic_data.py +0 -0
  86. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/misc.py +0 -0
  87. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/parameters.py +0 -0
  88. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/pdb_constants.py +0 -0
  89. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/constants/residue_bonds.py +0 -0
  90. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/__init__.py +0 -0
  91. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/analysis.py +0 -0
  92. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/analyzer.py +0 -0
  93. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/app_config.py +0 -0
  94. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/atom_classifier.py +0 -0
  95. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/interactions.py +0 -0
  96. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/np_analyzer.py +0 -0
  97. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/np_vector.py +0 -0
  98. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/pdb_fixer.py +0 -0
  99. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/pdb_parser.py +0 -0
  100. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/core/structure.py +0 -0
  101. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/__init__.py +0 -0
  102. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/chain_visualization.py +0 -0
  103. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/export_manager.py +0 -0
  104. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/graphviz_preferences_dialog.py +0 -0
  105. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/graphviz_renderer.py +0 -0
  106. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/main_window.py +0 -0
  107. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/matplotlib_renderer.py +0 -0
  108. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/results_panel.py +0 -0
  109. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/gui/visualization_renderer.py +0 -0
  110. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/utilities/__init__.py +0 -0
  111. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/utilities/atom_utils.py +0 -0
  112. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat/utilities/graphviz_utils.py +0 -0
  113. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.egg-info/SOURCES.txt +0 -0
  114. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.icns +0 -0
  115. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.ico +0 -0
  116. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.png +0 -0
  117. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat.svg +0 -0
  118. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat_cli.py +0 -0
  119. {hbat-2.2.13.dev31 → hbat-2.2.14}/hbat_gui.py +0 -0
  120. {hbat-2.2.13.dev31 → hbat-2.2.14}/paper/paper.bib +0 -0
  121. {hbat-2.2.13.dev31 → hbat-2.2.14}/paper/paper.md +0 -0
  122. {hbat-2.2.13.dev31 → hbat-2.2.14}/pyproject.toml +0 -0
  123. {hbat-2.2.13.dev31 → hbat-2.2.14}/pytest.ini +0 -0
  124. {hbat-2.2.13.dev31 → hbat-2.2.14}/requirements-dev.txt +0 -0
  125. {hbat-2.2.13.dev31 → hbat-2.2.14}/requirements.txt +0 -0
  126. {hbat-2.2.13.dev31 → hbat-2.2.14}/setup.cfg +0 -0
  127. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/README.md +0 -0
  128. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/__init__.py +0 -0
  129. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/cli/__init__.py +0 -0
  130. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/cli/test_cli_main.py +0 -0
  131. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/cli/test_cli_output_formats.py +0 -0
  132. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/conftest.py +0 -0
  133. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/__init__.py +0 -0
  134. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_cli_workflows.py +0 -0
  135. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_complete_workflows.py +0 -0
  136. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_graphviz_workflows.py +0 -0
  137. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/e2e/test_gui_workflows.py +0 -0
  138. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/gui/__init__.py +0 -0
  139. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/gui/test_gui_components.py +0 -0
  140. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/__init__.py +0 -0
  141. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_analyzer_components.py +0 -0
  142. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_cli_integration.py +0 -0
  143. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_graphviz_renderer.py +0 -0
  144. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/integration/test_pdb_parsing.py +0 -0
  145. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/performance/__init__.py +0 -0
  146. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/performance/test_ccd_performance.py +0 -0
  147. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/performance/test_performance_workflows.py +0 -0
  148. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/run_tests.py +0 -0
  149. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/__init__.py +0 -0
  150. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_cli_parsing.py +0 -0
  151. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_graphviz_utils.py +0 -0
  152. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_gui_components.py +0 -0
  153. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_interactions.py +0 -0
  154. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_parameters.py +0 -0
  155. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_scrollable_canvas.py +0 -0
  156. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_structures.py +0 -0
  157. {hbat-2.2.13.dev31 → hbat-2.2.14}/tests/unit/test_vector_math.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hbat
3
- Version: 2.2.13.dev31
3
+ Version: 2.2.14
4
4
  Summary: Hydrogen Bond Analysis Tool for PDB structures
5
5
  Author-email: Abhishek Tiwari <hbat@abhishek-tiwari.com>
6
6
  License-Expression: MIT
@@ -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: 2
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: "openbabel")
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
- **Method comparison**:
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.85)
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.70**: Very strict covalent bond detection
529
- - **0.85** (default): Standard bond detection based on typical covalent/VdW ratio
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.13.dev31'
21
- __version_tuple__ = version_tuple = (2, 2, 13, 'dev31')
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", "openbabel"))
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
- analyzer = MolecularInteractionAnalyzer()
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()