Skip to content

Water bridge Example and interaction selection bug #13

@ali-zaeim

Description

@ali-zaeim

Hello,

I think an example and more documentation for waterbridge interactions would be very useful. Currently, my selections are
Selection1:protein
Selection2:protein or water
which captures water bridges but also many interactions with water molecules. If I run the analysis for everyframe this results in very big csv files, which are very hard to use(upwards of 20 GB in my case). also i believe there is a bug in interaction selection where if i dont select the aromatic interactions, the process stops after first chunk is analysed with this error.
"""
intermap u1_waterbridge.cfg

  101                                                                       
  000                                    1111       1111                    
                    1                    10000     10001                    
 1100  11000001   100000   10001  100000   0000   10001   1111    1111111   
 0000  000011000  000000 0001 1011000000  101001 101001  1111001 100011001  
  000   000  100   001  100000001 000     10 100101 000     1101  001  101  
  000   000  100   001  1001      000     00  0001  100  111  01  001  101  
 10001  000  0000  0000  0000000 10001   1001  01  10001 00110001 0011101   
 00001  000  00001 1000   10001  000001 111111    111111  1111111 00111     
                                                                  001       
                                                                 10011      
                                                                 11111      

2026-02-10 09:35 - INFO - Starting InterMap with the following static parameters:

Job name: u1_waterbridge
Topology: ~/data/simulations//gromacs/step7_production.tpr
Trajectory: ~/data/simulations/
/gromacs/step7_centered.xtc
String for selection # 1: protein
String for selection # 2: protein or water
Output directory: ~/data/analysis/intermap
Chunk size: 50
Number of processors: 8
Min prevalence: 0.0
Resolution: residue

2026-02-10 09:35 - INFO - Loading trajectory and selections. Using the following SMARTS patterns:

{'anions': '[-{1-},$(O=[C,S,P]-[O-])]',
'cations': '[+{1-},$([NX3&!$([NX3]-O)]-[C]=[NX3+])]',
'hb_acc': '[$([N&!$([NX3]-=[O,N,P,S])&!$([NX3]-[a])&!$([Nv4+1])&!$(N=C(-[C,N])-N)]),$([n+0&!X3&!$([n&r5]:[n+&r5])]),$([O&!$(OX2C=O)&!$(O(~a)~a)&!$(O=N-)&!$([O-]-N=O)]),$([o+0]),$([F&$(F-[# 6])&!$(F-[# 6][F,Cl,Br,I])])]',
'hb_don': '[$([O,S,# 7;+0]),$([Nv4+1]),$([n+]c[nH])]-[H]',
'hydroph': '[c,s,Br,I,S&H0&v2,$([C&R0;$(CH0=),$(CH1-[!# 1]),$([CH2](-[!# 1])-[!# 1])]),$([C;$(CH0(-[!# 1])-[!# 1]),$([CH1](-[!# 1])(-[!# 1])-[!# 1])]),$(C&D4!R(-[CH3])-[CH3]);!$([# 6]~[# 7,# 8,# 9]);+0]',
'metal_acc': '[O,# 7&!$([nX3])&!$([NX3]-
=[!# 6])&!$([NX3]-[a])&!$([NX4]),-{1-};!+{1-}]',
'metal_don': '[Ca,Cd,Co,Cu,Fe,Mg,Mn,Ni,Zn]',
'rings5': '[a;r5]1:[a;r5]:[a;r5]:[a;r5]:[a;r5]:1',
'rings6': '[a;r6]1:[a;r6]:[a;r6]:[a;r6]:[a;r6]:[a;r6]:1',
'water': ' [OH2]',
'xb_acc': '[# 7,# 8,P,S,Se,Te,a;!+{1-}]!# [*]',
'xb_don': '[# 6,# 7,Si,F,Cl,Br,I]-[Cl,Br,I,At]'}

2026-02-10 09:35 - WARNING - Element information not found in the topology. Using the atoms name to guess it.

2026-02-10 09:35 - INFO - Trajectory loaded in 2.34 s.
Number of frames to consider (start:last:stride): 10001 (0:10001:1)

/opt/anaconda3/envs/intermap/lib/python3.13/site-packages/MDAnalysis/converters/RDKit.py:500: UserWarning: No hydrogen atom found in the topology. Forcing to continue the conversion.
warnings.warn(

2026-02-10 09:35 - INFO - Residues converted to Rdkit format in 1.54 s

2026-02-10 09:35 - INFO - The following selected atoms were detected and classified:

Total number of atoms: 111407
Number of selected atoms: 80615
In Selection 1 (protein): 4874
In Selection 2 (protein or water): 80615
Hydrophobic: 555
Cations: 67
Anions: 32
Metal acceptors: 25648
Metal donors: 0
Hydrogen bond donors: 51009
Hydrogen bond hydrogens: 51009
Hydrogen bond acceptors: 25648
Halogen bond donors: 0
Halogens: 0
Halogen bond acceptors: 27666
Aromatic rings: 37
Water molecules: 75741

2026-02-10 09:35 - INFO - Interactions to compute & their cutoffs:
{'WaterBridge': {}}

2026-02-10 09:35 - INFO - Estimated base memory allocation for coordinates (64 MB) and interactions (2 MB) arrays.

Detecting Interactions: 0%|▍ | 1/200 [00:01<04:24, 1.33s/chunk]
Traceback (most recent call last):
File "/opt/anaconda3/envs/intermap/lib/python3.13/site-packages/numba/np/arrayobj.py", line 1661, in impl
raise ValueError(msg)
ValueError: cannot assign slice of shape (18496, 3) from input of shape (1500, 3)

The above exception was the direct cause of the following exception:

SystemError: <function _numba_unpickle at 0x1032177e0> returned a result with an exception set

The above exception was the direct cause of the following exception:

SystemError: <function _numba_unpickle at 0x1032177e0> returned a result with an exception set

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/opt/anaconda3/envs/intermap/bin/intermap", line 7, in
sys.exit(run())
~~~^^
File "/intermap/src/intermap/runner.py", line 43, in run
workflow(args)
~~~~~~~~^^^^^^
File "
/intermap/src/intermap/runner.py", line 151, in workflow
ijf_chunk, inters_chunk = runpar(
~~~~~~^
xyz_chunk, xyzs_aro, xyz_aro_idx, trees_others, trees_aro,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
s1_aro_idx, s2_aro_idx, cuts_others, selected_others, cuts_aro,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
selected_aro, overlap, atomic, resconv)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SystemError: CPUDispatcher(<function runpar at 0x11e535260>) returned a result with an exception set
"""

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions