[cctbxbb] fractional coordinate expansion ... share occupancy

David A Carr dcarr2 at gmu.edu
Fri Feb 2 08:12:33 PST 2007


Hello All,

Thanks to Ralph's modification in January I have had success with cctbx.

Now I have another question. Is there a method in the cctbx for dealing with shared occupancy coordinates?  I have a compound where in the reduced cell the x,y,z coordinates for two different atoms are the same and a "sof" fraction is given.  

What is the best practice for handling such points?

I have provided an example compound with scatterer code below as you will note the output has overlapping atoms and the resulting 58 points are not enough to cover the chemical formula. What do I need to do to fix this?

Thanks,

Andrew
****************************************
Dr. D. Andrew Carr
George Mason University
dcarr2 at gmu.edu

##
## The following example is
##  Na9.52 (Al7.2 Si16.8 O48) (H2 O)5.88
## DAC 1.12.07
##---------------------------------------
from cctbx import xray
from cctbx import crystal
from cctbx.array_family import flex

def demo():
  crystal_symmetry = crystal.symmetry(
    unit_cell="13.12,13.57,15.81,90.0,143.0,90.000000",
    space_group_symbol="C 1 2/m 1")
  scatterers = flex.xray_scatterer()
  scatterers.append(xray.scatterer(#element = "Si",
    label="Si1", site=(0.0042,0.2561,0.0965),occupancy=0.7))
  scatterers.append(xray.scatterer(#element = "Al",
    label="Al1", site=(0.0042,0.2561,0.0965),occupancy=0.3))
  scatterers.append(xray.scatterer(#element = "Si",
    label="Si2", site=(0.3442,0.1125,0.3278),occupancy=0.7))
  scatterers.append(xray.scatterer(#element = "Al",
    label="Al2", site=(0.3442,0.1125,0.3278),occupancy=0.3))
  scatterers.append(xray.scatterer(#element = "Si",
    label="Si3", site=(0.3497,0.1193,0.1355),occupancy=0.7))
  scatterers.append(xray.scatterer(#element = "Al",
    label="Al3", site=(0.3497,0.1193,0.1355),occupancy=0.3))
  #---------------------------------------------
  # Oxygens
  #---------------------------------------------
  scatterers.append(xray.scatterer(#element = "O",
    label="O1", site=(0,0.3203,0)))
  scatterers.append(xray.scatterer(#element = "O",
    label="O2", site=(0.4292,0.1372,0.2924)))
  scatterers.append(xray.scatterer(#element = "O",
    label="O3", site=(-.0283,0.3315,0.1491)))
  scatterers.append(xray.scatterer(#element = "O",
    label="O4", site=(0.5,0.1347,0.5)))
  scatterers.append(xray.scatterer(#element = "O",
    label="O5", site=(0.1993,0.2072,0.2422)))
  scatterers.append(xray.scatterer(#element = "O",
    label="O6", site=(0.308,0,0.0850)))
  scatterers.append(xray.scatterer(#element = "O",
    label="O7", site=(-.1454,0.1619,0.0205)))
  scatterers.append(xray.scatterer(#element = "O",
    label="O8", site=(0.256,0,0.289)))
  scatterers.append(xray.scatterer(#element = "Na",
    label="Na", site=(0.7235,0.2619,0.3904),occupancy=1.19))
  scatterers.append(xray.scatterer(#element = "O",
    label="O9", site=(0.663,0.5645,0.7249),occupancy=0.47))
  scatterers.append(xray.scatterer(#element = "O",
    label="O10", site=(0.304,0,0.686),occupancy=0.53))
  
  
  icsd_structure = xray.structure(
    crystal_symmetry=crystal_symmetry,
    scatterers=scatterers)
  icsd_structure.show_summary().show_scatterers()
  print
  icsd_structure.show_distances(distance_cutoff=2.5)
  print
  primitive_structure = icsd_structure.primitive_setting()
  primitive_structure.show_summary().show_scatterers()
  print
  p1_structure = primitive_structure.expand_to_p1()
  p1_structure.show_summary().show_scatterers()
  print
  print "OK"

if (__name__ == "__main__"):
  demo()





-------------- next part --------------
A non-text attachment was scrubbed...
Name: dcarr2.vcf
Type: text/x-vcard
Size: 163 bytes
Desc: Card for David A Carr <dcarr2 at gmu.edu>
Url : http://www.phenix-online.org/pipermail/cctbxbb/attachments/20070202/7b1c1f1a/dcarr2.vcf


More information about the cctbxbb mailing list