Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Item

Notes

Planning

  • Goal is to find inputs that make software do something wrong, DON’T try to diagnose, just report on the issue tracker.

Generic workflow

Step 1: Get a linux computer

  • Option A: Have a linux computer

  • Option B: Set up a docker container like this:

Code Block
# (if starting from docker)
docker pull continuumio/miniconda
docker run -it continuumio/miniconda
# Inside the docker container
groupadd -r app
useradd -r -g app -d /home/app -s /bin/bash -c "Docker image user" app
mkdir /home/app
chown app /home/app
su app
cd
wget "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh"
bash Miniconda3-latest-Linux-x86_64.sh -b -p miniconda3
. miniconda3/etc/profile.d/conda.sh 
conda activate base

Step 2: Install the software

Option A: Make a development build from master

Code Block
conda install -y anaconda-client -n base
conda env create openforcefield/openff-benchmark-optimization
conda activate openff-benchmark-optimization
conda remove --force openff-benchmark
git clone https://github.com/openforcefield/openff-benchmark.git
cd openff-benchmark
pip install -e .

Option B: Make a production/stable build

Code Block
conda install -y anaconda-client -n base
conda env create openforcefield/openff-benchmark-optimization
conda activate openff-benchmark-optimization

Option C: Using a single file installer

Code Block
# If using docker, either wget the installer, or move it in using docker cp
bash openff-benchmark-2021.01.21.2-py37-Linux-x86_64.sh -b -p miniconda3
. miniconda3/etc/profile.d/conda.sh
conda activate

Step 3: Get some molecules

Option A: Make one from SMILES

Code Block
# To make a simple single-conf molecule from SMILES
python
from openforcefield.topology import Molecule
mol = Molecule.from_smiles('COCOCOCOCO')
mol.generate_conformers()
mol.to_file('input.sdf', file_format='sdf')

Step 4: Run the workflow

Code Block
# preprocess
openff-benchmark preprocess validate -g BBB input.sdf
openff-benchmark preprocess generate-conformers 1-validate_and_assign/
openff-benchmark preprocess coverage-report 2-generate_conformers -f openff_unconstrained-1.3.0.offxml

# optimize
## qm calculations
openff-benchmark optimize execute --season "1:1" -o 3-export-compute-qm 2-generate_conformers/
## mm calculations
openff-benchmark optimize execute --season "1:2" -o 3-export-compute-mm 3-export-compute-qm/b3lyp-d3bj/dzvp/

# analysis 
openff-benchmark report compare-forcefields --input-path 3-export-compute-qmmm/ --input-path 3-export-compute-mmqm/openff-1.3.0b3lyp-d3bj/dzvp/  --ref_-method b3lyp-d3bj --output_directory 4-compare_forcefields

# plots
openff-benchmark report plots --input-path 4-compare_conformers --ref-method b3lyp-d3bj

...