[Chimera-users] Python script for reading volume values at atom positions
Terry Lang
terry at lego.berkeley.edu
Wed May 30 10:38:30 PDT 2007
Thanks! I'll try to test it out tomorrow!
Terry
Tom Goddard wrote:
> Hi Terry,
>
> Here is a Python script to read a volume map and a PDB file and print
> the values of the map interpolated at the atom positions. It will
> work without the Chimera graphical user interface. I tested it in
> Chimera 1.2415.
>
> Tom
>
> ------------------------------------------------------------------------
>
> # -----------------------------------------------------------------------------
> # Script that opens PDB and map files and prints the map values interpolated
> # at each atom position. Can be run without graphical user interface:
> #
> # chimera --nogui avalnogui.py
> #
> def map_values_at_atoms(pdb_path, map_path):
>
> # Open map file.
> # File name has to have file suffix indicating volume format.
> from VolumeData import open_file
> data = open_file(map_path)
> from VolumeViewer import Data_Region, full_region, Rendering_Options
> ro = Rendering_Options()
> map = Data_Region(data, full_region(data.size), '', ro)
> attribute_name = data.name.split('.')[0]
>
> # Open PDB model(s).
> from chimera import openModels
> molecules = openModels.open(pdb_path, 'PDB')
>
> # Interpolate map values at atom positions.
> from AtomDensity import set_atom_volume_values
> for mol in molecules:
> set_atom_volume_values(mol, map, attribute_name)
>
> # Print values.
> for mol in molecules:
> for a in mol.atoms:
> v = getattr(a, attribute_name)
> print '%-15s %12.4g' % (a.oslIdent(), v)
>
> # -----------------------------------------------------------------------------
> #
> map_path = '/usr/local/src/chimera-demos/volume/examples/1a0m.omap'
> pdb_path = '/usr/local/src/chimera-demos/volume/examples/1a0m.pdb'
> map_values_at_atoms(pdb_path, map_path)
>
--
P. Therese Lang
Postdoctoral Scholar
Alber Lab, UC Berkeley
More information about the Chimera-users
mailing list