예제 #1
0
파일: conftest.py 프로젝트: ajalan/MoleCoor
def LongLinearChainHetConf(n):
	#n represents the number of atoms in the chain
	atomtypes = [i for i in range(0,n)]
	atomcoor = [[i,0,0] for i in range(0,n)]
	a = MolecularCoordinates.MolecularGeometry(atomtypes,atomcoor)
	b = MolecularCoordinates.MolecularGeometry(atomtypes,atomcoor)
	return MolecularCoordinates.checkConformationalEquivalence(b, a, Atol=0.5)
예제 #2
0
파일: conftest.py 프로젝트: ajalan/MoleCoor
def MirrorImageConf():
	ac =    [[-1.5846,   -0.5216,    0.1338],
			[-1.1512,   -1.5146,   -0.0477 ],
			[-1.7781,   -0.4440,    1.2120 ],
			[-2.5555,   -0.4907,   -0.3770 ],
			[-0.6751,    0.5855,   -0.3509 ],
			[-1.1705,    1.5633,   -0.1896 ],
			[-0.5293,    0.5028,   -1.4463 ],
			[ 0.6751,    0.5854,    0.3509 ],
			[ 1.1705,    1.5633,    0.1895 ],
			[ 0.5294,    0.5028,    1.4463 ],
			[ 1.5846,   -0.5216,   -0.1338 ],
			[ 2.5554,   -0.4908,    0.3772 ],
			[ 1.1510,   -1.5146,    0.0475 ],
			[ 1.7783,   -0.4438,   -1.2120]]
	aa = [6, 1, 1, 1, 6, 1, 1, 6, 1, 1, 6, 1, 1, 1]
	bc =  [[  -1.5845,   -0.5216,   -0.1338],
		   [-1.7784,   -0.4438,   -1.2120 ],
		   [-1.1509,   -1.5146,    0.0474 ],
		   [-2.5553,   -0.4910,    0.3773 ],
		   [-0.6751,    0.5855,    0.3508 ],
		   [-0.5293,    0.5028,    1.4463 ],
		   [-1.1705,    1.5634,    0.1895 ],
		   [ 0.6751,    0.5855,   -0.3508 ],
		   [ 1.1705,    1.5633,   -0.1893 ],
		   [ 0.5294,    0.5030,   -1.4463 ],
		   [ 1.5845,   -0.5216,    0.1338 ],
		   [ 1.1510,   -1.5146,   -0.0478 ],
		   [ 2.5555,   -0.4908,   -0.3770 ],
		   [ 1.7780,   -0.4441,    1.2121 ]]
	ba = [6, 1, 1, 1, 6, 1, 1, 6, 1, 1, 6, 1, 1, 1]
	a = MolecularCoordinates.MolecularGeometry(aa,ac)
	b = MolecularCoordinates.MolecularGeometry(ba,bc)
	return MolecularCoordinates.checkConformationalEquivalence(b, a, Atol=0.001)
예제 #3
0
파일: conftest.py 프로젝트: ajalan/MoleCoor
def LongLinearChainHomConf(n):
	#n represents the number of atoms in the chain
	#all the atom-to-atom distances should be unique by the "binary" construction of the coordinates
	atomtypes = [1 for i in range(0,n)]
	atomcoor = [[2**i,0,0] for i in range(0,n)]
	a = MolecularCoordinates.MolecularGeometry(atomtypes,atomcoor)
	b = MolecularCoordinates.MolecularGeometry(atomtypes,atomcoor)
	return MolecularCoordinates.checkConformationalEquivalence(b, a, Atol=0.5)
