Opened 6 weeks ago

Closed 43 hours ago

Last modified 43 hours ago

#18886 closed enhancement (limitation)

Associated structure with profile grid sequence is slow

Reported by: goddard@… Owned by: Eric Pettersen
Priority: normal Milestone:
Component: Sequence Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-15.6.1-arm64-arm-64bit
ChimeraX Version: 1.11.dev202509171705 (2025-09-17 17:05:04 UTC)
Description
Took 15 seconds to open a homodimer when I have a 45000 sequence profile grid open and the dimer has an exact match to a subsequence of the first profile grid sequence.  The profile grid is a Boltz "paired" alignment where homologs of 2 different proteins have been concatenated.

Log:
UCSF ChimeraX version: 1.11.dev202509171705 (2025-09-17)  
© 2016-2025 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open /Users/goddard/ucsf/presentations/local-msa-
> sep2025/data/mg_7_11/paired.fasta format fasta

Summary of feedback from opening /Users/goddard/ucsf/presentations/local-msa-
sep2025/data/mg_7_11/paired.fasta  
---  
warning | AL2CO performs poorly for more than 10000 sequences; switching to identity histogram conservation  
notes | Alignment identifier is paired.fasta  
Showing conservation header ("seq_conservation" residue attribute) for
alignment paired.fasta  
  
Opened 45007 sequences from paired.fasta  

> open
> /Users/goddard/ucsf/local_msa/test_7_11/boltz_dimers/boltz_results_boltz_dimers/predictions/MG_011.MG_011/MG_011.MG_011_model_0.cif
> format mmcif

MG_011.MG_011_model_0.cif title:  
. [more info...]  
  
Chain information for MG_011.MG_011_model_0.cif #1  
---  
Chain | Description  
A B | .  
  
Color MG_011.MG_011_model_0.cif by residue attribute pLDDT_score  
Associated MG_011.MG_011_model_0.cif chain A to reference with 0 mismatches  
Associated MG_011.MG_011_model_0.cif chain B to reference with 0 mismatches  
Computing secondary structure  

QTextHtmlParser::applyAttributes: Unknown color name '{color}'  




OpenGL version: 4.1 Metal - 89.4
OpenGL renderer: Apple M2 Ultra
OpenGL vendor: Apple

Python: 3.11.9
Locale: en_US.UTF-8
Qt version: PyQt6 6.9.1, Qt 6.9.0
Qt runtime version: 6.9.2
Qt platform: cocoa
Hardware:

    Hardware Overview:

      Model Name: Mac Studio
      Model Identifier: Mac14,14
      Model Number: Z1800003VLL/A
      Chip: Apple M2 Ultra
      Total Number of Cores: 24 (16 performance and 8 efficiency)
      Memory: 64 GB
      System Firmware Version: 11881.140.96
      OS Loader Version: 11881.140.96

Software:

    System Software Overview:

      System Version: macOS 15.6.1 (24G90)
      Kernel Version: Darwin 24.6.0
      Time since boot: 36 days, 19 hours, 12 minutes

Graphics/Displays:

    Apple M2 Ultra:

      Chipset Model: Apple M2 Ultra
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 60
      Vendor: Apple (0x106b)
      Metal Support: Metal 3
      Displays:
        PHL 278B1:
          Resolution: 3840 x 2160 (2160p/4K UHD 1 - Ultra High Definition)
          UI Looks like: 1920 x 1080 @ 60.00Hz
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Rotation: Supported


