[cctbxbb] crystal packing/unit cell question

Nat Echols nathaniel.echols at gmail.com
Thu Nov 3 16:17:55 PDT 2011


If I understand what Jessica is trying to do, it doesn't necessarily
need to be in the minimal cell (this is what I tried to do before, and
failed), as long as the symmetry mates are actually packing against
each other.  But it should be possible to do it both ways with
additional translations.

On Thu, Nov 3, 2011 at 4:14 PM, Pavel Afonine <pafonine at lbl.gov> wrote:
> The original question did not mention the requirement for atoms to me in the
> minimal cell with the origin (0,0,0) or I probably missed it. Ok, this new
> requirement can be achieved by a few extra lines, so the whole algorithm is:
>
> - use expand_to_p1 using sites_mod_positive=False, exactly as before, then
> - use Ralf's minimal covering sphere algorithm to pack everything together
> (Ralf: is it in svn?) (is it necessary - need to think - can't tell right
> away);
> - then shift the whole thing such that the minimal atomic xyz is 000, or
> much better, use the underlying algorithm of iotbx.pdb.box_around_molecule,
> which will create a P1 box centered around symmetry expanded molecules.
>
> I think a combination of above should solve the issue even if I missed a
> detail.
>
> Pavel
>
> On 11/3/11 4:02 PM, Nat Echols wrote:
>>
>> Neither of these will work, for the reasons that were already stated -
>> with sites_mod_positive=False, the symmetry mates do not necessarily
>> end up with most atoms in the minimal unit cell with origin at 0,0,0,
>> and with sites_mod_positive=True, all atoms are in the unit cell, but
>> the protein chains are chopped up.  Neither of these shows how the
>> crystal is packed.  Doing so requires sampling translations of the
>> fractional coordinates.
>>
>> On Thu, Nov 3, 2011 at 2:29 PM, Pavel Afonine<pafonine at lbl.gov>  wrote:
>>>
>>> Hi Jessica,
>>>
>>> try with sites_mod_positive=False (this is what I mentioned this morning
>>> in my previous email). I think (but not sure) one of them should do "what
>>> you want" . I just tried. Run the attached script with the PDB file of your
>>> choice, and compare the results.
>>>
>>> Pavel
>>>
>>>
>>> On 11/3/11 12:42 PM, Jessica Grant wrote:
>>>
>>> Thanks everyone, for the input.  I have written a little script using
>>> your help.  Attached is an image -- the green is the output of my script,
>>> the blue is the original pdb file.
>>> code looks like this:
>>> from iotbx.file_reader import any_file
>>> import sys
>>> from mmtbx import utils
>>>
>>> def run (args) :
>>> pdb_file = args[0]
>>>         pdb_inp = any_file(pdb_file, force_type="pdb").file_object
>>>
>>>         xray = pdb_inp.xray_structure_simple()
>>>   uc = xray.expand_to_p1(sites_mod_positive=True)
>>>
>>> outfile = open("unit_cell.pdb", "w")
>>>
>>>
>>>         utils.write_pdb_file(xray_structure = uc, pdb_hierarchy =
>>> pdb_inp.construct_hierarchy(), out = outfile)
>>> if __name__ == "__main__" :
>>>         run(sys.argv[1:])
>>>
>>> It doesn't look like it is doing quite what I want.  Oh...I just had the
>>> thought that perhaps I should apply the symmetry operators before using
>>> 'expand_to_P1'
>>>
>>> Maybe?
>>> Jessica
>>>
>>>
>>>
>>>
>>> 1) isn't this a method of the X-ray structure object, not one of the PDB
>>> objects?
>>>
>>> expand_to_p1 is a method from xray/structure.py. I just used it
>>> yesterday.
>>>
>>> 2) won't it split up molecules to keep the sites all inside the unit
>>> cell?
>>>
>>> I'm getting annoyed that it's not easier to do this kind of lattice
>>> generation for proteins, so I may just try coding it myself later today or
>>> tomorrow.  (I'd like to figure out something analogous to the 'symexp'
>>> function in PyMOL, but I think that's a little more work.)
>>>
>>> I can't imagine what can be easier than this? If you don't want to
>>> "split" copies to be all atoms from 1 to -1, then I guess
>>> sites_mod_positive=True (or False, I don't remember) should probably simply
>>> multiply copies.
>>> Anyway, it's faster to try than typing this email: try both, save
>>> xray_structure as PDB file and open it in PyMol.
>>>
>>> What is 'symexp' function in PyMOL ?
>>>
>>> Pavel
>>>
>>> _______________________________________________
>>> cctbxbb mailing list
>>> cctbxbb at phenix-online.org
>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>>
>>> _______________________________________________
>>> cctbxbb mailing list
>>> cctbxbb at phenix-online.org
>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>>
>>>
>>> _______________________________________________
>>> cctbxbb mailing list
>>> cctbxbb at phenix-online.org
>>> http://phenix-online.org/mailman/listinfo/cctbxbb
>>>
>> _______________________________________________
>> cctbxbb mailing list
>> cctbxbb at phenix-online.org
>> http://phenix-online.org/mailman/listinfo/cctbxbb
>
> _______________________________________________
> cctbxbb mailing list
> cctbxbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/cctbxbb
>


More information about the cctbxbb mailing list