Comments (8)
I don't know. If operations in Jeremy Cockcroft's tables or in International Tables of Crystallography are ordered according to some rules, I could try to use these rules in gemmi.
But perhaps the order is just random, I don't know.
from gemmi.
hmm the obvious answer would be that the order is determined by the successive application of the symmetry generators ; in this case 2_1 = is a 180° (twofold) rotation followed by a translation of 1/2 of the lattice vector, so the second entry must in fact be -x+1/2,y+1/2,-z+1/2 in this case.
In the documentation you state that gemmi derives its symmetry operators from the HM symbols, so the order should be correct when generating? - or is there a sorting step in between
from gemmi.
Operations are derived from Hall symbols. H-M P 1 21/n 1
corresponds to Hall symbol -P 2yn
,
which encodes two generators:
-x,-y,-z
-x+1/2,y+1/2,-z+1/2
The first one is encoded by -
. If I'd put the -x,-y,-z
generator as the last one I'd get the same order for this space group.
This is a trivial change that I can do. But I don't know if helps with other space groups.
from gemmi.
I did this change. For P 1 21/n 1 the order is now the same as on the linked page. I didn't check other space groups.
from gemmi.
thanks, but I would ask you to revert the change. I have tested with spglib, which gives the same order as gemmi (before modification). I think I found that the spacegroups are decomposed into the cosets under the translation group ... I need to figure out exactly how to do this, maybe later I can provide a function for getting the ITA order.
from gemmi.
But on the other hand the new order is the same as in cctbx and CCP4 syminfo.lib.
from gemmi.
ok. Have you tested for other space groups as well?
I also suspect is is just a question of how the data is stored (triplet form for all or generated)
but the symmetry operations order must be defined somehow (the cif field _symmetry_equiv_pos_as_xyz should be the same always no matter which program generated the cif file). .. if I find out something I will report back. Thanks
from gemmi.
I don't think that the order matters. The coreCIF spec only requires that x,y,z has id=1. Apart from this the order of _symmetry_equiv_pos_as_xyz is not specified.
from gemmi.
Related Issues (20)
- auto completion for gemmi grep HOT 1
- Uses of graph isomorphism and pynauty? HOT 2
- Segfault when importing `gemmi.cif` HOT 2
- crash with very large mmCIF files (and large number of datablock) in gemmi grep HOT 11
- Missing _struct_ref_seq in cif generated from PDB without optional TER. HOT 2
- Apparent sudden extra dependency for gemmi (zlib) HOT 5
- sequence aligning with align_sequence_to_polymer HOT 10
- TER's effecting aligning HOT 4
- Adding additional properties to the Structure object present in the cif atom_site table HOT 1
- [FEATURE REQUEST] Add Python typing for `Vec3.__iter__` HOT 2
- crash with set_extent HOT 4
- Bug in `get_all_unit_cell_sites()` HOT 5
- pdb/cif entity subchain comparisons HOT 1
- Advice to deal with AF3's broken CIF files HOT 1
- Gemmi read_ccp4_map fails to correctly set the correct spacing from a .MAP file HOT 2
- [Bug Report] read_pdb mishandle the columns of extreme wild pdb files HOT 5
- [Question] bulk reading mmcif coordinates into a numpy array HOT 2
- Creating a structure from list of residues and their coordinates HOT 2
- Float comparison fails `static_assert(weights[static_cast<int>(El::D)] == 2.0141, "Hmm")` on some architectures HOT 7
- Segfault when iterating over multiple structures HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gemmi.