Andreas, Thank you for posting that script.
One of the new features in the PyMOL 1.0 betas is the pseudoatom command which has a similar behavior. pseudoatom object-name, selection show spheres, object-name In terms of finding the center of mass, try: center selection print cmd.get_position() Cheers, Warren > -----Original Message----- > From: pymol-users-boun...@lists.sourceforge.net > [mailto:pymol-users-boun...@lists.sourceforge.net] On Behalf > Of Andreas Henschel > Sent: Friday, April 20, 2007 10:51 AM > To: Siv Midtun Hollup > Cc: pymol-users@lists.sourceforge.net > Subject: Re: [PyMOL] building centroids for residues > > Hi Siv, > > below is a python script (I sent earlier to the mailing list) > that calculates the Center of mass for a given selection and > creates a CGO sphere there. It is is not 100% exact as it > only weighs C-Alpha atoms. > This is exactly how pymol centers selections: when you run > the script, the domain is centered and if you rotate the > structure with the mouse, the CGO will remain centered. > For side chains you could make a selection of the sidechain > carbon atoms of that residue, or all of the side chain atoms: > > centerOfmass("/1n8o//E/41 and not (name c+n+o)"). > > Also see the ellipsoid script in the wiki. > CGOs and self defined atoms perfectly rotate along (infact > you are changing the camera view, the coordinates remain - > unless you explictely use cmd.rotate or cmd.translate). > See e.g. > http://yggdrasil.biotec.tu-dresden.de/abac/b.47.1.2___b.16.1.1 > ___g.4.1.1.html > > I hope that helps. > > ha det bra, > Andreas > > > from pymol import cmd > from pymol.cgo import * > > def centerOfMass(selection): > ## assumes equal weights (best called with "and name ca" suffix) > model = cmd.get_model(selection) > x,y,z=0,0,0 > for a in model.atom: > x+= a.coord[0] > y+= a.coord[1] > z+= a.coord[2] > return (x/len(model.atom), y/len(model.atom), z/len(model.atom)) > > cmd.load("/group/bioinf/Data/PDBLinks/1c7c.pdb") > cmd.select("domain", "/1c7c//A/143-283/ and name ca") ## > selecting a domain > > domainCenter=centerOfMass("domain") > > print "Center of mass: (%.1f,%.1f,%.1f)"% domainCenter > cmd.as("cartoon", "all") cmd.show("spheres", "domain") > > ## Creating a sphere CGO > com = [COLOR, 1.0, 1.0, 1.0, SPHERE]+list(domainCenter) + > [3.0] ## white sphere with 3A radius cmd.load_cgo(com, "CoM") > > cmd.zoom("1c7c", 1.0) > cmd.center("domain") > > #...@bioinfws19:~/Projects/PyMOL$ pymol -qc centerOfMass4.py > #Center of mass: (-1.0,24.5,48.2) #...@bioinfws19:~/Projects/PyMOL$ > > Siv Midtun Hollup wrote: > > >Hi, > > > >I would like to examine the approximate volume of different > residues in > >a protein. To do this, I would like to add a centroid for > each residue, > >and visualise the volume by using different sphere-sizes. > > > >Is there a built-in function to find center of mass for a > selection of atoms? > >The center command looks promising, can I get the coordinates of the > >center of mass using that? (feks using get_view() or similar?) > > > >Can I add a centroid "atom" to a residue in PYMOL? Would it be > >translated and rotated along with the residue if I move the > structure around afterwards? > > > >Any pointers much appriciated :) > > > >Cheers, > >Siv > > > > > > > > -- > Andreas Henschel > Bioinformatics Group > TU Dresden > Tatzberg 47-51 > 01307 Dresden, Germany > > Phone: +49 351 463 40063 > EMail: a...@biotec.tu-dresden.de > > > > -------------------------------------------------------------- > ----------- > This SF.net email is sponsored by DB2 Express Download DB2 > Express C - the FREE version of DB2 express and take control > of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > PyMOL-users mailing list > PyMOL-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pymol-users