Hi Tristan,

Thank you very much!!
I will continue with my exploration and I am grateful for all the
assistance.

Best regards,
Orly

On Sun, Jan 12, 2020 at 11:18 PM Tristan Croll <[email protected]> wrote:

> (sending again because it seems the message board server gets a little
> confused by Python files as attachments).
>
> Hi Orly,
>
> Turns out I didn't have a pre-baked method for this specific task, but
> the method defined in the attached file works - although you'll
> undoubtedly want to adapt it to your specific purposes. To play around
> with it, download and install ChimeraX 0.91, then install Clipper with
> "toolshed install clipper" on its command line. Then, you can open the
> ChimeraX interactive Python shell with Tools/General/Shell. This comes
> with the top-level ChimeraX session object pre-loaded with the variable
> name "session". Copy-paste the method definition in to that, and you'll
> be ready to explore. You can also run Python files with "open xxx.py" on
> the command line or on starting ChimeraX with "chimerax xxx.py" - in
> either case, these will also have the session object automatically
> available.
>
> Best regards,
>
> Tristan
>
> On 2020-01-12 19:54, orly avraham wrote:
> > Hi Tristan,
> >
> > I am looking into all the options listed, yet would still highly
> > appreciate any additional resources!
> > If you would be kind enough to share an example script that would be
> > great.
> >
> > Best,
> > Orly
> >
> > On Sun, Jan 12, 2020 at 9:12 PM Tristan Croll <[email protected]> wrote:
> >
> >> Just to add to the already-excellent list of replies, this can also
> >> be done quite straightforwardly with the Clipper plugin in ChimeraX.
> >> I’d be happy to provide an example script if you want one.
> >>
> >> Best regards,
> >>
> >> Tristan
> >>
> >> On 12 Jan 2020, at 18:54, orly avraham
> >> <[email protected]> wrote:
> >>
> >> Hi Marcin,
> >>
> >> Thank you very much for your detailed reply!
> >> You pointed out many special cases that I wouldn't have thought of.
> >> Indeed an existing solution is highly preferred, and I appreciate
> >> you pointing out several available libraries. I came across Gemmi
> >> and I will give it another look, and I will examine the additional
> >> resources you mentioned as well.
> >>
> >> Best regards,
> >> Orly Avraham
> >>
> >> On Sun, Jan 12, 2020 at 5:59 PM Marcin Wojdyr <[email protected]>
> >> wrote:
> >> Hi Zhijie,
> >>
> >> it's good and instructive to implement such things from the ground
> >> up,
> >> but there are many special cases that one would be discovering while
> >> testing this procedure, so if the time is limited it may be better
> >> to
> >> use an existing solution.
> >>
> >> For instance, here one may find out that using the SCALE1 record
> >> doesn't give the sufficient accuracy. In the example in your script
> >> you have 6 significant digits in the unit cell lengths in CRYST1,
> >> but
> >> only 4 significant digits in SCALE1. (The accuracy of SCALE1 is
> >> problematic in general; sometimes it needs to be manually removed
> >> when
> >> a program reads it in preference to CRYST1.)
> >>
> >> Then one may find out that the 3x3x3 supercell is not sufficient. If
> >> the molecule is far from the origin, symmetry operations send it far
> >> away. For example, 5M3H annotates (in the mmCIF format) hydrogen
> >> bond
> >> between 1_555 and 2_11516 - the symmetry mate is shifted 16 unit
> >> cells
> >> in the z direction. Since you already use fractional coordinates in
> >> your script you could tell directly from the center-of-mass
> >> coordinates how many unit cells it should be shifted. Say, you have
> >> x=3.1, so to shift it near the origin you shift it by 3 unit cells
> >> along x.
> >>
> >> But even if all the molecules are shifted near the origin, the 3x3x3
> >> cell is still not sufficient to find contacts.
> >> See 3NWH – a homo-4-mer in P2 (4 x 2 chains per unit cell). Here
> >> it in
> >> its unit cell, colored by the chain id:
> >> https://gemmi.readthedocs.io/en/latest/_images/3nwh.png
> >> Or 5XG2 – a monomer in P21. Two copies of the chain are
> >> rainbow-colored here:
> >> https://gemmi.readthedocs.io/en/latest/_images/5xg2.png
> >> These chains span over more than 4 unit cells in one direction. One
> >> could use big enough supercell, but it'd be slow. I suppose that
> >> even
> >> using a 3x3x3 supercell is slow. The alternative is to do the
> >> distance
> >> calculation in fractional coordinates modulo 1.
> >>
> >> Then you needs to consider atoms on special positions. If you apply
> >> symmetry operations to an atom on a 4-fold symmetry axis you get 4
> >> atoms in the same place. So this needs to be handled. The atom may
> >> not
> >> be exactly on the axis, because the refinement program may not
> >> constrain its position. So the symmetry operations should produce, I
> >> think, 4 alternative locations of the same atom. But you could also
> >> have an atom near the symmetry axis bonded to its symmetry mate -
> >> then
> >> the symmetry operations should produce different atoms. So the
> >> procedure requires a cut-off distance or a heuristics to distinguish
> >> the two cases.
> >>
> >> Then, if you'd like to expand non-crystallographic symmetry from the
> >> MTRIX records - this is another complication. And so on...
> >>
> >> So I'd recommend using one of many available programs for finding
> >> contacts or interactions. If none of them is suitable - then try
> >> crystallographic libraries.
> >> I didn't document yet how to find the contacts using gemmi, but I'll
> >> do it in the coming weeks (or months). Cctbx and clipper are other
> >> (more mature) libraries worth checking.
> >>
> >> Best wishes,
> >> Marcin
> >>
> >> On Sat, 11 Jan 2020 at 02:11, Zhijie Li <[email protected]>
> >> wrote:
> >>>
> >>> Hi Orly,
> >>>
> >>> REMARK 290 should be the easiest way for generating symmetry
> >> mates. Other routes are just going to give you the same results. As
> >> Jonathan already pointed out, the symm ops do not garantee that the
> >> symm copies are close to each other.  The most simple-minded
> >> solution to this problem would be simply generating 3x3x3 unit cells
> >> so that the unit cell in center will be complete. An upgrade to this
> >> is to compute the center of mass of the symmetry copies in each of
> >> the 3x3c3 cells and find which one is closest to the orignal 1555
> >> copy.  Just for fun, I wrote a little python script that does this
> >> (attached). In this script for unit cell translation and calculating
> >> center-center distances, I converted the Cartesian coordinates to
> >> fractional coords first. Then after the translation,I used the
> >> inverse of the SCALE1 matrix to get the shifted Cartesian coords.
> >> This way I don't need to read wikipedia on geometry . But as noted
> >> in the script the distances should better be calculated in
> >> Cartesian.
> >>>
> >>> Zhijie
> >>>
> >>> ________________________________
> >>> From: CCP4 bulletin board <[email protected]> on behalf of
> >> orly avraham <[email protected]>
> >>> Sent: Friday, January 10, 2020 3:30 PM
> >>> To: [email protected] <[email protected]>
> >>> Subject: [ccp4bb] Generating symmetry mates using python
> >>>
> >>> Hi all,
> >>>
> >>> I am a crystallographer currently employing computational methods
> >> as well as experimental crystallography.
> >>> I am trying to generate symmetry mates in python (working with
> >> pandas dataframes), in order to analyze inter-sub-unit interactions.
> >> To do so I am trying to use the info in "REMARK 290 CRYSTALLOGRAPHIC
> >> SYMMETRY" and manually (using numpy) perform a matrix multiplication
> >> with the relevant translation (xyz*rotation + translation).
> >>> For some reason this doesn't work consistently and I feel I need
> >> to use the info in CRYST1 to obtain the unit cell and multiplication
> >> matrix. Here I ran into trouble with extracting the correct symmetry
> >> operations based on each space group. I found spglib but it doesn't
> >> quite solve the problem.
> >>> I also tried opening PyMol through the command and generating
> >> symmetry mates this way. It worked on a few files but failed quite
> >> quickly (segmentation fault) and was also very slow.
> >>> Can anyone suggest a useful solution, preferably clear to use
> >> and/or well documented? Or even have a python script/code they can
> >> share for this?
> >>>
> >>> Best regards,
> >>> Orly
> >>>
> >>> --
> >>>
> >>> Orly Avraham, Ph.D.
> >>> Postdoctoral fellow
> >>> The lab of Prof. Oded Livnah
> >>> and the lab of Prof. Ora Schueler-Furman
> >>> The Hebrew University of Jerusalem
> >>> Israel
> >>>
> >>>
> >>> ________________________________
> >>>
> >>> To unsubscribe from the CCP4BB list, click the following link:
> >>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
> >>>
> >>>
> >>> ________________________________
> >>>
> >>> To unsubscribe from the CCP4BB list, click the following link:
> >>> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
> >>
> >>
> > ########################################################################
> >>
> >> To unsubscribe from the CCP4BB list, click the following link:
> >> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
> >>
> >> --
> >>
> >> Orly Avraham, Ph.D.
> >> Postdoctoral fellow
> >> The lab of Prof. Oded Livnah
> >> and the lab of Prof. Ora Schueler-Furman
> >> The Hebrew University of Jerusalem
> >> Israel
> >>
> >> -------------------------
> >>
> >> To unsubscribe from the CCP4BB list, click the following link:
> >> https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1
> >
> > --
> >
> > Orly Avraham, Ph.D.
> > Postdoctoral fellow
> > The lab of Prof. Oded Livnah
> > and the lab of Prof. Ora Schueler-Furman
> > The Hebrew University of Jerusalem
> > Israel
>


-- 

Orly Avraham, Ph.D.
Postdoctoral fellow
The lab of Prof. Oded Livnah
and the lab of Prof. Ora Schueler-Furman
The Hebrew University of Jerusalem
Israel

########################################################################

To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1

Reply via email to