-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy path__init__.py
More file actions
83 lines (68 loc) · 3.16 KB
/
Copy path__init__.py
File metadata and controls
83 lines (68 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#############################
##
## The SireMM library.
##
## This contains all of the classes that are used to
## provide a molecular mechanics forcefield (partial
## charges, LJ terms, bond, angle, dihedral terms,
## MM parameter database classes etc). It also
## contains all of the MM forcefields.
##
import Sire.FF
import Sire.CAS
# Import all of the classes and functions from the C++ library
from Sire.MM._MM import *
# Now define some pure Python functions and classes that are part of
# this library...
# Next define all of the MM forcefield types so that the code can
# get them
def _createMMTypes():
amberff = MMDetail(name = "amber::ff",
combining_rules = "arithmetic",
scale14elec = 1.0/1.2, scale14vdw = 0.5,
elecstyle = "coulomb", vdwstyle = "lj",
bondstyle = "harmonic", anglestyle = "harmonic",
dihedralstyle = "cosine")
amberff99 = MMDetail(name = "amber::ff99",
combining_rules = "arithmetic",
scale14elec = 1.0/1.2, scale14vdw = 0.5,
elecstyle = "coulomb", vdwstyle = "lj",
bondstyle = "harmonic", anglestyle = "harmonic",
dihedralstyle = "cosine")
amberff03 = MMDetail(name = "amber::ff03",
combining_rules = "arithmetic",
scale14elec = 1.0/1.2, scale14vdw = 0.5,
elecstyle = "coulomb", vdwstyle = "lj",
bondstyle = "harmonic", anglestyle = "harmonic",
dihedralstyle = "cosine")
amberff12 = MMDetail(name = "amber::ff12",
combining_rules = "arithmetic",
scale14elec = 1.0/1.2, scale14vdw = 0.5,
elecstyle = "coulomb", vdwstyle = "lj",
bondstyle = "harmonic", anglestyle = "harmonic",
dihedralstyle = "cosine")
amberff14 = MMDetail(name = "amber::ff14",
combining_rules = "arithmetic",
scale14elec = 1.0/1.2, scale14vdw = 0.5,
elecstyle = "coulomb", vdwstyle = "lj",
bondstyle = "harmonic", anglestyle = "harmonic",
dihedralstyle = "cosine")
ambergaff = MMDetail(name = "amber::gaff",
combining_rules = "arithmetic",
scale14elec = 1.0/1.2, scale14vdw = 0.5,
elecstyle = "coulomb", vdwstyle = "lj",
bondstyle = "harmonic", anglestyle = "harmonic",
dihedralstyle = "cosine")
# initialise all of the MM forcefield types
_createMMTypes()
def getForceFields():
"""Return the names of the different MM forcefields that are recognised by
this program"""
return Sire.FF.FFDetail.forcefields()
def getForceField(name):
"""Return the MM forcefield called 'name'"""
return Sire.FF.FFDetail.get(name)
###### PROPERTY KLUDGE FIX
__props = [ AtomLJs ]
for __prop in __props:
Sire.Mol._pvt_property_cludge_fix(__prop)