Exemple #1
0
 def readIdxrefLp(pathToIdxrefLp, resultXDSIndexing=None):
     if resultXDSIndexing is None:
         resultXDSIndexing = {}
     if pathToIdxrefLp.exists():
         with open(str(pathToIdxrefLp)) as f:
             listLines = f.readlines()
         indexLine = 0
         doParseParameters = False
         doParseLattice = False
         while indexLine < len(listLines):
             if "DIFFRACTION PARAMETERS USED AT START OF INTEGRATION" in listLines[
                     indexLine]:
                 doParseParameters = True
                 doParseLattice = False
             elif "DETERMINATION OF LATTICE CHARACTER AND BRAVAIS LATTICE" in listLines[
                     indexLine]:
                 doParseParameters = False
                 doParseLattice = True
             if doParseParameters:
                 if "MOSAICITY" in listLines[indexLine]:
                     resultXDSIndexing['mosaicity'] = float(
                         listLines[indexLine].split()[-1])
                 elif "DETECTOR COORDINATES (PIXELS) OF DIRECT BEAM" in listLines[
                         indexLine]:
                     resultXDSIndexing['xBeam'] = float(
                         listLines[indexLine].split()[-1])
                     resultXDSIndexing['yBeam'] = float(
                         listLines[indexLine].split()[-2])
                 elif "CRYSTAL TO DETECTOR DISTANCE" in listLines[
                         indexLine]:
                     resultXDSIndexing['distance'] = float(
                         listLines[indexLine].split()[-1])
             elif doParseLattice:
                 if listLines[indexLine].startswith(
                         " * ") and not listLines[indexLine +
                                                  1].startswith(" * "):
                     listLine = listLines[indexLine].split()
                     latticeCharacter = int(listLine[1])
                     bravaisLattice = listLine[2]
                     spaceGroup = UtilsSymmetry.getMinimumSymmetrySpaceGroupFromBravaisLattice(
                         bravaisLattice)
                     spaceGroupNumber = UtilsSymmetry.getITNumberFromSpaceGroupName(
                         spaceGroup)
                     qualityOfFit = float(listLine[3])
                     resultXDSIndexing.update({
                         'latticeCharacter': latticeCharacter,
                         'spaceGroupNumber': spaceGroupNumber,
                         'qualityOfFit': qualityOfFit,
                         'a': float(listLine[4]),
                         'b': float(listLine[5]),
                         'c': float(listLine[6]),
                         'alpha': float(listLine[7]),
                         'beta': float(listLine[8]),
                         'gamma': float(listLine[9])
                     })
             indexLine += 1
     return resultXDSIndexing
Exemple #2
0
 def parseLattice(indexLine, listLines, resultXDSIndexing):
     if listLines[indexLine].startswith(
             " * ") and not listLines[indexLine + 1].startswith(" * "):
         listLine = listLines[indexLine].split()
         latticeCharacter = int(listLine[1])
         bravaisLattice = listLine[2]
         spaceGroup = UtilsSymmetry.getMinimumSymmetrySpaceGroupFromBravaisLattice(
             bravaisLattice)
         spaceGroupNumber = UtilsSymmetry.getITNumberFromSpaceGroupName(
             spaceGroup)
         qualityOfFit = float(listLine[3])
         resultXDSIndexing.update({
             "latticeCharacter": latticeCharacter,
             "spaceGroupNumber": spaceGroupNumber,
             "qualityOfFit": qualityOfFit,
             "a": float(listLine[4]),
             "b": float(listLine[5]),
             "c": float(listLine[6]),
             "alpha": float(listLine[7]),
             "beta": float(listLine[8]),
             "gamma": float(listLine[9]),
         })
Exemple #3
0
 def test_getITNumberFromSpaceGroupName(self):
     self.assertEqual(1, UtilsSymmetry.getITNumberFromSpaceGroupName("P1"),
                      "ITNumber from space group P1")
     self.assertEqual(3, UtilsSymmetry.getITNumberFromSpaceGroupName("P2"),
                      "ITNumber from space group P2")
     self.assertEqual(5, UtilsSymmetry.getITNumberFromSpaceGroupName("C2"),
                      "ITNumber from space group C2")
     self.assertEqual(16,
                      UtilsSymmetry.getITNumberFromSpaceGroupName("P222"),
                      "ITNumber from space group P222")
     self.assertEqual(21,
                      UtilsSymmetry.getITNumberFromSpaceGroupName("C222"),
                      "ITNumber from space group C222")
     self.assertEqual(22,
                      UtilsSymmetry.getITNumberFromSpaceGroupName("F222"),
                      "ITNumber from space group F222")
     self.assertEqual(75, UtilsSymmetry.getITNumberFromSpaceGroupName("P4"),
                      "ITNumber from space group P4")
     self.assertEqual(79, UtilsSymmetry.getITNumberFromSpaceGroupName("I4"),
                      "ITNumber from space group I4")
     self.assertEqual(143,
                      UtilsSymmetry.getITNumberFromSpaceGroupName("P3"),
                      "ITNumber from space group P3")
     self.assertEqual(146,
                      UtilsSymmetry.getITNumberFromSpaceGroupName("H3"),
                      "ITNumber from space group H3")
     self.assertEqual(195,
                      UtilsSymmetry.getITNumberFromSpaceGroupName("P23"),
                      "ITNumber from space group P23")
     self.assertEqual(196,
                      UtilsSymmetry.getITNumberFromSpaceGroupName("F23"),
                      "ITNumber from space group F23")