maicosdata is a data repository for molecular dynamics test datasets used by MAICoS and related projects. It provides curated simulation topologies and trajectories that can be loaded as MDAnalysis Universe objects with a single function call.
maicosdata is open source and released under the GNU General Public License v3.0.
Install maicosdata using pip:
pip install maicosdata
Fetch a dataset as an MDAnalysis Universe:
import maicosdata
u = maicosdata.fetch("water", in_memory=True)
print(u.atoms.n_atoms) # 1530List all available datasets:
maicosdata.list_identifiers()
# ['airwater', 'cntwater', 'kineticenergy', 'mica', 'salt_water', 'slit_flow', 'water']Read the description of a dataset:
print(maicosdata.describe("airwater"))You can also access the module through maicosdata.datasets:
from maicosdata import datasets
record = datasets._get_record("water")
print(record.topology)
print(record.trajectory)| Identifier | Description | Code | Ensemble |
|---|---|---|---|
airwater |
Air-water interface — 264 water molecules at equilibrium with vapor | GROMACS | NVT |
cntwater |
Carbon nanotube (r = 16 Å) filled with 810 water molecules | LAMMPS | NVT |
kineticenergy |
Bulk water — 510 TIP3P molecules (NVE kinetic energy data) | GROMACS | NVE |
mica |
Realistic mica-water interface — two T-O-T slabs with 587 water molecules | GROMACS | NVT |
salt_water |
Salt water system (topology only) | GROMACS | — |
slit_flow |
1176 water molecules confined between NaCl walls (topology only) | GROMACS | NVT |
water |
Bulk water — 510 SPC/E molecules | GROMACS | NVT |
Use maicosdata.describe("<identifier>") for full details on any dataset.
maicosdata.list_identifiers()- Return a sorted list of all available dataset identifier strings.
maicosdata.describe(identifier)- Return the full-text description (
README.rst) for a dataset. maicosdata.fetch(identifier, **universe_kwargs)- Load a dataset and return an
MDAnalysis.Universe. Extra keyword arguments are forwarded to theUniverseconstructor (e.g.,in_memory=True).
If you encounter any issues, report them on GitHub, or join our developer community on Discord to discuss features and improvements.