In [1]:
import chimera
import chemview
import numpy as np
chemview.enable_notebook()

In [2]:
chimera.runCommand("open 1RFO")


Fetching 1RFO from web site www.rcsb.org
0 Kbytes received
72 Kbytes received
176 Kbytes received
312 Kbytes received
456 Kbytes received
600 Kbytes received
744 Kbytes received
880 Kbytes received
1024 Kbytes received
Fetch 1RFO: finished
Done fetching 1RFO; verifying...
Opening 1RFO...
#0.8, chain A: whisker antigen control protein

#0.8, chain B: whisker antigen control protein

#0.8, chain C: whisker antigen control protein

#0.9, chain A: whisker antigen control protein

#0.9, chain B: whisker antigen control protein

#0.9, chain C: whisker antigen control protein

#0.10, chain A: whisker antigen control protein

#0.10, chain B: whisker antigen control protein

#0.10, chain C: whisker antigen control protein

#0.2, chain A: whisker antigen control protein

#0.2, chain B: whisker antigen control protein

#0.2, chain C: whisker antigen control protein

#0.3, chain A: whisker antigen control protein

#0.3, chain B: whisker antigen control protein

#0.3, chain C: whisker antigen control protein

#0.1, chain A: whisker antigen control protein

#0.1, chain B: whisker antigen control protein

#0.1, chain C: whisker antigen control protein

#0.4, chain A: whisker antigen control protein

#0.4, chain B: whisker antigen control protein

#0.4, chain C: whisker antigen control protein

#0.5, chain A: whisker antigen control protein

#0.5, chain B: whisker antigen control protein

#0.5, chain C: whisker antigen control protein

#0.6, chain A: whisker antigen control protein

#0.6, chain B: whisker antigen control protein

#0.6, chain C: whisker antigen control protein

#0.7, chain A: whisker antigen control protein

#0.7, chain B: whisker antigen control protein

#0.7, chain C: whisker antigen control protein

Traceback (most recent call last):
  File "/home/jrgp/.local/UCSF-Chimera64-alpha/share/chimera/triggerSet.py", line 83, in invoke
    self._funcData, triggerData)
  File "/home/jrgp/.local/UCSF-Chimera64-alpha/share/chimera/__init__.py", line 2605, in categorizeSurface
    processNewMolecules(prefModels)
  File "/home/jrgp/.local/UCSF-Chimera64-alpha/share/chimera/__init__.py", line 2479, in processNewMolecules
    hlColor = viewer.highlightColor
AttributeError: '_chimera.NoGuiViewer' object has no attribute 'highlightColor'

10 models opened
Error processing trigger "Bond":
AttributeError: '_chimera.NoGuiViewer' object has no attribute 'highlightColor'

  File "/home/jrgp/.local/UCSF-Chimera64-alpha/share/chimera/__init__.py", line 2479, in processNewMolecules
    hlColor = viewer.highlightColor

See reply log for Python traceback.



In [3]:
m = chimera.openModels.list()[0]

In [4]:
atoms = sorted(m.atoms, key=lambda a: a.serialNumber)
atom_map = {a: i for (i,a) in enumerate(atoms)}
coords = np.array([a.coord() for a in atoms])
types = tuple(a.element.name for a in atoms)
names = tuple(a.name for a in atoms)
bonds = tuple(tuple(atom_map[a] for a in b.atoms) for b in m.bonds)
residues = sorted(m.residues, key=lambda r: r.id.position)
residue_atoms = tuple(tuple(atom_map[a] for a in r.atoms) for r in residues)
residue_types = tuple(r.type for r in residues)
ss = {(True, False): "H", (False, True): "E", (False, False): "C"}
secondary_structure = tuple(ss[(r.isHelix, r.isSheet)] for r in residues)
topology = {'atom_types': types, 
            'atom_names': names, 
            'bonds':bonds,
            'residue_indices': residue_atoms,
            'residue_types': residue_types,
            'secondary_structure': secondary_structure}

In [14]:
v = chemview.MolecularViewer(coords, topology)
v.lines()
v.line_ribbon()
v

In [16]:
import time
for i in [1]*10+[-1]*10+[-1]*10+[1]*10:
    v.coordinates += i
    time.sleep(0.1)