Zinc-22r
zinc-22r is the layer, started Dec 7, 2024, when we finally fixed the azide problem.
This problem was brought to our attention by several alert users. We are particularly grateful to Israel Cabezadevaca and Phong Lam of the Carlsson Lab in Uppsala who provided the fix that we are using.
Error description
The DB2 generation crashes when a dihedral angle is exactly 0 degrees (e.g., -C#N; alkyne: -C#C-). This happens because calculating a dihedral angle using four points involves division by zero, which leads to the error.
Phong has tested the online version available on tldr.docking.org, and the issue persists.
Sample Problematic Molecule
C=CCC(CNC(=O)C(C)N=[N+]=[N-])C(=O)Nc1cn(C)nc1C(N)=O ENA1620000289
Proposed Fix
In the ligand/strain/TL_Functions.py file, within the unit function, an additional condition can be added to handle cases where the denominator equals zero by introducing a small perturbation (e.g., 1e-10).
Original: def unit(a): # The argument should be a NumPy array with 1 axis return(a / sqrt(np.dot(a,a))) #Scales a by its norm Fixed: def unit(vector): """Normalize a vector.""" norm = np.linalg.norm(vector) if norm == 0: # Handle zero vector by adding a small perturbation return vector + 1e-10 return vector / norm
This modification should prevent the division-by-zero error and allow processing to continue without interruption.
Impact
This fix was applied to all tranches in /zinc-22r/. (the previous zinc-22r was consolidated into zinc-22p)
This fix will also be used for all tranches that have not yet begun to be built. Thus:
- zinc-22y starting with H25.
- zinc-22j H22 to H24
- zinc-22r all H??
This impacts not only azides (only about 1.5% of unbuilt ZINC-22) but also all molecules that occurred anywhere in the package of 50 molecules after an azide, thus perhaps 10% of ZINC.
We are very grateful to Israel and Phong.
/zinc-22r/ will start to be visible for download around Dec 15, 2024. As of this minute, we have built up to H13 and expect to get to H18 by Dec 15.