= Attendees = * Elaine, Greg, Eric, TomG, TomF, Scooter (via Zoom) = Agenda = * ChimeraX registration * ChimeraX 0.6 performance * Review milestone priorities * Wildcard/regex/case matching in commands = Discussion = * ChimeraX registration code ''almost'' works, Conrad will look into it * ChimeraX 0.6 performance - From last meeting - Looking up bfactor (1 million times): - ChimeraX: - ctypes: 1.38s - custom library with property wrapping: 0.5s - custom library with no wrapping: 0.185s - random floating point attribute in Python: 0.072s - '''Cython with no wrapping: 0.021s''' - loop is in Cython - '''Cython with no wrapping: 0.156s''' - loop is in Python - Chimera 1: - access bfactor via wrappy2: 0.062s - '''custom library with no wrapping: 0.181s''' - Collect data - Cython is really fast - New Results - Cythonize Atom into Python type? method: '''0.098s'''; property: ~~'''0.119s'''~~ - bfactor property - straight type '''0.080s''' - class inheriting type '''0.092s''' - __dict__ enabled '''0.084s''' - coord property - returning numpy '''1.48s''' - returning tuple '''0.103s''' - Cythonize Atom methods? function: '''0.074s'''; method: '''0.204s'''; prop: '''0.135s''' - Cythonize hydrogen bond code? How hard is this? - Approach - Cythonize major objects (ctypes) - !Atom/Atoms - !Bond/Bonds - !Residue/Residues - Maybe higher level objects - Profile code and change data structures/algorithms to improve performance - Cythonize as it makes sense = Action Items = * Eric will convert Atom to Cython * Conrad will write bundle code tutorial * Conrad will continue working on ribbon tickets * Conrad will create ticket to investigate implementing the "like" operator - e.g., to specify polymer in atomspec