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

P0C7U0_questionable_interface.cxs

Attachments (2)

P0C7U0_questionable_interface.cxs (1.1 MB ) - added by Tristan Croll 4 years ago.
Added by email2trac
color_by_pae.cxs (457.9 KB ) - added by Tristan Croll 4 years ago.
Color-by-PAE example (colored blue-white-red relative to Lys557)

Download all attachments as: .zip

Change History (14)

by Tristan Croll, 4 years ago

Added by email2trac

comment:1 by Eric Pettersen, 4 years ago

Cc: Eric Pettersen added
Component: UnassignedStructure Prediction
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionShow PAE values
Type: defectenhancement

comment:2 by Tom Goddard, 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 Tom Goddard, 4 years ago

Summary: Show PAE valuesShow AlphaFold residue-residue distance errors

comment:4 by Tom Goddard, 4 years ago

Summary: Show AlphaFold residue-residue distance errorsShow 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 Tristan Croll, 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 Tristan Croll, 4 years ago

Attachment: color_by_pae.cxs added

Color-by-PAE example (colored blue-white-red relative to Lys557)

comment:6 by Tristan Croll, 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:7 by Tristan Croll, 4 years ago

D'oh! That should actually be pae_matrix[r.number-1] (row, not column).

in reply to:  10 comment:8 by goddard@…, 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 Tristan Croll, 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.

in reply to:  12 ; comment:10 by goddard@…, 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 Tom Goddard, 4 years ago

Cc: phil.cruz@… 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.

comment:12 by Tom Goddard, 3 years ago

Just added the alphafold contacts command (ticket #6621) that shows pseudobonds between close residues colored by PAE.

Note: See TracTickets for help on using tickets.