Installed Packages:
    alabaster: 1.0.0
    appdirs: 1.4.4
    appnope: 0.1.4
    asttokens: 3.0.0
    babel: 2.17.0
    beautifulsoup4: 4.13.5
    blockdiag: 3.0.0
    blosc2: 3.8.0
    build: 1.3.0
    certifi: 2025.8.3
    cftime: 1.6.4.post1
    charset-normalizer: 3.4.3
    ChimeraX-AddCharge: 1.5.20
    ChimeraX-AddH: 2.2.7
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.6.1
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 3.0.2
    ChimeraX-AlphaFold: 1.0.1
    ChimeraX-AltlocExplorer: 1.1.2
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Aniso: 1.3.2
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.60.17
    ChimeraX-AtomicLibrary: 14.2
    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.1
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.2
    ChimeraX-BuildStructure: 2.13.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.6.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.5
    ChimeraX-ChemGroup: 2.0.2
    ChimeraX-Clashes: 2.3
    ChimeraX-clix: 0.2.4
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.8
    ChimeraX-CommandLine: 1.3.0
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.11.dev202509171705
    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.3
    ChimeraX-Help: 1.3
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.4
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-KVFinder: 1.7.1
    ChimeraX-Label: 1.2
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.2.1
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.2
    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.2
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.17.1
    ChimeraX-MedicalToolbar: 1.1
    ChimeraX-Meeting: 1.0.1
    ChimeraX-Minimize: 1.2
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.16
    ChimeraX-MMTF: 2.2
    ChimeraX-ModelArchive: 1.0
    ChimeraX-Modeller: 1.5.22
    ChimeraX-ModelPanel: 1.6
    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.1
    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.15.1
    ChimeraX-OrthoPick: 1.0.1
    ChimeraX-PDB: 2.7.11
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.5
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PhenixUI: 1.3.9
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.3
    ChimeraX-ProfileGrids: 1.3.1
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.6.5
    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.2
    ChimeraX-Scenes: 0.2.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.2
    ChimeraX-Shape: 1.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.2.1
    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.48.2
    ChimeraX-Umap: 1.0
    ChimeraX-uniprot: 2.3.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDock: 1.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.5
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.2.3
    contourpy: 1.3.3
    coverage: 7.10.6
    cxservices: 1.2.3
    cycler: 0.12.1
    Cython: 3.1.3
    debugpy: 1.8.17
    decorator: 5.2.1
    docutils: 0.21.2
    executing: 2.2.1
    filelock: 3.19.1
    fonttools: 4.60.0
    funcparserlib: 2.0.0a0
    glfw: 2.10.0
    grako: 3.16.5
    h5py: 3.14.0
    html2text: 2025.4.15
    idna: 3.10
    ihm: 2.2
    imagecodecs: 2024.6.1
    imagesize: 1.4.1
    iniconfig: 2.1.0
    ipykernel: 6.30.1
    ipython: 9.5.0
    ipython_pygments_lexers: 1.1.1
    ipywidgets: 8.1.7
    jedi: 0.19.2
    Jinja2: 3.1.6
    joblib: 1.5.0
    jupyter_client: 8.6.3
    jupyter_core: 5.8.1
    jupyterlab_widgets: 3.0.15
    kiwisolver: 1.4.9
    line_profiler: 5.0.0
    llvmlite: 0.44.0
    lxml: 6.0.1
    lz4: 4.3.2
    Markdown: 3.8.2
    MarkupSafe: 3.0.2
    matplotlib: 3.10.3
    matplotlib: 3.10.5
    matplotlib-inline: 0.1.7
    msgpack: 1.1.1
    ndindex: 1.10.0
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numba: 0.61.2
    numexpr: 2.12.1
    numpy: 1.26.4
    OpenMM: 8.2.0
    openvr: 1.26.701
    packaging: 25.0
    ParmEd: 4.2.2
    parso: 0.8.5
    pep517: 0.13.1
    pexpect: 4.9.0
    pickleshare: 0.7.5
    pillow: 11.3.0
    pip: 25.2
    pkginfo: 1.12.1.2
    platformdirs: 4.4.0
    pluggy: 1.6.0
    prompt_toolkit: 3.0.52
    psutil: 7.0.0
    ptyprocess: 0.7.0
    pure_eval: 0.2.3
    py-cpuinfo: 9.0.0
    pybind11: 3.0.1
    pycollada: 0.8
    pydicom: 2.4.4
    Pygments: 2.18.0
    pynmrstar: 3.3.6
    pynndescent: 0.5.13
    pynrrd: 1.0.0
    PyOpenGL: 3.1.10
    PyOpenGL-accelerate: 3.1.10
    pyopenxr: 1.1.4501
    pyparsing: 3.2.4
    pyproject_hooks: 1.2.0
    PyQt6: 6.9.1
    PyQt6-Qt6: 6.9.2
    PyQt6-WebEngine: 6.9.0
    PyQt6-WebEngine-Qt6: 6.9.2
    PyQt6_sip: 13.10.2
    pytest: 8.4.2
    pytest-cov: 7.0.0
    python-dateutil: 2.9.0.post0
    pytz: 2025.2
    pyzmq: 27.1.0
    qtconsole: 5.7.0
    QtPy: 2.4.3
    qtshim: 1.2
    RandomWords: 0.4.0
    requests: 2.32.4
    roman-numerals-py: 3.1.0
    scikit-learn: 1.6.1
    scipy: 1.14.0
    Send2Trash: 1.8.3
    SEQCROW: 1.9.2
    setuptools: 80.9.0
    sfftk-rw: 0.8.1
    six: 1.17.0
    snowballstemmer: 3.0.1
    sortedcontainers: 2.4.0
    soupsieve: 2.8
    Sphinx: 8.2.3
    sphinx-autodoc-typehints: 3.2.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.6
    tables: 3.10.2
    tcia_utils: 1.5.1
    threadpoolctl: 3.6.0
    tifffile: 2025.3.13
    tinyarray: 1.2.5
    tornado: 6.5.2
    tqdm: 4.67.1
    traitlets: 5.14.3
    typing_extensions: 4.15.0
    tzdata: 2025.2
    umap-learn: 0.5.7
    urllib3: 2.5.0
    wcwidth: 0.2.13
    webcolors: 24.11.1
    wheel: 0.45.1
    wheel-filename: 1.4.2
    widgetsnbextension: 4.0.14
