[biopolymer] iCodes not being handled properly
See original GitHub issueDescribe the bug
Passing a PDB with residues with insertion codes such as what is demonstrated below leads to a squashed residue rather than two individual ones:
ATOM 2601 N ASN A 162 40.670 10.730 37.730 1.00 0.00 N
ATOM 2602 H ASN A 162 39.900 11.120 37.210 1.00 0.00 H
ATOM 2603 CA ASN A 162 41.770 10.100 37.120 1.00 0.00 C
ATOM 2604 HA ASN A 162 42.370 9.560 37.850 1.00 0.00 H
ATOM 2605 CB ASN A 162 41.320 9.150 36.020 1.00 0.00 C
ATOM 2606 HB2 ASN A 162 40.530 9.640 35.460 1.00 0.00 H
ATOM 2607 HB3 ASN A 162 42.210 8.900 35.450 1.00 0.00 H
ATOM 2608 CG ASN A 162 40.690 7.870 36.740 1.00 0.00 C
ATOM 2609 OD1 ASN A 162 39.540 7.890 37.200 1.00 0.00 O
ATOM 2610 ND2 ASN A 162 41.480 6.830 37.000 1.00 0.00 N
ATOM 2611 HD21 ASN A 162 41.080 6.200 37.690 1.00 0.00 H
ATOM 2612 HD22 ASN A 162 42.470 6.870 36.820 1.00 0.00 H
ATOM 2613 C ASN A 162 42.670 11.260 36.640 1.00 0.00 C
ATOM 2614 O ASN A 162 42.910 11.420 35.410 1.00 0.00 O
ATOM 2615 N ASN A 162B 41.670 10.730 37.730 1.00 0.00 N
ATOM 2616 H ASN A 162B 40.900 11.120 37.210 1.00 0.00 H
ATOM 2617 CA ASN A 162B 42.770 10.100 37.120 1.00 0.00 C
ATOM 2618 HA ASN A 162B 43.370 9.560 37.850 1.00 0.00 H
ATOM 2619 CB ASN A 162B 42.320 9.150 36.020 1.00 0.00 C
ATOM 2620 HB2 ASN A 162B 41.530 9.640 35.460 1.00 0.00 H
ATOM 2621 HB3 ASN A 162B 43.210 8.900 35.450 1.00 0.00 H
ATOM 2622 CG ASN A 162B 41.690 7.870 36.740 1.00 0.00 C
ATOM 2623 OD1 ASN A 162B 40.540 7.890 37.200 1.00 0.00 O
ATOM 2624 ND2 ASN A 162B 42.480 6.830 37.000 1.00 0.00 N
ATOM 2625 HD21 ASN A 162B 42.080 6.200 37.690 1.00 0.00 H
ATOM 2626 HD22 ASN A 162B 43.470 6.870 36.820 1.00 0.00 H
ATOM 2627 C ASN A 162B 43.670 11.260 36.640 1.00 0.00 C
ATOM 2628 O ASN A 162B 43.910 11.420 35.410 1.00 0.00 O
What hasn’t been tested:
- Insertion codes but with different residues (i.e. if you had
ASN 162
andALA 162B
)
To Reproduce
Loading the following PDB file on the biopolymer branch (tested on a clone made on the 21st June 2022) and looking at residue 162. T4-protein-icode.pdb.zip
from openff.toolkit import Molecule, Topology
protein = Molecule.from_polymer_pdb('T4-protein-icode.pdb')
protein.residues[-2].to_dict()
Output
We get twice the number of ASN atoms (i.e. the two ASN residues squashed together):
{'identifier': ('A', '162', 'ASN'),
'atom_indices': [2600,
2601,
2602,
2603,
2604,
2605,
2606,
2607,
2608,
2609,
2610,
2611,
2612,
2613,
2614,
2615,
2616,
2617,
2618,
2619,
2620,
2621,
2622,
2623,
2624,
2625,
2626,
2627]}
Computing environment (please complete the following information):
- Operating system: ubuntu 20.04 LTS
- Output of running
conda list
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
amberlite 22.0 pypi_0 pypi
ambertools 22.0 py38h6177452_1 conda-forge
amberutils 21.0 pypi_0 pypi
arpack 3.7.0 hdefa2d7_2 conda-forge
asttokens 2.0.5 pyhd8ed1ab_0 conda-forge
astunparse 1.6.3 pyhd8ed1ab_0 conda-forge
backcall 0.2.0 pyh9f0ad1d_0 conda-forge
backports 1.0 py_2 conda-forge
backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge
blosc 1.21.1 h83bc5f7_3 conda-forge
boost 1.74.0 py38h2b96118_5 conda-forge
boost-cpp 1.74.0 h75c5d50_8 conda-forge
brotli 1.0.9 h166bdaf_7 conda-forge
brotli-bin 1.0.9 h166bdaf_7 conda-forge
bzip2 1.0.8 h7f98852_4 conda-forge
c-ares 1.18.1 h7f98852_0 conda-forge
ca-certificates 2022.6.15 ha878542_0 conda-forge
cachetools 5.2.0 pypi_0 pypi
cairo 1.16.0 ha61ee94_1011 conda-forge
certifi 2022.6.15 py38h578d9bd_0 conda-forge
cudatoolkit 11.7.0 hd8887f6_10 conda-forge
curl 7.83.1 h7bff187_0 conda-forge
cycler 0.11.0 pyhd8ed1ab_0 conda-forge
cython 0.29.30 py38hfa26641_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
executing 0.8.3 pyhd8ed1ab_0 conda-forge
expat 2.4.8 h27087fc_0 conda-forge
fftw 3.3.10 nompi_h77c792f_102 conda-forge
font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge
font-ttf-inconsolata 3.000 h77eed37_0 conda-forge
font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge
font-ttf-ubuntu 0.83 hab24e00_0 conda-forge
fontconfig 2.14.0 h8e229c2_0 conda-forge
fonts-conda-ecosystem 1 0 conda-forge
fonts-conda-forge 1 0 conda-forge
fonttools 4.33.3 py38h0a891b7_0 conda-forge
freetype 2.10.4 h0708190_1 conda-forge
gettext 0.19.8.1 h73d1719_1008 conda-forge
giflib 5.2.1 h36c2ea0_2 conda-forge
greenlet 1.1.2 py38hfa26641_2 conda-forge
hdf4 4.2.15 h10796ff_3 conda-forge
hdf5 1.12.1 nompi_h2386368_104 conda-forge
icu 70.1 h27087fc_0 conda-forge
importlib-metadata 4.11.4 py38h578d9bd_0 conda-forge
importlib_resources 5.8.0 pyhd8ed1ab_0 conda-forge
ipython 8.4.0 py38h578d9bd_0 conda-forge
jedi 0.18.1 py38h578d9bd_1 conda-forge
jpeg 9e h166bdaf_1 conda-forge
keyutils 1.6.1 h166bdaf_0 conda-forge
kiwisolver 1.4.3 py38h43d8883_0 conda-forge
krb5 1.19.3 h3790be6_0 conda-forge
lcms2 2.12 hddcbb42_0 conda-forge
ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge
lerc 3.0 h9c3ff4c_0 conda-forge
libblas 3.9.0 15_linux64_openblas conda-forge
libbrotlicommon 1.0.9 h166bdaf_7 conda-forge
libbrotlidec 1.0.9 h166bdaf_7 conda-forge
libbrotlienc 1.0.9 h166bdaf_7 conda-forge
libcblas 3.9.0 15_linux64_openblas conda-forge
libcurl 7.83.1 h7bff187_0 conda-forge
libdeflate 1.12 h166bdaf_0 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 h516909a_1 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 12.1.0 h8d9b700_16 conda-forge
libgfortran-ng 12.1.0 h69a702a_16 conda-forge
libgfortran5 12.1.0 hdcd56e2_16 conda-forge
libglib 2.70.2 h174f98d_4 conda-forge
libgomp 12.1.0 h8d9b700_16 conda-forge
libiconv 1.16 h516909a_0 conda-forge
liblapack 3.9.0 15_linux64_openblas conda-forge
libnetcdf 4.8.1 nompi_h329d8a1_102 conda-forge
libnghttp2 1.47.0 h727a467_0 conda-forge
libnsl 2.0.0 h7f98852_0 conda-forge
libopenblas 0.3.20 pthreads_h78a6416_0 conda-forge
libpng 1.6.37 h21135ba_2 conda-forge
libssh2 1.10.0 ha56f1ee_2 conda-forge
libstdcxx-ng 12.1.0 ha89aaad_16 conda-forge
libtiff 4.4.0 hc85c160_1 conda-forge
libuuid 2.32.1 h7f98852_1000 conda-forge
libwebp 1.2.2 h3452ae3_0 conda-forge
libwebp-base 1.2.2 h7f98852_1 conda-forge
libxcb 1.13 h7f98852_1004 conda-forge
libzip 1.8.0 h4de3113_1 conda-forge
libzlib 1.2.12 h166bdaf_1 conda-forge
lz4-c 1.9.3 h9c3ff4c_1 conda-forge
lzo 2.10 h516909a_1000 conda-forge
matplotlib-base 3.5.2 py38h826bfd8_0 conda-forge
matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge
mdtraj 1.9.7 py38h0f83e44_1 conda-forge
mmpbsa-py 16.0 pypi_0 pypi
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
ncurses 6.3 h27087fc_1 conda-forge
netcdf-fortran 4.5.4 nompi_h2b6e579_100 conda-forge
networkx 2.8.4 pyhd8ed1ab_0 conda-forge
nomkl 1.0 h5ca1d4c_0 conda-forge
numexpr 2.8.0 py38h97b1c41_102 conda-forge
numpy 1.22.4 py38h99721a1_0 conda-forge
ocl-icd 2.3.1 h7f98852_0 conda-forge
ocl-icd-system 1.0.0 1 conda-forge
openff-forcefields 2.0.0 pyh6c4a22f_0 conda-forge
openff-interchange 0.1.4 pyhd8ed1ab_0 conda-forge
openff-interchange-base 0.1.4 pyh6c4a22f_0 conda-forge
openff-toolkit 0.10.1+112.g349d3fa4 dev_0 <develop>
openff-units 0.1.6 pyh6c4a22f_0 conda-forge
openff-utilities 0.1.5 pyh6c4a22f_0 conda-forge
openjpeg 2.4.0 hb52868f_1 conda-forge
openmm 7.7.0 py38h4b4c9af_1 conda-forge
openssl 1.1.1o h166bdaf_0 conda-forge
packaging 21.3 pyhd8ed1ab_0 conda-forge
packmol 20.010 h86c2bf4_0 conda-forge
packmol-memgen 1.2.3rc0 pypi_0 pypi
pandas 1.4.2 py38h47df419_2 conda-forge
panedr 0.5.2 py_0 conda-forge
parmed 3.4.3 py38hfa26641_2 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
pbr 5.9.0 pyhd8ed1ab_0 conda-forge
pcre 8.45 h9c3ff4c_0 conda-forge
pdb4amber 22.0 pypi_0 pypi
perl 5.32.1 2_h7f98852_perl5 conda-forge
pexpect 4.8.0 pyh9f0ad1d_2 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 9.1.1 py38h0ee0e06_1 conda-forge
pint 0.19.2 pyhd8ed1ab_0 conda-forge
pip 22.1.2 pyhd8ed1ab_0 conda-forge
pixman 0.40.0 h36c2ea0_0 conda-forge
prompt-toolkit 3.0.29 pyha770c72_0 conda-forge
pthread-stubs 0.4 h36c2ea0_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge
pycairo 1.21.0 py38h9c00e7a_1 conda-forge
pydantic 1.9.1 py38h0a891b7_0 conda-forge
pygments 2.12.0 pyhd8ed1ab_0 conda-forge
pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge
pytables 3.7.0 py38hdb04529_0 conda-forge
python 3.8.13 h582c2e5_0_cpython conda-forge
python-constraint 1.4.0 py_0 conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python_abi 3.8 2_cp38 conda-forge
pytraj 2.0.6 pypi_0 pypi
pytz 2022.1 pyhd8ed1ab_0 conda-forge
rdkit 2022.03.3 py38ha829ea6_0 conda-forge
readline 8.1.2 h0f457ee_0 conda-forge
reportlab 3.5.68 py38hadf75a6_1 conda-forge
sander 22.0 pypi_0 pypi
scipy 1.8.1 py38h1ee437e_0 conda-forge
setuptools 62.6.0 py38h578d9bd_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
smirnoff99frosst 1.1.0 pyh44b312d_0 conda-forge
snappy 1.1.9 hbd366e4_1 conda-forge
sqlalchemy 1.4.37 py38h0a891b7_0 conda-forge
sqlite 3.38.5 h4ff8645_0 conda-forge
stack_data 0.3.0 pyhd8ed1ab_0 conda-forge
tk 8.6.12 h27826a3_0 conda-forge
traitlets 5.3.0 pyhd8ed1ab_0 conda-forge
typing-extensions 4.2.0 hd8ed1ab_1 conda-forge
typing_extensions 4.2.0 pyha770c72_1 conda-forge
unicodedata2 14.0.0 py38h0a891b7_1 conda-forge
wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge
wheel 0.37.1 pyhd8ed1ab_0 conda-forge
xmltodict 0.13.0 pyhd8ed1ab_0 conda-forge
xorg-kbproto 1.0.7 h7f98852_1002 conda-forge
xorg-libice 1.0.10 h7f98852_0 conda-forge
xorg-libsm 1.2.3 hd9c2040_1000 conda-forge
xorg-libx11 1.7.2 h7f98852_0 conda-forge
xorg-libxau 1.0.9 h7f98852_0 conda-forge
xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge
xorg-libxext 1.3.4 h7f98852_1 conda-forge
xorg-libxrender 0.9.10 h7f98852_1003 conda-forge
xorg-libxt 1.2.1 h7f98852_2 conda-forge
xorg-renderproto 0.11.1 h7f98852_1002 conda-forge
xorg-xextproto 7.3.0 h7f98852_1002 conda-forge
xorg-xproto 7.0.31 h7f98852_1007 conda-forge
xz 5.2.5 h516909a_1 conda-forge
zipp 3.8.0 pyhd8ed1ab_0 conda-forge
zlib 1.2.12 h166bdaf_1 conda-forge
zstd 1.5.2 h8a70e8d_1 conda-forge
Additional context
Issue Analytics
- State:
- Created a year ago
- Comments:10 (8 by maintainers)
Top Results From Across the Web
ICODES FAQ - All Items - SDDC
A. Users can submit symbol drawing add/change requests to the ICODES org email box. Requests should include a top down view (image) of...
Read more >Recent advances in biodegradable matrices for active ... - NCBI
Climate changes, emerging species of plant pests, and deficits of clean water and arable land have made availability of food to the ever-increasing...
Read more >DigitalCommons@UMaine - The University of Maine
Plastics appear to be vestibules for additive release, as the breakdown of the ... rubber that have not been properly dispersed throughout the...
Read more >THE NEW PLASTICS ECONOMY RETHINKING THE FUTURE ...
Concrete and game-changing steps have to be taken for us to achieve the future ... Not only does plastic waste pollute our land...
Read more >OpenFF Toolkit Documentation - Open Force Field Software
not being applied correctly in versions 0.10.1 and 0.10.2 of the OpenFF Toolkit ... PR #1368: Updates the Toolkit showcase with the new...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Just some background for people who don’t know what insertion codes are/their function: https://bioinformatics.stackexchange.com/questions/11587/what-is-the-aim-of-insertion-codes-in-the-pdb-file-format
I think this is completed after #1372