#18886 closed enhancement (limitation)
Associated structure with profile grid sequence is slow
| Reported by: | 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
Attachments (2)
Change History (7)
by , 6 weeks ago
| Attachment: | paired.fasta added |
|---|
comment:1 by , 6 weeks ago
| Component: | Unassigned → Sequence |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Associated structure with profile grid sequence is slow |
| Type: | defect → enhancement |
by , 6 weeks ago
| Attachment: | MG_011.MG_011_model_0.cif added |
|---|
comment:2 by , 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 , 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 , 43 hours ago
| Resolution: | → limitation |
|---|---|
| Status: | assigned → closed |
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 , 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.
Added by email2trac