Beispiel #1
0
def angles(xyz):
  angleLabel = []
  angle = []
  atomLabel = op.atom_label(xyz[0])
  xCoord = xyz[1]
  yCoord = xyz[2]
  zCoord = xyz[3]

  for i in range(0,len(atomLabel)-1):
    for j in range(i, len(atomLabel)):
      for k in range(0, len(atomLabel)):
        if i is j:
          continue
        elif i is k:
          continue
        elif j is k:
          continue
        else:
          ex_ki = float(xCoord[k]) - float(xCoord[i])
          ex_kj = float(xCoord[k]) - float(xCoord[j])
          ey_ki = float(yCoord[k]) - float(yCoord[i])
          ey_kj = float(yCoord[k]) - float(yCoord[j])
          ez_ki = float(zCoord[k]) - float(zCoord[i])
          ez_kj = float(zCoord[k]) - float(zCoord[j])
          rki = math.sqrt(ex_ki**2.0 + ey_ki**2.0 + ez_ki **2.0)
          rkj = math.sqrt(ex_kj**2.0 + ey_kj**2.0 + ez_kj **2.0)
          ex_ki = ex_ki/rki
          ey_ki = ey_ki/rki
          ez_ki = ez_ki/rki
          ex_kj = ex_kj/rkj
          ey_kj = ey_kj/rkj
          ez_kj = ez_kj/rkj
          angle.append(180.0/math.pi*math.acos(ex_ki*ex_kj + ey_ki*ey_kj + ez_ki*ez_kj))
          angleLabel.append(atomLabel[i] + str(i+1) + "-" + atomLabel[k] + str(k+1) + "-" + atomLabel[j] + str(j+1))
  return(angleLabel,angle)
Beispiel #2
0
def bonddistance(xyz):
  bondLabel = []
  bondDistance = []
  atomLabel = op.atom_label(xyz[0])
  xCoord = xyz[1]
  yCoord = xyz[2]
  zCoord = xyz[3]

  for i in range(0,len(atomLabel)-1):
    for j in range(i,len(atomLabel)):
      if i is not j:
        bondLabel.append(atomLabel[i] + str(i+1) + "-" + atomLabel[j] + str(j+1))
        bondDistance.append(math.sqrt((float(xCoord[i])-float(xCoord[j]))**2 + (float(yCoord[i])-float(yCoord[j]))**2 + (float(zCoord[i])-float(zCoord[j]))**2))
  return(bondLabel,bondDistance)