Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bc134db69 | ||
|
|
a25cb7c6a9 | ||
|
|
daffd2ae83 | ||
|
|
4f35a234c3 | ||
|
|
893bf31292 | ||
|
|
cf7ef06c67 | ||
|
|
9ff3badab1 | ||
|
|
492098fe01 | ||
|
|
65ac6e9143 | ||
|
|
4047db209c | ||
|
|
90bd90a608 |
@@ -26,9 +26,6 @@ time, msd = md.correlation.shifted_correlation(
|
||||
|
||||
## Installation
|
||||
|
||||
The package requires the Python package [pygmx](https://github.com/mdevaluate/pygmx),
|
||||
which handles reading of Gromacs file formats.
|
||||
Installation of pygmx is described in its own repository.
|
||||
|
||||
The mdevaluate package itself is plain Python code and, hence, can be imported from its directory directly,
|
||||
or may be installed via setuptools to the local Python environment by running
|
||||
@@ -36,6 +33,14 @@ or may be installed via setuptools to the local Python environment by running
|
||||
python setup.py install
|
||||
|
||||
|
||||
When you are using `uv` you can install it with:
|
||||
|
||||
uv venv some_folder
|
||||
source some_folder/bin/activate
|
||||
uv pip install git+https://gitea.pkm.physik.tu-darmstadt.de/IPKM/mdevaluate.git@2026.09
|
||||
|
||||
Note: you can append a tag to get a specific release.
|
||||
|
||||
## Running the tests
|
||||
|
||||
Mdevaluate includes a test suite that can be used to check if the installation was succesful.
|
||||
|
||||
Executable
+71
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
CONDA_VERSION=2024.10
|
||||
PYTHON_VERSION=3.12
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "No argument supplied, version to create expected"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ ! -w "/nfsopt/mdevaluate"]; then
|
||||
echo "Please remount /nfsopt writable"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
MD_VERSION=$1
|
||||
|
||||
# purge evtl. loaded modules
|
||||
module purge
|
||||
|
||||
|
||||
echo "Create mdevaluate Python environemnt using conda"
|
||||
echo "Using conda version: $CONDA_VERSION"
|
||||
echo "Using Python version: $PYTHON_VERSION"
|
||||
|
||||
module load anaconda3/$CONDA_VERSION
|
||||
conda create -y --prefix /nfsopt/mdevaluate/mdevaluate-${MD_VERSION} \
|
||||
python=$PYTHON_VERSION
|
||||
module purge
|
||||
|
||||
echo "Create modulefile for mdevaluate/$MD_VERSION"
|
||||
cat > /nfsopt/modulefiles/mdevaluate/$MD_VERSION <<EOF
|
||||
#%Module1.0#####################################################################
|
||||
##
|
||||
## dot modulefile
|
||||
##
|
||||
## modulefiles/dot. Generated from dot.in by configure.
|
||||
##
|
||||
|
||||
module-whatis "Enables the mdevaluate Python environment."
|
||||
|
||||
set version ${MD_VERSION}
|
||||
set module_path /nfsopt/mdevaluate/mdevaluate-\$version/bin
|
||||
|
||||
prepend-path PATH \$module_path
|
||||
|
||||
EOF
|
||||
|
||||
echo "Loading mdevaluate environment and install packages"
|
||||
module load mdevaluate/${MD_VERSION}
|
||||
pip install jupyter \
|
||||
spyder \
|
||||
mdanalysis \
|
||||
pathos \
|
||||
pandas \
|
||||
dask \
|
||||
sqlalchemy \
|
||||
psycopg2-binary \
|
||||
trimesh \
|
||||
pyvista \
|
||||
seaborn \
|
||||
black \
|
||||
black[jupyter] \
|
||||
tables \
|
||||
pyedr \
|
||||
pytest
|
||||
|
||||
pip install git+https://gitea.pkm.physik.tu-darmstadt.de/IPKM/mdevaluate.git
|
||||
pip install git+https://gitea.pkm.physik.tu-darmstadt.de/IPKM/python-store.git
|
||||
pip install git+https://gitea.pkm.physik.tu-darmstadt.de/IPKM/python-tudplot.git
|
||||
+5
-2
@@ -4,12 +4,15 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "mdevaluate"
|
||||
version = "24.02"
|
||||
version = "2026.09"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = [
|
||||
"mdanalysis",
|
||||
"pandas",
|
||||
"dask",
|
||||
"pathos",
|
||||
"tables",
|
||||
"pyedr"
|
||||
"pyedr",
|
||||
"numpy<2.3",
|
||||
"scipy<1.17",
|
||||
]
|
||||
|
||||
@@ -182,10 +182,10 @@ def tetrahedral_order(
|
||||
)
|
||||
|
||||
# Connection vectors
|
||||
neighbors_1 -= atoms
|
||||
neighbors_2 -= atoms
|
||||
neighbors_3 -= atoms
|
||||
neighbors_4 -= atoms
|
||||
neighbors_1 = pbc_diff(neighbors_1, atoms, box=atoms.box)
|
||||
neighbors_2 = pbc_diff(neighbors_2, atoms, box=atoms.box)
|
||||
neighbors_3 = pbc_diff(neighbors_3, atoms, box=atoms.box)
|
||||
neighbors_4 = pbc_diff(neighbors_4, atoms, box=atoms.box)
|
||||
|
||||
# Normed Connection vectors
|
||||
neighbors_1 /= np.linalg.norm(neighbors_1, axis=-1).reshape(-1, 1)
|
||||
|
||||
+9
-20
@@ -149,32 +149,21 @@ def nojump(frame: CoordinateFrame, usecache: bool = True) -> CoordinateFrame:
|
||||
i0 = 0
|
||||
delta = 0
|
||||
|
||||
delta = (
|
||||
delta
|
||||
+ np.array(
|
||||
np.vstack(
|
||||
[m[i0 : abstep + 1].sum(axis=0) for m in reader.nojump_matrices]
|
||||
).T
|
||||
)
|
||||
@ frame.box
|
||||
)
|
||||
delta = (delta
|
||||
+ np.vstack(
|
||||
[m[i0 : abstep + 1].sum(axis=0) for m in reader.nojump_matrices]
|
||||
).T)
|
||||
|
||||
reader._nojump_cache[abstep] = delta
|
||||
while len(reader._nojump_cache) > NOJUMP_CACHESIZE:
|
||||
reader._nojump_cache.popitem(last=False)
|
||||
delta = delta[selection, :]
|
||||
else:
|
||||
delta = (
|
||||
np.array(
|
||||
np.vstack(
|
||||
[
|
||||
m[: frame.step + 1, selection].sum(axis=0)
|
||||
for m in reader.nojump_matrices
|
||||
]
|
||||
delta = np.vstack(
|
||||
[m[: frame.step + 1, selection].sum(axis=0) for m in reader.nojump_matrices]
|
||||
).T
|
||||
)
|
||||
@ frame.box
|
||||
)
|
||||
|
||||
delta = delta[selection, :]
|
||||
delta = np.array(delta @ frame.box)
|
||||
return frame - delta
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user