On 31 Oct 2017, at 12:34, Eric Pettersen <pett@cgl.ucsf.edu> wrote:Well, since the code is simple, I’ve included it below. You should put it in a file whose name in “.py” to indicate it’s Python code, then you can run it in Chimera simply by opening it. It will create a file named “output” in your home folder. It assumes you’re doing CA-CA distances, not CA-any. Probably still very slow.<ca.py>from chimera import openModels, Moleculemol = openModels.list(modelTypes=[Molecule])[0]cas = [ a for a in mol.atoms if a.name == “CA” and a.element.name == “C”]import os.pathf = open(os.path.expanduser(“~/output”), “w”)for i, ca1 in enumerate(cas):for ca2 in cas[i+1:]:print>>f, ca1, ca2, ca1.coord().distance(ca2.coord())f.close()Since my mail client does wonky things to quotation marks, I’ve also attached the above as a file.—EricOn Oct 31, 2017, at 11:36 AM, Eric Pettersen <pett@cgl.ucsf.edu> wrote:On Oct 31, 2017, at 9:54 AM, Kyle Morris <kylelmorris@berkeley.edu> wrote:
Dear chimera dev and users,
Is there a way to calculate (using the GUI, commands or using a python script) the pairwise distances for every single c-alpha atom in a set of loaded PDB coordinates and spit this out to a file for further analysis? There are 142,800 atoms in the current loaded assembly.
Do you mean CA-CA distances, or CA-any-other-atom distances? Even CA-CA only (assuming CAs are roughly 1/10 of your atoms) will be more than one hundred million distances, and CA-other will be more than a billion. Is this really what you want? If so, it would seem more efficient and much faster to write a special purpose program for this in a compiled language, like C, C++ or some such. It is of course doable in Chimera via Python. If you really do want to do it that way, I can offer further guidance...
—Eric
Eric Pettersen
UCSF Computer Graphics Lab
_______________________________________________
Chimera-users mailing list: Chimera-users@cgl.ucsf.edu
Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users