File attachment: paired.fasta

paired.fasta

Attachments (2)

paired.fasta (23.8 MB ) - added by goddard@… 6 weeks ago.
Added by email2trac
MG_011.MG_011_model_0.cif (399.9 KB ) - added by Tom Goddard 6 weeks ago.

Change History (7)

by goddard@…, 6 weeks ago

Attachment: paired.fasta added

Added by email2trac

comment:1 by Tom Goddard, 6 weeks ago

Component: UnassignedSequence
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionAssociated structure with profile grid sequence is slow
Type: defectenhancement

by Tom Goddard, 6 weeks ago

Attachment: MG_011.MG_011_model_0.cif added

comment:2 by Tom Goddard, 6 weeks ago

Eric says:

I don't think you mentioned it was a subsequence before. If it's only a subsequence then the association machinery will keep looking at the rest of the sequences searching for a longer match.

Nonetheless, it may be possible to get some improvement by migrating the association's loop through the sequences over to C++.

--Eric

comment:3 by Tom Goddard, 6 weeks ago

Yeah, forgot that important detail. Makes sense that it has to look for a better match although every residue of the structure was exactly matched so if that is easy to detect it might be worth terminating the search as soon as that exact match of the structure is found. That may not be such a rare case.

comment:4 by Eric Pettersen, 43 hours ago

Resolution: limitation
Status: assignedclosed

Well, this is not particularly simple. The association algorithm looks at the sequences in order such that as soon as it sees an association with zero errors it can break out of the loop. That means that for chains whose sequence is longer than all the alignment sequences, it looks through the sequences from longest to shortest. For chains shorter than all alignment sequences, it looks through them from shortest to longest. For other cases, it uses a special fairly complex ordering (which is the case here, the reference sequence is #44915 out of 45007).

If you are doing this in a script, you could open the alignment with autoassociate false, and then use "seq assoc" to associate the chain with the reference sequence specifically.

comment:5 by Tom Goddard, 43 hours ago

I am not sure auto-associate for alignments shown in Profile Grids is a good default. It seems like this will mean once you've opened a large alignment (100,000) sequences ChimeraX will be incredibly slow to open any atomic models, for reasons that won't be apparent to the user. Maybe the default should be not to auto-associate with very large alignments.

Note: See TracTickets for help on using tickets.