예제 #4
0
파일: conftest.py 프로젝트: ajalan/MoleCoor
	def testCalcDistDev(self):
		""" A test of distance deviations, given a mapping

		Uses mirror image conformations of gauche n-butane (each independently optimized using PM3 in Gaussian03 using default convergence criteria)
		"""
		ac =    [[-1.5846,   -0.5216,    0.1338],
			[-1.1512,   -1.5146,   -0.0477 ],
			[-1.7781,   -0.4440,    1.2120 ],
			[-2.5555,   -0.4907,   -0.3770 ],
			[-0.6751,    0.5855,   -0.3509 ],
			[-1.1705,    1.5633,   -0.1896 ],
			[-0.5293,    0.5028,   -1.4463 ],
			[ 0.6751,    0.5854,    0.3509 ],
			[ 1.1705,    1.5633,    0.1895 ],
			[ 0.5294,    0.5028,    1.4463 ],
			[ 1.5846,   -0.5216,   -0.1338 ],
			[ 2.5554,   -0.4908,    0.3772 ],
			[ 1.1510,   -1.5146,    0.0475 ],
			[ 1.7783,   -0.4438,   -1.2120]]
		aa = [6, 1, 1, 1, 6, 1, 1, 6, 1, 1, 6, 1, 1, 1]
		bc =  [[  -1.5845,   -0.5216,   -0.1338],
			   [-1.7784,   -0.4438,   -1.2120 ],
			   [-1.1509,   -1.5146,    0.0474 ],
			   [-2.5553,   -0.4910,    0.3773 ],
			   [-0.6751,    0.5855,    0.3508 ],
			   [-0.5293,    0.5028,    1.4463 ],
			   [-1.1705,    1.5634,    0.1895 ],
			   [ 0.6751,    0.5855,   -0.3508 ],
			   [ 1.1705,    1.5633,   -0.1893 ],
			   [ 0.5294,    0.5030,   -1.4463 ],
			   [ 1.5845,   -0.5216,    0.1338 ],
			   [ 1.1510,   -1.5146,   -0.0478 ],
			   [ 2.5555,   -0.4908,   -0.3770 ],
			   [ 1.7780,   -0.4441,    1.2121 ]]
		ba = [6, 1, 1, 1, 6, 1, 1, 6, 1, 1, 6, 1, 1, 1]
		a = MolecularCoordinates.MolecularGeometry(aa,ac)
		b = MolecularCoordinates.MolecularGeometry(ba,bc)
		#atomMap = {1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:10, 11:11, 12:12, 13:13, 14:14} #a naive mapping
		atomMap = {1: 1, 2: 3, 3: 2, 4: 4, 5: 5, 6: 7, 7: 6, 8: 8, 9: 9, 10: 10, 11: 11, 12: 13, 13: 12, 14: 14} #a "correct" mapping (there is also one other "correct" mapping)
		(distDevAbs,distDevRel) = MolecularCoordinates.calcDistanceDeviationsGivenMapping(a, b, atomMap)
		distDevAbsMax = MolecularCoordinates.dictionaryMaxAbs(distDevAbs)
		distDevRelMax = MolecularCoordinates.dictionaryMaxAbs(distDevRel)
		self.assertAlmostEqual(distDevAbsMax, 0.000528777418128, 5)
		self.assertAlmostEqual(distDevRelMax, 0.000145546853437, 5)
예제 #5
0
파일: conftest.py 프로젝트: ajalan/MoleCoor
def LongLinearChainHetConfDist(n):
	#n represents the number of atoms in the chain
	atomtypes = [i for i in range(0,n)]
	atomcoor = [[i,0,0] for i in range(0,n)]
	a = MolecularCoordinates.MolecularGeometry(atomtypes,atomcoor)
	return a.getDistanceMappings()
예제 #6
0
파일: conftest.py 프로젝트: ajalan/MoleCoor
def AtomTypeSwapConf():
	a = MolecularCoordinates.MolecularGeometry([8,1,1],[[0,0,0],[1,0,0],[0,1,0]])
	b = MolecularCoordinates.MolecularGeometry([1,8,1],[[0,0,0],[1,0,0],[0,1,0]])
	return MolecularCoordinates.checkConformationalEquivalence(b, a, Atol=0.01)
예제 #7
0
파일: conftest.py 프로젝트: ajalan/MoleCoor
def SimpleHomConf():
	a = MolecularCoordinates.MolecularGeometry([1,1,1,1,1,1,1,1],[[0,0,0],[1,0,0],[0,1,0],[0,0,1],[0,1,1],[1,0,1],[1,1,0],[1,1,1]])
	b = MolecularCoordinates.MolecularGeometry([1,1,1,1,1,1,1,1],[[0,0,0],[1,0,0],[0,1,0],[0,0,1],[0,1,1],[1,0,1],[1,1,0],[1,1,1]])
	return MolecularCoordinates.checkConformationalEquivalence(b, a, Atol=0.01)