Package schrodinger :: Package application :: Package matsci :: Package nano :: Module xtal :: Class Crystal
[hide private]
[frames] | no frames]

Class Crystal

object --+
         |
        Crystal

Main class for generating crystals.

Instance Methods [hide private]
 
__init__(self, asymmetric_unit, space_group=ParserWrapper.SPACE_GROUP, a_param=ParserWrapper.A_PARAM, b_param=ParserWrapper.B_PARAM, c_param=ParserWrapper.C_PARAM, alpha_param=ParserWrapper.ALPHA_PARAM, beta_param=ParserWrapper.BETA_PARAM, gamma_param=ParserWrapper.GAMMA_PARAM, ncella=ParserWrapper.NCELLA, ncellb=ParserWrapper.NCELLB, ncellc=ParserWrapper.NCELLC, origin=ParserWrapper.ORIGIN, bonding=ParserWrapper.BONDING_DEFAULT, bond_orders=ParserWrapper.BOND_ORDERS_DEFAULT, translate=ParserWrapper.TRANSLATE_DEFAULT, keep_edge_atoms=ParserWrapper.KEEP_EDGE_ATOMS, cov_offset=ParserWrapper.COV_OFFSET, intact_molecules=ParserWrapper.INTACT_MOLECULES_DEFAULT, fract_offset=FRACT_OFFSET, no_pbc_bonding=ParserWrapper.NO_PBC_BONDING, logger=None)
Create an instance.
 
handleSettings(self)
Handle the settings of this crystal build.
bool
doBonding(self)
Determine if this script should handle the bonding both inside and between unit cells.
bool
doBondOrders(self)
Determine if this script should handle the assignment of bond orders both inside and between unit cells.
bool
doTranslation(self)
Determine if the atoms should be translated to the first unit cell.
 
getLatticeParameters(self)
Get lattice parameters.
 
checkInputParams(self)
Check input parameters.
 
updateLatticeProperties(self)
Update the lattice properties for the asymmetric unit structure.
 
setAsuColor(self)
Set the color scheme to use for the ASU structure.
mmcrystal handle
setCrystalSymmetry(self)
Set the crystal symmetry.
 
determineBasisVectors(self)
Determine the lattice vectors in the cartesian basis and the cartesian vectors in the lattice basis.
 
setUnitCellLowerBounds(self)
Set the lower bounds of the unit cell.
 
buildCrystalUnitCell(self, mmcrystal_handle)
Build a crystal unit cell.
 
labelSymEquivPos(self)
Label the symmetry equivalent positions.
 
labelAsuAtoms(self, astructure)
Label the atoms that make up an ASU, i.e.
 
completeUnitCellBoundary(self, astructure)
Complete the unit cell boundary so that atoms are defined on both edges.
 
doPropertyEvaluation(self)
Compute some properties of the unit cell.
 
setStructureProperties(self)
Set some structure properties.
 
setChorusProperties(self, ncella=1, ncellb=1, ncellc=1)
Set the chorus structure properties.
 
printCrystalParams(self)
Print some crystal parameters.
 
updateFractionals(self, next_cell, indexa, indexb, indexc)
Update the fractional coordinates of the next unit cell.
 
setAsuAtomsFalse(self, astructure)
Set the ASU atom labels to false for this structure.
 
buildCrystalSuperCell(self, ncella, ncellb, ncellc)
Build a crystal super cell.
list
increaseExtentsBy(self, extra)
Increase the extents by some amount.
dict or None
getIntactMolecules(self, crystal_super_cell)
Get the original super cell including intact molecules at the boundary from the larger super cell.
 
translateSupercell(self, delta_a, delta_b, delta_c)
Translate the super cell by the given amount along each of the lattice vectors and update the fractional coordinates.
 
buildCrystalSuperCellWithIntactMolecules(self)
Build a crystal super cell while keeping intact molecules at the unit cell boundaries.
 
