Skip to content

Conversation

@yuyuan871111
Copy link
Collaborator

A new method for detecting hydrogen-bond (H-bond) interactions in ProLIF. Before this, calculating H-bond interactions with ProLIF required a complete topology, including both heavy atoms and explicit hydrogens (explicit H-bond method).

This new implicit H-bond method can help users more easily calculate the H-bond interactions for experimental and computational structures without additional protonation steps.

yuyuan871111 and others added 3 commits July 17, 2025 14:17
* protein_helper function

* add test data, fix type hint

* implcit hbond notebook update

* lite cif parser, aa templates

* update to fix comments on protein helper function

* first version of the protein helper function

* add comment and new explicit variable name

* Update prolif/protein_helper.py

Co-authored-by: Cédric Bouysset <[email protected]>

* Update prolif/protein_helper.py

Co-authored-by: Cédric Bouysset <[email protected]>

* update with comments, differentiate from pdbinf

* Move constants to constants, fix various issues

* add test functions

* add more test functions, fix type check

* fix bugs: check the number of res heavy atms

* add test functions and test data, add feature: using SMILES template in protein helper function

* add more tests for protein helper

* add more tests

* add more tests

* add more tests

* fix not coverd lines

* pass type check and update notebook

* Update prolif/io/protein_helper.py

Co-authored-by: Cédric Bouysset <[email protected]>

* Update tests/test_io.py

Co-authored-by: Cédric Bouysset <[email protected]>

* Update tests/test_io.py

Co-authored-by: Cédric Bouysset <[email protected]>

* update test_io.py

* inverse the role of protein helper function

* update function for using SMILES template

* fix tests to cover all lines

* update benzamidine test file

* Update tests/test_io.py

use contextlib

Co-authored-by: Cédric Bouysset <[email protected]>

* Update tests/test_io.py

Co-authored-by: Cédric Bouysset <[email protected]>

* not sure why pytest.raises is not working with mark.parameterize

* find bugs and all should be fixed

* update data path and remove redundant files

* update path in notebook

* update implicitHbond data readme.md

---------

Co-authored-by: Cédric Bouysset <[email protected]>
* implicit interactions draft
* prolif/interactions/interactions.py fixed with comments
* add hbond probability function
* Update prolif/interactions/interactions.py

Co-authored-by: Cédric Bouysset <[email protected]>

* interactions update

* Update prolif/interactions/interactions.py

Co-authored-by: Cédric Bouysset <[email protected]>

* Update prolif/interactions/interactions.py

Co-authored-by: Cédric Bouysset <[email protected]>

* update g and d in vina_hbond_potential

* merge two notebooks to one

* add atom angle checks

* first version of implicit hbond calculation with geometry check and vina hbond potential

* fix type hint, and include data for building

* data restructure

* fix path in notebook

* add tests and update SMARTS

* modify tests

* increase test coverage

* modified comments and refresh the online falling checks

* tests with include_water and ignore_geometry_checks flags

* add geometry test

* add more tests to cover

* prolif constant add HOH into resname converting map

* fix lint and type hint

* update test

* Update prolif/interactions/interactions.py

Co-authored-by: Cédric Bouysset <[email protected]>

* fixed with code review

* check non-water atom's geometry as well (in an interaction involving waters

* update notebooks and docs

* update notebooks

* udpate tests and notebooks

* update docs

* update docs

* update residue name for atoms in molecule

* update tutorials, try to fix the link

* update tutorials

* udpate parameters, with code review

* update test

* implicit H-bond tutorials done

* update tutorials

* add version, move vina hbond potential g and b as parameters

* adjust docs

* add important note in protein helper function

* Update prolif/io/protein_helper.py

Co-authored-by: Cédric Bouysset <[email protected]>

* move constants.py to io/constants.py, improve docs, change variables' names, remove vdwradii arguments in implicit H-bond

* udpate docs

* udpate docs

* remove acceptor angles from the parameters

---------

Co-authored-by: Cédric Bouysset <[email protected]>
Co-authored-by: Cédric Bouysset <[email protected]>
@yuyuan871111 yuyuan871111 self-assigned this Aug 26, 2025
@github-actions
Copy link

github-actions bot commented Aug 26, 2025

Type-checking report

Difference in type-hints coverage:

15a16,21
> │   ├── io
> │   │   ├── [x] __init__.py
> │   │   ├── [x] cif.py
> │   │   ├── [x] constants.py
> │   │   ├── [x] protein_helper.py
> │   │   └── [x] xml.py
43a50
>     ├── [x] test_constants.py
46a54
>     ├── [x] test_io.py
52c60
< Summary: 42/42 files have complete type hints (100.0%)
---
> Summary: 49/49 files have complete type hints (100.0%)
Overview
.
├── prolif
│   ├── [x] __init__.py
│   ├── [x] _version.py
│   ├── [x] datafiles.py
│   ├── [x] exceptions.py
│   ├── [x] fingerprint.py
│   ├── [x] ifp.py
│   ├── interactions
│   │   ├── [x] __init__.py
│   │   ├── [x] base.py
│   │   ├── [x] constants.py
│   │   ├── [x] interactions.py
│   │   ├── [x] utils.py
│   │   └── [x] water_bridge.py
│   ├── io
│   │   ├── [x] __init__.py
│   │   ├── [x] cif.py
│   │   ├── [x] constants.py
│   │   ├── [x] protein_helper.py
│   │   └── [x] xml.py
│   ├── [x] molecule.py
│   ├── [x] parallel.py
│   ├── [x] pickling.py
│   ├── plotting
│   │   ├── [x] __init__.py
│   │   ├── [x] barcode.py
│   │   ├── [x] complex3d.py
│   │   ├── network
│   │   │   ├── [x] __init__.py
│   │   │   └── [x] lignetwork.py
│   │   ├── [x] residues.py
│   │   └── [x] utils.py
│   ├── [x] rdkitmol.py
│   ├── [x] residue.py
│   ├── [x] typeshed.py
│   └── [x] utils.py
├── scripts
│   ├── [x] check_types.py
│   └── [x] test_build.py
└── tests
    ├── [x] __init__.py
    ├── [x] conftest.py
    ├── plotting
    │   ├── [x] __init__.py
    │   ├── [x] test_barcode.py
    │   ├── [x] test_complex3d.py
    │   ├── [x] test_network.py
    │   └── [x] test_residues.py
    ├── [x] test_constants.py
    ├── [x] test_fingerprint.py
    ├── [x] test_ifp.py
    ├── [x] test_interactions.py
    ├── [x] test_io.py
    ├── [x] test_molecule.py
    ├── [x] test_pickling.py
    ├── [x] test_residues.py
    └── [x] test_utils.py

Summary: 49/49 files have complete type hints (100.0%)
Remaining errors
Poe => mypy .
Success: no issues found in 50 source files

@codecov
Copy link

codecov bot commented Aug 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.97%. Comparing base (185460c) to head (028ce6f).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #302      +/-   ##
==========================================
+ Coverage   95.10%   95.97%   +0.87%     
==========================================
  Files          23       27       +4     
  Lines        1878     2287     +409     
==========================================
+ Hits         1786     2195     +409     
  Misses         92       92              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@yuyuan871111 yuyuan871111 marked this pull request as ready for review August 27, 2025 10:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants