Opened 5 months ago
Closed 5 months ago
#18035 closed defect (fixed)
PAE matrix mismatch
| Reported by: | Tristan Croll | Owned by: | Tom Goddard |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Structure Prediction | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-6.8.0-59-generic-x86_64-with-glibc2.35
ChimeraX Version: 1.10.dev202504300222 (2025-04-30 02:22:20 UTC)
Description
Structure was predicted with multiple phospho-Ser/Thr residues... I'm guessing those are still treated as one token per residue rather than per atom?
Log:
> isolde shorthand
Initialising ISOLDE-specific command aliases:
Alias Equivalent full command
-------------------------------------------------
st isolde step {arguments}
aw isolde add water {arguments}
awsf isolde add water {arguments} sim false
al isolde add ligand {arguments}
aa isolde add aa $1 sel {arguments}
ht isolde mod his sel {arguments}
so setattr sel atoms occupancy {arguments}
ab isolde adjust bfactors {arguments}
ss isolde sim start sel
rt isolde release torsions sel {arguments}
rd isolde release distances sel {arguments}
ra rd; rt
pf isolde pepflip sel
cf isolde cisflip sel
cbb color bfactor {arguments}
cbo color byattr occupancy {arguments}
cbc color {arguments} bychain; color {arguments} byhet
cs clipper set contourSensitivity {arguments}
UCSF ChimeraX version: 1.10.dev202504300222 (2025-04-30)
© 2016-2025 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open USP16_pan_phospho_model_0.cif
USP16_pan_phospho_model_0.cif title:
. [more info...]
Chain information for USP16_pan_phospho_model_0.cif #1
---
Chain | Description
A | .
Non-standard residues in USP16_pan_phospho_model_0.cif #1
---
ZN — (ZN)
No chain in structure corresponds to chain ID given in local score info (chain
'B')
Computing secondary structure
> open USP16_pan_phospho_model_1.cif
USP16_pan_phospho_model_1.cif title:
. [more info...]
Chain information for USP16_pan_phospho_model_1.cif #2
---
Chain | Description
A | .
Non-standard residues in USP16_pan_phospho_model_1.cif #2
---
ZN — (ZN)
No chain in structure corresponds to chain ID given in local score info (chain
'B')
> open USP16_pan_phospho_model_2.cif
USP16_pan_phospho_model_2.cif title:
. [more info...]
Chain information for USP16_pan_phospho_model_2.cif #3
---
Chain | Description
A | .
Non-standard residues in USP16_pan_phospho_model_2.cif #3
---
ZN — (ZN)
No chain in structure corresponds to chain ID given in local score info (chain
'B')
> open USP16_pan_phospho_model_3.cif
USP16_pan_phospho_model_3.cif title:
. [more info...]
Chain information for USP16_pan_phospho_model_3.cif #4
---
Chain | Description
A | .
Non-standard residues in USP16_pan_phospho_model_3.cif #4
---
ZN — (ZN)
No chain in structure corresponds to chain ID given in local score info (chain
'B')
> open USP16_pan_phospho_model_4.cif
USP16_pan_phospho_model_4.cif title:
. [more info...]
Chain information for USP16_pan_phospho_model_4.cif #5
---
Chain | Description
A | .
Non-standard residues in USP16_pan_phospho_model_4.cif #5
---
ZN — (ZN)
No chain in structure corresponds to chain ID given in local score info (chain
'B')
Computing secondary structure
[Repeated 3 time(s)]
> matchmaker #2-5 to #1
Parameters
---
Chain pairing | bb
Alignment algorithm | Needleman-Wunsch
Similarity matrix | BLOSUM-62
SS fraction | 0.3
Gap open (HH/SS/other) | 18/18/6
Gap extend | 1
SS matrix | | | H | S | O
---|---|---|---
H | 6 | -9 | -6
S | | 6 | -6
O | | | 4
Iteration cutoff | 2
Matchmaker USP16_pan_phospho_model_0.cif, chain A (#1) with
USP16_pan_phospho_model_1.cif, chain A (#2), sequence alignment score = 4067.4
RMSD between 384 pruned atom pairs is 0.742 angstroms; (across all 823 pairs:
37.205)
Matchmaker USP16_pan_phospho_model_0.cif, chain A (#1) with
USP16_pan_phospho_model_2.cif, chain A (#3), sequence alignment score = 3855.3
RMSD between 379 pruned atom pairs is 0.733 angstroms; (across all 823 pairs:
17.959)
Matchmaker USP16_pan_phospho_model_0.cif, chain A (#1) with
USP16_pan_phospho_model_3.cif, chain A (#4), sequence alignment score = 3900
RMSD between 335 pruned atom pairs is 0.628 angstroms; (across all 823 pairs:
30.996)
Matchmaker USP16_pan_phospho_model_0.cif, chain A (#1) with
USP16_pan_phospho_model_4.cif, chain A (#5), sequence alignment score = 3889.5
RMSD between 327 pruned atom pairs is 0.649 angstroms; (across all 823 pairs:
28.740)
> hide #2 models
> hide #3 models
> hide #4 models
> hide #5 models
> show :SEP,TPO
> clipper init
> cofr centerOfView showPivot true
> camera ortho
> lighting simple
> rainbow
> color byhetero
> ui tool show "AlphaFold Error Plot"
> alphafold pae #1 file
> /media/tcroll/DATA/structure_dump/dublin/boltz1/usp16_phospho/predictions/USP16_pan_phospho/pae_USP16_pan_phospho_model_0.npz
Structure USP16_pan_phospho_model_0.cif #1 does not match PAE matrix size
827.The structure has 812 polymer residues and 116 non-polymer atoms
This can happen if chains or atoms were deleted from the AlphaFold model or if
the PAE data was applied to a structure that was not the one predicted by
AlphaFold. Use the full-length AlphaFold model to show predicted aligned
error.
OpenGL version: 3.3.0 NVIDIA 535.230.02
OpenGL renderer: NVIDIA GeForce RTX 3070/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.11.4
Locale: en_GB.UTF-8
Qt version: PyQt6 6.8.1, Qt 6.8.2
Qt runtime version: 6.8.2
Qt platform: xcb
XDG_SESSION_TYPE=x11
DESKTOP_SESSION=ubuntu
XDG_SESSION_DESKTOP=ubuntu
XDG_CURRENT_DESKTOP=ubuntu:GNOME
DISPLAY=:1
Manufacturer: Dell Inc.
Model: XPS 8950
OS: Ubuntu 22.04
Architecture: 64bit ELF
Virtual Machine: none
CPU: 20 12th Gen Intel(R) Core(TM) i7-12700
Cache Size: 25600 KB
Memory:
total used free shared buff/cache available
Mem: 31Gi 20Gi 1.7Gi 637Mi 8.8Gi 9.4Gi
Swap: 2.0Gi 2.0Gi 1.0Mi
Graphics:
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070 Lite Hash Rate] [10de:2488] (rev a1)
Subsystem: Dell GA104 [GeForce RTX 3070 Lite Hash Rate] [1028:c903]
Kernel driver in use: nvidia
Installed Packages:
alabaster: 1.0.0
appdirs: 1.4.4
asttokens: 3.0.0
auditwheel: 6.3.0
babel: 2.17.0
beautifulsoup4: 4.13.3
blockdiag: 3.0.0
blosc2: 3.3.1
build: 1.2.2.post1
certifi: 2025.4.26
cftime: 1.6.4.post1
charset-normalizer: 3.4.1
ChimeraX-AddCharge: 1.5.18
ChimeraX-AddH: 2.2.7
ChimeraX-AlignmentAlgorithms: 2.0.2
ChimeraX-AlignmentHdrs: 3.6.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.20.1
ChimeraX-AlphaFold: 1.0.1
ChimeraX-AltlocExplorer: 1.1.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Aniso: 1.1.3
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.60.5
ChimeraX-AtomicLibrary: 14.1.17
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.3
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 3.0.0
ChimeraX-Boltz: 1.0
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.2
ChimeraX-BuildStructure: 2.13.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.4.0
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.4
ChimeraX-ChangeChains: 1.1
ChimeraX-CheckWaters: 1.4
ChimeraX-ChemGroup: 2.0.2
ChimeraX-Clashes: 2.3
ChimeraX-Clipper: 0.25.0
ChimeraX-ColorActions: 1.0.5
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.8
ChimeraX-CommandLine: 1.2.6
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.10.dev202504300222
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.5
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.4
ChimeraX-Dicom: 1.2.7
ChimeraX-DistMonitor: 1.4.2
ChimeraX-DockPrep: 1.1.4
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.3
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.4.1
ChimeraX-Hbonds: 2.5.1
ChimeraX-Help: 1.3
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.3
ChimeraX-ISOLDE: 1.10rc0
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-KVFinder: 1.6.1
ChimeraX-Label: 1.1.14
ChimeraX-LinuxSupport: 1.0.1
ChimeraX-ListInfo: 1.2.2
ChimeraX-Log: 1.2
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.1
ChimeraX-Map: 1.3
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0.1
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.2
ChimeraX-MatchMaker: 2.2.1
ChimeraX-MCopy: 1.0
ChimeraX-MDcrds: 2.10.1
ChimeraX-MedicalToolbar: 1.1
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.16
ChimeraX-MMTF: 2.2
ChimeraX-ModelArchive: 1.0
ChimeraX-Modeller: 1.5.19
ChimeraX-ModelPanel: 1.5.1
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0.3
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0
ChimeraX-MutationScores: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nifti: 1.2
ChimeraX-NMRSTAR: 1.0.2
ChimeraX-NRRD: 1.2
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.14.1
ChimeraX-OrthoPick: 1.0.1
ChimeraX-PDB: 2.7.9
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.4
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1.3
ChimeraX-ProfileGrids: 1.1.1
ChimeraX-PubChem: 2.2
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.6.3
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.3.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 4.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.3
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-Segmentations: 3.5.7
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.17.1
ChimeraX-Shape: 1.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.2.0
ChimeraX-ShowSequences: 1.0.3
ChimeraX-SideView: 1.0.1
ChimeraX-SimilarStructures: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.19.1
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.2.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.5.2
ChimeraX-TapeMeasure: 1.0
ChimeraX-TaskManager: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.2.3
ChimeraX-ToolshedUtils: 1.2.4
ChimeraX-Topography: 1.0
ChimeraX-ToQuest: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.45.1
ChimeraX-Umap: 1.0
ChimeraX-uniprot: 2.3.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.4.4
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-vrml: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.4
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.2.2
contourpy: 1.3.2
coverage: 7.8.0
cxservices: 1.2.3
cycler: 0.12.1
Cython: 3.0.12
debugpy: 1.8.14
decorator: 5.2.1
distro: 1.9.0
docutils: 0.21.2
executing: 2.2.0
filelock: 3.18.0
fonttools: 4.57.0
funcparserlib: 2.0.0a0
glfw: 2.9.0
grako: 3.16.5
h5py: 3.13.0
html2text: 2024.2.26
idna: 3.10
ihm: 2.2
imagecodecs: 2024.6.1
imagesize: 1.4.1
iniconfig: 2.1.0
ipykernel: 6.29.5
ipython: 8.26.0
ipywidgets: 8.1.6
jedi: 0.19.1
Jinja2: 3.1.6
jupyter_client: 8.6.3
jupyter_core: 5.7.2
jupyterlab_widgets: 3.0.14
kiwisolver: 1.4.8
line_profiler: 4.2.0
lxml: 5.3.1
lz4: 4.4.4
MarkupSafe: 3.0.2
matplotlib: 3.10.1
matplotlib-inline: 0.1.7
msgpack: 1.1.0
ndindex: 1.9.2
nest-asyncio: 1.6.0
netCDF4: 1.6.5
networkx: 3.3
nibabel: 5.2.0
nptyping: 2.5.0
numexpr: 2.10.2
numpy: 1.26.4
OpenMM: 8.1.1
OpenMM: 8.2.0
openmm-cuda: 8.1.1.11.8
openvr: 1.26.701
packaging: 24.2
ParmEd: 4.2.2
parso: 0.8.4
pep517: 0.13.1
pexpect: 4.9.0
pickleshare: 0.7.5
pillow: 10.4.0
pip: 25.0.1
pkginfo: 1.11.1
platformdirs: 4.3.7
pluggy: 1.5.0
prompt_toolkit: 3.0.51
psutil: 7.0.0
ptyprocess: 0.7.0
pure_eval: 0.2.3
py-cpuinfo: 9.0.0
pycollada: 0.8
pydicom: 2.4.4
pyelftools: 0.32
Pygments: 2.18.0
pynmrstar: 3.3.5
pynrrd: 1.0.0
PyOpenGL: 3.1.9
PyOpenGL-accelerate: 3.1.9
pyopenxr: 1.1.4501
pyparsing: 3.2.3
pyproject_hooks: 1.2.0
PyQt6: 6.8.1
PyQt6-Qt6: 6.8.2
PyQt6-WebEngine: 6.8.0
PyQt6-WebEngine-Qt6: 6.8.2
PyQt6_sip: 13.10.0
pytest: 8.3.5
pytest-cov: 6.1.1
python-dateutil: 2.9.0.post0
pytz: 2025.2
pyzmq: 26.4.0
qtconsole: 5.5.2
QtPy: 2.4.3
qtshim: 1.1
RandomWords: 0.4.0
rdkit: 2025.3.2
requests: 2.32.3
roman-numerals-py: 3.1.0
scipy: 1.14.0
setuptools: 78.1.0
sfftk-rw: 0.8.1
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
soupsieve: 2.7
Sphinx: 8.2.3
sphinx-autodoc-typehints: 3.1.0
sphinxcontrib-applehelp: 2.0.0
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 2.0.0
sphinxcontrib-htmlhelp: 2.1.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 2.0.0
sphinxcontrib-serializinghtml: 2.0.0
stack-data: 0.6.3
superqt: 0.7.1
tables: 3.10.2
tcia_utils: 1.5.1
tifffile: 2025.3.13
tinyarray: 1.2.4
tornado: 6.4.2
traitlets: 5.14.3
typing_extensions: 4.13.2
tzdata: 2025.2
urllib3: 2.4.0
wcwidth: 0.2.13
webcolors: 24.11.1
wheel: 0.45.1
wheel-filename: 1.4.2
widgetsnbextension: 4.0.14
Change History (8)
comment:1 by , 5 months ago
| Component: | Unassigned → Structure Prediction |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → PAE matrix mismatch |
comment:2 by , 5 months ago
comment:3 by , 5 months ago
I can’t attach *that* one, but I’ll make up a test case on Monday. If you want something earlier, it was just protein + a handful of ZN, with about half a dozen SER/THR modified to SEP or TPO respectively. On Fri, 20 Jun 2025 at 18:27, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote: > >
comment:4 by , 5 months ago
I tried AlphaFold 3 with a phosphoserine (using sequence of pdb 8rf4) and PAE worked fine.
But it looks like you used Boltz-1 for your prediction since boltz1 is in the directory name. I'll have to run a Boltz-1 test to see if it uses different conventions for residue and atom PAE.
comment:5 by , 5 months ago
I tried boltz-2 with a phosphoserine (using sequence of pdb 8rf4) and I get the same kind of error trying to show PAE in ChimeraX that you report suggesting Boltz uses per-residue PAE for modified residues which differs from AlphaFold 3 which uses per-atom PAE for modified residues. Not sure how I will recognize this as a Boltz prediction since the mmCIF prediction does not include any metadata saying it came from Boltz and the PAE .npz file also is just a 2D array with no info about which residues or atoms the indices correspond to. Chai-1 also uses numpy files for PAE. Also don't know if it differs from AlphaFold 3 in whether atom or residue level PAE values are computed.
comment:6 by , 5 months ago
Maybe the best solution is that if the PAE matrix size does not match what is expected for AF3 then we see if it matches the Boltz expected size and if so use that.
comment:7 by , 5 months ago
I have a Boltz prediction interface in ChimeraX. But so far I have not added the ability to specify modified residues so this bug has not come up from Boltz predictions run within ChimeraX. I'll definitely need to fix it if I add support for modified residues in the ChimeraX Boltz command and GUI.
comment:8 by , 5 months ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed in daily build, not in 1.10.
I made the PAE code guess if the file is from Boltz as follows. If the file ends with .npz and the expected matrix size is too small using AlphaFold 3 PAE conventions the we check if using Boltz PAE conventions where modified residues have a single PAE matrix row matches the matrix size. If it does then the code assumes Boltz conventions.
Can you attach the prediction and PAE file? My understanding was that any modified residues have per-atom pae.