# ACEMD

ACEMD is the next generation molecular dynamics (MD) simulation software designed for high performance and ease of use.

## Features

- **High Performance**: Optimized for NVIDIA GPUs with CUDA support
- **Multiple Force Fields**: Support for AMBER, CHARMM, and OpenMM XML force fields
- **Small Molecule Support**: Automated parameterization using GAFF, OpenFF, and Espaloma force fields
- **Neural Network Potentials**: Integration with TorchMD-NET, ANI, and other ML potentials
- **Flexible I/O**: Multiple trajectory formats
- **Python API**: Full control through Python scripting
- **Advanced Sampling**: Support for metadynamics, steered MD, and custom forces

## Installation

### Prerequisites

- Python 3.10 or higher
- NVIDIA GPU with CUDA support

### Install with pip (recommended)

The simplest way to install ACEMD is using pip:

```bash
# GPU version with CUDA 12
pip install "acemd[cu12]"

# GPU version with CUDA 13
pip install "acemd[cu13]"

# With additional neural network potential support
pip install "acemd[nnp-cu12]" --extra-index-url https://download.pytorch.org/whl/cu126

# With additional OpenFF support
pip install "acemd[nnp-cu12,openff]" --extra-index-url https://download.pytorch.org/whl/cu126
```

### Install with conda/mamba

For conda users, ACEMD is available from the acellera channel:

```bash
conda install acemd cuda-version=12 -c acellera -c conda-forge
```


## Quick Start

### Command Line Usage

Create an input configuration file `input.yaml`:

```yaml
# Example with AMBER files
structure: system.prmtop
coordinates: system.pdb
thermostat: true
thermostattemperature: 300
timestep: 4
run: 4ns

# Example with OpenMM XML force fields
# structure: system.pdb
# parameters: [amber14-all.xml, amber14/tip3pfb.xml]
```

Run the simulation:

```bash
# You can omit the --input argument if running in a directory with an input.yaml available
acemd --input input.yaml
```

### Python API

```python
from acemd import acemd

# Run simulation from a directory containing input file
acemd('/path/to/simulation/directory')

# Example of creating input file programmatically
import yaml

input_dict = {
    'structure': 'system.prmtop',
    'coordinates': 'system.pdb',
    'thermostat': True,
    'thermostattemperature': 300,
    'timestep': 4,
    'run': '4ns'
}

with open('input.yaml', 'w') as f:
    yaml.dump(input_dict, f)

acemd('.')
```

### Small Molecule Simulations

ACEMD can also automatically parameterize small molecules:

```yaml
structure: protein_ligand.pdb
parameters: [amber14-all.xml, amber14/tip3pfb.xml]
molecules:
  smiles:
    LIG: "CC(=O)NC1=CC=C(C=C1)O"
  forcefield: gaff-2.2.20
  charge_model: am1bcc
thermostat: true
thermostattemperature: 300
timestep: 4
run: 4ns
```

## Documentation

Full documentation is available at [https://software.acellera.com/acemd](https://software.acellera.com/acemd)

### Key Topics

- [Installation Guide](https://software.acellera.com/acemd/install.html)
- [Manual](https://software.acellera.com/acemd/manual.html)
- [Tutorial](https://software.acellera.com/acemd/tutorial.html)

## License

ACEMD is commercial software. For licensing information, please contact info@acellera.com.

Non-commercial usage is free.

## Citation

If you use ACEMD in your research, please cite:

```bibtex
@article{acemd2009,
  title={ACEMD: Accelerating biomolecular dynamics in the microsecond time scale},
  author={MJ Harvey, G Giupponi, G De Fabritiis},
  journal={Journal of Chemical Theory and Computation},
  year={2009}
}
```

## Support

- **Documentation**: https://software.acellera.com/acemd
- **Support**: info@acellera.com
- **Licenses**: info@acellera.com