示例¶
In [ ]:
Copied!
import molpy as mp
import numpy as np
import molpy as mp
import numpy as np
定义一个原子¶
In [ ]:
Copied!
O = mp.Atom('O') # 必须提供一个独一无二的名字
O.anyProperty = 'test' # 可以任意附加属性
O.move(np.array([1, 2, 3])) # 如果提供了位置可以使用内置的方法
O = mp.Atom('O') # 必须提供一个独一无二的名字
O.anyProperty = 'test' # 可以任意附加属性
O.move(np.array([1, 2, 3])) # 如果提供了位置可以使用内置的方法
定义一组原子¶
- 可以逐个原子定义
In [ ]:
Copied!
CH4 = mp.Group('CH4')
# 定义原子
C = mp.Atom('C')
Hs = [mp.Atom(f'H{i}') for i in range(4)]
CH4.add(C)
for H in Hs:
CH4.add(H)
# 定义拓扑结构
CH4.addBond(C, Hs[0])
CH4.addBond(C, Hs[1])
CH4.addBond(C, Hs[2])
CH4.addBond(C, Hs[3])
CH4 = mp.Group('CH4')
# 定义原子
C = mp.Atom('C')
Hs = [mp.Atom(f'H{i}') for i in range(4)]
CH4.add(C)
for H in Hs:
CH4.add(H)
# 定义拓扑结构
CH4.addBond(C, Hs[0])
CH4.addBond(C, Hs[1])
CH4.addBond(C, Hs[2])
CH4.addBond(C, Hs[3])
- 可以通过方法生成
In [ ]:
Copied!
C6 = mp.full('C6', [f'C{i}' for i in range(6)])
covalentMap = np.array([[0, 1, 2, 3, 2, 1],
[1, 0, 1, 2, 3, 2],
[2, 1, 0, 1, 2, 3],
[3, 2, 1, 0, 1, 2],
[2, 3, 2, 1, 0, 1],
[1, 2, 3, 2, 1, 0]], dtype=int)
C6.setTopoByCovalentMap(covalentMap)
C6 = mp.full('C6', [f'C{i}' for i in range(6)])
covalentMap = np.array([[0, 1, 2, 3, 2, 1],
[1, 0, 1, 2, 3, 2],
[2, 1, 0, 1, 2, 3],
[3, 2, 1, 0, 1, 2],
[2, 3, 2, 1, 0, 1],
[1, 2, 3, 2, 1, 0]], dtype=int)
C6.setTopoByCovalentMap(covalentMap)
- 可以通过读取文件
In [ ]:
Copied!
L-lactic = mp.fromPDB('l-lactic')
L-lactic = mp.fromPDB('l-lactic')
元素种类和单位的支持¶
In [ ]:
Copied!
O.element = 'O'
O.mass == 16 * mp.Unit.daltons
O.element = 'O'
O.mass == 16 * mp.Unit.daltons
build up a CH4 group¶
In [ ]:
Copied!
CH4 = mp.Group('CH4')
C = mp.Atom('C')
Hs = [mp.Atom(f'H{i}') for i in range(4)]
CH4.add(C)
for H in Hs:
CH4.add(H)
covalentMap = np.zeros((CH4.natoms, CH4.natoms), dtype=int)
covalentMap[0, 1:] = covalentMap[1:, 0] = 1
CH4.setTopoByCovalentMap(covalentMap)
CH4 = mp.Group('CH4')
C = mp.Atom('C')
Hs = [mp.Atom(f'H{i}') for i in range(4)]
CH4.add(C)
for H in Hs:
CH4.add(H)
covalentMap = np.zeros((CH4.natoms, CH4.natoms), dtype=int)
covalentMap[0, 1:] = covalentMap[1:, 0] = 1
CH4.setTopoByCovalentMap(covalentMap)
build up a Molecule from an atom List¶
In [ ]:
Copied!
CO2name = ['C', 'O1', 'O2']
CO2eles = ['O', 'H', 'H']
CO2 = mp.full('CO2', CO2name, element=CO2eles)
CO2name = ['C', 'O1', 'O2']
CO2eles = ['O', 'H', 'H']
CO2 = mp.full('CO2', CO2name, element=CO2eles)
get CovalentMap and topology infomation¶
In [ ]:
Copied!
CH4.getCovalentMap()
CH4.getBonds()
CH4.getAngles()
CH4.getCovalentMap()
CH4.getBonds()
CH4.getAngles()