<div dir="ltr">Hi Josh, <div><br></div><div>An IMP model contains a list of particles that are tightly associated with it (a particle does not exist outside the context of a model). Given the disclaimer that I have never used ConfigurationSet, my understanding from its documentation is that when you load a configuration, the values of the particles within the model are updated accordingly. If I understand your code correctly, &#39;all&#39; is the root of the hierarchy in your model, so it is &#39;all&#39; that you should add to the rmf. The values of &#39;all&#39; and all of its children are supposed to update when you load a configuration, automatically.</div>

<div><br></div><div>All that being said said - use this advice at own risk, perhaps someone could advise you better. Let me know if you have more questions.</div><div><div><br></div><div>Barak</div></div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Wed, Jul 2, 2014 at 3:42 PM, Josh Bullock <span dir="ltr">&lt;<a href="mailto:jma.bullock@gmail.com" target="_blank">jma.bullock@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><br><div class="gmail_extra"><br>Conceptually I do ( i think ... ) but not practically. I&#39;m hoping to view each of the models i created - with MSrestraints - separately as an .rmf in chimera, just so i can see what i&#39;m making !</div>


<div class="gmail_extra"><br></div><div class="gmail_extra">so i have created my models using:</div><div class="gmail_extra"><br></div><div class="gmail_extra">cs= get_conformations(m)</div><div class="gmail_extra"><br></div>


<div class="gmail_extra">do i have to assign each model to a particle before i can write it to an .rmf ? Or is each model already a particle with hierarchy ?</div><div class="gmail_extra"><br></div><div class="gmail_extra">


-------------------------------------------</div><div class=""><div class="gmail_extra"><br></div><div class="gmail_extra">for i in range(0, cs.get_number_of_configurations()):<br></div></div><div class="gmail_extra"><div class="gmail_extra">


    cs.load_configuration(i)</div><div class="gmail_extra">    h = IMP.atom.Hierarchy(m)    # &lt;------- how do i call the hierarchy of the current loaded configuration ?</div><div class="gmail_extra">    c = p.get_children(h)</div>

<div class="">
<div class="gmail_extra">    tfn = IMP.create_temporary_file_name(&quot;josh%d&quot;%i, &quot;.rmf&quot;)</div><div class="gmail_extra">    rh = RMF.create_rmf_file(tfn)</div><div class="gmail_extra">   </div><div class="gmail_extra">


    # add the hierarchy to the file</div><div class="gmail_extra">    IMP.rmf.add_hierarchies(rh, h)</div><div class="gmail_extra">    </div><div class="gmail_extra">    # add the current configuration to the file as frame 0</div>


<div class="gmail_extra">    IMP.rmf.save_frame(rh)</div><br></div><div class="gmail_quote"><div class="">On 2 July 2014 23:03,  <span dir="ltr">&lt;<a href="mailto:imp-users-request@salilab.org" target="_blank">imp-users-request@salilab.org</a>&gt;</span> wrote:<br>


</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="">Send IMP-users mailing list submissions to<br>


        <a href="mailto:imp-users@salilab.org" target="_blank">imp-users@salilab.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:imp-users-request@salilab.org" target="_blank">imp-users-request@salilab.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:imp-users-owner@salilab.org" target="_blank">imp-users-owner@salilab.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of IMP-users digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. Re: Sampling and writing to pym/rmf (Barak Raveh)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br></div>
Date: Wed, 2 Jul 2014 15:03:19 -0700<div class=""><br>
From: Barak Raveh &lt;<a href="mailto:barak.raveh@gmail.com" target="_blank">barak.raveh@gmail.com</a>&gt;<br>
To: Help and discussion for users of IMP &lt;<a href="mailto:imp-users@salilab.org" target="_blank">imp-users@salilab.org</a>&gt;<br>
Subject: Re: [IMP-users] Sampling and writing to pym/rmf<br>
Message-ID:<br></div>
        &lt;CAHp+_UqO8rXRMsUSndbg-c0jyDxnswDe9aFKvW889gGMU=<a href="mailto:4MMQ@mail.gmail.com" target="_blank">4MMQ@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<div><div class="h5"><br>
