Opened 4 years ago
Last modified 3 years ago
#6333 assigned enhancement
Show AlphaFold predicted aligned error (PAE) for selected residues
| Reported by: | Tristan Croll | Owned by: | Tom Goddard |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Structure Prediction | Version: | |
| Keywords: | Cc: | Eric Pettersen, phil.cruz@… | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: macOS-10.16-x86_64-i386-64bit
ChimeraX Version: 1.3 (2021-12-08 23:08:33 UTC)
Description
Had to give a talk on AlphaFold today (to an actual member of the AlphaFold team - quite nerve-wracking!), which got me thinking more about the PAE matrix. It's a really important source of information - potentially as if not more valuable than the pLDDT values, but currently is really hard for the average user to understand. The attached session contains a case where it's particularly important (might need ISOLDE installed to open it - in any case it's the AlphaFold-DB prediction for P0C7U0, looking at a site where three alpha-helices sit across the face of the N-terminal leucine-rich repeat domain). The pLDDT values for the helices are admittedly at the low end (in the 50-70 range), but the unwary user could easily be fooled into thinking there's a real interaction here. But if you look at the PAE values between residue pairs across the interfaces it becomes immediately obvious it's all spurious - the predicted errors are all above 20 angstroms.
Anyway, here's what I was thinking about how to use this: what about a command with a syntax something like "color pae {selection} relativeTo {residue}"? Then, if {residue} is in position i in the chain, for each residue j in {selection}, color it according to PAE[i,j]. Or probably better, min{PAE[i,j],PAE[j,i]) - if residue i has a reasonably well-defined position but poorly-defined orientation but residue j is well-defined in both, then PAE[i,j] will be large while PAE[j,i] is small. The best analogy I've heard (courtesy of Randy) is a boat in heavy seas vs. the lighthouse - a person on the boat trying to view the lighthouse through a telescope will report a huge error in the position of the lighthouse, but a person in the lighthouse will be able to locate the boat quite precisely.
Apart from this scenario, I think it would also be useful for inferring range of mobility around hinges etc.
Log:
UCSF ChimeraX version: 1.3 (2021-12-08)
© 2016-2021 Regents of the University of California. All rights reserved.
> open "/Users/tic20/OneDrive - University of
> Cambridge/Documents/Grants/2021_Phenix_R01/P0C7U0_questionable_interface/P0C7U0_questionable_interface.cxs"
Log from Sat Jan 15 14:16:26 2022
> 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.3rc202112030319 (2021-12-03)
© 2016-2021 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> alphafold fetch R01 AI141707
Expected a keyword
> alphafold fetch P0C7U0
Fetching compressed AlphaFold P0C7U0 from
https://alphafold.ebi.ac.uk/files/AF-P0C7U0-F1-model_v1.cif
Chain information for AlphaFold P0C7U0 #1
---
Chain | Description | UniProt
A | Protein ELFN1 | ELFN1_HUMAN
> show
> color byhetero
> select @@bfactor<60
3192 atoms, 3276 bonds, 429 residues, 1 model selected
> select @@bfactor<50
2702 atoms, 2767 bonds, 362 residues, 1 model selected
> style sel sphere
Changed 2702 atom styles
> style sel stick
Changed 2702 atom styles
> select @@bfactor<40
2028 atoms, 2043 bonds, 270 residues, 1 model selected
> select @@bfactor<50
2702 atoms, 2767 bonds, 362 residues, 1 model selected
> select clear
> set bgColor white
> cofr centerOfView showPivot true
> hbonds
474 hydrogen bonds found
> ~cartoon @@bfactor<40
> hide @@bfactor<40
> cartoon
> show
> ui tool show "Side View"
> camera mono
> camera ortho
> color lightgrey
> color byhetero
> ~hbonds
> hbonds sideonly
168 hydrogen bonds found
> color tan target ar
> color byhetero
> addh
Summary of feedback from adding hydrogens to AlphaFold P0C7U0 #1
---
notes | Termini for AlphaFold P0C7U0 (#1) chain A determined from SEQRES
records
Chain-initial residues that are actual N termini: /A MET 1
Chain-initial residues that are not actual N termini:
Chain-final residues that are actual C termini: /A SER 828
Chain-final residues that are not actual C termini:
474 hydrogen bonds
6328 hydrogens added
> hide HC
> ~hbonds
> hbonds
453 hydrogen bonds found
> ~hobnds
Unknown command: ~hobnds
> ~hbonds
> hbonds sidechain
145 hydrogen bonds found
> select add /A:64@OD2
1 atom, 1 bond, 1 residue, 1 model selected
> select up
3 atoms, 1 bond, 2 residues, 1 model selected
> select up
36 atoms, 34 bonds, 2 residues, 1 model selected
> select add /A:812@CG
37 atoms, 34 bonds, 3 residues, 1 model selected
> select add /A:40@CZ2
38 atoms, 35 bonds, 4 residues, 1 model selected
> select add /A:43@CG2
39 atoms, 35 bonds, 5 residues, 1 model selected
> select add /A:813@CE1
40 atoms, 35 bonds, 6 residues, 1 model selected
> select add /A:32@CG1
41 atoms, 35 bonds, 7 residues, 1 model selected
> select add /A:816@CG
42 atoms, 35 bonds, 8 residues, 1 model selected
> select add /A:30@CE2
43 atoms, 35 bonds, 9 residues, 1 model selected
> select add /A:114@NE2
44 atoms, 35 bonds, 10 residues, 1 model selected
> select add /A:693@CD
45 atoms, 35 bonds, 11 residues, 1 model selected
> select add /A:88@OH
46 atoms, 35 bonds, 12 residues, 1 model selected
> select add /A:90@HD22
47 atoms, 35 bonds, 13 residues, 1 model selected
> select add /A:93@CD
48 atoms, 35 bonds, 14 residues, 1 model selected
> select add /A:689@CB
49 atoms, 35 bonds, 15 residues, 1 model selected
> select add /A:690@CG
50 atoms, 35 bonds, 16 residues, 1 model selected
> select add /A:686@CB
51 atoms, 35 bonds, 17 residues, 1 model selected
> select add /A:138@OH
52 atoms, 35 bonds, 18 residues, 1 model selected
> select add /A:117@OH
53 atoms, 35 bonds, 19 residues, 1 model selected
> select add /A:700@CE1
54 atoms, 35 bonds, 20 residues, 1 model selected
> select up
56 atoms, 35 bonds, 21 residues, 1 model selected
> select up
393 atoms, 384 bonds, 21 residues, 1 model selected
> hide ~sel
> show
> hde H
Unknown command: hde H
> hide H
> select add /A:804@CG2
394 atoms, 384 bonds, 22 residues, 1 model selected
> select up
409 atoms, 399 bonds, 22 residues, 1 model selected
> select up
411 atoms, 400 bonds, 23 residues, 1 model selected
> select up
426 atoms, 416 bonds, 23 residues, 1 model selected
> select add /A:801@NE
427 atoms, 416 bonds, 24 residues, 1 model selected
> select up
450 atoms, 439 bonds, 24 residues, 1 model selected
> select add /A:35@OD1
451 atoms, 439 bonds, 25 residues, 1 model selected
> select up
462 atoms, 450 bonds, 25 residues, 1 model selected
> select up
464 atoms, 451 bonds, 26 residues, 1 model selected
> select up
483 atoms, 471 bonds, 26 residues, 1 model selected
> select add /A:111@OE1
484 atoms, 471 bonds, 27 residues, 1 model selected
> select up
500 atoms, 487 bonds, 27 residues, 1 model selected
> select add /A:809@CB
501 atoms, 487 bonds, 28 residues, 1 model selected
> select up
512 atoms, 498 bonds, 28 residues, 1 model selected
> select add /A:696@CE
513 atoms, 498 bonds, 29 residues, 1 model selected
> select up
534 atoms, 519 bonds, 29 residues, 1 model selected
> select subtract /A:700@CZ
533 atoms, 519 bonds, 29 residues, 1 model selected
> select up
534 atoms, 519 bonds, 29 residues, 1 model selected
> hide ~sel
> select clear
> cd "C:/Users/tristan/OneDrive - University of
> Cambridge/Documents/Grants/2021_Phenix_R01/P0C7U0_questionable_interface"
Current working directory is: C:\Users\tristan\OneDrive - University of
Cambridge\Documents\Grants\2021_Phenix_R01\P0C7U0_questionable_interface
> hbonds sideonly
145 hydrogen bonds found
> select @@display=True
273 atoms, 258 bonds, 29 residues, 1 model selected
> show sel&~HC
> select up
534 atoms, 519 bonds, 29 residues, 1 model selected
> show sel&~HC
> select clear
> rainbow
> color tan target a
> color byhetero
> cofr showPivot false
> select /A:819
24 atoms, 25 bonds, 1 residue, 1 model selected
> select /A:817
12 atoms, 11 bonds, 1 residue, 1 model selected
> select /A:809@CB
1 atom, 1 residue, 1 model selected
> select /A:818
21 atoms, 21 bonds, 1 residue, 1 model selected
> label sel
> ~label
> select /A:816@CB
1 atom, 1 residue, 1 model selected
> label sel
[Repeated 1 time(s)]
> select /A:804@CB
1 atom, 1 residue, 1 model selected
> label sel
> ~label
> select clear
> save P0C7U0_apparent_interface.jpg
> alphafold fetch P0C7U0
Chain information for AlphaFold P0C7U0 #2
---
Chain | Description | UniProt
A | Protein ELFN1 | ELFN1_HUMAN
> hide #!1 models
> color bfactor #2 palette alphafold
6368 atoms, 828 residues, atom bfactor range 25.1 to 98.2
> select #2@@bfactor<50
2702 atoms, 2767 bonds, 362 residues, 1 model selected
> show sel
> hide sel
> select #2@@bfactor<60
3192 atoms, 3276 bonds, 429 residues, 1 model selected
> show sel
> hide sel
> select clear
> select #2@@bfactor<60
3192 atoms, 3276 bonds, 429 residues, 1 model selected
> show sel
> hide sel
> ~cartoon sel
> select clear
> cartoon sel
> select #2@@bfactor<60
3192 atoms, 3276 bonds, 429 residues, 1 model selected
> cartoon sel
> color sel red
> color bfactor #2 palette red-white-blue
6368 atoms, 828 residues, atom bfactor range 25.1 to 98.2
> color bfactor #2 palette red-white-blue range 50,100
6368 atoms, 828 residues, atom bfactor range 25.1 to 98.2
> select clear
> save P0C7U0_apparent_interface_color_by_pLDDT_RWB_range_50-100.jpg
> alphafold fetch P0C7U0
Chain information for AlphaFold P0C7U0 #3
---
Chain | Description | UniProt
A | Protein ELFN1 | ELFN1_HUMAN
> hide #2 models
> ui tool show Shell
Fetching compressed Alphafold P0C7U0 PAE from
https://alphafold.ebi.ac.uk/files/AF-P0C7U0-F1-predicted_aligned_error_v1.json
> color byattribute r:isolde_domain #3 target ra palette paired-12 range 0,12
6368 atoms, 828 residues, atom isolde_domain range 0 to 7
> select #3/A:693
9 atoms, 8 bonds, 1 residue, 1 model selected
> select #3/A:810
9 atoms, 8 bonds, 1 residue, 1 model selected
> select clear
> select #3/A:808
9 atoms, 8 bonds, 1 residue, 1 model selected
> select add #3/A:689
16 atoms, 14 bonds, 2 residues, 1 model selected
> color byattribute r:isolde_domain #3 target ra palette paired-12 range 0,12
6368 atoms, 828 residues, atom isolde_domain range 0 to 12
> select clear
> hide #3 models
> show #!1 models
> save P0C7U0_apparent_interface.jpg
> hide #!1 models
> show #2 models
> show #!1 models
> hide #!1 models
> show #!1 models
> hide #!1 models
> save P0C7U0_apparent_interface_color_by_pLDDT_RWB_range_50-100.jpg
> hide #2 models
> show #3 models
> save P0C7U0_apparent_interface_PAE_domains.jpg
> select #3/A:813
10 atoms, 10 bonds, 1 residue, 1 model selected
> select add #3/A:43
18 atoms, 17 bonds, 2 residues, 1 model selected
> select sel@@CA
Expected an objects specifier or a keyword
> select sel&@CA
2 atoms, 2 residues, 1 model selected
> show sel
> label sel text "PAE = 23.7 "
> select #3/A:697
4 atoms, 3 bonds, 1 residue, 1 model selected
> select add #3/A:161
12 atoms, 10 bonds, 2 residues, 1 model selected
> select sel&@CA
2 atoms, 2 residues, 1 model selected
> show sel
[Repeated 1 time(s)]
> select sel&@CA
2 atoms, 1 pseudobond, 2 residues, 2 models selected
> select sel&@CA
2 atoms, 1 pseudobond, 2 residues, 2 models selected
> show sel
> select up
12 atoms, 10 bonds, 1 pseudobond, 2 residues, 2 models selected
> show sel
> select clear
> label sel text "PAE = 27.5 "
> select #3/A:693
9 atoms, 8 bonds, 1 residue, 1 model selected
> select #3/A:692
5 atoms, 4 bonds, 1 residue, 1 model selected
> select add #3/A:808
14 atoms, 12 bonds, 2 residues, 1 model selected
> select sel&@CA
2 atoms, 2 residues, 1 model selected
> show sel
> hide sel
> show sel
> select clear
[Repeated 1 time(s)]
> label sel text "PAE = 26.9 "
> hide #!3 models
> show #!1 models
> hide #!1 models
> show #2 models
> hide #2 models
> show #!3 models
> hide #!3 models
> show #!1 models
> hide #!1 models
> show #!3 models
> hide #!3 models
> show #!1 models
> hide #!1 models
> show #!3 models
> label sel text "PAE = 26.9 " offset -2,0
Invalid "offset" argument: Need exactly 3 ','-separated numbers
> usage label
label [objects] [objectType] [text text] [offset offset] [color color]
[bgColor bgColor] [size size] [height height] [defaultHeight a number] [font a
text string] [attribute a text string] [onTop true or false]
— Create atom labels
objects: an objects specifier or nothing
objectType: one of atoms, bonds, pseudobonds, or residues
text: default or a text string
offset: default or some numbers
color: one of auto or default or a color
bgColor: none or a color
size: default or an integer
height: fixed or a number
label delete [objects] [objectType]
— Delete atom labels
objects: an objects specifier or nothing
objectType: one of atoms, bonds, pseudobonds, or residues
label listfonts
— List available fonts
label orient [orient]
— Set label orientation updating
orient: a number
> label sel text "PAE = 26.9 " offset 0,-5,0
> label sel text "PAE = 26.9 " offset 0,2,0
> label sel text "PAE = 26.9 " offset 0,1,0
> label sel text "PAE = 26.9 " offset -0.5,1,0
> label sel text "PAE = 26.9 " offset -1,1,0
> select clear
> show #!1 models
> hide #!3 models
> save P0C7U0_apparent_interface_ribbon_color_by_rainbow_N-C.jpg
> hide #!1 models
> show #2 models
> save P0C7U0_apparent_interface_color_by_pLDDT_RWB_range_50-100.jpg
> hide #2 models
> show #!3 models
> save P0C7U0_apparent_interface_PAE_domains.jpg
> save P0C7U0_questionable_interface.cxs
> hide #!3 models
> show #!1 models
> save P0C7U0_apparent_interface_ribbon_color_by_rainbow_N-C.jpg
> hide #!1 models
> show #2 models
> save P0C7U0_apparent_interface_color_by_pLDDT_RWB_range_50-100.jpg
> hide #2 models
> show #!3 models
> hide #!3 models
> show #!1 models
> show #!3 models
> hide #!3 models
> save P0C7U0_apparent_interface_ribbon_color_by_rainbow_N-C.jpg
> hide #!1 models
> show #2 models
> save P0C7U0_apparent_interface_color_by_pLDDT_RWB_range_50-100.jpg
> hide #2 models
> show #!3 models
> save P0C7U0_apparent_interface_PAE_domains.jpg
> usage label
label [objects] [objectType] [text text] [offset offset] [color color]
[bgColor bgColor] [size size] [height height] [defaultHeight a number] [font a
text string] [attribute a text string] [onTop true or false]
— Create atom labels
objects: an objects specifier or nothing
objectType: one of atoms, bonds, pseudobonds, or residues
text: default or a text string
offset: default or some numbers
color: one of auto or default or a color
bgColor: none or a color
size: default or an integer
height: fixed or a number
label delete [objects] [objectType]
— Delete atom labels
objects: an objects specifier or nothing
objectType: one of atoms, bonds, pseudobonds, or residues
label listfonts
— List available fonts
label orient [orient]
— Set label orientation updating
orient: a number
> label size 20
> label size 40
> label size 80
> label size 1
> label size 2
> label size 3
> label size 4
> label size 20
> label size 40
> label height 2
> label height 1
> label height 1.5
> label height 1.5 size 50
> label sel offset -5,0,0
> label sel offset -7,0,0
> select clear
> hide #!3 models
> show #!1 models
> show #!3 models
> hide #!3 models
> save P0C7U0_apparent_interface_ribbon_color_by_rainbow_N-C.jpg
> hide #!1 models
> show #2 models
> save P0C7U0_apparent_interface_color_by_pLDDT_RWB_range_50-100.jpg
> hide #2 models
> show #!3 models
> save P0C7U0_apparent_interface_PAE_domains.jpg
> label sel text "PAE = 23.7 Å "
> label sel text "PAE = 26.9 Å "
> label sel text "PAE = 27.5 Å "
> select clear
> save P0C7U0_apparent_interface_PAE_domains.jpg
> save P0C7U0_questionable_interface.cxs
——— End of log from Sat Jan 15 14:16:26 2022 ———
opened ChimeraX session
> ui tool show "Selection Inspector"
> select #3/A:813
10 atoms, 10 bonds, 1 residue, 1 model selected
> select #3/A:693
9 atoms, 8 bonds, 1 residue, 1 model selected
> select #3/A:689
7 atoms, 6 bonds, 1 residue, 1 model selected
> select #3/A:803
9 atoms, 8 bonds, 1 residue, 1 model selected
> select #3/A:800
8 atoms, 7 bonds, 1 residue, 1 model selected
OpenGL version: 4.1 INTEL-16.4.5
OpenGL renderer: Intel(R) HD Graphics 6000
OpenGL vendor: Intel Inc.Hardware:
Hardware Overview:
Model Name: MacBook Air
Model Identifier: MacBookAir7,2
Processor Name: Dual-Core Intel Core i5
Processor Speed: 1.6 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 3 MB
Hyper-Threading Technology: Enabled
Memory: 8 GB
System Firmware Version: 427.0.0.0.0
SMC Version (system): 2.27f2
Software:
System Software Overview:
System Version: macOS 11.4 (20F71)
Kernel Version: Darwin 20.5.0
Time since boot: 213 days 9:37
Graphics/Displays:
Intel HD Graphics 6000:
Chipset Model: Intel HD Graphics 6000
Type: GPU
Bus: Built-In
VRAM (Dynamic, Max): 1536 MB
Vendor: Intel
Device ID: 0x1626
Revision ID: 0x0009
Metal Family: Supported, Metal GPUFamily macOS 1
Displays:
Color LCD:
Display Type: LCD
Resolution: 1440 x 900 (Widescreen eXtended Graphics Array Plus)
UI Looks like: 1440 x 900
Framebuffer Depth: 24-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: Yes
Connection Type: Internal
Locale: (None, 'UTF-8')
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
appnope: 0.1.2
Babel: 2.9.1
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2021.5.30
cftime: 1.5.1.1
charset-normalizer: 2.0.9
ChimeraX-AddCharge: 1.2.2
ChimeraX-AddH: 2.1.11
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.2.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.31
ChimeraX-AtomicLibrary: 4.2
ChimeraX-AtomSearch: 2.0
ChimeraX-AtomSearchLibrary: 1.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.0
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.6.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.1
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.2
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.2.2
ChimeraX-Clipper: 0.17.0
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5
ChimeraX-CommandLine: 1.1.5
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.3
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.3.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.2.2
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1.5
ChimeraX-DistUI: 1.0
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.1
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1
ChimeraX-Hbonds: 2.1.2
ChimeraX-Help: 1.2
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ISOLDE: 1.3
ChimeraX-ItemsInspection: 1.0
ChimeraX-Label: 1.1
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.4
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.1
ChimeraX-Map: 1.1
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 2.0.4
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.4
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.2.6
ChimeraX-ModelPanel: 1.2.1
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.2
ChimeraX-OpenCommand: 1.7
ChimeraX-PDB: 2.6.5
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0.1
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.4.6
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.1
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.6.1
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-Struts: 1.0
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1
ChimeraX-ToolshedUtils: 1.2
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.13.7
ChimeraX-uniprot: 2.2
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.0.1
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.0
ChimeraX-Zone: 1.0
colorama: 0.4.4
cxservices: 1.1
cycler: 0.11.0
Cython: 0.29.24
decorator: 5.1.0
docutils: 0.17.1
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
h5py: 3.6.0
html2text: 2020.1.16
idna: 3.3
ihm: 0.21
imagecodecs: 2021.4.28
imagesize: 1.3.0
ipykernel: 5.5.5
ipython: 7.23.1
ipython-genutils: 0.2.0
jedi: 0.18.0
Jinja2: 3.0.1
jupyter-client: 6.1.12
jupyter-core: 4.9.1
kiwisolver: 1.3.2
lxml: 4.6.3
lz4: 3.1.3
MarkupSafe: 2.0.1
matplotlib: 3.4.3
matplotlib-inline: 0.1.3
msgpack: 1.0.2
netCDF4: 1.5.7
networkx: 2.6.3
numexpr: 2.8.0
numpy: 1.21.2
openvr: 1.16.801
packaging: 21.0
ParmEd: 3.2.0
parso: 0.8.3
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 8.3.2
pip: 21.2.4
pkginfo: 1.7.1
prompt-toolkit: 3.0.23
psutil: 5.8.0
ptyprocess: 0.7.0
pycollada: 0.7.1
pydicom: 2.1.2
Pygments: 2.10.0
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.6
PyQt5-commercial: 5.15.2
PyQt5-sip: 12.8.1
PyQtWebEngine-commercial: 5.15.2
python-dateutil: 2.8.2
pytz: 2021.3
pyzmq: 22.3.0
qtconsole: 5.1.1
QtPy: 1.11.3
RandomWords: 0.3.0
requests: 2.26.0
scipy: 1.7.1
setuptools: 57.5.0
sfftk-rw: 0.7.1
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 4.2.0
sphinx-autodoc-typehints: 1.12.0
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
suds-jurko: 0.6
tifffile: 2021.4.8
tinyarray: 1.2.3
tornado: 6.1
traitlets: 5.1.1
urllib3: 1.26.7
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.37.0
wheel-filename: 1.3.0
File attachment: P0C7U0_questionable_interface.cxs
Attachments (2)
Change History (14)
by , 4 years ago
| Attachment: | P0C7U0_questionable_interface.cxs added |
|---|
comment:1 by , 4 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Structure Prediction |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Show PAE values |
| Type: | defect → enhancement |
comment:2 by , 4 years ago
Agree. I wrote this into our R01 grant proposal a few months ago. But that was just for fun since I plan to support alphafold residue-residue distance error visualization well before that is funded in March 2023. I had in mind a little different user interface, but lots of ways to use the matrix of values would be easy to support. First I thought I'd show a heatmap, 2D color plot residue number on both axes, this is what the AlphaFold paper shows and it is quite informative. Clicking on it could maybe select the pair of residues. That is just to get a basic view of the error data. What I think would be very cool is to color interfaces between domains where the predicted error is high from residues on one side of the interface to the other. The first step would be like what you did many months ago, identify domains from the error matrix as residues that are confidently positioned relative to other residues in the domain. Then the idea would be to look at the distance errors for pairs of residues at interfaces between these domains and color them by confidence. So basically you would see red residues lining interfaces that are wrong. and maybe blue residues lining interfaces that are right. Will need to try this to see how it works.
At any rate, the first step is ChimeraX AlphaFold prediction needs to return the distance matrix, and AlphaFold DB fetch needs to be able to fetch the distance matrix from EBI.
comment:3 by , 4 years ago
| Summary: | Show PAE values → Show AlphaFold residue-residue distance errors |
|---|
comment:4 by , 4 years ago
| Summary: | Show AlphaFold residue-residue distance errors → Show AlphaFold predicted aligned error (PAE) for selected residues |
|---|
Related ticket #6472 provides PAE matrix heatmap visualization and computing domains from the PAE matrix and coloring residues by domain.
I don't quite see how the command proposed in this ticket to color selected residues using PAE values relative to another residue is too useful. It seems like the researcher is going to have to really know what they are doing to get some value out of this, and few do. The coloring by PAE domains seems more widely useful and understandable, and maybe improvements to PAE domain calculation, e.g. gui control of clustering parameters might be more widely useful. I only have a few days experience with the PAE domain coloring so far so not enough cases to understand how effective it is. It can be used with the "alphafold pae" command "colorDomains true" option.
comment:5 by , 4 years ago
The important distinction here is that (a) the colour-by-domain approach, while useful, is a binary yes/no thing, and (b) the heatmap visualisation can be challenging to interpret. Consider the scenario in the session attached to the ticket: yes, the colour-by-domain approach clearly separates the sheet from the contacting helices, but it doesn't tell us if this is a possibly real interaction (e.g. weak/transient leading to moderate PAE values - say 2-5A) or entirely coincidental with very high PAE. The proposed colouring approach would make that immediately obvious.
by , 4 years ago
| Attachment: | color_by_pae.cxs added |
|---|
Color-by-PAE example (colored blue-white-red relative to Lys557)
comment:6 by , 4 years ago
Attached a concrete example (AlphaFold-DB prediction for A0A077Z1M1). The 1092-1104 helix is the interesting bit here - the domain-clustering code clusters it with its sequence neighbours and not with the long helix it contacts, and it would be easy to dismiss it as a rubbish chance association given all the junk flanking it. But according to the PAE matrix there's some reasonable confidence in its positioning... colouring relative to a confident residue in the N-terminal domain immediately makes that pop - and just as clearly shows that the rest of the C-terminus is essentially junk. Implementation is pretty trivial - the values feeding into the colormap are just pae_matrix[:,r.number-1].
comment:8 by , 4 years ago
Ok. I agree it gives some finer control allowing you to look at the confidence of residues positions relative to a specified residue. Still not convinced that anyone is going to figure out how to use this. Here's another idea I was considering for how to depict the PAE in more detail. For every spatially contacting pair of residues show a pseudobond colored according to the PAE value. So you would see a mass of pseudobonds colored red between two helices that were not confidently positioned relative to one another, or colored blue for high confidence, or a smattering of different colors for intermediate confidence. This could be limited to just add the pseudobonds between CA of selected residues or maybe from selected residues to all contacting neighbors for clearer visualization. The difference here is the user doesn't need to know some special residue to pick. Although I guess it is only a minor variation on what you propose. At any rate, we agree there is useful information in PAE we want to get a better look at.
comment:9 by , 4 years ago
I can see your approach being really useful too, but I think both have their own strengths and weaknesses. An advantage of the colouring approach is that it also gives some impression of long-range flexibility, which might be useful in some situations. It's simple (i.e. fast) enough that it could perhaps be implemented as a mouse mode - right click on any atom to colour the model by PAE relative to that residue.
follow-up: 8 comment:10 by , 4 years ago
Yeah, the mouse mode idea is attractive, since it allows fast probing by the user. I am interested in trying it out.
comment:11 by , 4 years ago
| Cc: | added |
|---|
A user at Phil Cruz's PAE talk also asked about coloring residues near a selected residue according to PAE value.
A similar way to visualize the PAE values in a local region would be to show colored pseudobonds between adjacent residues in a region, for instance between selected and neighboring unselected residues as in ticket #6621.
follow-up: 10 comment:12 by , 3 years ago
Just added the alphafold contacts command (ticket #6621) that shows pseudobonds between close residues colored by PAE.
Added by email2trac