orchestrate(self)
Orchestrate the construction of the crystal.

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Variables [hide private]
  SPACE_GROUP_KEY = 's_pdb_PDB_CRYST1_Space_Group'
  A_KEY = 'r_pdb_PDB_CRYST1_a'
  B_KEY = 'r_pdb_PDB_CRYST1_b'
  C_KEY = 'r_pdb_PDB_CRYST1_c'
  ALPHA_KEY = 'r_pdb_PDB_CRYST1_alpha'
  BETA_KEY = 'r_pdb_PDB_CRYST1_beta'
  GAMMA_KEY = 'r_pdb_PDB_CRYST1_gamma'
  SPACE_GROUP_ID_KEY = 'i_matsci_Space_Group_ID'
  LATTICE_VECTOR_A_KEY = 's_matsci_Lattice_Vector_A/(3*Ang.)'
  LATTICE_VECTOR_B_KEY = 's_matsci_Lattice_Vector_B/(3*Ang.)'
  LATTICE_VECTOR_C_KEY = 's_matsci_Lattice_Vector_C/(3*Ang.)'
  LATTICE_VECTOR_COORDS = 6
  CHORUS_BOX_BASE_KEY = 'r_chorus_box_'
  CHORUS_BOX_AX_KEY = CHORUS_BOX_BASE_KEY+ 'ax'
  CHORUS_BOX_AY_KEY = CHORUS_BOX_BASE_KEY+ 'ay'
  CHORUS_BOX_AZ_KEY = CHORUS_BOX_BASE_KEY+ 'az'
  CHORUS_BOX_BX_KEY = CHORUS_BOX_BASE_KEY+ 'bx'
  CHORUS_BOX_BY_KEY = CHORUS_BOX_BASE_KEY+ 'by'
  CHORUS_BOX_BZ_KEY = CHORUS_BOX_BASE_KEY+ 'bz'
  CHORUS_BOX_CX_KEY = CHORUS_BOX_BASE_KEY+ 'cx'
  CHORUS_BOX_CY_KEY = CHORUS_BOX_BASE_KEY+ 'cy'
  CHORUS_BOX_CZ_KEY = CHORUS_BOX_BASE_KEY+ 'cz'
  CHORUS_BOX_A_KEYS = [CHORUS_BOX_AX_KEY, CHORUS_BOX_AY_KEY, CHO...
  CHORUS_BOX_B_KEYS = [CHORUS_BOX_BX_KEY, CHORUS_BOX_BY_KEY, CHO...
  CHORUS_BOX_C_KEYS = [CHORUS_BOX_CX_KEY, CHORUS_BOX_CY_KEY, CHO...
  NUM_DECIMAL_COORDS = 4
  MSGWIDTH = 80
  GENERAL_VEC_1 = numpy.matrix([1.0, 0.0, 0.0]).transpose()
  GENERAL_VEC_2 = numpy.matrix([0.0, 1.0, 0.0]).transpose()
  GENERAL_VEC_3 = numpy.matrix([0.0, 0.0, 1.0]).transpose()
  F1F2F3_FORMAT = '(%.4f, %.4f, %.4f)'
  F1F2F3_KEY = 's_matsci_f1f2f3'
  F1_KEY = 'r_matsci_f1'
  F2_KEY = 'r_matsci_f2'
  F3_KEY = 'r_matsci_f3'
  FRACT_KEYS = [F1_KEY, F2_KEY, F3_KEY]
  SYMMETRY_LABEL_KEY = 'i_matsci_Symmetry_Label'
  ASU_LABEL_KEY = 'b_matsci_ASU_Atom'
  CM_TO_ANGSTROM = float(100000000)
  UNIT_CELL_FORMULA_KEY = 's_m_Unit_Cell_Formula'
  UNIT_CELL_VOLUME_KEY = 'r_m_Unit_Cell_Volume/Ang.^3'
  UNIT_CELL_DENSITY_KEY = 'r_m_Unit_Cell_Density/g/cm^3'
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, asymmetric_unit, space_group=ParserWrapper.SPACE_GROUP, a_param=ParserWrapper.A_PARAM, b_param=ParserWrapper.B_PARAM, c_param=ParserWrapper.C_PARAM, alpha_param=ParserWrapper.ALPHA_PARAM, beta_param=ParserWrapper.BETA_PARAM, gamma_param=ParserWrapper.GAMMA_PARAM, ncella=ParserWrapper.NCELLA, ncellb=ParserWrapper.NCELLB, ncellc=ParserWrapper.NCELLC, origin=ParserWrapper.ORIGIN, bonding=ParserWrapper.BONDING_DEFAULT, bond_orders=ParserWrapper.BOND_ORDERS_DEFAULT, translate=ParserWrapper.TRANSLATE_DEFAULT, keep_edge_atoms=ParserWrapper.KEEP_EDGE_ATOMS, cov_offset=ParserWrapper.COV_OFFSET, intact_molecules=ParserWrapper.INTACT_MOLECULES_DEFAULT, fract_offset=FRACT_OFFSET, no_pbc_bonding=ParserWrapper.NO_PBC_BONDING, logger=None)
(Constructor)

 

Create an instance.

Parameters:
  • asymmetric_unit (schrodinger.Structure.structure) - the ASU
  • space_group (str) - the full or short Hermann-Mauguin symbol of the space group
  • a_param (float) - the lattice parameter a in Angstrom
  • b_param (float) - the lattice parameter b in Angstrom
  • c_param (float) - the lattice parameter c in Angstrom
  • alpha_param (float) - the lattice parameter alpha in degrees
  • beta_param (float) - the lattice parameter beta in degrees
  • gamma_param (float) - the lattice parameter gamma in degrees
  • ncella (int) - the number of unit cells to generate along lattice vector a
  • ncellb (int) - the number of unit cells to generate along lattice vector b
  • ncellc (int) - the number of unit cells to generate along lattice vector c
  • origin (list) - the origin of the unit cell, i.e. list of three floats
  • bonding (str) - specifies how the bonding should be handled, takes a string in BONDING_CHOICES
  • bond_orders (str) - specifies how the bond orders should be handled, takes a string in BOND_ORDERS_CHOICES
  • translate (str) - specifies how the translation to the first unit cell should be handled, takes a string in TRANSLATE_CHOICES
  • keep_edge_atoms (bool) - whether or not to keep redundant edge atoms
  • cov_offset (float) - the maximum distance for drawn bonds is the sum of the covalent radii of the two atoms plus this offset in angstrom
  • intact_molecules (str) - specify how molecules should be clipped at the unit or super cell boundaries
  • fract_offset (float) - the threshold used to compare floating point fractional coordinate values and in particular those that are on the cell boundary
  • no_pbc_bonding (bool) - disable the creation of PBC bonds
  • logger (logging.getLogger) - output logger
Overrides: object.__init__

doBonding(self)

 

Determine if this script should handle the bonding both inside and between unit cells.

Returns: bool
True if this script should handle the bonding, False otherwise.

doBondOrders(self)

 

Determine if this script should handle the assignment of bond orders both inside and between unit cells.

Returns: bool
True if this script should handle the assignment, False otherwise.

doTranslation(self)

 

Determine if the atoms should be translated to the first unit cell.

Returns: bool
True if this translation should be performed, False otherwise.

setCrystalSymmetry(self)

 

Set the crystal symmetry.

Returns: mmcrystal handle
mmcrystal_handle, mmcrystal handle with symmetry set

determineBasisVectors(self)

 

Determine the lattice vectors in the cartesian basis and the cartesian vectors in the lattice basis. Also determine the reciprocal lattice vectors.

buildCrystalUnitCell(self, mmcrystal_handle)

 

Build a crystal unit cell.

Parameters:
  • mmcrystal_handle - mmcrystal handle with symmetry set

labelAsuAtoms(self, astructure)

 

Label the atoms that make up an ASU, i.e. the symmetry unique atoms.

Parameters:
  • astructure (schrodinger.Structure.structure) - the structure whose atoms will be labeled

completeUnitCellBoundary(self, astructure)

 

Complete the unit cell boundary so that atoms are defined on both edges.

Parameters:
  • astructure (schrodinger.Structure.structure) - the structure object for which the boundary will be completed

doPropertyEvaluation(self)

 

Compute some properties of the unit cell. In order for the properties to be consistent with their standard definitions the provided unit cell must be void of the redundant edge, meaning that the fractionals must be defined on n < f < n + 1 rather than n < f <= n + 1, as well as any other redundancies.

setChorusProperties(self, ncella=1, ncellb=1, ncellc=1)

 

Set the chorus structure properties.

Parameters:
  • ncella (int) - the number of cells along a
  • ncellb (int) - the number of cells along b
  • ncellc (int) - the number of cells along c

updateFractionals(self, next_cell, indexa, indexb, indexc)

 

Update the fractional coordinates of the next unit cell.

Parameters:
  • next_cell (schrodinger.Structure.structure) - the structure object to be updated
  • indexa (int) - the a-position of this cell
  • indexb (int) - the b-position of this cell
  • indexc (int) - the c-position of this cell

setAsuAtomsFalse(self, astructure)

 

Set the ASU atom labels to false for this structure.

Parameters:
  • astructure (schrodinger.Structure.structure) - the structure object to be updated

buildCrystalSuperCell(self, ncella, ncellb, ncellc)

 

Build a crystal super cell.

Parameters:
  • ncella (int) - the number of unit cells to generate along lattice vector a
  • ncellb (int) - the number of unit cells to generate along lattice vector b
  • ncellc (int) - the number of unit cells to generate along lattice vector c

increaseExtentsBy(self, extra)

 

Increase the extents by some amount.

Parameters:
  • extra (int) - the amount by which to increase the extents
Returns: list
contains ncella, ncellb, ncellc, the numbers of unit cells to generate along lattice vector a, b, and c

getIntactMolecules(self, crystal_super_cell)

 

Get the original super cell including intact molecules at the boundary from the larger super cell.

Parameters:
  • crystal_super_cell (schrodinger.Structure.structure) - the structure object for the supercell
Returns: dict or None
renumber map for deleted atoms or None if no atoms were deleted

translateSupercell(self, delta_a, delta_b, delta_c)

 

Translate the super cell by the given amount along each of the lattice vectors and update the fractional coordinates.

Parameters:
  • delta_a (int) - amount to translate along a
  • delta_b (int) - amount to translate along b
  • delta_c (int) - amount to translate along c

Class Variable Details [hide private]

CHORUS_BOX_A_KEYS

Value:
[CHORUS_BOX_AX_KEY, CHORUS_BOX_AY_KEY, CHORUS_BOX_AZ_KEY]

CHORUS_BOX_B_KEYS

Value:
[CHORUS_BOX_BX_KEY, CHORUS_BOX_BY_KEY, CHORUS_BOX_BZ_KEY]

CHORUS_BOX_C_KEYS

Value:
[CHORUS_BOX_CX_KEY, CHORUS_BOX_CY_KEY, CHORUS_BOX_CZ_KEY]