| 1 | #
|
|---|
| 2 | # Example opening volume file and accessing data size, xyz coordinates, and
|
|---|
| 3 | # data values.
|
|---|
| 4 | #
|
|---|
| 5 | # Volume grid data object is defined in Chimera file
|
|---|
| 6 | #
|
|---|
| 7 | # chimera/share/VolumeData/griddata.py
|
|---|
| 8 | #
|
|---|
| 9 | from chimera import openModels
|
|---|
| 10 | v = openModels.open('/usr/local/src/chimera-demos/volume/examples/1a0m.omap')[0]
|
|---|
| 11 |
|
|---|
| 12 | d = v.data
|
|---|
| 13 | print 'read map', d.name
|
|---|
| 14 |
|
|---|
| 15 | isize, jsize, ksize = d.size
|
|---|
| 16 | print 'data size', isize, jsize, ksize
|
|---|
| 17 |
|
|---|
| 18 | istep, jstep, kstep = d.step
|
|---|
| 19 | print 'voxel size', istep, jstep, kstep
|
|---|
| 20 | print 'voxel volume', istep*jstep*kstep
|
|---|
| 21 |
|
|---|
| 22 | i,j,k = 15,7,13
|
|---|
| 23 | x,y,z = d.ijk_to_xyz((i,j,k))
|
|---|
| 24 | print 'xyz for index', i, j, k, 'is', x, y, z
|
|---|
| 25 |
|
|---|
| 26 | m = d.matrix()
|
|---|
| 27 | print 'data value at ijk', i, j, k, 'is', m[k,j,i]
|
|---|
| 28 |
|
|---|
| 29 | from numpy import float32
|
|---|
| 30 | print 'sum of all data values', m.sum(dtype = float32)
|
|---|
| 31 |
|
|---|
| 32 | nz = len(m.nonzero()[0])
|
|---|
| 33 | print 'number of non-zero values', nz, 'of', m.size
|
|---|
| 34 |
|
|---|
| 35 | print 'volume occupied by non-zero values', nz * istep * jstep * kstep
|
|---|