Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
28fab4b2
"wrappers/python/vscode:/vscode.git/clone" did not exist on "53b6ea1bb67037ffa1f4c4dbaecd8dea2b6b242b"
Commit
28fab4b2
authored
Jun 10, 2014
by
Peter Eastman
Browse files
Merge branch 'master' of
https://github.com/SimTk/openmm
into exclusions
parents
b369cadf
11082d76
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
9 deletions
+14
-9
wrappers/python/simtk/openmm/app/charmmcrdfiles.py
wrappers/python/simtk/openmm/app/charmmcrdfiles.py
+9
-4
wrappers/python/simtk/openmm/app/modeller.py
wrappers/python/simtk/openmm/app/modeller.py
+5
-5
No files found.
wrappers/python/simtk/openmm/app/charmmcrdfiles.py
View file @
28fab4b2
...
@@ -13,7 +13,7 @@ Copyright (c) 2014 the Authors
...
@@ -13,7 +13,7 @@ Copyright (c) 2014 the Authors
Author: Jason Deckman
Author: Jason Deckman
Contributors: Jason M. Swails
Contributors: Jason M. Swails
Date:
April 19
, 2014
Date:
June 6
, 2014
Permission is hereby granted, free of charge, to any person obtaining a
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
copy of this software and associated documentation files (the "Software"),
...
@@ -105,7 +105,7 @@ class CharmmCrdFile(object):
...
@@ -105,7 +105,7 @@ class CharmmCrdFile(object):
self
.
resname
.
append
(
line
[
2
])
self
.
resname
.
append
(
line
[
2
])
self
.
attype
.
append
(
line
[
3
])
self
.
attype
.
append
(
line
[
3
])
pos
=
Vec3
(
float
(
line
[
4
]),
float
(
line
[
5
]),
float
(
line
[
6
]))
pos
=
Vec3
(
float
(
line
[
4
]),
float
(
line
[
5
]),
float
(
line
[
6
]))
self
.
positions
.
append
(
pos
*
u
.
angstroms
)
self
.
positions
.
append
(
pos
)
self
.
segid
.
append
(
line
[
7
])
self
.
segid
.
append
(
line
[
7
])
self
.
resid
.
append
(
int
(
line
[
8
]))
self
.
resid
.
append
(
int
(
line
[
8
]))
self
.
weighting
.
append
(
float
(
line
[
9
]))
self
.
weighting
.
append
(
float
(
line
[
9
]))
...
@@ -120,6 +120,10 @@ class CharmmCrdFile(object):
...
@@ -120,6 +120,10 @@ class CharmmCrdFile(object):
except
(
ValueError
,
IndexError
),
e
:
except
(
ValueError
,
IndexError
),
e
:
raise
CharmmFileError
(
'Error parsing CHARMM coordinate file'
)
raise
CharmmFileError
(
'Error parsing CHARMM coordinate file'
)
# Apply units to the positions now. Do it this way to allow for
# (possible) numpy functionality in the future.
self
.
positions
=
u
.
Quantity
(
self
.
positions
,
u
.
angstroms
)
class
CharmmRstFile
(
object
):
class
CharmmRstFile
(
object
):
"""
"""
Reads and parses data, velocities and coordinates from a CHARMM restart
Reads and parses data, velocities and coordinates from a CHARMM restart
...
@@ -209,8 +213,9 @@ class CharmmRstFile(object):
...
@@ -209,8 +213,9 @@ class CharmmRstFile(object):
self
.
velocities
=
[
v
*
ONE_TIMESCALE
for
v
in
self
.
velocities
]
self
.
velocities
=
[
v
*
ONE_TIMESCALE
for
v
in
self
.
velocities
]
# Add units to positions and velocities
# Add units to positions and velocities
self
.
positions
*=
u
.
angstroms
self
.
positions
=
u
.
Quantity
(
self
.
positions
,
u
.
angstroms
)
self
.
velocities
*=
u
.
angstroms
/
u
.
picoseconds
self
.
positionsold
=
u
.
Quantity
(
self
.
positionsold
,
u
.
angstroms
)
self
.
velocities
=
u
.
Quantity
(
self
.
velocities
,
u
.
angstroms
/
u
.
picoseconds
)
def
_scan
(
self
,
handle
,
str
,
r
=
0
):
# read lines in file until str is found
def
_scan
(
self
,
handle
,
str
,
r
=
0
):
# read lines in file until str is found
scanning
=
True
scanning
=
True
...
...
wrappers/python/simtk/openmm/app/modeller.py
View file @
28fab4b2
...
@@ -952,14 +952,14 @@ class Modeller(object):
...
@@ -952,14 +952,14 @@ class Modeller(object):
# This is a virtual site. Compute its position by the correct rule.
# This is a virtual site. Compute its position by the correct rule.
if
site
.
type
==
'average2'
:
if
site
.
type
==
'average2'
:
position
=
site
.
weights
[
0
]
*
templateAtomPositions
[
index
+
site
.
atoms
[
0
]]
+
site
.
weights
[
1
]
*
templateAtomPositions
[
index
+
site
.
atoms
[
1
]]
position
=
site
.
weights
[
0
]
*
templateAtomPositions
[
site
.
atoms
[
0
]]
+
site
.
weights
[
1
]
*
templateAtomPositions
[
site
.
atoms
[
1
]]
elif
site
.
type
==
'average3'
:
elif
site
.
type
==
'average3'
:
position
=
site
.
weights
[
0
]
*
templateAtomPositions
[
index
+
site
.
atoms
[
0
]]
+
site
.
weights
[
1
]
*
templateAtomPositions
[
index
+
site
.
atoms
[
1
]]
+
site
.
weights
[
2
]
*
templateAtomPositions
[
index
+
site
.
atoms
[
2
]]
position
=
site
.
weights
[
0
]
*
templateAtomPositions
[
site
.
atoms
[
0
]]
+
site
.
weights
[
1
]
*
templateAtomPositions
[
site
.
atoms
[
1
]]
+
site
.
weights
[
2
]
*
templateAtomPositions
[
site
.
atoms
[
2
]]
elif
site
.
type
==
'outOfPlane'
:
elif
site
.
type
==
'outOfPlane'
:
v1
=
templateAtomPositions
[
index
+
site
.
atoms
[
1
]]
-
templateAtomPositions
[
index
+
site
.
atoms
[
0
]]
v1
=
templateAtomPositions
[
site
.
atoms
[
1
]]
-
templateAtomPositions
[
site
.
atoms
[
0
]]
v2
=
templateAtomPositions
[
index
+
site
.
atoms
[
2
]]
-
templateAtomPositions
[
index
+
site
.
atoms
[
0
]]
v2
=
templateAtomPositions
[
site
.
atoms
[
2
]]
-
templateAtomPositions
[
site
.
atoms
[
0
]]
cross
=
Vec3
(
v1
[
1
]
*
v2
[
2
]
-
v1
[
2
]
*
v2
[
1
],
v1
[
2
]
*
v2
[
0
]
-
v1
[
0
]
*
v2
[
2
],
v1
[
0
]
*
v2
[
1
]
-
v1
[
1
]
*
v2
[
0
])
cross
=
Vec3
(
v1
[
1
]
*
v2
[
2
]
-
v1
[
2
]
*
v2
[
1
],
v1
[
2
]
*
v2
[
0
]
-
v1
[
0
]
*
v2
[
2
],
v1
[
0
]
*
v2
[
1
]
-
v1
[
1
]
*
v2
[
0
])
position
=
templateAtomPositions
[
index
+
site
.
atoms
[
0
]]
+
site
.
weights
[
0
]
*
v1
+
site
.
weights
[
1
]
*
v2
+
site
.
weights
[
2
]
*
cross
position
=
templateAtomPositions
[
site
.
atoms
[
0
]]
+
site
.
weights
[
0
]
*
v1
+
site
.
weights
[
1
]
*
v2
+
site
.
weights
[
2
]
*
cross
if
position
is
None
and
atom
.
type
in
drudeTypeMap
:
if
position
is
None
and
atom
.
type
in
drudeTypeMap
:
# This is a Drude particle. Put it on top of its parent atom.
# This is a Drude particle. Put it on top of its parent atom.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment