<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Thanks, I’ll try that.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Jim<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Eric Pettersen [mailto:pett@cgl.ucsf.edu]
<br>
<b>Sent:</b> Thursday, July 20, 2017 2:09 PM<br>
<b>To:</b> James Prestegard <jpresteg@ccrc.uga.edu><br>
<b>Cc:</b> chimera-dev@cgl.ucsf.edu<br>
<b>Subject:</b> Re: [chimera-dev] per-frame python script<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Jim,<o:p></o:p></p>
<div>
<p class="MsoNormal"><span class="apple-tab-span">            </span>You could do something hack-y like stow your persistent variables inside a global module (such as the chimera module), but it would be better to have your script not be a per-frame script,
 but instead a global script that advances the frames itself, so that you could handle your persistent data more naturally.  Assuming you have opened your trajectory in Chimera, here is the skeletal Python code to do that:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">from chimera import openModels, Molecule<br>
m = openModels.list(modelTypes=[Molecule])[0]<br>
m.loadAllFrames()<br>
indices = m.coordSets.keys()<br>
indices.sort()<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"># set up your persistent variables here<br>
for i in indices:<br>
        m.activeCoordSet = m.coordSets[i]<br>
        # do your per-frame computation here<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"># output final results here<br>
<br>
You would save your script into a file ending in ‘.py’, and then just use the “open” command to run it.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">—Eric<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span style="color:black">           
</span></span><span style="color:black">Eric Pettersen<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span class="apple-tab-span"><span style="color:black">           
</span></span><span style="color:black">UCSF Computer Graphics Lab<o:p></o:p></span></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On Jul 19, 2017, at 2:19 PM, James Prestegard <<a href="mailto:jpresteg@ccrc.uga.edu">jpresteg@ccrc.uga.edu</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">I’m trying to write a script to be used in the per-frame operation of chimera MD Movie (I’m not an accomplished python programmer).   The script I wrote calculates order parameters
 and internal relaxation elements.  It appears that I have to import some chimera commands as well as the python math library to do this.  Everything works on a single frame, but I need to pass some variables from frame to frame, and the import commands appear
 to reset all variables at each new frame.  Is there a way to set some global variables or to do the imports only once outside the pre-frame script?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Jim<span class="apple-converted-space"> </span><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">James H. Prestegard<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Professor and GRA Eminent Scholar, Emeritus<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Complex Carbohydrate Research Center<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">University of Georgia<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Athens, Georgia, 30602, USA<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">706-542-6281<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> <o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">_______________________________________________<br>
Chimera-dev mailing list<br>
</span><a href="mailto:Chimera-dev@cgl.ucsf.edu"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">Chimera-dev@cgl.ucsf.edu</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
</span><a href="http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev</span></a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>