Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MD Workflow for Bulk Electrolytes #19

Open
wants to merge 130 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
390d737
Initial commit of force field files and Python scripts
Apr 22, 2024
f0d0012
Add XLS file of electrolyte components
Apr 22, 2024
81ea4bc
Fixed a few bugs. System was not initialized properly.
May 12, 2024
3d49ffe
Delete the Excel file for electrolyte components
May 14, 2024
237e389
Add comments and docstrings to all functions and routines
May 22, 2024
8abfe04
Rename the bash script
May 22, 2024
15e2c37
Add license
May 22, 2024
1afd549
Fixed and renamed a force field file and its PDB file. Also adapted a…
May 24, 2024
0b6538d
Updated README
May 24, 2024
879d5c4
Deleted comment
May 24, 2024
758bca6
Deleted a comment
May 24, 2024
3c77043
Fixed a bug on system numbering
May 24, 2024
4c3c693
Update electrolytes/README.md
muhammadhasyim Jun 7, 2024
11b6922
Addressing PR comments to cleanup the code
Jun 20, 2024
4f83530
Fixing and adding new electrolyte components
Jun 20, 2024
f217a41
Added new force field parameters and molecules
Jun 27, 2024
c29a2f5
Add new force field parameters
Jun 28, 2024
872447d
Clean up code according to PR comments
Jun 28, 2024
6a54393
Fixed force field files
Jun 29, 2024
f38d018
Update Python scripts
Jul 3, 2024
9f42525
Updated Python scripts
Jul 3, 2024
e27df2c
Updated Python scripts
Jul 3, 2024
4e7cb10
Fix mislabeling of atom types on PDB and LT files for PF6- anion
Jul 7, 2024
bcae104
Fixing many more force field files.
Jul 9, 2024
97d47b2
Updated the average solvent density computation by using KMeans to de…
Jul 9, 2024
7856c3b
Git ignore numbered directories generated from the workflow
Jul 9, 2024
bd90806
Cleaning up commented lines
Jul 9, 2024
460180d
Edit run scripts to read the temperature from the CSV file.
Jul 9, 2024
efd3cc1
Add new force field and PDB files from missing components
Jul 9, 2024
d443616
Fix old force field files and added new ones
Jul 10, 2024
6dc0af6
Updated force field and PDB files + added randomization scripts + add…
Jul 11, 2024
579f6a3
Added ew changes
Jul 11, 2024
e90da17
Increased boxsize to provide gentler initial condition
Jul 11, 2024
ed12430
Updated random mixing and simulation run scripts
Jul 12, 2024
f91e230
Added final list of electrolyte systems to simulation + literature sy…
Jul 12, 2024
a0dfce4
Updated the random mixing scripts to have lower value for the highest…
Jul 12, 2024
a70dfe0
Updated README.md to reflect new ranom mixing scripts
Jul 12, 2024
c08586f
Updated
Jul 12, 2024
60bcbf0
Fix many force field files and PDB files, e.g., charges not sum up to…
Jul 15, 2024
fbe81ac
Added equlibration script that runs NPT with variable timesteps, but …
Jul 15, 2024
e3f5373
Added a number of fixes, such as removing duplicate Bond entries when…
Jul 15, 2024
f8bb701
Updated final list of electrolytes
Jul 15, 2024
b964679
Reset commit
Jul 19, 2024
8d5cc0d
Merge branch 'md-elytes' of https://github.com/Open-Catalyst-Project/…
Jul 19, 2024
5ec5801
Updated gitignore
Jul 19, 2024
9abf245
Updated formatting for the elecrolyte components and systems
Jul 29, 2024
66f8c8a
Modified, added, and removed force field files
Jul 29, 2024
633bbae
Fixed a major bug where dihedral parameters were skipped when preppin…
Jul 29, 2024
0e4a24e
Changed relaxation script so that it uses normal NPT simulation setti…
Jul 29, 2024
b81f855
update runsystem to checkpoint jobs and restart if needed
levineds Jul 30, 2024
f7c2045
we are now 1-indexed
levineds Jul 30, 2024
57b0b56
Updated force field and PDB files, e.g., missing parameters and CONEC…
Aug 2, 2024
fde7535
Updated runsystem to reflect indexing + changing runtime
Aug 2, 2024
1108eec
Updated scripts
Aug 3, 2024
51225e1
Updated list of electrolyte components and systems to fix errors
Aug 12, 2024
7134bda
Fixed force field and PDB files
Aug 12, 2024
f204c1d
Changed tolerance value for packmol to 4.0 Angstrom
Aug 12, 2024
112e873
Updated system generator scripts to adjust box size and ensuring char…
Aug 12, 2024
7537fb9
Updated electrolyte systems
Aug 12, 2024
b34d3ee
fix imports
levineds Aug 13, 2024
f601c5e
Updated scripts
Aug 14, 2024
9c281da
Updated run scripts and added RPMD script
Aug 14, 2024
aec4a46
Updated system of electrolytes -- fixing concentration values to res…
Aug 16, 2024
1626f3e
add argument parser
levineds Aug 19, 2024
72879db
linting
levineds Aug 19, 2024
82ddc50
fix parser
levineds Aug 19, 2024
86744ba
First commit on Desmond workflow.
Sep 13, 2024
fab8abd
Fix old OpenMM builder scripts
Sep 13, 2024
b6a4096
Switched Force Field to S-OPLS all the time
Sep 13, 2024
40d3447
Updated OpenMM workflow
Sep 17, 2024
616ecb4
Updated OpenMM workflow
Sep 18, 2024
442051b
Added more solvents to the list
Sep 18, 2024
accdd41
Updated OpenMM workflow
Sep 18, 2024
e35e700
update workflow to run in one Schrodinger launch command
levineds Sep 18, 2024
32ee53b
Merge remote-tracking branch 'origin/md-elytes' into md-elytes
levineds Sep 18, 2024
0ae6a55
refactor somewhat
levineds Sep 18, 2024
7fa8bde
Updated OpenMM and Desmond workflow
Sep 20, 2024
063dbb5
Fixed line indent
Sep 20, 2024
214e6eb
Revert elytes.csv to the literature systems
Sep 20, 2024
f5c8f20
add back in multisim steps
levineds Sep 20, 2024
381c852
Resolve merge conflicts
levineds Sep 20, 2024
42e852f
Updates list of electrolytes
Sep 21, 2024
11be26a
Updated workflow
Sep 21, 2024
e32cae8
Keep the chain/residue info when building systems
levineds Sep 25, 2024
0ddc502
Edit Desmond workflow to add chainIDs and residue names during building
Sep 27, 2024
d18e436
Merge remote-tracking branch 'refs/remotes/origin/md-elytes' into md-…
levineds Sep 30, 2024
12a6f5b
slurm launch
levineds Sep 30, 2024
3164d39
minor improvement
levineds Sep 30, 2024
e8de468
put residue/chain labels in the right loop
levineds Sep 30, 2024
186bb9a
Added more random electroltyes to simulte
Oct 1, 2024
d59987a
corrections for TEMPO and TEMPOH
levineds Oct 2, 2024
d3e5a31
Updated OpenMM workflow to include RPMD simulations
Oct 4, 2024
a7890b8
Merge branch 'md-elytes' of https://github.com/Open-Catalyst-Project/…
Oct 4, 2024
ffe4d07
Update choose_species so that electrolyte species can be chosen witho…
Oct 12, 2024
58a74b9
Add more special cases, but remove one old special case (V-O bonds)
levineds Oct 10, 2024
082fb84
fix minor charge imbalances
levineds Oct 12, 2024
b37ab23
add missing mae files
levineds Oct 12, 2024
8cf5c8b
Support for custom Orca calculator (#6)
mshuaibii Apr 22, 2024
fdc151d
scripts for sampling GEOM dataset (#5)
wood-b Apr 22, 2024
03132d7
add sella
mshuaibii Apr 23, 2024
6d1ee6f
modify nbo input (#9)
mshuaibii Apr 24, 2024
1f74202
Add printing of Reduced Mulliken and Lowdin populations for each orbi…
levineds Apr 25, 2024
3196e18
grid3
Apr 30, 2024
374c794
add archive message (#12)
misko May 8, 2024
179f683
Point to updated basis for Ln (#11)
levineds May 9, 2024
01ff1de
Update README.md (#14)
mshuaibii May 15, 2024
877bce2
Update calc.py (#15)
levineds May 17, 2024
b46129c
add tcut (#16)
mshuaibii May 20, 2024
6f076aa
Add metal-organics production scripts (#13)
levineds May 23, 2024
f94d925
Update mprun.py (#18)
levineds May 23, 2024
f0b1e7d
remove max step override
mshuaibii Jun 4, 2024
e3d01e6
Add a function to estimate (an upper-bound) to the memory needed for …
levineds Jun 4, 2024
15ca7ad
cleanup
mshuaibii Jun 4, 2024
7d88349
decouple NBO flag
Jun 18, 2024
5d5b3bc
nbo flags
mshuaibii Jun 18, 2024
74dd90a
Allow NBO analysis to be turned off (#22)
levineds Jun 25, 2024
2a48231
Update NBO skipping code for relaxations (#24)
levineds Jul 3, 2024
8710b73
Update printing keywords for Orca 6 to include Fock matrix and all or…
levineds Jul 22, 2024
4ac536e
Functionalization of electrolyte-like/small molecules (#17)
espottesmith Jul 31, 2024
9fe0413
Fixes to metal-organics generation code (#29)
levineds Aug 23, 2024
d29a507
improvements to solvate.py for massively parallel processing (#26)
levineds Aug 23, 2024
e927a91
numpy < 2
Aug 23, 2024
deca033
Electrolyte solvate fixes (#30)
levineds Aug 29, 2024
311683d
Final changes for solvated electrolytes (#31)
levineds Sep 10, 2024
ce8918a
Update RKS memory scaling with Orca 6 and use it for non-S3 calcs (#32)
levineds Sep 11, 2024
c9d8dc9
Add solvated protein fragment dataset (#33)
levineds Sep 20, 2024
4fae391
Add script to write ani2x XYZ files (#34)
samblau Sep 24, 2024
e34271e
parallelize process scripts (#35)
mshuaibii Oct 21, 2024
a0885df
Fixed the electrolyte systems so that all charges are balanced
Oct 23, 2024
e7d185f
Merge branch 'md-elytes' of https://github.com/Open-Catalyst-Project/…
Oct 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 8 additions & 13 deletions electrolytes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ This README provides rough guide on how to prepare and run bulk electrolyte simu
## List of files and directories
Only the important ones
- README.md: this file
- `preparesimulations.sh`: a Bash script that will prepare the initial system configurations in the elytes.csv files for OpenMM simulations
- `preparesimulations.sh`: a Bash script that will prepare the initial system configurations in the elytes.csv files for OpenMM simulations
- `runsimulations.sh`: a Bash script that will run the simulations one by one.
- ff: a directory of force field files of all electroyte components.
- elytes.csv: a CSV file listing all possible electrolyte systems we can simulate
- `data2lammps.py`: a Python module to generate LAMMPS DATA and run files to
- elytes.csv: a CSV file listing all possible electrolyte systems we can simulate.
- `data2lammps.py`: a Python module to generate LAMMPS DATA and run files.
- `lammps2omm.py`: a Python module to convert LAMMPS DATA and run files to OpenMM XML and PDB files.
- `prepopenmmsim.py`: a Python script to prepare an OpenMM simulation given LAMMPS DATA and run files generated from data2lammps.py module.
- `generatesolvent.py`: a Python script to generate solvent configuration and force field files (in LAMMPS format)
- `generatesystem.py`: a Python script to generate system configuration (salt+solvent) and force field files (in LAMMPS format)
- `generatesolvent.py`: a Python script to generate solvent configuration and force field files (in LAMMPS format).
- `generatesystem.py`: a Python script to generate system configuration (salt+solvent) and force field files (in LAMMPS format).

In theory, we only need to run preparesimulations.sh, followed by runsimulations.sh

Expand All @@ -30,13 +30,8 @@ foo@bar:~$ ./runsimulations.sh

## How it works

The workflow uses Packmol to generate a system configuration and Moltemplate to generate force field files. However, the format generated is only compatible to LAMMPS. Thus, the next step is to convert the LAMMPS files to OpenMM-compatible files.
The workflow uses Packmol to generate a system configuration and Moltemplate to generate force field files. However, the format generated is only compatible with LAMMPS. Thus, the next step is to convert the LAMMPS files to OpenMM-compatible files.

The input the workflow is the `ff` directory, which contains the PDB and LT files of all electrolyte components, and elytes.csv, which specifies the molar/molal concentrations of the salt and ratios for solvent mixtures.
The input to the workflow is the `ff` directory, which contains the PDB and LT files of all electrolyte components, and elytes.csv, which specifies the molar/molal concentrations of the salt and ratios for solvent mixtures.

Because concentrations can be volumetric vs. by-weight, we often need the density of the pure solvent to determine how much moles of salt we need to put in the simulation box. Thus, there is an intermediate step of generating the pure solvent system and running a short simulation to get density data.


```python

```
Because concentrations can be volumetric vs. by-weight, we often need the density of the pure solvent to determine how many moles of salt we need to put in the simulation box. Thus, there is an intermediate step of generating the pure solvent system and running a short simulation to get density data.
Loading