fractional coordinate expansion ... share occupancy
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 [email protected] ## ## 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()
participants (1)
-
David A Carr