Opened 5 years ago

Closed 5 years ago

#3432 closed enhancement (fixed)

Atoms.transform trigger

Reported by: Tristan Croll Owned by: Eric Pettersen
Priority: normal Milestone:
Component: Structure Editing Version:
Keywords: Cc: Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Darwin-18.7.0-x86_64-i386-64bit
ChimeraX Version: 1.0rc202005292300 (2020-05-29 23:00:06 UTC)
Description
Would it be possible for the `Atoms.transform(Place)` method to fire a trigger distinct from 'coords changed', providing the atoms and the transform applied as data? One useful application of this in ISOLDE would be the (not entirely rare) situation where it makes sense to shift a particular chain (or ligand) from one symmetry-related position to another. This could be simply to create a more biologically relevant asymmetric unit, or to correct the geometry at an interface (since ISOLDE's simulations aren't symmetry aware, and probably won't be for quite some time). In either case, any restraints created by ISOLDE need to find out about the move and update intelligently to avoid creating a woeful mess.

OpenGL version: 4.1 INTEL-12.10.12
OpenGL renderer: Intel(R) HD Graphics 6000
OpenGL vendor: Intel Inc.Hardware:

    Hardware Overview:

      Model Name: MacBook Air
      Model Identifier: MacBookAir7,2
      Processor Name: 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
      Boot ROM Version: 188.0.0.0.0
      SMC Version (system): 2.27f2

Software:

    System Software Overview:

      System Version: macOS 10.14.6 (18G95)
      Kernel Version: Darwin 18.7.0
      Time since boot: 89 days 9:30

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: Supported, feature set macOS GPUFamily1 v4
      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
          Rotation: Supported
          Automatically Adjust Brightness: No
          Connection Type: DisplayPort

PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8

Change History (7)

comment:1 by Eric Pettersen, 5 years ago

Component: UnassignedStructure Editing
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionAtoms.transform trigger
Type: defectenhancement

comment:2 by Tom Goddard, 5 years ago

Cc: Eric Pettersen added
Resolution: fixed
Status: assignedclosed

There is a MODEL_POSITION_CHANGED trigger in core/models.py that seems to be what you need.

in reply to:  3 ; comment:3 by Tristan Croll, 5 years ago

Are you sure? Atoms.transform() changes the coordinates of the actual atoms (and updates the ANISOU terms accordingly) - it doesn’t change the model’s position.
 


comment:4 by Tom Goddard, 5 years ago

Resolution: fixed
Status: closedreopened

Oh, I didn't know the Atoms.transform() method existed. Eric added that so I'll let him deal with it.

comment:5 by Tom Goddard, 5 years ago

Cc: Tom Goddard added; Eric Pettersen removed
Owner: changed from Tom Goddard to Eric Pettersen
Status: reopenedassigned

in reply to:  6 ; comment:6 by Tristan Croll, 5 years ago

Actually, I wrote it, and Eric merged it. :) The rationale was to have a transform method that keeps ANISOUs consistent.

 

 


comment:7 by Eric Pettersen, 5 years ago

Resolution: fixed
Status: assignedclosed

Okay, pushed an (untested) code change. Let me know if there's anything wrong with it.

--Eric

Note: See TracTickets for help on using tickets.