I can use the function and commands.

Tsjerk Wassenaar wrote:

ATTENTION: The rotation matrix is in column-major order - that's understandable. Hence by multiplying with v[2], v[5] and v[8], you multiply the third column - not row! - with the coordinate vector, in order to get the rotated z-component. The matrix seems to be transposed. For me that is very unusual. In my R script, I made ordinary matrix multiplication and got erroneous results.Hi Johannes, Coincidentally, I found myself in need of the same functionality the other day. I came up with this: #### from pymol import cmd def clipped_by(at,v): x,y,z = at.coord nz = v[2]*(x-v[12])+v[5]*(y-v[13])+v[8]*(z-v[14])-v[11] return nz > v[15] and nz < v[16]

The function returns the atoms inside the planes.def clipped(selection="all",state=1): v = cmd.get_view() return [ i.id for i in cmd.get_model(selection,state).atom if clipped_by(i,v) ] #### The function 'clipped' returns a list of IDs for atoms from a given selection that are outside the clipping planes. You can use it like:

Hencerun clipped.py fetch 3lzt,async=0 clip near,-30 cmd.select_list("clipsed","3lzt",clipped("3lzt")) orient hide show spheres, not clipsed

Thank you very much.

Johannes

On Wed, Mar 2, 2011 at 5:27 PM, Johannes Wollbold <jwollbold@gmx.de> wrote:Hi, I implemented the coordinate transformation and the selection of atoms outside PyMol, in R. In principle it works, but there seems to be some error, since too many atoms are selected, corresponding roughly, but not completely to an enlarged clipping corridor between the planes defined by get_view, matrix elements (6,1) and (6,2). Or could it be that not the complete slab is visualized in PyMol? However, the missing atoms are completely shadowed. Do I understand the rows of the view matrix well (see http://www.pymolwiki.org/index.php/Get_View), by computing the following coordinate transformation?: 1) Translation of the original pdb coordinates by subtracting row 5 of the view matrix (translation of the coordinate origin to the rotation center). 2) Rotation of the coordinates by rows 1-3 of the view matrix. 3) Test: view[4,3] + view[6,1]) <= z <= view[4,3] + view[6,2]. Sorry for this simple question of affine geometry, but I hope I did not make a logical mistake in this domain... Regards Johannes Tsjerk Wassenaar wrote: Hi Johannes, It's not that hard. The clipping planes are defined by the z coordinate (in the viewing matrix). So you can get the atoms for a selection, transform to get the new z coordinate only, and check whether it's in between the planes: m = cmd.get_model(selection).atom v = cmd.get_view() m = [ i for i in m if clipped(i,v) ] So clipped should do the transform and check whether the atom is clipped. The trick then is to turn m back into a selection. Hope it helps, Tsjerk On Feb 25, 2011 5:18 PM, "Johannes Wollbold" <jwollbold@gmx.de> wrote: Jason Vertrees wrote: > Having said this, you can however, can get the clipping information > from P... Hi Jason, thank you again for the hint. First I looked if I can select atoms according to their coordinates, or store new coordinates after a rotation / shift. But implicitly you already said that such functionalities are not yet implemented. If clipping is performed with the original camera view, the task is simple. get_view gives the output (see above link to the help page): set_view (\ 1.000000000, 0.000000000, 0.000000000,\ 0.000000000, 1.000000000, 0.000000000,\ 0.000000000, 0.000000000, 1.000000000,\ 0.000000000, 0.000000000, -320.337890625,\ 74.147140503, 74.174217224, 74.123344421,\ 317.145324707, 323.530487061, -20.000000000 ) According to (4,3), the camera is shifted by -320 A in z direction only. Since (6,1) and (6,2) indicate the camera distances of the slab planes, I can select, in the pdb file, the atoms with (74 - 320 + 317 ) <= z <= (74 - 320 + 323). For different views, coordinate transformations with the rotation matrix of the first 3 lines are needed. This should not be very difficult, but perhaps somebody has already a solution? Best regards JohannesOn Thu, Feb 24, 2011 at 3:50 AM, Johannes Wollbold <jwollbold@gmx.de> wrote: > >> Hello, >> >>...------------------------------------------------------------------------------ Free Software Download: Index, Search & Analyze Logs and other IT data in Real-Time with Splunk. Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net