<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Navya,<div><span class="Apple-tab-span" style="white-space:pre">  </span>This later mail of yours provides some additional details that help.  So for one thing you might also want to look at the Programmer's Examples (<a href="http://www.cgl.ucsf.edu/chimera/docs/ProgrammersGuide/Examples/index.html">Examples</a>), particularly the first one ("Chimera's Object Model").  At any rate, the obvious problem with the script you have so far is that you haven't defined the 'residues' variable.  Let's say you are trying to work with residues 50.A, 55.A, and 70.A.  Here's a little code snippet that will get those residues into the 'residues' variable once you've opened your structure:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>rc("sel :50.a:55.a:70.a")</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>from chimera.selection import currentResidues</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>residues = currentResidues()</div><div><br></div><div>Now, I don't know where you're storing your lists of residues.  Are they in the same file as the IDs?  A separate file?  I don't know if you need more help with that or not.</div><div><br></div><div>So once you have the residues, then printing the atomic surface areas and bfactors is:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>for r in residues:</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>for a in r.atoms:</div><div><span class="Apple-tab-span" style="white-space:pre">                    </span>print>>outf, a, a.areaSAS, a.bfactor</div><div><br></div><div>Getting the CASTp information is another whole can of worms however, since Chimera stores that info in the CASTp dialog rather than with the atoms and residues.  Nonetheless, once you've got the rest of your script working you could try to do that part.  In would involve copying the processCastpID function from CASTp/__init__.py (in your Chimera installation's 'share' folder) and deleting the last two lines and instead return the cavity list.  Each CastpCavity instance has 'mouthInfo' and 'pocketInfo' attributes which are dictionaries that have an 'atoms' key.  The value for the 'atoms' key is a chimera.selection.ItemizedSelection instance.  You can use the contains() method of those ItemizedSelections to see if a particular atom is in the ItemizedSelection.  The pocketInfo dictionary also has 'SA volume' and 'MS volume' keys you can use to get the desired volume info.</div><div><br></div><div>--Eric</div><div><br>                        Eric Pettersen<br>                        UCSF Computer Graphics Lab<br>                        <a href="http://www.cgl.ucsf.edu">http://www.cgl.ucsf.edu</a></div><div><br></div><div><div><div>On Apr 16, 2014, at 12:44 PM, Navya Shilpa Josyula <<a href="mailto:njosyu2@uic.edu">njosyu2@uic.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi,<div><br></div><div>I need a help in chimera scripting. I have text file with list of PDB IDs and corresponding residue list. I am trying to write a chimera command which will scan this file, open each PDB ID and select the corresponding residues listed in the file. After selecting, it should write out the values of atomic areaSAS, atomic Bfactor and which atom belong to CASTp identified pockets (with pocket volume). I know I am asking a lot here but I am new to chimera scripting and I searched the users mailing list and found the "looping" script,</div>

<div><br></div><div><a href="http://www.cgl.ucsf.edu/pipermail/chimera-users/2012-February/007281.html">http://www.cgl.ucsf.edu/pipermail/chimera-users/2012-February/007281.html</a></div><div><br></div><div>but it is not working for me. Attached is the script I have till now. </div>

<div><br></div><div>Please help me on this. </div><div><br></div><div>Thank you in advance,</div><div>Navya</div></div>
<span><test.py></span></blockquote></div><div>import os</div><div>from chimera import runCommand as rc # use 'rc' as shorthand for runCommand</div><div>from chimera import replyobj # for emitting status messages</div><div><br></div><div># change to folder with data files</div><div>os.chdir("C:/Users/Navya Shilpa/Desktop/thesis/All_Proteins/nonred")</div><div><br></div><div># open file of PDB IDs</div><div>f = open("C:/Users/Navya Shilpa/Desktop/thesis/All_Proteins/nonred/nr-list.txt", 'r')</div><div><br></div><div># loop through the IDs, opening, processing, and closing each in turn</div><div>for line in f:</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>pdbID = line.strip()</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>replyobj.status("Processing " + pdbID) # show what PDB we're working on</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>rc("open " + pdbID)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>rc("surf") # surface receptor</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>outf = open(pdbID, "w")<span class="Apple-tab-span" style="white-space:pre">   </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>for r in residues:</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>print>>outf, r, r.areaSAS<span class="Apple-tab-span" style="white-space:pre">     </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>outf.close()<span class="Apple-tab-span" style="white-space:pre">                </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>rc("close all")</div><div># uncommenting the line below will cause Chimera to exit when the script is done</div><div>#rc("stop now")</div><div># note that indentation is significant in Python; the fact that</div><div># the above command is exdented means that it is executed after</div><div># the loop completes, whereas the indented commands that </div><div># preceded it are executed as part of the loop.</div></div><div><br></div><br><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; font-size: 16px; "><br><br class="Apple-interchange-newline"></span>
</div>
<br></body></html>