<br>
* I meant<br>
<br>
h = IMP.atom.Hierarchy(p)<br>
c = p.get_children(h)<br>
<br>
this assumes that particle p was already decorated as Hierarchy (let me<br>
know if you are not familiar with decorators, Hierarchy, or Particle).<br>
<br>
<br>
<br>
On Wed, Jul 2, 2014 at 3:02 PM, Barak Raveh &lt;<a href="mailto:barak.raveh@gmail.com" target="_blank">barak.raveh@gmail.com</a>&gt; wrote:<br>
<br>
&gt; Hi Josh,<br>
&gt;<br>
&gt; I think get_children() is only a member function of Hierarchy, so you<br>
&gt; should do something like<br>
&gt;<br>
&gt; IMP.atom.Hierarchy(p)<br>
&gt; c = p.get_children()<br>
&gt;<br>
&gt; &#39;cs&#39; seems to be a ConfigurationSet object - are you sure that you expect<br>
&gt; it to have children?<br>
&gt;<br>
&gt; What do you want to do?<br>
&gt;<br>
&gt; Cheers,<br>
&gt; Barak<br>
&gt;<br>
&gt; On Wed, Jul 2, 2014 at 1:42 PM, Josh Bullock &lt;<a href="mailto:jma.bullock@gmail.com" target="_blank">jma.bullock@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt;&gt; ah sorry ! this line gives me the error<br>
&gt;&gt;<br>
&gt;&gt; h= IMP.atom.Hierarchy.get_children(cs)<br>
&gt;&gt;<br>
&gt;&gt; thanks<br>
&gt;&gt;<br>
&gt;&gt; josh<br>
&gt;&gt;<br>
&gt;&gt; On 2 July 2014 17:45, &lt;<a href="mailto:imp-users-request@salilab.org" target="_blank">imp-users-request@salilab.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Send IMP-users mailing list submissions to<br>
&gt;&gt;&gt;         <a href="mailto:imp-users@salilab.org" target="_blank">imp-users@salilab.org</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; To subscribe or unsubscribe via the World Wide Web, visit<br>
&gt;&gt;&gt;         <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
&gt;&gt;&gt; or, via email, send a message with subject or body &#39;help&#39; to<br>
&gt;&gt;&gt;         <a href="mailto:imp-users-request@salilab.org" target="_blank">imp-users-request@salilab.org</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You can reach the person managing the list at<br>
&gt;&gt;&gt;         <a href="mailto:imp-users-owner@salilab.org" target="_blank">imp-users-owner@salilab.org</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; When replying, please edit your Subject line so it is more specific<br>
&gt;&gt;&gt; than &quot;Re: Contents of IMP-users digest...&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Today&#39;s Topics:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;    1. Re: Sampling and writing to pym/rmf (Barak Raveh) (Barak Raveh)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ----------------------------------------------------------------------<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Message: 1<br>
&gt;&gt;&gt; Date: Wed, 2 Jul 2014 09:45:30 -0700<br>
&gt;&gt;&gt; From: Barak Raveh &lt;<a href="mailto:barak.raveh@gmail.com" target="_blank">barak.raveh@gmail.com</a>&gt;<br>
&gt;&gt;&gt; To: Help and discussion for users of IMP &lt;<a href="mailto:imp-users@salilab.org" target="_blank">imp-users@salilab.org</a>&gt;<br>
&gt;&gt;&gt; Subject: Re: [IMP-users] Sampling and writing to pym/rmf (Barak Raveh)<br>
&gt;&gt;&gt; Message-ID:<br>
&gt;&gt;&gt;         &lt;CAHp+_Uo19VasJDJYi+2CoUUu=<br>
&gt;&gt;&gt; <a href="mailto:u_6duKCraVetU4dW45%2BoDhTAw@mail.gmail.com" target="_blank">u_6duKCraVetU4dW45+oDhTAw@mail.gmail.com</a>&gt;<br>
&gt;&gt;&gt; Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Which lines throws the error?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, Jul 2, 2014 at 4:56 AM, Josh Bullock &lt;<a href="mailto:jma.bullock@gmail.com" target="_blank">jma.bullock@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt; Hi Barek,<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; So I&#39;m not giving hierarchy.get_children the correct input:<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; TypeError: unbound method get_children() must be called with Hierarchy<br>
&gt;&gt;&gt; &gt; instance as first argument (got ConfigurationSet instance instead)<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; I&#39;m not sure which argument is the hierarchy instance.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Thanks,<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Josh<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; -------------------------------------------------<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; cs= get_conformations(m)<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; for i in range(0, cs.get_number_of_configurations()):<br>
&gt;&gt;&gt; &gt;     JOSH = cs.load_configuration(i)<br>
&gt;&gt;&gt; &gt;     S= IMP.atom.Selection<br>
&gt;&gt;&gt; &gt;     h= IMP.atom.Hierarchy.get_children(cs)<br>
&gt;&gt;&gt; &gt;     tfn = IMP.create_temporary_file_name(&quot;josh%d&quot;%i, &quot;.rmf&quot;)<br>
&gt;&gt;&gt; &gt;     rh = RMF.create_rmf_file(tfn)<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On 1 July 2014 17:31, &lt;<a href="mailto:imp-users-request@salilab.org" target="_blank">imp-users-request@salilab.org</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; Send IMP-users mailing list submissions to<br>
&gt;&gt;&gt; &gt;&gt;         <a href="mailto:imp-users@salilab.org" target="_blank">imp-users@salilab.org</a><br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; To subscribe or unsubscribe via the World Wide Web, visit<br>
&gt;&gt;&gt; &gt;&gt;         <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
&gt;&gt;&gt; &gt;&gt; or, via email, send a message with subject or body &#39;help&#39; to<br>
&gt;&gt;&gt; &gt;&gt;         <a href="mailto:imp-users-request@salilab.org" target="_blank">imp-users-request@salilab.org</a><br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; You can reach the person managing the list at<br>
&gt;&gt;&gt; &gt;&gt;         <a href="mailto:imp-users-owner@salilab.org" target="_blank">imp-users-owner@salilab.org</a><br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; When replying, please edit your Subject line so it is more specific<br>
&gt;&gt;&gt; &gt;&gt; than &quot;Re: Contents of IMP-users digest...&quot;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Today&#39;s Topics:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;    1. Re: Sampling and writing to pym/rmf (Barak Raveh)<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; ----------------------------------------------------------------------<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Message: 1<br>
&gt;&gt;&gt; &gt;&gt; Date: Tue, 1 Jul 2014 09:31:33 -0700<br>
&gt;&gt;&gt; &gt;&gt; From: Barak Raveh &lt;<a href="mailto:barak.raveh@gmail.com" target="_blank">barak.raveh@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; To: Help and discussion for users of IMP &lt;<a href="mailto:imp-users@salilab.org" target="_blank">imp-users@salilab.org</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; Subject: Re: [IMP-users] Sampling and writing to pym/rmf<br>
&gt;&gt;&gt; &gt;&gt; Message-ID:<br>
&gt;&gt;&gt; &gt;&gt;         &lt;CAHp+_UowiBwJozbwOfi8yFEVt7Z8o2tEZ=<br>
&gt;&gt;&gt; &gt;&gt; <a href="mailto:LvYPnJh-LjpC2cSA@mail.gmail.com" target="_blank">LvYPnJh-LjpC2cSA@mail.gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Hi Josh, from a very superficial look, your code to write the RMF<br>
&gt;&gt;&gt; files<br>
&gt;&gt;&gt; &gt;&gt; seems fine - do you get an output RMF file? Could you load it in<br>
&gt;&gt;&gt; Chimera?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; On Tue, Jul 1, 2014 at 2:40 AM, Josh Bullock &lt;<a href="mailto:jma.bullock@gmail.com" target="_blank">jma.bullock@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; Hello,<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; I&#39;m relatively new to all this so please let me know if i&#39;m making<br>
&gt;&gt;&gt; any<br>
&gt;&gt;&gt; &gt;&gt; &gt; obvious errors ...<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; Essentially all i&#39;m trying to do is generate an ensemble of models<br>
&gt;&gt;&gt; made<br>
&gt;&gt;&gt; &gt;&gt; &gt; from four subunits - constrained by MS connectivity restraints. The<br>
&gt;&gt;&gt; &gt;&gt; models<br>
&gt;&gt;&gt; &gt;&gt; &gt; get scored but nothing seems to write to the pymol file. Ideally i&#39;d<br>
&gt;&gt;&gt; &gt;&gt; like<br>
&gt;&gt;&gt; &gt;&gt; &gt; to write to an .rmf but i haven&#39;t worked that one out either ...<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; Is this a reasonable way to go about my problem ?<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; Many thanks,<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; Josh<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; -------------------------------------------<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; import IMP<br>
&gt;&gt;&gt; &gt;&gt; &gt; import IMP.atom<br>
&gt;&gt;&gt; &gt;&gt; &gt; import IMP.rmf<br>
&gt;&gt;&gt; &gt;&gt; &gt; import inspect<br>
&gt;&gt;&gt; &gt;&gt; &gt; import IMP.container<br>
&gt;&gt;&gt; &gt;&gt; &gt; import IMP.display<br>
&gt;&gt;&gt; &gt;&gt; &gt; import IMP.statistics<br>
&gt;&gt;&gt; &gt;&gt; &gt; #import IMP.example<br>
&gt;&gt;&gt; &gt;&gt; &gt; import sys, math, os, optparse<br>
&gt;&gt;&gt; &gt;&gt; &gt; import RMF<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; from optparse import OptionParser<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # Convert the arguments into strings and number<br>
&gt;&gt;&gt; &gt;&gt; &gt; Firstpdb = str(sys.argv[1])<br>
&gt;&gt;&gt; &gt;&gt; &gt; Secondpdb = str(sys.argv[2])<br>
&gt;&gt;&gt; &gt;&gt; &gt; Thirdpdb = str(sys.argv[3])<br>
&gt;&gt;&gt; &gt;&gt; &gt; Fourthpdb = str(sys.argv[4])<br>
&gt;&gt;&gt; &gt;&gt; &gt; models = float(sys.argv[5])<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; #*****************************************<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # the spring constant to use, it doesnt really matter<br>
&gt;&gt;&gt; &gt;&gt; &gt; k=100<br>
&gt;&gt;&gt; &gt;&gt; &gt; # the target resolution for the representation, this is used to<br>
&gt;&gt;&gt; specify<br>
&gt;&gt;&gt; &gt;&gt; &gt; how detailed<br>
&gt;&gt;&gt; &gt;&gt; &gt; # the representation used should be<br>
&gt;&gt;&gt; &gt;&gt; &gt; resolution=300<br>
&gt;&gt;&gt; &gt;&gt; &gt; # the box to perform everything<br>
&gt;&gt;&gt; &gt;&gt; &gt; bb=IMP.algebra.BoundingBox3D(IMP.algebra.Vector3D(0,0,0),<br>
&gt;&gt;&gt; &gt;&gt; &gt;                              IMP.algebra.Vector3D(300, 300, 300))<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # this function creates the molecular hierarchies for the various<br>
&gt;&gt;&gt; &gt;&gt; involved<br>
&gt;&gt;&gt; &gt;&gt; &gt; proteins<br>
&gt;&gt;&gt; &gt;&gt; &gt; def create_representation():<br>
&gt;&gt;&gt; &gt;&gt; &gt;     m= IMP.Model()<br>
&gt;&gt;&gt; &gt;&gt; &gt;     all=IMP.atom.Hierarchy.setup_particle(IMP.Particle(m))<br>
&gt;&gt;&gt; &gt;&gt; &gt;     all.set_name(&quot;the universe&quot;)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # create a protein, represented as a set of connected balls of<br>
&gt;&gt;&gt; &gt;&gt; &gt; appropriate<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # radii and number, chose by the resolution parameter and the<br>
&gt;&gt;&gt; &gt;&gt; number of<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # amino acids.<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;     def create_protein_from_pdbs(name, files):<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         def create_from_pdb(file):<br>
&gt;&gt;&gt; &gt;&gt; &gt;             sls=IMP.SetLogState(IMP.NONE)<br>
&gt;&gt;&gt; &gt;&gt; &gt;             datadir = os.getcwd()<br>
&gt;&gt;&gt; &gt;&gt; &gt;             print datadir<br>
&gt;&gt;&gt; &gt;&gt; &gt;     t=IMP.atom.read_pdb( datadir+&#39;/&#39; + file, m,<br>
&gt;&gt;&gt; &gt;&gt; &gt;                                  IMP.atom.ATOMPDBSelector())<br>
&gt;&gt;&gt; &gt;&gt; &gt;             del sls<br>
&gt;&gt;&gt; &gt;&gt; &gt;             #IMP.atom.show_molecular_hierarchy(t)<br>
&gt;&gt;&gt; &gt;&gt; &gt;             c=IMP.atom.Chain(IMP.atom.get_by_type(t,<br>
&gt;&gt;&gt; &gt;&gt; &gt; IMP.atom.CHAIN_TYPE)[0])<br>
&gt;&gt;&gt; &gt;&gt; &gt;             if c.get_number_of_children()==0:<br>
&gt;&gt;&gt; &gt;&gt; &gt;                 IMP.atom.show_molecular_hierarchy(t)<br>
&gt;&gt;&gt; &gt;&gt; &gt;             # there is no reason to use all atoms, just approximate<br>
&gt;&gt;&gt; the<br>
&gt;&gt;&gt; &gt;&gt; &gt; pdb shape instead<br>
&gt;&gt;&gt; &gt;&gt; &gt;             s=IMP.atom.create_simplified_along_backbone(c,<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; resolution/300.0)<br>
&gt;&gt;&gt; &gt;&gt; &gt;             IMP.atom.destroy(t)<br>
&gt;&gt;&gt; &gt;&gt; &gt;             # make the simplified structure rigid<br>
&gt;&gt;&gt; &gt;&gt; &gt;             rb=IMP.atom.create_rigid_body(s)<br>
&gt;&gt;&gt; &gt;&gt; &gt; #            rb=IMP.atom.create_rigid_body(c)<br>
&gt;&gt;&gt; &gt;&gt; &gt;             rb.set_coordinates_are_optimized(True)<br>
&gt;&gt;&gt; &gt;&gt; &gt;             return s<br>
&gt;&gt;&gt; &gt;&gt; &gt; #            return c<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         h= create_from_pdb(files[0])<br>
&gt;&gt;&gt; &gt;&gt; &gt;         h.set_name(name)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         all.add_child(h)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;     create_protein_from_pdbs(&quot;A&quot;, [Firstpdb])<br>
&gt;&gt;&gt; &gt;&gt; &gt;     create_protein_from_pdbs(&quot;B&quot;, [Secondpdb])<br>
&gt;&gt;&gt; &gt;&gt; &gt;     create_protein_from_pdbs(&quot;C&quot;, [Thirdpdb])<br>
&gt;&gt;&gt; &gt;&gt; &gt;     create_protein_from_pdbs(&quot;D&quot;, [Fourthpdb])<br>
&gt;&gt;&gt; &gt;&gt; &gt;     #create_protein_from_pdbs(&quot;C&quot;, [&quot;rpt3_imp.pdb&quot;])<br>
&gt;&gt;&gt; &gt;&gt; &gt;     return (m, all)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # create the needed restraints and add them to the model<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; def create_restraints(m, all):<br>
&gt;&gt;&gt; &gt;&gt; &gt;     def add_connectivity_restraint(s):<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         tr= IMP.core.TableRefiner()<br>
&gt;&gt;&gt; &gt;&gt; &gt;         rps=[]<br>
&gt;&gt;&gt; &gt;&gt; &gt;         for sc in s:<br>
&gt;&gt;&gt; &gt;&gt; &gt;             ps= sc.get_selected_particles()<br>
&gt;&gt;&gt; &gt;&gt; &gt;             rps.append(ps[0])<br>
&gt;&gt;&gt; &gt;&gt; &gt;             tr.add_particle(ps[0], ps)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         # duplicate the IMP.atom.create_connectivity_restraint<br>
&gt;&gt;&gt; &gt;&gt; &gt; functionality<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         score=<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; IMP.core.KClosePairsPairScore(IMP.core.HarmonicSphereDistancePairScore(0,1),tr)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         r= IMP.core.MSConnectivityRestraint(m,score)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         iA = r.add_type([rps[0]])<br>
&gt;&gt;&gt; &gt;&gt; &gt;         iB = r.add_type([rps[1]])<br>
&gt;&gt;&gt; &gt;&gt; &gt;         iC = r.add_type([rps[2]])<br>
&gt;&gt;&gt; &gt;&gt; &gt;         iD = r.add_type([rps[3]])<br>
&gt;&gt;&gt; &gt;&gt; &gt;         n1 = r.add_composite([iA, iB, iC, iD])<br>
&gt;&gt;&gt; &gt;&gt; &gt;         n2 = r.add_composite([iA, iB], n1)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         n3 = r.add_composite([iC, iD], n1)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         n4 = r.add_composite([iB, iC, iD], n1)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;         m.add_restraint(r)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;     evr=IMP.atom.create_excluded_volume_restraint([all])<br>
&gt;&gt;&gt; &gt;&gt; &gt;     m.add_restraint(evr)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # a Selection allows for natural specification of what the<br>
&gt;&gt;&gt; &gt;&gt; restraints<br>
&gt;&gt;&gt; &gt;&gt; &gt; act on<br>
&gt;&gt;&gt; &gt;&gt; &gt;     S= IMP.atom.Selection<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sA=S(hierarchy=all, molecule=&quot;A&quot;)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sB=S(hierarchy=all, molecule=&quot;B&quot;)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sC=S(hierarchy=all, molecule=&quot;C&quot;)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sD=S(hierarchy=all, molecule=&quot;D&quot;)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     add_connectivity_restraint([sA, sB, sC, sD])<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # find acceptable conformations of the model<br>
&gt;&gt;&gt; &gt;&gt; &gt; def get_conformations(m):<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sampler= IMP.core.MCCGSampler(m)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sampler.set_bounding_box(bb)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # magic numbers, experiment with them and make them large<br>
&gt;&gt;&gt; enough for<br>
&gt;&gt;&gt; &gt;&gt; &gt; things to work<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sampler.set_number_of_conjugate_gradient_steps(100)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sampler.set_number_of_monte_carlo_steps(20)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sampler.set_number_of_attempts(models)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # We don&#39;t care to see the output from the sampler<br>
&gt;&gt;&gt; &gt;&gt; &gt;     sampler.set_log_level(IMP.SILENT)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # return the IMP.ConfigurationSet storing all the found<br>
&gt;&gt;&gt; &gt;&gt; configurations<br>
&gt;&gt;&gt; &gt;&gt; &gt; that<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # meet the various restraint maximum scores.<br>
&gt;&gt;&gt; &gt;&gt; &gt;     cs= sampler.create_sample()<br>
&gt;&gt;&gt; &gt;&gt; &gt;     return cs<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # cluster the conformations and write them to a file<br>
&gt;&gt;&gt; &gt;&gt; &gt; def analyze_conformations(cs, all, gs):<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # we want to cluster the configurations to make them easier to<br>
&gt;&gt;&gt; &gt;&gt; &gt; understand<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # in the case, the clustering is pretty meaningless<br>
&gt;&gt;&gt; &gt;&gt; &gt;     embed= IMP.statistics.ConfigurationSetXYZEmbedding(cs,<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;  IMP.container.ListSingletonContainer(IMP.atom.get_leaves(all)),<br>
&gt;&gt;&gt; True)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     cluster= IMP.statistics.create_lloyds_kmeans(embed, 10, 10000)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # dump each cluster center to a file so it can be viewed.<br>
&gt;&gt;&gt; &gt;&gt; &gt;     for i in range(cluster.get_number_of_clusters()):<br>
&gt;&gt;&gt; &gt;&gt; &gt;         center= cluster.get_cluster_center(i)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         cs.load_configuration(i)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         w= IMP.display.PymolWriter(&quot;cluster.%d.pym&quot;%i)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         for g in gs:<br>
&gt;&gt;&gt; &gt;&gt; &gt;             w.add_geometry(g)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; #******************************************************************************************<br>
&gt;&gt;&gt; &gt;&gt; &gt; # now do the actual work<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; (m,all)= create_representation()<br>
&gt;&gt;&gt; &gt;&gt; &gt; IMP.atom.show_molecular_hierarchy(all)<br>
&gt;&gt;&gt; &gt;&gt; &gt; create_restraints(m, all)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # in order to display the results, we need something that maps the<br>
&gt;&gt;&gt; &gt;&gt; &gt; particles onto<br>
&gt;&gt;&gt; &gt;&gt; &gt; # geometric objets. The IMP.display.Geometry objects do this<br>
&gt;&gt;&gt; mapping.<br>
&gt;&gt;&gt; &gt;&gt; &gt; # IMP.display.XYZRGeometry map an IMP.core.XYZR particle onto a<br>
&gt;&gt;&gt; sphere<br>
&gt;&gt;&gt; &gt;&gt; &gt; gs=[]<br>
&gt;&gt;&gt; &gt;&gt; &gt; for i in range(all.get_number_of_children()):<br>
&gt;&gt;&gt; &gt;&gt; &gt;     color= IMP.display.get_display_color(i)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     n= all.get_child(i)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     name= n.get_name()<br>
&gt;&gt;&gt; &gt;&gt; &gt;     g= IMP.atom.HierarchyGeometry(n)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     g.set_color(color)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     gs.append(g)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; cs= get_conformations(m)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; print &quot;found&quot;, cs.get_number_of_configurations(), &quot;solutions&quot;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; ListScores = []<br>
&gt;&gt;&gt; &gt;&gt; &gt; for i in range(0, cs.get_number_of_configurations()):<br>
&gt;&gt;&gt; &gt;&gt; &gt;         cs.load_configuration(i)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         # print the configuration<br>
&gt;&gt;&gt; &gt;&gt; &gt;         print &quot;solution number: &quot;,i,&quot;scored :&quot;, m.evaluate(False)<br>
&gt;&gt;&gt; &gt;&gt; &gt;         ListScores.append(m.evaluate(False))<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; f1 = open(&quot;out_scores.csv&quot;, &quot;w&quot;)<br>
&gt;&gt;&gt; &gt;&gt; &gt; f1.write(&quot;\n&quot;.join(map(lambda x: str(x), ListScores)))<br>
&gt;&gt;&gt; &gt;&gt; &gt; f1.close()<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # for each of the configuration, dump it to a file to view in pymol<br>
&gt;&gt;&gt; &gt;&gt; &gt; for i in range(0, cs.get_number_of_configurations()):<br>
&gt;&gt;&gt; &gt;&gt; &gt;     JOSH = cs.load_configuration(i)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     S= IMP.atom.Selection<br>
&gt;&gt;&gt; &gt;&gt; &gt;     h= IMP.atom.Hierarchy.get_children(cs)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     tfn = IMP.create_temporary_file_name(&quot;josh%d&quot;%i, &quot;.rmf&quot;)<br>
&gt;&gt;&gt; &gt;&gt; &gt;     rh = RMF.create_rmf_file(tfn)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # add the hierarchy to the file<br>
&gt;&gt;&gt; &gt;&gt; &gt;     IMP.rmf.add_hierarchies(rh, h)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;     # add the current configuration to the file as frame 0<br>
&gt;&gt;&gt; &gt;&gt; &gt;     IMP.rmf.save_frame(rh)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;     for g in gs:<br>
&gt;&gt;&gt; &gt;&gt; &gt;         w.add_geometry(g)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; analyze_conformations(cs, all, gs)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt; &gt;&gt; &gt; IMP-users mailing list<br>
&gt;&gt;&gt; &gt;&gt; &gt; <a href="mailto:IMP-users@salilab.org" target="_blank">IMP-users@salilab.org</a><br>
&gt;&gt;&gt; &gt;&gt; &gt; <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt; &gt;&gt; Barak<br>
&gt;&gt;&gt; &gt;&gt; -------------- next part --------------<br>
&gt;&gt;&gt; &gt;&gt; An HTML attachment was scrubbed...<br>
&gt;&gt;&gt; &gt;&gt; URL: &lt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; <a href="http://salilab.org/archives/imp-users/attachments/20140701/7b0e5f9f/attachment.html" target="_blank">http://salilab.org/archives/imp-users/attachments/20140701/7b0e5f9f/attachment.html</a><br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; ------------------------------<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; &gt;&gt; IMP-users mailing list<br>
&gt;&gt;&gt; &gt;&gt; <a href="mailto:IMP-users@salilab.org" target="_blank">IMP-users@salilab.org</a><br>
&gt;&gt;&gt; &gt;&gt; <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; End of IMP-users Digest, Vol 38, Issue 2<br>
&gt;&gt;&gt; &gt;&gt; ****************************************<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt; &gt; IMP-users mailing list<br>
&gt;&gt;&gt; &gt; <a href="mailto:IMP-users@salilab.org" target="_blank">IMP-users@salilab.org</a><br>
&gt;&gt;&gt; &gt; <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Barak<br>
&gt;&gt;&gt; -------------- next part --------------<br>
&gt;&gt;&gt; An HTML attachment was scrubbed...<br>
&gt;&gt;&gt; URL: &lt;<br>
&gt;&gt;&gt; <a href="http://salilab.org/archives/imp-users/attachments/20140702/081e70ca/attachment.html" target="_blank">http://salilab.org/archives/imp-users/attachments/20140702/081e70ca/attachment.html</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; ------------------------------<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; IMP-users mailing list<br>
&gt;&gt;&gt; <a href="mailto:IMP-users@salilab.org" target="_blank">IMP-users@salilab.org</a><br>
&gt;&gt;&gt; <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; End of IMP-users Digest, Vol 38, Issue 4<br>
&gt;&gt;&gt; ****************************************<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; IMP-users mailing list<br>
&gt;&gt; <a href="mailto:IMP-users@salilab.org" target="_blank">IMP-users@salilab.org</a><br>
&gt;&gt; <a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Barak<br>
&gt;<br>
<br>
<br>
<br>
--<br>
Barak<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br></div></div>
URL: &lt;<a href="http://salilab.org/archives/imp-users/attachments/20140702/74f552a1/attachment.html" target="_blank">http://salilab.org/archives/imp-users/attachments/20140702/74f552a1/attachment.html</a>&gt;<div class="">

<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
IMP-users mailing list<br>
<a href="mailto:IMP-users@salilab.org" target="_blank">IMP-users@salilab.org</a><br>
<a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
<br>
<br></div>
End of IMP-users Digest, Vol 38, Issue 7<br>
****************************************<br>
</blockquote></div><br></div></div>
<br>_______________________________________________<br>
IMP-users mailing list<br>
<a href="mailto:IMP-users@salilab.org">IMP-users@salilab.org</a><br>
<a href="https://salilab.org/mailman/listinfo/imp-users" target="_blank">https://salilab.org/mailman/listinfo/imp-users</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Barak
</div>