├── .github └── workflows │ └── build-deploy.yml ├── .gitignore ├── .idea ├── libraries │ └── R_User_Library.xml ├── shelf │ ├── Uncommitted_changes_before_Checkout_at_9_5_23,_11_19_AM_[Default_Changelist] │ │ └── shelved.patch │ └── Uncommitted_changes_before_Checkout_at_9_5_23,_11_19_AM_[Default_Changelist]1 │ │ └── shelved.patch └── vcs.xml ├── CHANGELOG.md ├── CITATION.cff ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── docs ├── .nojekyll ├── Makefile ├── index.html ├── make.bat ├── requirements.txt └── source │ ├── _downloads │ └── esp_tutorial.py │ ├── _static │ ├── LICENSE.rst │ ├── analysis.png │ ├── convergence.png │ ├── document.png │ ├── full_logo.png │ ├── logo.png │ ├── mispr_citation.bib │ ├── nmr_citation.bib │ ├── overview.png │ ├── style.css │ ├── summary.jpeg │ └── workflow.png │ ├── changelog.rst │ ├── citing.rst │ ├── conf.py │ ├── index.rst │ ├── installation │ ├── configuration.rst │ ├── dependencies.rst │ ├── index.rst │ └── test.rst │ ├── keywords.rst │ ├── license.rst │ ├── mispr.common.rst │ ├── mispr.gaussian.firetasks.rst │ ├── mispr.gaussian.fireworks.rst │ ├── mispr.gaussian.rst │ ├── mispr.gaussian.utilities.rst │ ├── mispr.gaussian.workflows.base.rst │ ├── mispr.gaussian.workflows.rst │ ├── mispr.hybrid.firetasks.rst │ ├── mispr.hybrid.rst │ ├── mispr.hybrid.workflows.rst │ ├── mispr.lammps.firetasks.rst │ ├── mispr.lammps.fireworks.rst │ ├── mispr.lammps.rst │ ├── mispr.lammps.tests.rst │ ├── mispr.lammps.utilities.rst │ ├── mispr.lammps.workflows.rst │ ├── mispr.rst │ ├── modules.rst │ ├── overview.rst │ ├── resources │ ├── faq.rst │ └── resources.rst │ └── workflows │ ├── basics.rst │ ├── custom.rst │ ├── supported.rst │ └── tutorials.rst ├── mispr ├── __init__.py ├── common │ ├── __init__.py │ └── pubchem.py ├── gaussian │ ├── __init__.py │ ├── data │ │ ├── h_pot.bib │ │ ├── li_pot.bib │ │ └── mg_pot.bib │ ├── database.py │ ├── defaults.py │ ├── firetasks │ │ ├── __init__.py │ │ ├── geo_transformation.py │ │ ├── parse_outputs.py │ │ ├── run_calc.py │ │ └── write_inputs.py │ ├── fireworks │ │ ├── __init__.py │ │ ├── break_mol.py │ │ └── core.py │ ├── utilities │ │ ├── __init__.py │ │ ├── db_utilities.py │ │ ├── dbdoc.py │ │ ├── files.py │ │ ├── fw_utilities.py │ │ ├── gout.py │ │ ├── inputs.py │ │ ├── metadata.py │ │ ├── misc.py │ │ ├── mol.py │ │ └── rdkit.py │ └── workflows │ │ ├── __init__.py │ │ └── base │ │ ├── __init__.py │ │ ├── bde.py │ │ ├── binding_energy.py │ │ ├── core.py │ │ ├── esp.py │ │ ├── ip_ea.py │ │ └── nmr.py ├── hybrid │ ├── __init__.py │ ├── defaults.py │ ├── firetasks │ │ ├── __init__.py │ │ └── nmr_from_md.py │ └── workflows │ │ ├── __init__.py │ │ ├── core.py │ │ └── nmr.py └── lammps │ ├── __init__.py │ ├── data │ └── masses.json │ ├── database.py │ ├── defaults.py │ ├── firetasks │ ├── __init__.py │ ├── parse_outputs.py │ ├── run.py │ └── write_inputs.py │ ├── fireworks │ ├── __init__.py │ └── core.py │ ├── templates │ ├── emin_gaff │ ├── emin_general │ ├── gaff_tleap │ ├── npt │ └── nvt │ ├── tests │ ├── __init__.py │ ├── antechamber.py │ ├── base_test.py │ ├── control.py │ ├── custom_data_workflow.py │ ├── data.py │ ├── database │ │ ├── delete_data.py │ │ ├── first_connection.py │ │ ├── insert_one.py │ │ ├── operators-compound_queries.py │ │ ├── query_data.py │ │ ├── read_data.py │ │ └── update_data.py │ ├── electrolyte_wf.py │ ├── esp_to_ff_dict_custom.py │ ├── esp_to_ff_dict_function.py │ ├── liquid_wf_local.py │ ├── parmchk.py │ ├── prmtop.py │ ├── run_lammps.py │ ├── test_files │ │ ├── Na.pdb │ │ ├── SPC_E.pdb │ │ ├── analysis │ │ │ ├── complex.data │ │ │ ├── d__diff.txt │ │ │ ├── diffusion.csv │ │ │ ├── in.emin_complex.lammpsin │ │ │ ├── n__diff.txt │ │ │ ├── o__diff.txt │ │ │ ├── rdf.csv │ │ │ └── w__diff.txt │ │ ├── antechamber │ │ │ └── dhps.esp │ │ ├── control │ │ │ ├── case_1.lammpsin │ │ │ ├── case_2.lammpsin │ │ │ ├── case_2_npt.lammpsin │ │ │ ├── case_2_npt_group_list.lammpsin │ │ │ └── case_3.lammpsin │ │ ├── data │ │ │ ├── H2O2.prmtop │ │ │ ├── H5C12SN2O5.prmtop │ │ │ ├── H5C12SN2O5 │ │ │ │ ├── ff.json │ │ │ │ ├── leap.log │ │ │ │ └── tleap.in │ │ │ ├── Na.pdb │ │ │ ├── SPC_E.pdb │ │ │ ├── complex.data │ │ │ ├── complex_from_concentration.data │ │ │ ├── custom_workflow │ │ │ │ ├── ANTECHAMBER.ESP │ │ │ │ ├── ANTECHAMBER_AC.AC │ │ │ │ ├── ANTECHAMBER_AC.AC0 │ │ │ │ ├── ANTECHAMBER_BOND_TYPE.AC │ │ │ │ ├── ANTECHAMBER_BOND_TYPE.AC0 │ │ │ │ ├── ANTECHAMBER_RESP.AC │ │ │ │ ├── ANTECHAMBER_RESP1.IN │ │ │ │ ├── ANTECHAMBER_RESP1.OUT │ │ │ │ ├── ANTECHAMBER_RESP2.IN │ │ │ │ ├── ANTECHAMBER_RESP2.OUT │ │ │ │ ├── ATOMTYPE.INF │ │ │ │ ├── H2O2.frcmod │ │ │ │ ├── H2O2.inpcrd │ │ │ │ ├── H2O2.mol2 │ │ │ │ ├── H2O2.prmtop │ │ │ │ ├── H5C12SN2O5.frcmod │ │ │ │ ├── H5C12SN2O5.inpcrd │ │ │ │ ├── H5C12SN2O5.mol2 │ │ │ │ ├── H5C12SN2O5.prmtop │ │ │ │ ├── Na.pdb │ │ │ │ ├── SPC_E.pdb │ │ │ │ ├── dhps.esp │ │ │ │ ├── dhps.out │ │ │ │ ├── esout │ │ │ │ ├── leap.log │ │ │ │ ├── oh.esp │ │ │ │ ├── oh.out │ │ │ │ ├── packed.xyz │ │ │ │ ├── punch │ │ │ │ ├── qout │ │ │ │ └── tleap.in │ │ │ ├── dhps.out │ │ │ ├── emin │ │ │ │ ├── complex.lammpsin │ │ │ │ └── run_file.json │ │ │ ├── melt │ │ │ │ ├── complex.lammpsin │ │ │ │ └── run_file.json │ │ │ ├── npt │ │ │ │ ├── complex.lammpsin │ │ │ │ └── run_file.json │ │ │ ├── nvt_0-20 │ │ │ │ ├── complex.lammpsin │ │ │ │ └── run_file.json │ │ │ ├── nvt_20-40 │ │ │ │ ├── complex.lammpsin │ │ │ │ └── run_file.json │ │ │ ├── oh.out │ │ │ ├── packed.xyz │ │ │ └── quench │ │ │ │ ├── complex.lammpsin │ │ │ │ └── run_file.json │ │ ├── dhps.esp │ │ ├── dhps.frcmod │ │ ├── dhps.inpcrd │ │ ├── dhps.mol2 │ │ ├── dhps.out │ │ ├── dhps.prmtop │ │ ├── esp_to_data │ │ │ ├── H2O2 │ │ │ │ ├── H2O2.frcmod │ │ │ │ ├── H2O2.inpcrd │ │ │ │ ├── H2O2.mol2 │ │ │ │ ├── H2O2.prmtop │ │ │ │ ├── oh.esp │ │ │ │ └── tleap.in │ │ │ ├── H5C12SN2O5 │ │ │ │ ├── H5C12SN2O5.frcmod │ │ │ │ ├── H5C12SN2O5.inpcrd │ │ │ │ ├── H5C12SN2O5.mol2 │ │ │ │ ├── H5C12SN2O5.prmtop │ │ │ │ ├── dhps.esp │ │ │ │ └── tleap.in │ │ │ ├── Na.pdb │ │ │ ├── SPC_E.pdb │ │ │ ├── complex_from_concentration.data │ │ │ ├── dhps.esp │ │ │ ├── dhps.out │ │ │ ├── oh.esp │ │ │ └── oh.out │ │ ├── leap.log │ │ ├── liquid_workflow │ │ │ ├── Na.pdb │ │ │ ├── SPC_E.pdb │ │ │ ├── dhps.esp │ │ │ ├── dhps.out │ │ │ ├── oh.esp │ │ │ └── oh.out │ │ ├── oh.esp │ │ ├── oh.out │ │ ├── parmchk │ │ │ ├── dhps.frcmod │ │ │ └── dhps.mol2 │ │ ├── prmtop │ │ │ ├── Na.pdb │ │ │ ├── SPC_E.pdb │ │ │ ├── dhps.out │ │ │ └── dhps.prmtop │ │ ├── run_lammps │ │ │ ├── test.lammpsin │ │ │ └── test_npt.lammpsin │ │ ├── tleap.in │ │ └── tleap │ │ │ ├── dhps.frcmod │ │ │ ├── dhps.inpcrd │ │ │ ├── dhps.mol2 │ │ │ ├── dhps.prmtop │ │ │ └── tleap.in │ └── tleap.py │ ├── utilities │ ├── __init__.py │ ├── opls.py │ └── utilities.py │ └── workflows │ ├── __init__.py │ └── base.py └── pyproject.toml /.github/workflows/build-deploy.yml: -------------------------------------------------------------------------------- 1 | name: Build and Deploy Website 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Checkout code 14 | uses: actions/checkout@v2 15 | 16 | - name: Set up Python 17 | uses: actions/setup-python@v3 18 | with: 19 | python-version: "3.10" 20 | 21 | - name: Install dependencies 22 | run: | 23 | pip install -r docs/requirements.txt 24 | pip install . 25 | # pip install -r requirements.txt 26 | - name: Generate Python API documentation 27 | run: | 28 | sphinx-apidoc -o docs/source . 29 | 30 | - name: Build HTML 31 | run: | 32 | cd docs 33 | make html 34 | 35 | - name: Copy index.html to gh-pages 36 | run: | 37 | cp docs/index.html index.html 38 | 39 | - name: Cleanup .pyc files 40 | run: | 41 | find . -name "*.pyc" -exec rm -f {} \; 42 | 43 | - name: Deploy to gh-pages 44 | run: | 45 | git config --global user.email "atwi.r@husky.neu.edu" 46 | git config --global user.name "rashatwi" 47 | git checkout --orphan gh-pages 48 | git reset --hard 49 | mv docs/build/* . 50 | touch .nojekyll 51 | git add . 52 | git commit -m "Deploy website" 53 | git branch -M gh-pages 54 | git push -f origin gh-pages 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.xml 2 | *.iml 3 | *.pyc 4 | /mispr/gaussian/config/* 5 | /build/* 6 | /dist/* 7 | *.egg-info/* 8 | /tests/* 9 | **/__pycache__ 10 | **/.DS_Store 11 | docs/build/ 12 | -------------------------------------------------------------------------------- /.idea/libraries/R_User_Library.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/shelf/Uncommitted_changes_before_Checkout_at_9_5_23,_11_19_AM_[Default_Changelist]/shelved.patch: -------------------------------------------------------------------------------- 1 | Index: docs/source/workflows/tutorials.rst 2 | IDEA additional info: 3 | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP 4 | <+>==========\nWorkflow Tutorials\n==========\n\nThis page is under construction.\n\nRunning an ESP workflow\n------------------------------\n\n\nRunning an MD workflow\n------------------------------\n\n\nRunning a hybrid workflow\n------------------------------\n 5 | =================================================================== 6 | diff --git a/docs/source/workflows/tutorials.rst b/docs/source/workflows/tutorials.rst 7 | --- a/docs/source/workflows/tutorials.rst 8 | +++ b/docs/source/workflows/tutorials.rst 9 | @@ -7,6 +7,15 @@ 10 | Running an ESP workflow 11 | ------------------------------ 12 | 13 | +The ESP workflow calculates the partial charges on a molecule using the ESP method. 14 | +The workflow is composed of three steps: 1) geometry optimization, 2) single point calculation, and 3) ESP calculation. The workflow is defined in the file `esp.yaml`: 15 | + 16 | + 17 | +```yaml 18 | + 19 | +``` 20 | + 21 | + 22 | 23 | Running an MD workflow 24 | ------------------------------ 25 | -------------------------------------------------------------------------------- /.idea/shelf/Uncommitted_changes_before_Checkout_at_9_5_23,_11_19_AM_[Default_Changelist]1/shelved.patch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/.idea/shelf/Uncommitted_changes_before_Checkout_at_9_5_23,_11_19_AM_[Default_Changelist]1/shelved.patch -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## Unreleased 9 | 10 | ### Added 11 | 12 | - Add docstrings for lammps workflows. 13 | 14 | ### Fixed 15 | 16 | - Update installation to use python 3.9 or higher. 17 | - Update the "cluster_analysis" firetask inputs to match recent changes in the MDPropTools package. 18 | 19 | ## [0.0.4] - 2023-07-15 20 | 21 | ### Added 22 | 23 | - Add support for retrieving molecules from pubchem directly and using them in the workflows. 24 | - Add support for OPLS 2005 ff by running Maestro in the backend. 25 | - Add an option for charge scaling of ionic species when preparing the lammps data file. 26 | - Allow identification of system element types when creating dump files in lammps simulations. 27 | 28 | ## [0.0.2] - 2022-08-29 29 | -------------------------------------------------------------------------------- /CITATION.cff: -------------------------------------------------------------------------------- 1 | cff-version: 1.2.0 2 | message: "If you use MISPR in your research, please consider citing the following:" 3 | authors: 4 | - family-names: Atwi 5 | given-names: Rasha 6 | orcid: https://orcid.org/0000-0001-8122-7335 7 | - family-names: Bliss 8 | given-names: Matthew 9 | orcid: https://orcid.org/0000-0003-1354-7649 10 | - family-names: Makeev 11 | given-names: Maxim 12 | orcid: https://orcid.org/0000-0001-7116-1299 13 | - family-names: Rajput 14 | given-names: Nav Nidhi 15 | orcid: https://orcid.org/0000-0003-4740-8217 16 | title: "MDPropTools" 17 | version: 0.0.4 18 | date-released: 2022-09-21 19 | url: https://github.com/molmd/mispr 20 | preferred-citation: 21 | type: article 22 | authors: 23 | - family-names: Atwi 24 | given-names: Rasha 25 | orcid: https://orcid.org/0000-0001-8122-7335 26 | - family-names: Bliss 27 | given-names: Matthew 28 | orcid: https://orcid.org/0000-0003-1354-7649 29 | - family-names: Makeev 30 | given-names: Maxim 31 | orcid: https://orcid.org/0000-0001-7116-1299 32 | - family-names: Rajput 33 | given-names: Nav Nidhi 34 | orcid: https://orcid.org/0000-0003-4740-8217 35 | doi: 10.1038/s41598-022-20009-w 36 | journal: Scientific Reports 37 | month: 9 38 | title: "MISPR: an open-source package for high-throughput multiscale molecular simulations" 39 | issn: 2045-2322 40 | volume: 12 41 | issue: 1 42 | start: 15760 43 | year: 2022 44 | publisher: Nature Publishing Group UK London 45 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to MISPR 2 | Welcome to `MISPR`! We're excited to have you contribute to our project. Before you get 3 | started, please take a moment to review the guidelines below. 4 | 5 | ## How to Contribute 6 | 7 | ### Reporting Bugs 8 | If you encounter a bug or unexpected behavior, please open a new issue on our GitHub 9 | repository. When reporting bugs, please include detailed steps to reproduce the issue, 10 | your environment (such as Python version, operating system), and any relevant error 11 | messages or logs. 12 | 13 | ### Requesting Features 14 | If you have a feature request or suggestion for `MISPR`, we'd love to hear it! 15 | Please open a new issue on GitHub and describe the feature you'd like to see, along 16 | with any context or use cases that might help us understand the request better. 17 | 18 | ### Contributing Code 19 | We welcome contributions to `MISPR` in the form of code improvements, bug fixes, 20 | new features, or documentation enhancements. To contribute code: 21 | 22 | 1. Fork the repository and create a new branch for your changes. 23 | 2. Make your changes and ensure that they follow our coding style and guidelines. 24 | 3. Write tests to cover any new functionality or changes. 25 | 4. Run the test suite to ensure that all tests pass. 26 | 5. Submit a pull request (PR) to the main repository with a clear description of your changes and why they're valuable. 27 | 28 | Our team will then review your PR, provide feedback if needed, and work with you to merge 29 | it into the main codebase. 30 | 31 | ### Code Style and Guidelines 32 | - Follow PEP 8 style guidelines for Python code. 33 | - Write clear and descriptive commit messages. 34 | - Keep code changes focused and avoid unrelated changes in the same PR. 35 | - Use meaningful variable and function names. 36 | - Include comments where necessary to explain complex logic or edge cases. 37 | 38 | ### Getting Help 39 | 40 | If you have questions, need help, or want to discuss ideas related to `MISPR`, you can: 41 | 42 | - Send us an email at [rasha.atwi@stonybrook.edu](mailto:rasha.atwi@stonybrook.edu). 43 | - Open an issue on GitHub. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2022 Stony Brook University 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/.nojekyll -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=source 11 | set BUILDDIR=. 12 | 13 | %SPHINXBUILD% >NUL 2>NUL 14 | if errorlevel 9009 ( 15 | echo. 16 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 17 | echo.installed, then set the SPHINXBUILD environment variable to point 18 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 19 | echo.may add the Sphinx directory to PATH. 20 | echo. 21 | echo.If you don't have Sphinx installed, grab it from 22 | echo.https://www.sphinx-doc.org/ 23 | exit /b 1 24 | ) 25 | 26 | if "%1" == "" goto help 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx==5.1.1 2 | sphinx_design==0.4.1 3 | sphinx-copybutton==0.5.2 4 | sphinx-tabs==3.4.1 5 | sphinxcontrib-mermaid==0.9.2 6 | sphinx-togglebutton==0.3.2 7 | sphinx-favicon==1.0.1 8 | sphinx-immaterial==0.11.11 9 | readthedocs-sphinx-search==0.3.1 10 | Pygments==2.16.1 11 | pydantic>=2.4 -------------------------------------------------------------------------------- /docs/source/_downloads/esp_tutorial.py: -------------------------------------------------------------------------------- 1 | from fireworks import LaunchPad 2 | 3 | from mispr.gaussian.workflows.base.esp import get_esp_charges 4 | 5 | lpad = LaunchPad.auto_load() 6 | 7 | wf, _ = get_esp_charges( 8 | mol_operation_type="get_from_pubchem", # (1)! 9 | mol="monoglyme", 10 | format_chk=True, 11 | save_to_db=True, 12 | save_to_file=True, 13 | additional_prop_doc_fields={"name": "monoglyme"}, 14 | tag="mispr_tutorial", 15 | ) 16 | lpad.add_wf(wf) # (2)! 17 | -------------------------------------------------------------------------------- /docs/source/_static/LICENSE.rst: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2022 Stony Brook University 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /docs/source/_static/analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/analysis.png -------------------------------------------------------------------------------- /docs/source/_static/convergence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/convergence.png -------------------------------------------------------------------------------- /docs/source/_static/document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/document.png -------------------------------------------------------------------------------- /docs/source/_static/full_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/full_logo.png -------------------------------------------------------------------------------- /docs/source/_static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/logo.png -------------------------------------------------------------------------------- /docs/source/_static/mispr_citation.bib: -------------------------------------------------------------------------------- 1 | @article{atwi2022mispr, 2 | title={MISPR: An automated infrastructure for high-throughput DFT and MD simulations}, 3 | author={Atwi, Rasha and Bliss, Matthew and Makeev, Maxim and Rajput, Nav Nidhi}, 4 | year={2022} 5 | } 6 | -------------------------------------------------------------------------------- /docs/source/_static/nmr_citation.bib: -------------------------------------------------------------------------------- 1 | @article{atwi2022automated, 2 | title={An automated framework for high-throughput predictions of NMR chemical shifts within liquid solutions}, 3 | author={Atwi, Rasha and Chen, Ying and Han, Kee Sung and Mueller, Karl T and Murugesan, Vijayakumar and Rajput, Nav Nidhi}, 4 | journal={Nature Computational Science}, 5 | volume={2}, 6 | number={2}, 7 | pages={112--122}, 8 | year={2022}, 9 | publisher={Nature Publishing Group} 10 | } 11 | -------------------------------------------------------------------------------- /docs/source/_static/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/overview.png -------------------------------------------------------------------------------- /docs/source/_static/style.css: -------------------------------------------------------------------------------- 1 | .mermaid text { 2 | font-size: 90%; 3 | } 4 | -------------------------------------------------------------------------------- /docs/source/_static/summary.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/summary.jpeg -------------------------------------------------------------------------------- /docs/source/_static/workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/docs/source/_static/workflow.png -------------------------------------------------------------------------------- /docs/source/changelog.rst: -------------------------------------------------------------------------------- 1 | ========= 2 | Changelog 3 | ========= 4 | 5 | **v0.0.1** 6 | 7 | * Initial release (R. Atwi and M. Bliss) 8 | 9 | **v0.0.4** 10 | 11 | * Support for retrieving molecules from pubchem directly and using them in the workflows 12 | * Support for OPLS 2005 ff by running Maestro in the backend 13 | * Option for charge scaling of ionic species when preparing the lammps data file 14 | * Automatic identification of system element types when creating dump files in lammps simulations 15 | * Addition of MDPropTools package for analysis of MD trajectories as dependency -------------------------------------------------------------------------------- /docs/source/citing.rst: -------------------------------------------------------------------------------- 1 | =============================== 2 | Citing MISPR 3 | =============================== 4 | If you find MISPR useful in your research, please consider citing the following papers: 5 | 6 | **Paper 1 (MISPR):** 7 | 8 | .. code-block:: bibtex 9 | 10 | @article{atwi2022mispr, 11 | title = {MISPR: An automated infrastructure for high-throughput DFT and MD simulations}, 12 | author = {Atwi, Rasha and Bliss, Matthew and Makeev, Maxim and Rajput, Nav Nidhi}, 13 | year = {2022} 14 | } 15 | 16 | Download as :download:`BibTeX <_static/mispr_citation.bib>` 17 | 18 | **Paper 2 (Hybrid NMR Workflow):** 19 | 20 | .. code-block:: bibtex 21 | 22 | @article{atwi2022automated, 23 | title = {An automated framework for high-throughput predictions of NMR chemical shifts within liquid solutions}, 24 | author = {Atwi, Rasha and Chen, Ying and Han, Kee Sung and Mueller, Karl T and Murugesan, Vijayakumar and Rajput, Nav Nidhi}, 25 | journal = {Nature Computational Science}, 26 | volume = {2}, 27 | number = {2}, 28 | pages = {112--122}, 29 | year = {2022}, 30 | publisher = {Nature Publishing Group} 31 | } 32 | 33 | Download as :download:`BibTeX <_static/nmr_citation.bib>` -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # Configuration file for the Sphinx documentation builder. 2 | # 3 | # For the full list of built-in configuration values, see the documentation: 4 | # https://www.sphinx-doc.org/en/master/usage/configuration.html 5 | 6 | # -- Path setup -------------------------------------------------------------- 7 | 8 | # If extensions (or modules to document with autodoc) are in another directory, 9 | # add these directories to sys.path here. If the directory is relative to the 10 | # documentation root, use os.path.abspath to make it absolute, like shown here. 11 | # 12 | import os 13 | import sys 14 | 15 | sys.path.insert(0, os.path.abspath(".")) 16 | sys.path.insert(0, os.path.dirname("..")) 17 | sys.path.insert(0, os.path.dirname("../../mispr")) 18 | sys.path.insert(0, os.path.abspath("../..")) 19 | 20 | 21 | # -- Project information ----------------------------------------------------- 22 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information 23 | 24 | project = "MISPR" 25 | copyright = "2022, MolMD Group" 26 | author = "MolMD Group" 27 | release = "0.0.4" 28 | 29 | # -- General configuration --------------------------------------------------- 30 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration 31 | 32 | extensions = [ 33 | "sphinx.ext.napoleon", 34 | "sphinx.ext.autodoc", 35 | "sphinxcontrib.mermaid", 36 | "sphinx.ext.coverage", 37 | "sphinx.ext.viewcode", 38 | "sphinx.ext.autosectionlabel", 39 | "sphinx_design", 40 | "sphinx_copybutton", 41 | "sphinx_search.extension", 42 | "sphinx_tabs.tabs", 43 | "sphinx_togglebutton", 44 | "sphinx_favicon", 45 | "sphinx_immaterial", 46 | "sphinx_immaterial.apidoc.python.apigen", 47 | ] 48 | 49 | # python_apigen_modules = { 50 | # "my_module": "api", 51 | # } 52 | 53 | mermaid_theme = { 54 | "theme": "dark", 55 | "themeVariables": { 56 | "primaryColor": "#BB2528", 57 | "primaryTextColor": "#fff", 58 | "primaryBorderColor": "#7C0000", 59 | "lineColor": "#F8B229", 60 | "secondaryColor": "#006100", 61 | "tertiaryColor": "#fff", 62 | }, 63 | } 64 | 65 | autodoc_mock_imports = ["custodian", "tleap", "pymatgen", "openbabel"] 66 | 67 | autosectionlabel_prefix_document = True 68 | templates_path = ["_templates"] 69 | exclude_patterns = [] 70 | sphinx_tabs_valid_builders = ["linkcheck"] 71 | sphinx_tabs_disable_tab_closing = True 72 | sphinx_immaterial_override_generic_admonitions = True 73 | 74 | 75 | html_theme = "sphinx_immaterial" 76 | html_static_path = ["_static"] 77 | html_css_files = ["style.css"] 78 | 79 | html_logo = "_static/logo.png" 80 | html_title = "Materials informatics for structure-property relationships" 81 | 82 | html_theme_options = { 83 | "features": [ 84 | "content.code.annotate", 85 | "navigation.expand", 86 | "navigation.sections", 87 | ], # (1) 88 | "palette": [ 89 | { 90 | "media": "(prefers-color-scheme: light)", 91 | "scheme": "default", 92 | "primary": "red", 93 | "accent": "light blue", 94 | "toggle": { 95 | "icon": "material/toggle-switch-off-outline", 96 | "name": "Switch to dark mode", 97 | }, 98 | }, 99 | { 100 | "media": "(prefers-color-scheme: dark)", 101 | "scheme": "slate", 102 | "primary": "red", 103 | "accent": "light blue", 104 | "toggle": { 105 | "icon": "material/toggle-switch", 106 | "name": "Switch to light mode", 107 | }, 108 | }, 109 | ], 110 | "font": { 111 | "text": "Roboto", # used for all the pages' text 112 | "code": "Roboto Mono", # used for literal code blocks 113 | }, 114 | "social": [ 115 | { 116 | "icon": "fontawesome/brands/github", 117 | "link": "https://github.com/molmd/mispr", 118 | "name": "Source on github.com", 119 | }, 120 | { 121 | "icon": "fontawesome/brands/twitter", 122 | "link": "https://twitter.com/molmd_group", 123 | }, 124 | ], 125 | } 126 | 127 | source_suffix = ".rst" 128 | 129 | master_doc = "index" 130 | 131 | napoleon_google_docstring = True 132 | napoleon_numpy_docstring = True 133 | autoclass_content = "both" 134 | 135 | 136 | def skip_params(app, what, name, obj, would_skip, options): 137 | if name in ("required_params", "optional_params"): 138 | return True 139 | return would_skip 140 | 141 | 142 | def setup(app): 143 | app.connect("autodoc-skip-member", skip_params) 144 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. title:: MISPR documentation 4 | 5 | .. module:: mispr 6 | 7 | .. toctree:: 8 | :hidden: 9 | 10 | overview 11 | keywords 12 | 13 | .. toctree:: 14 | :caption: Installation 🔧 15 | :hidden: 16 | :titlesonly: 17 | 18 | Overview 19 | Prerequisites 20 | Configuration Files 21 | Running a Test Workflow 22 | 23 | .. toctree:: 24 | :caption: Workflows 🔀 25 | :hidden: 26 | 27 | workflows/basics 28 | workflows/supported 29 | workflows/tutorials 30 | workflows/custom 31 | 32 | .. toctree:: 33 | :caption: Resources 🖇️ 34 | :hidden: 35 | 36 | resources/faq 37 | resources/resources 38 | 39 | .. toctree:: 40 | :caption: Code Documentation 📚 41 | :hidden: 42 | :titlesonly: 43 | 44 | mispr 45 | 46 | .. toctree:: 47 | :caption: Development 💻 48 | :hidden: 49 | 50 | changelog 51 | citing 52 | license 53 | 54 | ################################## 55 | MISPR |release| Documentation 56 | ################################## 57 | 58 | MISPR is a Python library for computational materials science and contains 59 | preset workflows for running complex hierarchical density functional 60 | theory (DFT) and classical molecular dynamics (MD) simulations to compute 61 | properties of materials. 62 | 63 | .. figure:: _static/summary.jpeg 64 | :scale: 70% 65 | 66 | 67 | ************* 68 | Installation 69 | ************* 70 | 71 | .. grid:: 1 1 2 2 72 | 73 | .. grid-item:: 74 | 75 | Install using `pip `__: 76 | 77 | .. code-block:: bash 78 | 79 | pip install mispr 80 | 81 | .. important:: 82 | Before you can start using MISPR, there are additional steps you need to follow. 83 | Please refer to the :doc:`installation guide ` for complete setup instructions, 84 | including any dependencies or configuration files required. 85 | 86 | 87 | ******************* 88 | Learning Resources 89 | ******************* 90 | 91 | .. grid:: 1 1 2 2 92 | 93 | .. grid-item-card:: 94 | :padding: 2 95 | 96 | About MISPR 97 | ^^^ 98 | 99 | - :doc:`Overview ` 100 | - :doc:`Dependencies and prerequisites ` 101 | 102 | .. grid-item-card:: 103 | :padding: 2 104 | 105 | Workflows 106 | ^^^ 107 | 108 | - :doc:`Workflow basics ` 109 | - :doc:`Supported workflows ` 110 | - :doc:`External learning resources ` 111 | 112 | .. grid-item-card:: 113 | :padding: 2 114 | 115 | How-tos 116 | ^^^ 117 | 118 | - :doc:`Tutorials ` 119 | - :doc:`MISPR FAQ ` 120 | 121 | .. grid-item-card:: 122 | :padding: 2 123 | 124 | Code documentation 125 | ^^^ 126 | - :doc:`Subpackages ` 127 | 128 | ************************************ 129 | Contributing / Reporting / Support 130 | ************************************ 131 | Contirbuting to MISPR can be in the form of: 132 | 133 | * Requesting or adding new workflows and features 134 | * Reporting or fixing bugs and issues 135 | * Contributing to the documentation and/or examples 136 | 137 | If you want to add or change something in the code, you can do this by 138 | forking `MISPR on GitHub `_ and 139 | submitting a pull request. 140 | 141 | If you submit a bug report, we will review it and move it to GitHub issues, 142 | where its progress can be tracked. 143 | 144 | For other inquiries, please contact us at rasha.atwi@stonybrook.edu. 145 | 146 | 147 | 148 | 149 | 150 | -------------------------------------------------------------------------------- /docs/source/installation/index.rst: -------------------------------------------------------------------------------- 1 | ============= 2 | Installation 3 | ============= 4 | Before installing MISPR, you need to follow the steps below in order: 5 | 6 | 1. (Optional) Create a :ref:`installation/dependencies:Conda environment` 7 | 2. Make sure you have access to the :ref:`computational chemistry software dependencies ` 8 | needed to run the DFT and MD simulations 9 | 3. Install :ref:`python package dependencies ` 10 | 4. Set up :ref:`installation/dependencies:MongoDB` database 11 | 5. :ref:`Install MISPR ` 12 | 6. Prepare the :doc:`configuration files ` 13 | 7. :doc:`Run a test workflow ` 14 | 15 | .. note:: 16 | Throughout the installation instructions, it is assumed that you are 17 | familiar with Python and with basic Linux shell commands. If not, 18 | `Linux Journey `_ and 19 | `Python For Beginners `_ 20 | are some recommended starting points. 21 | 22 | Installing MISPR 23 | -------------------------------- 24 | MISPR can be installed either from the python package 25 | index (good for most users) or directly from its GitHub 26 | repository (good for developers). 27 | 28 | Installation Method 1: Using pip 29 | ================================ 30 | For most users, install directly from PyPI: 31 | 32 | .. code-block:: bash 33 | 34 | pip install mispr 35 | 36 | Installation Method 2: Development mode 37 | ======================================= 38 | 39 | .. _codes-develop-mode: 40 | 41 | For developers or users who need to modify the source code, install MISPR in development mode. 42 | 43 | .. note:: 44 | If you had already installed MISPR via pip or conda, you 45 | should uninstall that first before starting the installation in 46 | development mode. This ensures that you will not have any conflicts 47 | resulting from two different code installations. 48 | 49 | The steps for installing the package in development mode are below. 50 | 51 | 1. Activate your conda environment or virtual environment 52 | 53 | 2. Create a ``codes`` directory in ``|CODES_DIR|`` 54 | 55 | 3. ``cd`` to your newly created ``|CODES_DIR|/codes`` directory 56 | 57 | 4. Clone the package you want to install in development mode using git:: 58 | 59 | git clone https://github.com/molmd/mispr.git 60 | 61 | Now you should have mispr directory in your ``codes`` 62 | directory. 63 | 64 | 5. ``cd`` into the mispr directory and run 65 | ``pip install -e .`` or use the ``conda`` equivalent. Once installed, 66 | if you make changes to the code, the changes 67 | will take effect immediately without having to reinstall the package. 68 | 69 | Post-installation 70 | ------------------------- 71 | 1. Before you go any further, confirm your package installations are correct. 72 | First start IPython by typing ``ipython`` in your terminal, then confirm that 73 | the command ``import mispr`` executes without any errors 74 | 75 | 2. To update the mispr code later on, execute ``git pull`` followed by 76 | ``pip install -e .`` or the ``conda`` equivalent in the mispr directory. 77 | If you installed via pip, you can simply execute ``pip install --upgrade mispr``. -------------------------------------------------------------------------------- /docs/source/keywords.rst: -------------------------------------------------------------------------------- 1 | =========== 2 | Keywords 3 | =========== 4 | 5 | .. list-table:: 6 | :widths: 25 75 7 | :header-rows: 1 8 | 9 | * - Keyword 10 | - Definition 11 | * - ``|CODES_DIR|`` 12 | - Main directory where the virtual python environment is created and the configuration files are stored 13 | * - ``LaunchPad`` 14 | - FireWorks database that controls the workflows. It stores all the tasks to be run and their status (e.g., RUNNING, WAITING, COMPLETED, etc.) 15 | * - ``FireTask`` 16 | - Computing task to be performed 17 | * - ``FireWork`` 18 | - A list of FireTasks that are to be run in sequence -------------------------------------------------------------------------------- /docs/source/license.rst: -------------------------------------------------------------------------------- 1 | ========== 2 | License 3 | ========== 4 | 5 | MISPR is released under the MIT License. 6 | 7 | .. literalinclude:: _static/LICENSE.rst -------------------------------------------------------------------------------- /docs/source/mispr.common.rst: -------------------------------------------------------------------------------- 1 | mispr.common package 2 | ==================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.common.pubchem module 8 | --------------------------- 9 | 10 | .. automodule:: mispr.common.pubchem 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: mispr.common 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/mispr.gaussian.firetasks.rst: -------------------------------------------------------------------------------- 1 | mispr.gaussian.firetasks package 2 | ================================ 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.gaussian.firetasks.geo\_transformation module 8 | --------------------------------------------------- 9 | 10 | .. automodule:: mispr.gaussian.firetasks.geo_transformation 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.gaussian.firetasks.parse\_outputs module 16 | ---------------------------------------------- 17 | 18 | .. automodule:: mispr.gaussian.firetasks.parse_outputs 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | mispr.gaussian.firetasks.run\_calc module 24 | ----------------------------------------- 25 | 26 | .. automodule:: mispr.gaussian.firetasks.run_calc 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | mispr.gaussian.firetasks.write\_inputs module 32 | --------------------------------------------- 33 | 34 | .. automodule:: mispr.gaussian.firetasks.write_inputs 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | Module contents 40 | --------------- 41 | 42 | .. automodule:: mispr.gaussian.firetasks 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | -------------------------------------------------------------------------------- /docs/source/mispr.gaussian.fireworks.rst: -------------------------------------------------------------------------------- 1 | mispr.gaussian.fireworks package 2 | ================================ 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.gaussian.fireworks.break\_mol module 8 | ------------------------------------------ 9 | 10 | .. automodule:: mispr.gaussian.fireworks.break_mol 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.gaussian.fireworks.core module 16 | ------------------------------------ 17 | 18 | .. automodule:: mispr.gaussian.fireworks.core 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | Module contents 24 | --------------- 25 | 26 | .. automodule:: mispr.gaussian.fireworks 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | -------------------------------------------------------------------------------- /docs/source/mispr.gaussian.rst: -------------------------------------------------------------------------------- 1 | mispr.gaussian package 2 | ====================== 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | mispr.gaussian.firetasks 11 | mispr.gaussian.fireworks 12 | mispr.gaussian.utilities 13 | mispr.gaussian.workflows 14 | 15 | Submodules 16 | ---------- 17 | 18 | mispr.gaussian.database module 19 | ------------------------------ 20 | 21 | .. automodule:: mispr.gaussian.database 22 | :members: 23 | :undoc-members: 24 | :show-inheritance: 25 | 26 | mispr.gaussian.defaults module 27 | ------------------------------ 28 | 29 | .. automodule:: mispr.gaussian.defaults 30 | :members: 31 | :undoc-members: 32 | :show-inheritance: 33 | 34 | Module contents 35 | --------------- 36 | 37 | .. automodule:: mispr.gaussian 38 | :members: 39 | :undoc-members: 40 | :show-inheritance: 41 | -------------------------------------------------------------------------------- /docs/source/mispr.gaussian.utilities.rst: -------------------------------------------------------------------------------- 1 | mispr.gaussian.utilities package 2 | ================================ 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.gaussian.utilities.db\_utilities module 8 | --------------------------------------------- 9 | 10 | .. automodule:: mispr.gaussian.utilities.db_utilities 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.gaussian.utilities.dbdoc module 16 | ------------------------------------- 17 | 18 | .. automodule:: mispr.gaussian.utilities.dbdoc 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | mispr.gaussian.utilities.files module 24 | ------------------------------------- 25 | 26 | .. automodule:: mispr.gaussian.utilities.files 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | mispr.gaussian.utilities.fw\_utilities module 32 | --------------------------------------------- 33 | 34 | .. automodule:: mispr.gaussian.utilities.fw_utilities 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | mispr.gaussian.utilities.gout module 40 | ------------------------------------ 41 | 42 | .. automodule:: mispr.gaussian.utilities.gout 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | 47 | mispr.gaussian.utilities.inputs module 48 | -------------------------------------- 49 | 50 | .. automodule:: mispr.gaussian.utilities.inputs 51 | :members: 52 | :undoc-members: 53 | :show-inheritance: 54 | 55 | mispr.gaussian.utilities.metadata module 56 | ---------------------------------------- 57 | 58 | .. automodule:: mispr.gaussian.utilities.metadata 59 | :members: 60 | :undoc-members: 61 | :show-inheritance: 62 | 63 | mispr.gaussian.utilities.misc module 64 | ------------------------------------ 65 | 66 | .. automodule:: mispr.gaussian.utilities.misc 67 | :members: 68 | :undoc-members: 69 | :show-inheritance: 70 | 71 | mispr.gaussian.utilities.mol module 72 | ----------------------------------- 73 | 74 | .. automodule:: mispr.gaussian.utilities.mol 75 | :members: 76 | :undoc-members: 77 | :show-inheritance: 78 | 79 | mispr.gaussian.utilities.rdkit module 80 | ------------------------------------- 81 | 82 | .. automodule:: mispr.gaussian.utilities.rdkit 83 | :members: 84 | :undoc-members: 85 | :show-inheritance: 86 | 87 | Module contents 88 | --------------- 89 | 90 | .. automodule:: mispr.gaussian.utilities 91 | :members: 92 | :undoc-members: 93 | :show-inheritance: 94 | -------------------------------------------------------------------------------- /docs/source/mispr.gaussian.workflows.base.rst: -------------------------------------------------------------------------------- 1 | mispr.gaussian.workflows.base package 2 | ===================================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.gaussian.workflows.base.bde module 8 | ---------------------------------------- 9 | 10 | .. automodule:: mispr.gaussian.workflows.base.bde 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.gaussian.workflows.base.binding\_energy module 16 | ---------------------------------------------------- 17 | 18 | .. automodule:: mispr.gaussian.workflows.base.binding_energy 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | mispr.gaussian.workflows.base.core module 24 | ----------------------------------------- 25 | 26 | .. automodule:: mispr.gaussian.workflows.base.core 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | mispr.gaussian.workflows.base.esp module 32 | ---------------------------------------- 33 | 34 | .. automodule:: mispr.gaussian.workflows.base.esp 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | mispr.gaussian.workflows.base.ip\_ea module 40 | ------------------------------------------- 41 | 42 | .. automodule:: mispr.gaussian.workflows.base.ip_ea 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | 47 | mispr.gaussian.workflows.base.nmr module 48 | ---------------------------------------- 49 | 50 | .. automodule:: mispr.gaussian.workflows.base.nmr 51 | :members: 52 | :undoc-members: 53 | :show-inheritance: 54 | 55 | Module contents 56 | --------------- 57 | 58 | .. automodule:: mispr.gaussian.workflows.base 59 | :members: 60 | :undoc-members: 61 | :show-inheritance: 62 | -------------------------------------------------------------------------------- /docs/source/mispr.gaussian.workflows.rst: -------------------------------------------------------------------------------- 1 | mispr.gaussian.workflows package 2 | ================================ 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | mispr.gaussian.workflows.base 11 | 12 | Module contents 13 | --------------- 14 | 15 | .. automodule:: mispr.gaussian.workflows 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | -------------------------------------------------------------------------------- /docs/source/mispr.hybrid.firetasks.rst: -------------------------------------------------------------------------------- 1 | mispr.hybrid.firetasks package 2 | ============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.hybrid.firetasks.nmr\_from\_md module 8 | ------------------------------------------- 9 | 10 | .. automodule:: mispr.hybrid.firetasks.nmr_from_md 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: mispr.hybrid.firetasks 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/mispr.hybrid.rst: -------------------------------------------------------------------------------- 1 | mispr.hybrid package 2 | ==================== 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | mispr.hybrid.firetasks 11 | mispr.hybrid.workflows 12 | 13 | Submodules 14 | ---------- 15 | 16 | mispr.hybrid.defaults module 17 | ---------------------------- 18 | 19 | .. automodule:: mispr.hybrid.defaults 20 | :members: 21 | :undoc-members: 22 | :show-inheritance: 23 | 24 | Module contents 25 | --------------- 26 | 27 | .. automodule:: mispr.hybrid 28 | :members: 29 | :undoc-members: 30 | :show-inheritance: 31 | -------------------------------------------------------------------------------- /docs/source/mispr.hybrid.workflows.rst: -------------------------------------------------------------------------------- 1 | mispr.hybrid.workflows package 2 | ============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.hybrid.workflows.core module 8 | ---------------------------------- 9 | 10 | .. automodule:: mispr.hybrid.workflows.core 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.hybrid.workflows.nmr module 16 | --------------------------------- 17 | 18 | .. automodule:: mispr.hybrid.workflows.nmr 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | Module contents 24 | --------------- 25 | 26 | .. automodule:: mispr.hybrid.workflows 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | -------------------------------------------------------------------------------- /docs/source/mispr.lammps.firetasks.rst: -------------------------------------------------------------------------------- 1 | mispr.lammps.firetasks package 2 | ============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.lammps.firetasks.parse\_outputs module 8 | -------------------------------------------- 9 | 10 | .. automodule:: mispr.lammps.firetasks.parse_outputs 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.lammps.firetasks.run module 16 | --------------------------------- 17 | 18 | .. automodule:: mispr.lammps.firetasks.run 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | mispr.lammps.firetasks.write\_inputs module 24 | ------------------------------------------- 25 | 26 | .. automodule:: mispr.lammps.firetasks.write_inputs 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | Module contents 32 | --------------- 33 | 34 | .. automodule:: mispr.lammps.firetasks 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | -------------------------------------------------------------------------------- /docs/source/mispr.lammps.fireworks.rst: -------------------------------------------------------------------------------- 1 | mispr.lammps.fireworks package 2 | ============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.lammps.fireworks.core module 8 | ---------------------------------- 9 | 10 | .. automodule:: mispr.lammps.fireworks.core 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: mispr.lammps.fireworks 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/mispr.lammps.rst: -------------------------------------------------------------------------------- 1 | mispr.lammps package 2 | ==================== 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | mispr.lammps.firetasks 11 | mispr.lammps.fireworks 12 | mispr.lammps.tests 13 | mispr.lammps.utilities 14 | mispr.lammps.workflows 15 | 16 | Submodules 17 | ---------- 18 | 19 | mispr.lammps.database module 20 | ---------------------------- 21 | 22 | .. automodule:: mispr.lammps.database 23 | :members: 24 | :undoc-members: 25 | :show-inheritance: 26 | 27 | mispr.lammps.defaults module 28 | ---------------------------- 29 | 30 | .. automodule:: mispr.lammps.defaults 31 | :members: 32 | :undoc-members: 33 | :show-inheritance: 34 | 35 | Module contents 36 | --------------- 37 | 38 | .. automodule:: mispr.lammps 39 | :members: 40 | :undoc-members: 41 | :show-inheritance: 42 | -------------------------------------------------------------------------------- /docs/source/mispr.lammps.tests.rst: -------------------------------------------------------------------------------- 1 | mispr.lammps.tests package 2 | ========================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.lammps.tests.antechamber module 8 | ------------------------------------- 9 | 10 | .. automodule:: mispr.lammps.tests.antechamber 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.lammps.tests.base\_test module 16 | ------------------------------------ 17 | 18 | .. automodule:: mispr.lammps.tests.base_test 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | mispr.lammps.tests.control module 24 | --------------------------------- 25 | 26 | .. automodule:: mispr.lammps.tests.control 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | mispr.lammps.tests.custom\_data\_workflow module 32 | ------------------------------------------------ 33 | 34 | .. automodule:: mispr.lammps.tests.custom_data_workflow 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | mispr.lammps.tests.data module 40 | ------------------------------ 41 | 42 | .. automodule:: mispr.lammps.tests.data 43 | :members: 44 | :undoc-members: 45 | :show-inheritance: 46 | 47 | mispr.lammps.tests.electrolyte\_wf module 48 | ----------------------------------------- 49 | 50 | .. automodule:: mispr.lammps.tests.electrolyte_wf 51 | :members: 52 | :undoc-members: 53 | :show-inheritance: 54 | 55 | mispr.lammps.tests.esp\_to\_ff\_dict\_custom module 56 | --------------------------------------------------- 57 | 58 | .. automodule:: mispr.lammps.tests.esp_to_ff_dict_custom 59 | :members: 60 | :undoc-members: 61 | :show-inheritance: 62 | 63 | mispr.lammps.tests.esp\_to\_ff\_dict\_function module 64 | ----------------------------------------------------- 65 | 66 | .. automodule:: mispr.lammps.tests.esp_to_ff_dict_function 67 | :members: 68 | :undoc-members: 69 | :show-inheritance: 70 | 71 | mispr.lammps.tests.liquid\_wf\_local module 72 | ------------------------------------------- 73 | 74 | .. automodule:: mispr.lammps.tests.liquid_wf_local 75 | :members: 76 | :undoc-members: 77 | :show-inheritance: 78 | 79 | mispr.lammps.tests.parmchk module 80 | --------------------------------- 81 | 82 | .. automodule:: mispr.lammps.tests.parmchk 83 | :members: 84 | :undoc-members: 85 | :show-inheritance: 86 | 87 | mispr.lammps.tests.prmtop module 88 | -------------------------------- 89 | 90 | .. automodule:: mispr.lammps.tests.prmtop 91 | :members: 92 | :undoc-members: 93 | :show-inheritance: 94 | 95 | mispr.lammps.tests.run\_lammps module 96 | ------------------------------------- 97 | 98 | .. automodule:: mispr.lammps.tests.run_lammps 99 | :members: 100 | :undoc-members: 101 | :show-inheritance: 102 | 103 | mispr.lammps.tests.tleap module 104 | ------------------------------- 105 | 106 | .. automodule:: mispr.lammps.tests.tleap 107 | :members: 108 | :undoc-members: 109 | :show-inheritance: 110 | 111 | Module contents 112 | --------------- 113 | 114 | .. automodule:: mispr.lammps.tests 115 | :members: 116 | :undoc-members: 117 | :show-inheritance: 118 | -------------------------------------------------------------------------------- /docs/source/mispr.lammps.utilities.rst: -------------------------------------------------------------------------------- 1 | mispr.lammps.utilities package 2 | ============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.lammps.utilities.opls module 8 | ---------------------------------- 9 | 10 | .. automodule:: mispr.lammps.utilities.opls 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | mispr.lammps.utilities.utilities module 16 | --------------------------------------- 17 | 18 | .. automodule:: mispr.lammps.utilities.utilities 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | Module contents 24 | --------------- 25 | 26 | .. automodule:: mispr.lammps.utilities 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | -------------------------------------------------------------------------------- /docs/source/mispr.lammps.workflows.rst: -------------------------------------------------------------------------------- 1 | mispr.lammps.workflows package 2 | ============================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | mispr.lammps.workflows.base module 8 | ---------------------------------- 9 | 10 | .. automodule:: mispr.lammps.workflows.base 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: mispr.lammps.workflows 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/mispr.rst: -------------------------------------------------------------------------------- 1 | mispr package 2 | ============= 3 | 4 | Subpackages 5 | ----------- 6 | 7 | .. toctree:: 8 | :maxdepth: 4 9 | 10 | mispr.common 11 | mispr.gaussian 12 | mispr.hybrid 13 | mispr.lammps 14 | 15 | Module contents 16 | --------------- 17 | 18 | .. automodule:: mispr 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | -------------------------------------------------------------------------------- /docs/source/modules.rst: -------------------------------------------------------------------------------- 1 | mispr 2 | ===== 3 | 4 | .. toctree:: 5 | :maxdepth: 4 6 | 7 | mispr 8 | -------------------------------------------------------------------------------- /docs/source/overview.rst: -------------------------------------------------------------------------------- 1 | ========== 2 | Overview 3 | ========== 4 | MISPR (Materials Informatics for Structure-Property Relationships) is a 5 | high-throughput computational infrastructure aimed at guiding and 6 | accelerating materials discovery, optimization, and deployment for 7 | liquid solutions by seamlessly integrating density functional theory 8 | (DFT) with classical molecular dynamics (MD) techniques. 9 | 10 | MISPR is motivated by the Materials Genome Initiative (MGI) principles and is 11 | built on top of open-source Python packages developed for the `Materials 12 | Project `_ such as `pymatgen `_, 13 | `FireWorks `_ , 14 | and `custodian `_, as 15 | well as `MDPropTools `_, which 16 | is an in-house package for analyzing MD output and trajectory files. 17 | 18 | .. figure:: _static/overview.png 19 | 20 | **Features of MISPR include**: 21 | 22 | * Automation of DFT and MD simulations and all their underlying tasks 23 | from file management and job submission to supercomputing resources, 24 | to output parsing and data analytics; a task that can be done to a 25 | single molecule/system or to a large number of systems in parallel 26 | 27 | * Creation of computational databases of force field parameters and DFT 28 | and MD derived properties of molecular systems for establishing 29 | structure-property relations and maintaining data provenance and 30 | reproducibility 31 | 32 | * Detection of the inevitable errors that occur during the simulations 33 | and their on-the-fly correction based on template responses that have 34 | been designed relying on human intuition coupled with extensive 35 | experience to significantly improve the success rate of high-throughput 36 | simulations while eliminating human intervention 37 | 38 | * Support for flexible and well-tested DFT workflows that compute various 39 | properties of individual molecular species or complexes such as bond 40 | dissociation energy, binding energy, redox potential, and nuclear 41 | magnetic resonance (NMR) tensors 42 | 43 | * Derivation of many molecular ensemble properties such as radial 44 | distribution functions, diffusion coefficients, viscosity, and 45 | conductivity of liquid solutions, which are critical to understanding 46 | complex inter- and intra-atomic interactions controlling the performance 47 | of solutions within various chemistry, biology, and materials science 48 | applications 49 | 50 | * Seamless integration of DFT and MD simulations through hybrid 51 | workflows that enable force field generation and information flow 52 | between the two length scales to allow exploring wide chemical and 53 | parameter spaces (e.g., temperature, pressure, concentration, etc.), 54 | a task that can be infeasible experimentally and challenging using 55 | manual calculations 56 | 57 | * Automatic extraction of hundreds of thousands of solvation structures 58 | from MD ensembles and their use in DFT workflows to accurately represent 59 | the electronic environment, which is crucial to derive reliable energetics 60 | and other properties such as NMR chemical shifts and redox potentials 61 | and match them to experimental data 62 | 63 | .. note:: 64 | MISPR is primarily built to work with `Gaussian `_ 65 | electronic structure software for DFT calculation and 66 | `LAMMPS `_ 67 | open-source software for MD simulations. -------------------------------------------------------------------------------- /docs/source/resources/faq.rst: -------------------------------------------------------------------------------- 1 | =========== 2 | FAQ 3 | =========== 4 | 5 | This page is under construction. -------------------------------------------------------------------------------- /docs/source/resources/resources.rst: -------------------------------------------------------------------------------- 1 | ============= 2 | Helpful Links 3 | ============= 4 | 5 | Code Documentation 6 | ------------------------------ 7 | * `pymatgen `_ 8 | * `FireWorks `_ 9 | * `custodian `_ 10 | * `Gaussian `_ 11 | * `LAMMPS `_ 12 | 13 | Code Capsules 14 | ------------------------------ 15 | * `MISPR workshop for high-school students `_: 16 | a compute capsule that stores the Python environment for the workshop 17 | and includes Jupyter notebooks for predicting various materials 18 | properties using MISPR 19 | * `NMR tutorial `_: a compute 20 | capsule that shows how to use the hybrid NMR workflow in MISPR to 21 | sample solvation structures from MD simulations and predict their 22 | NMR chemical shifts in a fully automated manner -------------------------------------------------------------------------------- /docs/source/workflows/basics.rst: -------------------------------------------------------------------------------- 1 | ==================== 2 | Workflow Basics 3 | ==================== 4 | A scientific workflow in MISPR provides a complete description of the 5 | procedure leading to the final data used to predict the desired property 6 | of a given molecule or system. It consists of multiple steps ranging 7 | from the initial setup of a molecule or system of molecules to a 8 | sequence of calculations with dependencies and optional automated 9 | post-processing of parsed data to derive properties of interest. 10 | 11 | .. note:: 12 | The workflow model we use to encode DFT and MD recipes in MISPR is 13 | defined by the FireWorks workflow software. 14 | 15 | A workflow in FireWorks is modeled as a Directed Acyclic Graph 16 | representing the chain of relationships between 17 | computational operations. A workflow consists of one or more Fireworks 18 | (jobs) with dependencies. The workflow contains information 19 | about the links between Fireworks to execute them in the correct order. 20 | Each Firework consists of one or more Firetasks that run sequentially. 21 | A Firetask is an atomic computing job that can call shell scripts, 22 | transfer files, write/delete files, or execute other Python functions. 23 | An example of the structure of a DFT workflow in MISPR is shown below: 24 | 25 | .. figure:: ../_static/workflow.png 26 | 27 | Once a Workflow object is created, the user can use the FireWorks package 28 | to execute the calculations on various computing resources. The goal of 29 | MISPR infrastructure is to provide preset workflows for 30 | computing properties relevant to the molecular science community and to 31 | simplify the process of creating new workflows by using the implemented 32 | FireWorks and Firetasks in MISPR as building blocks for custom workflows. 33 | 34 | At the end of each workflow in MISPR, an analysis FireTask is performed 35 | to analyze the results and generate a report. The report is in the form 36 | of a JSON file and/or MongoDB document. It contains all the input parameters 37 | used in the calculations, the output data, general information about the 38 | calculation like the software version used (Gaussian, LAMMPS, MISPR, etc.), 39 | the wall time the full run took, and chemical metadata about the molecule 40 | or system of molecules (e.g. SMILES, InChI, molecular formula, etc.). 41 | 42 | In general, each property predicted by MISPR workflows is the result of 43 | multiple Gaussian or LAMMPS calculations, and the predicted property is 44 | represented by a single file/document summarizing data and "raw" information 45 | collected from different calculation steps. The MongoDB document 46 | corresponding to a predicted property is stored in a MongoDB collection 47 | named after the property. For example, bond dissociation energies are 48 | stored in a ``bde`` collection in the database while electrostatic 49 | partial charges are saved in an ``esp`` collection and so on. Some of 50 | the analysis FireTasks also include optional plotting of the results. 51 | Besides the final summary file/document, MISPR stores data from the 52 | intermediate calculation steps into a collection called ``runs`` in the 53 | database. 54 | 55 | The following diagram summarizes the process in MISPR workflows to generate 56 | the analysis files/documents: 57 | 58 | .. figure:: ../_static/analysis.png 59 | 60 | .. note:: 61 | The above diagram shows one example of the structure of a workflow 62 | where the Fireworks are executed sequentially. Some workflows contain 63 | parallel Fireworks. However, the analysis Firework 64 | is always the last Firework in all the workflows in MISPR. -------------------------------------------------------------------------------- /docs/source/workflows/custom.rst: -------------------------------------------------------------------------------- 1 | ========================= 2 | Creating Custom Workflows 3 | ========================= 4 | 5 | This page is under construction. -------------------------------------------------------------------------------- /docs/source/workflows/supported.rst: -------------------------------------------------------------------------------- 1 | ==================== 2 | Supported Workflows 3 | ==================== 4 | Some of the workflows available as of July 2022 are: 5 | 6 | * DFT: 7 | * Electrostatic partial charges (ESP) 8 | * NMR shifts 9 | * Redox potentials 10 | * Binding energies 11 | * Bond dissociation energies 12 | * MD: 13 | * Initial configuration building, generation of `GAFF `_ 14 | or `OPLS `_ parameters, 15 | running of MD simulations 16 | * Analysis of output and trajectory files (e.g. RDF, coordination 17 | number, diffusion coefficients, etc.) 18 | * Hybrid: 19 | * Core workflow for optimizing the individual structure of the 20 | mixture of components, generating their ESP charges, and using 21 | them in MD simulations 22 | * NMR: deriving NMR chemicals for stable solvation structures 23 | extracted from MD simulations 24 | 25 | One can customize any of the above workflows or create their own by reusing 26 | the building blocks provided by MISPR. The above preset workflows are in 27 | ``mispr/gaussian/workflows/base``, ``mispr/lammps/workflows/base``, and 28 | ``mispr/hybrid/workflows``. 29 | 30 | .. note:: 31 | Other types of force field parameters can be provided as 32 | inputs to the MD workflow, thereby skipping the force field 33 | generation step. -------------------------------------------------------------------------------- /docs/source/workflows/tutorials.rst: -------------------------------------------------------------------------------- 1 | =================== 2 | Workflow Tutorials 3 | =================== 4 | 5 | This page is under construction. 6 | 7 | Running an ESP workflow 8 | ------------------------------ 9 | The ESP workflow calculates the partial charges on atoms of a molecule. The charges are 10 | fit to the electrostatic potential at points selected according to the Merz-Singh-Kollman 11 | scheme, but other schemes supported by Gaussian can be used as well. 12 | 13 | **The ESP workflow performs the following steps:** 14 | 15 | .. mermaid:: 16 | 17 | %%{ 18 | init: { 19 | 'theme': 'base', 20 | 'themeVariables': { 21 | 'primaryTextColor': 'black', 22 | 'lineColor': 'lightgrey', 23 | 'secondaryColor': 'pink', 24 | 'tertiaryColor': 'lightgrey' 25 | } 26 | } 27 | }%% 28 | 29 | graph TD 30 | A[(Input Structure)] -->|Preprocessing| DFT 31 | DFT -->| | B[Geometry Optimization] 32 | B -->| | C[Frequency Calculation] 33 | C -->| | D[ESP Calculation] 34 | D -->|Postprocessing| E[(Output)] 35 | 36 | subgraph DFT 37 | B[Geometry Optimization] 38 | C[Frequency Calculation] 39 | D[ESP Calculation] 40 | end 41 | 42 | style A fill:#EBEBEB,stroke:#BB2528 43 | style DFT fill:#DDEEFF,stroke:#DDEEFF,font-weight:bold 44 | style B fill:#fff,stroke-dasharray: 5, 5, stroke:#BB2528 45 | style C fill:#fff,stroke-dasharray: 5, 5, stroke:#BB2528 46 | style D fill:#fff,stroke:#BB2528 47 | style E fill:#EBEBEB,stroke:#BB2528 48 | 49 | .. note:: 50 | The geometry optimization and frequency calculation steps (marked with a dashed 51 | border in the above diagram) are optional. If the input structure is already 52 | optimized, the workflow will skip these steps. 53 | 54 | 55 | In the following example, we will run the ESP workflow on a monoglyme molecule. 56 | 57 | .. code-block:: python 58 | :linenos: 59 | 60 | from fireworks import LaunchPad 61 | 62 | from mispr.gaussian.workflows.base.esp import get_esp_charges 63 | 64 | lpad = LaunchPad.auto_load() 65 | 66 | wf, _ = get_esp_charges( 67 | mol_operation_type="get_from_pubchem", # (1)! 68 | mol="monoglyme", 69 | format_chk=True, 70 | save_to_db=True, 71 | save_to_file=True, 72 | additional_prop_doc_fields={"name": "monoglyme"}, 73 | tag="mispr_tutorial", 74 | ) 75 | lpad.add_wf(wf) # (2)! 76 | 77 | .. code-annotations:: 78 | 1. 79 | :code:`mol_operation_type` refers to the operation to be performed on the input to process the molecule. 80 | 81 | In this example, we are requesting to directly retrieve the molecule from PubChem by providing a 82 | common name for the molecule to be used as query criteria for searching the PubChem database via 83 | the :code:`mol` input argument. For a list of supported :code:`mol_operation_type` and the corresponding 84 | :code:`mol`, refer to :meth:`mispr.gaussian.utilities.mol.process_mol`. 85 | 86 | 2. Adds the workflow to the launchpad. 87 | 88 | 89 | Download :download:`esp_tutorial.py <../_downloads/esp_tutorial.py>`. 90 | 91 | Run the script using the following command: 92 | 93 | .. code-block:: bash 94 | 95 | python esp_tutorial.py 96 | 97 | And then launch the job through the queueing system using the following command: 98 | 99 | .. code-block:: bash 100 | 101 | qlaunch rapidfire # (1)! 102 | 103 | .. code-annotations:: 104 | 1. 105 | This command can submit a large number of jobs at once 106 | or maintain a certain number of jobs in the queue. 107 | 108 | The workflow will run and create a directory named :code:`C4H10O2` in the current working 109 | directory. The directory will contain the following subdirectories: 110 | 111 | .. code-block:: bash 112 | 113 | C4H10O2 114 | ├── Optimization 115 | ├── Frequency 116 | ├── ESP 117 | ├── analysis 118 | 119 | Inside the :code:`Optimization`, :code:`Frequency`, and :code:`ESP` subdirectories, you 120 | will find the Gaussian input and output files for the corresponding step. Inside the 121 | :code:`Optimization` subdirectory, you will also find a "convergence.png" figure that 122 | shows the forces and displacement convergence during the course of the optimization. 123 | 124 | .. figure:: ../_static/convergence.png 125 | 126 | The :code:`analysis` subdirectory contains the results of the workflow in the form of a 127 | :code:`esp.json` file. You can read the content of the :code:`esp.json` file using the 128 | following commands: 129 | 130 | .. code-block:: python 131 | :linenos: 132 | 133 | import json 134 | 135 | with open("C4H10O2/analysis/esp.json", "r") as f: 136 | esp = json.load(f) 137 | 138 | print(esp["esp"]) 139 | 140 | This will output the partial charges on the atoms of the molecule: 141 | 142 | .. code-block:: python 143 | 144 | { 145 | "1": ["O", -0.374646], 146 | "2": ["O", -0.373831], 147 | "3": ["C", 0.132166], 148 | "4": ["C", 0.132716], 149 | "5": ["C", 0.034284], 150 | "6": ["C", 0.031733], 151 | "7": ["H", 0.033853], 152 | "8": ["H", 0.034024], 153 | "9": ["H", 0.034218], 154 | "10": ["H", 0.034388], 155 | "11": ["H", 0.070724], 156 | "12": ["H", 0.03474], 157 | "13": ["H", 0.03438], 158 | "14": ["H", 0.034621], 159 | "15": ["H", 0.071656], 160 | "16": ["H", 0.034974], 161 | } 162 | 163 | Running a BDE workflow 164 | ------------------------------ 165 | 166 | 167 | Running an MD workflow 168 | ------------------------------ 169 | 170 | 171 | Running a hybrid workflow 172 | ------------------------------ 173 | -------------------------------------------------------------------------------- /mispr/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "0.0.4" -------------------------------------------------------------------------------- /mispr/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/common/__init__.py -------------------------------------------------------------------------------- /mispr/common/pubchem.py: -------------------------------------------------------------------------------- 1 | """Implement a core class PubChemRunner for retrieving molecules from the PubChem 2 | database using a molecule name as a query criteria.""" 3 | 4 | import os 5 | 6 | import pubchempy as pcp 7 | 8 | from pymatgen.core.structure import Molecule 9 | 10 | __author__ = "Rasha Atwi" 11 | __maintainer__ = "Rasha Atwi" 12 | __email__ = "rasha.atwi@stonybrook.edu" 13 | __status__ = "Development" 14 | __date__ = "Aug 2022" 15 | __version__ = "0.0.4" 16 | 17 | 18 | class PubChemRunner: 19 | """ 20 | Wrapper for retrieving molecules from PubChem database. 21 | """ 22 | 23 | def __init__(self, abbreviation, working_dir=None): 24 | """ 25 | Args: 26 | abbreviation (str): Abbreviation to be used when saving molecule file. 27 | working_dir (str, optional): Working directory for saving the molecule file 28 | in; will use the current working directory if not specified. 29 | """ 30 | self.abbreviation = abbreviation 31 | self.working_dir = working_dir or os.getcwd() 32 | self.cid = None 33 | 34 | def get_mol(self, name, save_to_file=True, fmt="pdb", cleanup=True): 35 | """ 36 | Wrapper function that searches for a molecule in the PubChem database, downloads 37 | it in the form of an SDF file, and converts the file to a pymatgen ``Molecule`` 38 | object. 39 | 40 | Args: 41 | name (str): Name of the molecule to use for searching PubChem. 42 | save_to_file (bool, optional): Whether to save the ``Molecule`` object to a 43 | file. Defaults to ``True``. 44 | fmt (str, optional): Molecule file format if ``save_to_file`` is ``True``; 45 | defaults to "pdb". 46 | cleanup (bool, optional): Whether to remove the intermediate sdf file. 47 | 48 | Returns: 49 | Molecule: pymatgen ``Molecule`` object. 50 | """ 51 | self.download_sdf(name) 52 | molecule = self.convert_sdf_to_mol(save_to_file, fmt) 53 | if cleanup: 54 | self.cleanup() 55 | return molecule 56 | 57 | def download_sdf(self, name): 58 | """ 59 | Download an SDF file from PubChem using a common name for the molecule as an 60 | identifier. 61 | 62 | Args: 63 | name (str): Name of the molecule to use for searching PubChem. 64 | """ 65 | cids = pcp.get_cids(name, record_type="3d") 66 | if cids: 67 | self.cid = cids[0] 68 | pcp.download( 69 | outformat="SDF", 70 | path=f"{self.working_dir}/{self.abbreviation}_{self.cid}.sdf", 71 | identifier=self.cid, 72 | record_type="3d", 73 | overwrite=True, 74 | ) 75 | else: 76 | raise ValueError("No matching molecule found in the PubChem database") 77 | 78 | def convert_sdf_to_mol(self, save_to_file, fmt): 79 | """ 80 | Convert an SDF file to a pymatgen ``Molecule`` object. 81 | 82 | Args: 83 | save_to_file (bool): Whether to save the ``Molecule`` object to a file. 84 | fmt (str): Molecule file format if ``save_to_file`` is ``True``. 85 | 86 | Returns: 87 | Molecule: pymatgen ``Molecule`` object. 88 | """ 89 | mol = Molecule.from_file( 90 | f"{self.working_dir}/{self.abbreviation}_{self.cid}.sdf" 91 | ) 92 | if save_to_file: 93 | mol.to(fmt, f"{self.working_dir}/{self.abbreviation}_{self.cid}.{fmt}") 94 | return mol 95 | 96 | def cleanup(self): 97 | """ 98 | Delete the sdf file downloaded from PubChem. 99 | """ 100 | os.remove(f"{self.working_dir}/{self.abbreviation}_{self.cid}.sdf") 101 | -------------------------------------------------------------------------------- /mispr/gaussian/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/gaussian/__init__.py -------------------------------------------------------------------------------- /mispr/gaussian/data/h_pot.bib: -------------------------------------------------------------------------------- 1 | @article{reiss1985absolute, 2 | title={The absolute potential of the standard hydrogen electrode: a new estimate}, 3 | author={Reiss, Howard and Heller, Adam}, 4 | journal={The Journal of Physical Chemistry}, 5 | volume={89}, 6 | number={20}, 7 | pages={4207--4213}, 8 | year={1985}, 9 | publisher={ACS Publications} 10 | } -------------------------------------------------------------------------------- /mispr/gaussian/data/li_pot.bib: -------------------------------------------------------------------------------- 1 | @incollection{smith2013lithium, 2 | title={Lithium battery electrolyte stability and performance from molecular modeling and simulations}, 3 | author={Smith, Grant D and Borodin, Oleg}, 4 | booktitle={Batteries for Sustainability}, 5 | pages={195--237}, 6 | year={2013}, 7 | publisher={Springer} 8 | } -------------------------------------------------------------------------------- /mispr/gaussian/data/mg_pot.bib: -------------------------------------------------------------------------------- 1 | @article{coates1945124, 2 | title={124. The standard electrode potential of magnesium}, 3 | author={Coates, GE}, 4 | journal={Journal of the Chemical Society (Resumed)}, 5 | pages={478--479}, 6 | year={1945}, 7 | publisher={Royal Society of Chemistry} 8 | } -------------------------------------------------------------------------------- /mispr/gaussian/defaults.py: -------------------------------------------------------------------------------- 1 | # gaussian jobs used to identify the type of calculation and insert it to the db 2 | JOB_TYPES = { 3 | "sp", 4 | "opt", 5 | "freq", 6 | "irc", 7 | "ircmax", 8 | "scan", 9 | "polar", 10 | "admp", 11 | "bomd", 12 | "eet", 13 | "force", 14 | "stable", 15 | "volume", 16 | "density", 17 | "guess", 18 | "pop", 19 | "scrf", 20 | "cphf", 21 | "prop", 22 | "nmr", 23 | "cis", 24 | "zindo", 25 | "td", 26 | "eom", 27 | "sac-ci", 28 | } 29 | 30 | # gaussian SCRF models used to identify calculation model and insert to the db 31 | SCRF_MODELS = {"pcm", "iefpcm", "cpcm", "dipole", "ipcm", "isodensity", "scipcm", "smd"} 32 | 33 | # default gaussian inputs used in the workflows if not specified by user 34 | STANDARD_OPT_GUASSIAN_INPUT = { 35 | "functional": "B3LYP", 36 | "basis_set": "6-31G(d)", 37 | "route_parameters": {"Opt": None}, 38 | "link0_parameters": { 39 | "%chk": "checkpoint.chk", 40 | "%mem": "45GB", 41 | "%NProcShared": "24", 42 | }, 43 | } 44 | 45 | # maximum number of errors to correct 46 | CUSTODIAN_MAX_ERRORS = 5 47 | -------------------------------------------------------------------------------- /mispr/gaussian/firetasks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/gaussian/firetasks/__init__.py -------------------------------------------------------------------------------- /mispr/gaussian/fireworks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/gaussian/fireworks/__init__.py -------------------------------------------------------------------------------- /mispr/gaussian/fireworks/break_mol.py: -------------------------------------------------------------------------------- 1 | """Define firework used to break a molecule and run its fragments.""" 2 | 3 | import os 4 | import logging 5 | 6 | from fireworks import Firework 7 | 8 | from mispr.gaussian.firetasks.geo_transformation import ( 9 | BreakMolecule, 10 | ProcessMoleculeInput, 11 | ) 12 | 13 | __author__ = "Rasha Atwi" 14 | __maintainer__ = "Rasha Atwi" 15 | __email__ = "rasha.atwi@stonybrook.edu" 16 | __status__ = "Development" 17 | __date__ = "Jan 2021" 18 | __version__ = "0.0.4" 19 | 20 | logger = logging.getLogger(__name__) 21 | 22 | FIREWORK_KWARGS = Firework.__init__.__code__.co_varnames 23 | 24 | 25 | class BreakMolFW(Firework): 26 | """ 27 | Process a molecule input, break it into unique fragments, and generate a set of 28 | optimization and frequency calculations for each fragment (optional). 29 | """ 30 | 31 | def __init__( 32 | self, 33 | mol, 34 | mol_operation_type="get_from_mol", 35 | bonds=None, 36 | open_rings=False, 37 | ref_charge=0, 38 | fragment_charges=None, 39 | calc_frags=True, 40 | db=None, 41 | name="break_mol", 42 | parents=None, 43 | working_dir=None, 44 | tag="unknown", 45 | **kwargs 46 | ): 47 | """ 48 | Args: 49 | mol (Molecule, GaussianOutput, str, dict): Source of the molecule to be 50 | processed. Should match the ``mol_operation_type``. 51 | mol_operation_type (str, optional): The type of molecule operation. 52 | See ``process_mol`` defined in ``mispr/gaussian/utilities/mol.py`` for 53 | supported operations. Defaults to ``get_from_mol``. 54 | bonds (list, optional): List of tuples of the bonds to break; e.g. 55 | [(0, 1), (1, 2)] will break the bonds between atoms 0 and 1 and between 56 | atoms 1 and 2; if none is specified, will attempt to break all bonds. 57 | open_rings (bool, optional): Whether to open rings; if set to True, will 58 | perform local optimization to get a good initial guess for the 59 | structure. Defaults to False. 60 | ref_charge (int, optional): Charge on the principle molecule. Defaults to 0. 61 | fragment_charges (list, optional): List of charges to assign to the 62 | fragments in addition to the ones already assigned; refer to 63 | ``mispr.gaussian.firetasks.geo_transformation.BreakMolecule`` for more 64 | details. 65 | calc_frags (bool, optional): Whether to create optimization and frequency 66 | Fireworks for the generated fragments. Defaults to True. 67 | db (str or dict, optional): Database credentials. 68 | name (str, optional): Name of the Firework. Defaults to ``break_mol``. 69 | parents (Firework or [Firework]), optional: List of parent FWs this FW 70 | depends on. 71 | working_dir (str, optional): Working directory for the calculation; will 72 | use the current working directory if not specified. 73 | tag (str, optional): Tag for the calculation; the provided tag will be 74 | stored in the db documents for easy retrieval. Defaults to "unknown". 75 | kwargs: Other kwargs that are passed to: 76 | 77 | 1. Firework.__init__. 78 | 2. ``mispr.gaussian.firetasks.geo_transformation.ProcessMoleculeInput`` 79 | 3. ``mispr.gaussian.firetasks.geo_transformation.BreakMolecule`` 80 | """ 81 | 82 | t = [] 83 | working_dir = working_dir or os.getcwd() 84 | if not os.path.exists(working_dir): 85 | os.makedirs(working_dir) 86 | 87 | t.append( 88 | ProcessMoleculeInput( 89 | mol=mol, 90 | operation_type=mol_operation_type, 91 | db=db, 92 | **{ 93 | i: j 94 | for i, j in kwargs.items() 95 | if i 96 | in ProcessMoleculeInput.required_params 97 | + ProcessMoleculeInput.optional_params 98 | } 99 | ) 100 | ) 101 | 102 | t.append( 103 | BreakMolecule( 104 | bonds=bonds, 105 | open_rings=open_rings, 106 | ref_charge=ref_charge, 107 | fragment_charges=fragment_charges, 108 | calc_frags=calc_frags, 109 | db=db, 110 | additional_kwargs=kwargs, 111 | **{ 112 | i: j 113 | for i, j in kwargs.items() 114 | if i 115 | in BreakMolecule.required_params + BreakMolecule.optional_params 116 | } 117 | ) 118 | ) 119 | 120 | spec = kwargs.pop("spec", {}) 121 | spec.update({"tag": tag, "_launch_dir": working_dir}) 122 | super(BreakMolFW, self).__init__( 123 | t, 124 | parents=parents, 125 | name=name, 126 | spec=spec, 127 | **{i: j for i, j in kwargs.items() if i in FIREWORK_KWARGS} 128 | ) 129 | -------------------------------------------------------------------------------- /mispr/gaussian/utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/gaussian/utilities/__init__.py -------------------------------------------------------------------------------- /mispr/gaussian/utilities/db_utilities.py: -------------------------------------------------------------------------------- 1 | """Define db utility functions.""" 2 | 3 | import os 4 | import logging 5 | 6 | from fireworks.fw_config import CONFIG_FILE_DIR 7 | 8 | from mispr.gaussian.database import GaussianCalcDb 9 | 10 | __author__ = "Rasha Atwi" 11 | __maintainer__ = "Rasha Atwi" 12 | __email__ = "rasha.atwi@stonybrook.edu" 13 | __status__ = "Development" 14 | __date__ = "Jan 2021" 15 | __version__ = "0.0.4" 16 | 17 | logger = logging.getLogger(__name__) 18 | 19 | 20 | def get_db(input_db=None): 21 | """ 22 | Helper function to create a GaussianCalcDb instance from a file or a dict. 23 | 24 | Args: 25 | input_db (str or dict, optional): Path to db file or a dict containing db info. 26 | 27 | Returns: 28 | GaussianCalcDb. 29 | """ 30 | if not input_db: 31 | input_db = f"{CONFIG_FILE_DIR}/db.json" 32 | if not os.path.isfile(input_db): 33 | raise FileNotFoundError("Please provide the database configurations") 34 | if isinstance(input_db, dict): 35 | db = GaussianCalcDb(**input_db) 36 | else: 37 | db = GaussianCalcDb.from_db_file(input_db) 38 | 39 | return db 40 | -------------------------------------------------------------------------------- /mispr/gaussian/utilities/files.py: -------------------------------------------------------------------------------- 1 | """Define utility functions for handling files and paths.""" 2 | 3 | import os 4 | import logging 5 | 6 | __author__ = "Rasha Atwi" 7 | __maintainer__ = "Rasha Atwi" 8 | __email__ = "rasha.atwi@stonybrook.edu" 9 | __status__ = "Development" 10 | __date__ = "Jan 2021" 11 | __version__ = "0.0.4" 12 | 13 | logger = logging.getLogger(__name__) 14 | 15 | 16 | def bibtex_parser(bib_file, working_dir): 17 | """ 18 | Parse a bibtex file and returns a dictionary of the entries. 19 | 20 | Args: 21 | bib_file (str): Relative or absolute path to the bibtex file. 22 | working_dir (str): Name of the working directory where the bibtex file is 23 | located if bib_file path is relative; else None. 24 | 25 | Returns: 26 | dict: Dictionary of the entries in the bibtex file. 27 | """ 28 | try: 29 | import bibtexparser 30 | except ModuleNotFoundError: 31 | raise ImportError( 32 | "Defining standard electrode potential " 33 | "references requires bibtexparser to be " 34 | "installed." 35 | ) 36 | bib_file = recursive_relative_to_absolute_path(bib_file, working_dir) 37 | print(bib_file) 38 | with open(bib_file) as bibfile: 39 | bp = bibtexparser.load(bibfile) 40 | entry = bp.entries[0] 41 | return entry 42 | 43 | 44 | def recursive_relative_to_absolute_path(operand, working_dir): 45 | """ 46 | Convert recursively relative file paths to absolute file paths. 47 | 48 | Args: 49 | operand (str, list, dict): File, list of files, or a dictionary where the values 50 | are the files; the file(s) path can be relative or absolute. 51 | working_dir (str): Name of the working directory where the file(s) is/are 52 | located if operand path is relative; else None. 53 | 54 | Returns: 55 | str or list or dict: File, list of files, or dict where the values are the 56 | absolute file paths. 57 | """ 58 | if isinstance(operand, str): 59 | if os.path.isabs(operand): 60 | return operand 61 | elif os.path.isfile(operand): 62 | return os.path.join(os.getcwd(), operand) 63 | else: 64 | full_path = os.path.join(working_dir, operand) 65 | if os.path.isfile(full_path): 66 | return full_path 67 | else: 68 | return operand 69 | elif isinstance(operand, dict): 70 | return { 71 | i: recursive_relative_to_absolute_path(j, working_dir) 72 | for i, j in operand.items() 73 | } 74 | elif isinstance(operand, list): 75 | return [recursive_relative_to_absolute_path(i, working_dir) for i in operand] 76 | else: 77 | return operand 78 | -------------------------------------------------------------------------------- /mispr/gaussian/utilities/metadata.py: -------------------------------------------------------------------------------- 1 | """Define functions for creating db schema.""" 2 | 3 | import logging 4 | 5 | from openbabel import pybel as pb 6 | 7 | from pymatgen.io.babel import BabelMolAdaptor 8 | from pymatgen.core.structure import Molecule 9 | 10 | __author__ = "Rasha Atwi" 11 | __maintainer__ = "Rasha Atwi" 12 | __email__ = "rasha.atwi@stonybrook.edu" 13 | __status__ = "Development" 14 | __date__ = "Jan 2021" 15 | __version__ = "0.0.4" 16 | 17 | logger = logging.getLogger(__name__) 18 | 19 | 20 | def get_chem_schema(mol): 21 | """ 22 | Return a dictionary of chemical schema for a given molecule to use in building db 23 | documents or json file. 24 | 25 | Args: 26 | mol (Molecule): Molecule object. 27 | 28 | Returns: 29 | dict: Chemical schema. 30 | """ 31 | mol_dict = mol.as_dict() 32 | comp = mol.composition 33 | a = BabelMolAdaptor(mol) 34 | pm = pb.Molecule(a.openbabel_mol) 35 | # svg = pm.write('svg') 36 | mol_dict.update( 37 | { 38 | "smiles": pm.write("smi").strip(), 39 | "inchi": pm.write("inchi").strip("\n"), 40 | "formula": comp.formula, 41 | "formula_pretty": comp.reduced_formula, 42 | "formula_anonymous": comp.anonymized_formula, 43 | "formula_alphabetical": comp.alphabetical_formula, 44 | "chemsys": comp.chemical_system, 45 | "nsites": mol.num_sites, 46 | "nelements": len(comp.chemical_system.replace("-", " ").split(" ")), 47 | "is_ordered": mol.is_ordered, 48 | "is_valid": mol.is_valid(), 49 | } 50 | ) 51 | return mol_dict 52 | 53 | 54 | def get_mol_formula(mol): 55 | """ 56 | Get the alphabetical molecular formula for a molecule. 57 | 58 | Args: 59 | mol (Molecule): Molecule object 60 | 61 | Returns: 62 | str: Alphabetical molecular formula. 63 | """ 64 | mol_schema = get_chem_schema(mol) 65 | return mol_schema["formula_alphabetical"].replace(" ", "") 66 | 67 | 68 | def get_job_name(mol, name): 69 | """ 70 | Append a molecule label to the name of a workflow for easy monitoring and 71 | identification. 72 | 73 | Args: 74 | mol (Molecule or str): If a Molecule is provided, the appended label will be 75 | the molecular formula; otherwise the label will be the provided string. 76 | name (str): Original name of the workflow. 77 | 78 | Returns: 79 | str: Job name with molecule label. 80 | """ 81 | if not isinstance(mol, Molecule): 82 | job_name = "{}_{}".format(mol, name) 83 | else: 84 | mol_formula = get_mol_formula(mol) 85 | job_name = "{}_{}".format(mol_formula, name) 86 | return job_name 87 | -------------------------------------------------------------------------------- /mispr/gaussian/utilities/misc.py: -------------------------------------------------------------------------------- 1 | """Define miscellaneous functions useful in many of the mispr levels.""" 2 | 3 | import logging 4 | 5 | __author__ = "Rasha Atwi" 6 | __maintainer__ = "Rasha Atwi" 7 | __email__ = "rasha.atwi@stonybrook.edu" 8 | __status__ = "Development" 9 | __date__ = "Jan 2021" 10 | __version__ = "0.0.4" 11 | 12 | logger = logging.getLogger(__name__) 13 | 14 | 15 | def pass_gout_dict(fw_spec, key): 16 | """ 17 | Helper function used in the Gaussian Fireworks to pass Gaussian output dictionaries 18 | from one task to the other, while checking that the criteria for starting the 19 | following task are met (e.g. normal termination of the previous job, lack of 20 | imaginary frequencies, etc.). 21 | 22 | Args: 23 | fw_spec (dict): Firework spec dictionary. 24 | key (str): Unique key for the Gaussian output dictionary in fw_spec. 25 | 26 | Returns: 27 | dict: Gaussian output dictionary. 28 | """ 29 | gout_dict = fw_spec.get("gaussian_output", {}).get(key) 30 | proceed_keys = fw_spec.get("proceed", {}) 31 | for k, v in proceed_keys.items(): 32 | if gout_dict["output"].get(k, gout_dict["output"]["output"].get(k)) != v: 33 | raise ValueError(f"The condition for {k} is not met, Terminating") 34 | return gout_dict 35 | 36 | 37 | def recursive_signature_remove(d): 38 | """ 39 | Remove Recursively the signature "@" from a dictionary (e.g. those in the name of 40 | a module). Used when processing Gaussian runs before saving them to the db. 41 | 42 | Args: 43 | d (dict): Dictionary to remove the signature from. 44 | 45 | Returns: 46 | dict: Dictionary with the signature removed. 47 | """ 48 | # TODO: check if this is no longer an issue with MongoDB 5.0 49 | if isinstance(d, dict): 50 | return { 51 | i: recursive_signature_remove(j) 52 | for i, j in d.items() 53 | if not i.startswith("@") 54 | } 55 | else: 56 | return d 57 | 58 | 59 | def recursive_compare_dicts(dict1, dict2, dict1_name, dict2_name, path=""): 60 | """ 61 | Compare recursively two dictionaries and returns the differences. 62 | 63 | Args: 64 | dict1 (dict): First dictionary to compare. 65 | dict2 (dict): Second dictionary to compare. 66 | dict1_name (str): Name of the first dictionary (for messages on the differences). 67 | dict2_name (str): Name of the second dictionary (for messages on the differences). 68 | path (str, optional): Used internally to keep track of the keys in nested dicts, 69 | meant to be "" for the top level 70 | 71 | Returns: 72 | str: Differences between the two dictionaries (if any). 73 | """ 74 | error = "" 75 | old_path = path 76 | for key in dict1.keys(): 77 | path = f"{old_path}[{key}]" 78 | if key not in dict2.keys(): 79 | error += f"Key {dict1_name}{path} not in {dict2_name}\n" 80 | else: 81 | if isinstance(dict1[key], dict) and isinstance(dict2[key], dict): 82 | error += recursive_compare_dicts( 83 | dict1[key], dict2[key], "d1", "d2", path 84 | ) 85 | else: 86 | if dict1[key] != dict2[key]: 87 | error += ( 88 | f"Value of {dict1_name}{path} ({dict1[key]}) " 89 | f"not same as {dict2_name}{path} ({dict2[key]})\n" 90 | ) 91 | 92 | for key in dict2.keys(): 93 | path = f"{old_path}[{key}]" 94 | if key not in dict1.keys(): 95 | error += f"Key {dict2_name}{path} not in {dict1_name}\n" 96 | return error 97 | -------------------------------------------------------------------------------- /mispr/gaussian/workflows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/gaussian/workflows/__init__.py -------------------------------------------------------------------------------- /mispr/gaussian/workflows/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/gaussian/workflows/base/__init__.py -------------------------------------------------------------------------------- /mispr/hybrid/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/hybrid/__init__.py -------------------------------------------------------------------------------- /mispr/hybrid/defaults.py: -------------------------------------------------------------------------------- 1 | OPT_GAUSSIAN_INPUTS = { 2 | "functional": "wB97X", 3 | "basis_set": "Def2TZVP", 4 | "route_parameters": { 5 | "Opt": "(calcfc, tight)", 6 | "SCF": "Tight", 7 | "int": "ultrafine", 8 | "NoSymmetry": None, 9 | "test": None, 10 | }, 11 | "link0_parameters": { 12 | "%chk": "checkpoint.chk", 13 | "%mem": "45GB", 14 | "%NProcShared": "28", 15 | }, 16 | } 17 | 18 | FREQ_GAUSSIAN_INPUTS = { 19 | "functional": "wB97X", 20 | "basis_set": "Def2TZVP", 21 | "route_parameters": { 22 | "Freq": None, 23 | "iop(7/33=1)": None, 24 | "int": "ultrafine", 25 | "NoSymmetry": None, 26 | "test": None, 27 | }, 28 | "link0_parameters": { 29 | "%chk": "checkpoint.chk", 30 | "%mem": "45GB", 31 | "%NProcShared": "28", 32 | }, 33 | } 34 | 35 | NMR_GAUSSIAN_INPUTS = { 36 | "functional": "wB97X", 37 | "basis_set": "Def2TZVP", 38 | "route_parameters": { 39 | "NMR": "GIAO", 40 | "iop(7/33=1)": None, 41 | "int": "ultrafine", 42 | "NoSymmetry": None, 43 | "test": None, 44 | }, 45 | "link0_parameters": { 46 | "%chk": "checkpoint.chk", 47 | "%mem": "45GB", 48 | "%NProcShared": "28", 49 | }, 50 | } 51 | -------------------------------------------------------------------------------- /mispr/hybrid/firetasks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/hybrid/firetasks/__init__.py -------------------------------------------------------------------------------- /mispr/hybrid/firetasks/nmr_from_md.py: -------------------------------------------------------------------------------- 1 | import os 2 | import ntpath 3 | import shutil 4 | 5 | from copy import deepcopy 6 | 7 | from fireworks.core.firework import FWAction, FiretaskBase 8 | from fireworks.utilities.fw_utilities import explicit_serialize 9 | 10 | from mispr.gaussian.workflows.base.nmr import get_nmr_tensors 11 | from mispr.gaussian.utilities.fw_utilities import run_fake_gaussian 12 | 13 | 14 | @explicit_serialize 15 | class NMRFromMD(FiretaskBase): 16 | required_params = [] 17 | optional_params = [ 18 | "working_dir", 19 | "db", 20 | "opt_gaussian_inputs", 21 | "freq_gaussian_inputs", 22 | "nmr_gaussian_inputs", 23 | "solvent_gaussian_inputs", 24 | "solvent_properties", 25 | "cart_coords", 26 | "oxidation_states", 27 | "additional_kwargs", 28 | ] 29 | 30 | def run_task(self, fw_spec): 31 | nmr_wfs = [] 32 | working_dir = self.get("working_dir", os.getcwd()) 33 | additional_kwargs = self.get("additional_kwargs", {}) 34 | for key in ["mol_name", "skips", "process_mol_func", "charge"]: 35 | additional_kwargs.pop(key, None) 36 | top_config_files = sorted(fw_spec.get("top_config_files")) 37 | 38 | # used only if running fake gaussian calculations 39 | fake_gaussian_kwargs = additional_kwargs.get("fake_gaussian_kwargs", {}) 40 | ref_dirs = fake_gaussian_kwargs.get("ref_dirs", []) 41 | input_files = fake_gaussian_kwargs.get( 42 | "input_files", ["mol.com"] * 3 * len(top_config_files) 43 | ) 44 | 45 | for ind, file in enumerate(top_config_files): 46 | config_file = ntpath.basename(file) 47 | shutil.copy(file, f"{working_dir}/{config_file}") 48 | nmr_wf = get_nmr_tensors( 49 | mol_operation_type="get_from_file", 50 | mol=config_file, 51 | db=self.get("db"), 52 | working_dir=working_dir, 53 | opt_gaussian_inputs=deepcopy(self.get("opt_gaussian_inputs")), 54 | freq_gaussian_inputs=deepcopy(self.get("freq_gaussian_inputs")), 55 | nmr_gaussian_inputs=deepcopy(self.get("nmr_gaussian_inputs")), 56 | solvent_gaussian_inputs=self.get("solvent_gaussian_inputs"), 57 | solvent_properties=self.get("solvent_properties"), 58 | cart_coords=self.get("cart_coords"), 59 | oxidation_states=self.get("oxidation_states"), 60 | skips=None, 61 | process_mol_func=False, 62 | mol_name=config_file.strip(".xyz"), 63 | **additional_kwargs, 64 | ) 65 | 66 | # added just for testing purposes 67 | if fake_gaussian_kwargs: 68 | nmr_wf = run_fake_gaussian( 69 | nmr_wf, 70 | ref_dirs=ref_dirs[ind * 3 : ind * 3 + 3], 71 | input_files=input_files[ind * 3 : ind * 3 + 3], 72 | tolerance=fake_gaussian_kwargs.get("tolerance"), 73 | ) 74 | nmr_wfs.append(nmr_wf) 75 | return FWAction(detours=nmr_wfs) 76 | -------------------------------------------------------------------------------- /mispr/hybrid/workflows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/hybrid/workflows/__init__.py -------------------------------------------------------------------------------- /mispr/lammps/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/lammps/__init__.py -------------------------------------------------------------------------------- /mispr/lammps/data/masses.json: -------------------------------------------------------------------------------- 1 | { 2 | "Ac": 227.0, 3 | "Ag": 107.8682, 4 | "Al": 26.9815386, 5 | "Am": 243.0, 6 | "Ar": 39.948, 7 | "As": 74.9216, 8 | "At": 210.0, 9 | "Au": 196.966569, 10 | "B": 10.811, 11 | "Ba": 137.327, 12 | "Be": 9.012182, 13 | "Bi": 208.9804, 14 | "Bk": 247.0, 15 | "Br": 79.904, 16 | "C": 12.0107, 17 | "Ca": 40.078, 18 | "Cd": 112.411, 19 | "Ce": 140.116, 20 | "Cf": 251.0, 21 | "Cl": 35.453, 22 | "Cm": 247.0, 23 | "Co": 58.933195, 24 | "Cr": 51.9961, 25 | "Cs": 132.9054519, 26 | "Cu": 63.546, 27 | "Dy": 162.5, 28 | "Er": 167.259, 29 | "Es": 252.0, 30 | "Eu": 151.964, 31 | "F": 18.9984032, 32 | "Fe": 55.845, 33 | "Fm": 257.0, 34 | "Fr": 223.0, 35 | "Ga": 69.723, 36 | "Gd": 157.25, 37 | "Ge": 72.64, 38 | "H": 1.00794, 39 | "He": 4.002602, 40 | "Hf": 178.49, 41 | "Hg": 200.59, 42 | "Ho": 164.93032, 43 | "I": 126.90447, 44 | "In": 114.818, 45 | "Ir": 192.217, 46 | "K": 39.0983, 47 | "Kr": 83.798, 48 | "La": 138.90547, 49 | "Li": 6.941, 50 | "Lr": 262.0, 51 | "Lu": 174.967, 52 | "Md": 258.0, 53 | "Mg": 24.305, 54 | "Mn": 54.938045, 55 | "Mo": 95.94, 56 | "N": 14.0067, 57 | "Na": 22.98976928, 58 | "Nb": 92.90638, 59 | "Nd": 144.242, 60 | "Ne": 20.1797, 61 | "Ni": 58.6934, 62 | "No": 259.0, 63 | "Np": 237.0, 64 | "O": 15.9994, 65 | "Os": 190.23, 66 | "P": 30.973762, 67 | "Pa": 231.03588, 68 | "Pb": 207.2, 69 | "Pd": 106.42, 70 | "Pm": 145.0, 71 | "Po": 210.0, 72 | "Pr": 140.90765, 73 | "Pt": 195.084, 74 | "Pu": 244.0, 75 | "Ra": 226.0, 76 | "Rb": 85.4678, 77 | "Re": 186.207, 78 | "Rh": 102.9055, 79 | "Rn": 220.0, 80 | "Ru": 101.07, 81 | "S": 32.065, 82 | "Sb": 121.76, 83 | "Sc": 44.955912, 84 | "Se": 78.96, 85 | "Si": 28.0855, 86 | "Sm": 150.36, 87 | "Sn": 118.71, 88 | "Sr": 87.62, 89 | "Ta": 180.94788, 90 | "Tb": 158.92535, 91 | "Tc": 98.0, 92 | "Te": 127.6, 93 | "Th": 232.03806, 94 | "Ti": 47.867, 95 | "Tl": 204.3833, 96 | "Tm": 168.93421, 97 | "U": 238.02891, 98 | "V": 50.9415, 99 | "W": 183.84, 100 | "Xe": 131.293, 101 | "Y": 88.90585, 102 | "Yb": 173.04, 103 | "Zn": 65.409, 104 | "Zr": 91.224, 105 | "Rf": 267, 106 | "Db": 268, 107 | "Sg": 269, 108 | "Bh": 270, 109 | "Hs": 270, 110 | "Mt": 278, 111 | "Ds": 281, 112 | "Rg": 282, 113 | "Cn": 285, 114 | "Nh": 286, 115 | "Fl": 289, 116 | "Mc": 290, 117 | "Lv": 293, 118 | "Ts": 294, 119 | "Og": 2949 120 | } 121 | -------------------------------------------------------------------------------- /mispr/lammps/firetasks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/lammps/firetasks/__init__.py -------------------------------------------------------------------------------- /mispr/lammps/fireworks/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/lammps/fireworks/__init__.py -------------------------------------------------------------------------------- /mispr/lammps/templates/emin_gaff: -------------------------------------------------------------------------------- 1 | log lammps.log 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor $neigh_args 9 | neigh_modify $neigh_modify_args 10 | special_bonds $special_bonds_style $special_bonds_value 11 | bond_style $bond_style $bond_style_args 12 | angle_style $angle_style 13 | dihedral_style $dihedral_style 14 | improper_style $improper_style 15 | pair_style $pair_style $pair_style_args 16 | pair_modify $pair_modify_key $pair_modify_value 17 | kspace_style $kspace_style $kspace_style_args 18 | 19 | read_data $data_filename 20 | 21 | thermo 1 22 | thermo_style custom step etotal pe ebond eangle edihed eimp evdwl ecoul elong press fmax fnorm 23 | min_style sd 24 | minimize 1e-6 1000 10 10000 25 | min_style cg 26 | minimize 1e-6 100 99990 990000 27 | #unfix 1 28 | write_restart $restart_finalname 29 | write_data $data_final_filename 30 | 31 | write_dump all custom $dump_filename id type element mol x y z mass q $dump_modify_args -------------------------------------------------------------------------------- /mispr/lammps/templates/emin_general: -------------------------------------------------------------------------------- 1 | log lammps.log 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 10 every 1 check yes 10 | special_bonds $special_bonds_style $special_bonds_value 11 | bond_style $bond_style $bond_style_args 12 | angle_style $angle_style 13 | dihedral_style $dihedral_style 14 | improper_style $improper_style 15 | pair_style $pair_style $pair_style_args 16 | kspace_style $kspace_style $kspace_style_args 17 | 18 | read_data $data_filename 19 | 20 | thermo 1 21 | thermo_style custom step etotal pe ebond eangle edihed eimp evdwl ecoul elong press fmax fnorm 22 | min_style sd 23 | minimize 1e-6 1000 10 10000 24 | min_style cg 25 | minimize 1e-6 100 99990 990000 26 | #unfix 1 27 | write_restart $restart_finalname 28 | 29 | write_dump all custom dump.emin.lammpstrj id type element mol x y z mass q modify element $dump_modify_elements -------------------------------------------------------------------------------- /mispr/lammps/templates/gaff_tleap: -------------------------------------------------------------------------------- 1 | source ${source_file_path} 2 | MOL = loadmol2 ${mol2_file_path} 3 | check MOL 4 | loadamberparams ${frcmod_file_path} 5 | saveamberparm MOL ${prmtop_file_path} ${inpcrd_file_path} 6 | quit -------------------------------------------------------------------------------- /mispr/lammps/templates/npt: -------------------------------------------------------------------------------- 1 | log log.lammps 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor $neigh_args 9 | neigh_modify $neigh_modify_args 10 | special_bonds $special_bonds_style $special_bonds_value 11 | bond_style $bond_style $bond_style_args 12 | angle_style $angle_style 13 | dihedral_style $dihedral_style 14 | improper_style $improper_style 15 | pair_style $pair_style $pair_style_args 16 | pair_modify $pair_modify_key $pair_modify_value 17 | kspace_style $kspace_style $kspace_style_args 18 | 19 | read_restart $restart_filename 20 | 21 | 22 | $group_definitions 23 | velocity all create $temperature_initial $velocity_seed 24 | $shake_logic fix 1 $shake_group shake 0.0001 20 0 $shake_topologies 25 | fix 2 all npt temp $temperature_initial $temperature_final $temp_damp $pressure_type $pressure_initial $pressure_final $pres_damp 26 | thermo $thermo 27 | thermo_style custom step temp press pe lx vol density 28 | timestep $timestep 29 | reset_timestep 0 30 | dump 1 all custom $dump_period $dump_filename id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 31 | $dump_modify_logic dump_modify 1 $dump_modify_args $dump_modify_elements 32 | restart $restart_period $restart_intermediate_filename 33 | run $run 34 | $shake_logic unfix 1 35 | unfix 2 36 | write_restart $restart_final_filename 37 | write_data $data_final_filename 38 | -------------------------------------------------------------------------------- /mispr/lammps/templates/nvt: -------------------------------------------------------------------------------- 1 | log log.lammps 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor $neigh_args 9 | neigh_modify $neigh_modify_args 10 | special_bonds $special_bonds_style $special_bonds_value 11 | bond_style $bond_style $bond_style_args 12 | angle_style $angle_style 13 | dihedral_style $dihedral_style 14 | improper_style $improper_style 15 | pair_style $pair_style $pair_style_args 16 | pair_modify $pair_modify_key $pair_modify_value 17 | kspace_style $kspace_style $kspace_style_args 18 | 19 | read_restart $restart_filename 20 | 21 | $group_definitions 22 | velocity all create $temperature_initial $velocity_seed 23 | $shake_logic fix 1 $shake_group shake 0.0001 20 0 $shake_topologies 24 | fix 2 all nvt temp $temperature_initial $temperature_final $temp_damp 25 | thermo $thermo 26 | $compute_definitions 27 | thermo_style custom step temp press pe pxx pyy pzz pxy pxz pyz $thermo_style_compute 28 | timestep $timestep 29 | $reset_timestep_logic reset_timestep $reset_timestep_value 30 | dump 1 all custom $dump_period $dump_filename id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 31 | $dump_modify_logic dump_modify 1 $dump_modify_args $dump_modify_elements 32 | restart $restart_period $restart_intermediate_filename 33 | run $run 34 | $shake_logic unfix 1 35 | unfix 2 36 | write_restart $restart_final_filename 37 | write_data $data_final_filename 38 | 39 | -------------------------------------------------------------------------------- /mispr/lammps/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/lammps/tests/__init__.py -------------------------------------------------------------------------------- /mispr/lammps/tests/antechamber.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from fireworks import Firework, Workflow, LaunchPad 4 | from fireworks.core.rocket_launcher import rapidfire 5 | 6 | from mispr.lammps.firetasks.run import RunAntechamber 7 | 8 | if __name__ == "__main__": 9 | 10 | # set up the LaunchPad and reset it 11 | launchpad = LaunchPad() 12 | launchpad.reset("", require_password=False) 13 | 14 | working_dir = os.path.join( 15 | os.path.dirname(os.path.abspath(__file__)), "test_files", "antechamber" 16 | ) 17 | input_filename = "dhps.esp" 18 | output_filename = "dhps.mol2" 19 | 20 | task1 = RunAntechamber( 21 | working_dir=working_dir, 22 | input_filename_a=input_filename, 23 | output_filename_a=output_filename, 24 | ) 25 | 26 | # assemble FireWork from tasks and give the FireWork a unique id 27 | fire_work1 = Firework(task1, name="RunAnt", fw_id=1) 28 | 29 | # assemble Workflow from FireWorks and their connections by id 30 | wf = Workflow([fire_work1]) 31 | 32 | # store workflow and launch it 33 | launchpad.add_wf(wf) 34 | rapidfire(launchpad) 35 | -------------------------------------------------------------------------------- /mispr/lammps/tests/control.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from fireworks import Firework, Workflow, LaunchPad 4 | from fireworks.core.rocket_launcher import rapidfire 5 | 6 | from mispr.lammps.firetasks.write_inputs import WriteControlFile 7 | 8 | ELEMENTS_LIST = ["N", "C", "C", "C", "H", "O", "O", "H", "O", "H", "Na"] 9 | 10 | EMIN_SETTINGS = { 11 | "special_bonds_style": "amber", 12 | "special_bonds_value": "", 13 | "bond_style": "harmonic", 14 | "bond_style_args": "", 15 | "angle_style": "harmonic", 16 | "dihedral_style": "harmonic", 17 | "improper_style": "cvff", 18 | "pair_style": "lj/cut/coul/long", 19 | "pair_style_args": 10.0, 20 | "kspace_style": "pppm", 21 | "kspace_style_args": 1.0e-4, 22 | "data_file_name": "complex.data", 23 | "restart_final_name": "emin.restart", 24 | "dump_modify_elements": " ".join(ELEMENTS_LIST), 25 | } 26 | 27 | NPT_SETTINGS = { 28 | "neigh_args": "2.0 bin", 29 | "neigh_modify_args": "delay 0 every 1 check yes", 30 | "special_bonds_style": "amber", 31 | "special_bonds_value": "", 32 | "bond_style": "harmonic", 33 | "bond_style_args": "", 34 | "angle_style": "harmonic", 35 | "dihedral_style": "harmonic", 36 | "improper_style": "cvff", 37 | "pair_style": "lj/cut/coul/long", 38 | "pair_style_args": 10.0, 39 | "kspace_style": "pppm", 40 | "kspace_style_args": "1.0e-4", 41 | "restart_filename": "restart.emin.restart", 42 | "group_definitions": [ 43 | "group li 11", 44 | "group tfsi 1 2 3 4 5 6", 45 | "group solv 7 8 9 10", 46 | ], 47 | "temperature_initial": 298.15, 48 | "velocity_seed": 250, 49 | "shake_logic": "#", 50 | "shake_group": "", 51 | "shake_topologies": "", 52 | "temperature_final": 298.15, 53 | "temp_damp": 100.0, 54 | "pressure_type": "iso", 55 | "pressure_initial": 1.0, 56 | "pressure_final": 1.0, 57 | "pres_damp": 1000.0, 58 | "thermo": 1000, 59 | "timestep": 1, 60 | "dump_period": 50000, 61 | "dump_file_name": "dump.npt.*.dump", 62 | "dump_modify_logic": "#", 63 | "dump_modify_args": "", 64 | "restart_period": 1000000, 65 | "restart_intermediate_file_name": "restart.npt.*.restart", 66 | "run": 2000000, 67 | "restart_final_file_name": "restart.npt.restart", 68 | } 69 | 70 | if __name__ == "__main__": 71 | # set up the LaunchPad and reset it 72 | launchpad = LaunchPad( 73 | host="mongodb+srv://mbliss01:idlewide@gettingstarted.dt0sv.mongodb.net/fireworks", 74 | uri_mode=True, 75 | ) 76 | launchpad.reset("", require_password=False) 77 | 78 | # set working directory 79 | working_dir = os.path.join( 80 | os.path.dirname(os.path.abspath(__file__)), "test_files", "control" 81 | ) 82 | 83 | # Test Case 1: provide general template as string 84 | # control_filename = "case_1.lammpsin" 85 | # template_filename = "emin" 86 | # template_path = os.path.join(TEMPLATE_DIR, template_filename) 87 | # with open(template_path, 'r') as file: 88 | # template_string = file.read() 89 | # 90 | # # # Define workflow for Case 1 91 | # spec = {} 92 | # t = [WriteControlFile(working_dir = working_dir, 93 | # control_filename = control_filename, 94 | # template_str = template_string, 95 | # control_settings = EMIN_SETTINGS)] 96 | # 97 | # firework_c1 = Firework(t, 98 | # spec = spec, 99 | # name = "WriteControlCase1", 100 | # fw_id = 1) 101 | # wf_c1 = Workflow([firework_c1]) 102 | # Store workflow for Case 1 and launch it 103 | # launchpad.add_wf(wf_c1) 104 | # rapidfire(launchpad) 105 | 106 | # Test Case 2: choose specific template file that in TEMPLATE_DIR 107 | launchpad.reset("", require_password=False) 108 | 109 | control_filename = "case_2_npt_group_list.lammpsin" 110 | template_type = "npt" 111 | 112 | # # Define workflow for Case 2 113 | spec = {} 114 | t = [ 115 | WriteControlFile( 116 | working_dir=working_dir, 117 | control_filename=control_filename, 118 | template_filename=template_type, 119 | control_settings=NPT_SETTINGS, 120 | ) 121 | ] 122 | 123 | firework_c2 = Firework(t, spec=spec, name="WriteControlCase2", fw_id=2) 124 | wf_c2 = Workflow([firework_c2]) 125 | # Store workflow for Case 2 and launch it 126 | launchpad.add_wf(wf_c2) 127 | rapidfire(launchpad) 128 | 129 | # Test Case 3: provide general template as file 130 | # launchpad.reset('', require_password=False) 131 | # 132 | # control_filename = "case_3.lammpsin" 133 | # template_filename = "emin" 134 | # template_path = TEMPLATE_DIR 135 | # 136 | # # # Define workflow for Case 3 137 | # spec = {} 138 | # t = [WriteControlFile(working_dir = working_dir, 139 | # control_filename = control_filename, 140 | # template_filename = template_filename, 141 | # template_dir = template_path, 142 | # control_settings = EMIN_SETTINGS)] 143 | # 144 | # firework_c3 = Firework(t, 145 | # spec = spec, 146 | # name = "WriteControlCase3", 147 | # fw_id = 3) 148 | # 149 | # wf_c3 = Workflow([firework_c3]) 150 | # Store workflow for Case 3 and launch it 151 | # launchpad.add_wf(wf_c3) 152 | # rapidfire(launchpad) 153 | -------------------------------------------------------------------------------- /mispr/lammps/tests/database/delete_data.py: -------------------------------------------------------------------------------- 1 | from first_connection import Connect 2 | 3 | if __name__ == "__main__": 4 | # Connect to local database 5 | connection = Connect.get_connection() 6 | 7 | # Access the test database 8 | db = connection.test 9 | 10 | # Delete single document 11 | db.inventory.delete_one({"status": "D"}) 12 | 13 | # Delete multiple documents 14 | db.inventory.delete_many({"status": "A"}) -------------------------------------------------------------------------------- /mispr/lammps/tests/database/first_connection.py: -------------------------------------------------------------------------------- 1 | from pymongo import MongoClient 2 | 3 | 4 | class Connect(object): 5 | @staticmethod 6 | def get_connection(): 7 | return MongoClient( 8 | "mongodb://superuser:idlewide@localhost:27017/?authSource=admin" 9 | ) 10 | 11 | 12 | if __name__ == "__main__": 13 | # Connect to local database 14 | connection = Connect.get_connection() 15 | -------------------------------------------------------------------------------- /mispr/lammps/tests/database/insert_one.py: -------------------------------------------------------------------------------- 1 | from first_connection import Connect 2 | 3 | if __name__ == "__main__": 4 | # Connect to local database 5 | connection = Connect.get_connection() 6 | 7 | # Access the test database 8 | db = connection.test 9 | # Insert a single document 10 | db.inventory.insert_one( 11 | { 12 | "item": "jacket", 13 | "qty": 48, 14 | "tags": ["polyester"], 15 | "size": {"s": 12, "m": 12, "l": 12, "xl": 12}, 16 | } 17 | ) 18 | -------------------------------------------------------------------------------- /mispr/lammps/tests/database/operators-compound_queries.py: -------------------------------------------------------------------------------- 1 | from pprint import pprint 2 | 3 | from first_connection import Connect 4 | 5 | if __name__ == "__main__": 6 | # Connect to local database 7 | connection = Connect.get_connection() 8 | 9 | # Access the test database 10 | db = connection.test 11 | 12 | # Read data with embedded fields and comparison operators 13 | print("Read data with embedded fields and comparison operators: ") 14 | cursor = db.inventory.find({"size.h": {"$lt": 15}}) 15 | for inventory in cursor: 16 | pprint(inventory) 17 | 18 | # Read data with compound queries 19 | print("\nRead data with compound queries: ") 20 | cursor = db.inventory.find({"status": "A", "qty": {"$lt": 30}}) 21 | for inventory in cursor: 22 | pprint(inventory) 23 | 24 | # Compound query using explicit $and operator 25 | print("\nCompound query using explicit $and operator: ") 26 | cursor = db.inventory.find({"$and": [{"status": "A"}, {"qty": {"$lt": 30}}]}) 27 | for inventory in cursor: 28 | pprint(inventory) 29 | 30 | # Retrieving data with more than one compounding clause 31 | print("\nRetrieving data with more than one compounding clause") 32 | cursor = db.inventory.find( 33 | {"status": "A", "$or": [{"qty": {"$lt": 30}}, {"item": {"$regex": "^p"}}]} 34 | ) 35 | for inventory in cursor: 36 | pprint(inventory) 37 | -------------------------------------------------------------------------------- /mispr/lammps/tests/database/query_data.py: -------------------------------------------------------------------------------- 1 | from pprint import pprint 2 | 3 | from bson.son import SON 4 | 5 | from first_connection import Connect 6 | 7 | if __name__ == "__main__": 8 | # Connect to local database 9 | connection = Connect.get_connection() 10 | 11 | # Access the test database 12 | db = connection.test 13 | 14 | # Load more data into MongoDB 15 | db.inventory.insert_many([ 16 | {"item": "journal", 17 | "qty": 25, 18 | "size": SON([("h", 14), ("w", 21), ("uom", "cm")]), 19 | "status": "A"}, 20 | {"item": "notebook", 21 | "qty": 50, 22 | "size": SON([("h", 8.5), ("w", 11), ("uom", "in")]), 23 | "status": "A"}, 24 | {"item": "paper", 25 | "qty": 100, 26 | "size": SON([("h", 8.5), ("w", 11), ("uom", "in")]), 27 | "status": "D"}, 28 | {"item": "planner", 29 | "qty": 75, 30 | "size": SON([("h", 22.85), ("w", 30), ("uom", "cm")]), 31 | "status": "D"}, 32 | {"item": "postcard", 33 | "qty": 45, 34 | "size": SON([("h", 10), ("w", 15.25), ("uom", "cm")]), 35 | "status": "A"}]) 36 | 37 | # Retrieve specific documents in a collection 38 | print("Retrieve specific documents in a collection: ") 39 | cursor = db.inventory.find({"status": "D"}) 40 | # Iterate over the results 41 | for inventory in cursor: 42 | pprint(inventory) 43 | 44 | # Query Data using Embedded Documents as Criteria 45 | print("\nQuery Data using Embedded Documents as Criteria: ") 46 | cursor = db.inventory.find({"size": SON([("h", 14), ("w", 21), ("uom", "cm")])}) 47 | # Iterate over the results 48 | for inventory in cursor: 49 | pprint(inventory) 50 | 51 | # Query data using embedded documents with dot notation 52 | print("\nQuery data using embedded documents with dot notation: ") 53 | cursor = db.inventory.find({"size.uom": "in"}) 54 | for inventory in cursor: 55 | pprint(inventory) 56 | -------------------------------------------------------------------------------- /mispr/lammps/tests/database/read_data.py: -------------------------------------------------------------------------------- 1 | from pprint import pprint 2 | 3 | from first_connection import Connect 4 | 5 | if __name__ == "__main__": 6 | # Connect to local database 7 | connection = Connect.get_connection() 8 | 9 | # Access the test database 10 | db = connection.test 11 | 12 | # Retrieve all documents in the inventory collection 13 | cursor = db.inventory.find({}) 14 | # Iterate over the results 15 | for inventory in cursor: 16 | pprint(inventory) 17 | -------------------------------------------------------------------------------- /mispr/lammps/tests/database/update_data.py: -------------------------------------------------------------------------------- 1 | from first_connection import Connect 2 | 3 | if __name__ == "__main__": 4 | # Connect to local database 5 | connection = Connect.get_connection() 6 | 7 | # Access the test database 8 | db = connection.test 9 | 10 | # Update a single document in the inventory collection 11 | db.inventory.update_one( 12 | {"item": "paper"}, 13 | { 14 | "$set": {"size.uom": "cm", "status": "P"}, 15 | "$currentDate": {"lastModified": True}, 16 | }, 17 | ) 18 | 19 | # Update multiple documents 20 | db.inventory.update_many( 21 | {"qty": {"$lt": 50}}, 22 | { 23 | "$set": {"size.uom": "in", "status": "P"}, 24 | "$currentDate": {"lastModified": True}, 25 | }, 26 | ) 27 | -------------------------------------------------------------------------------- /mispr/lammps/tests/parmchk.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from fireworks import Firework, Workflow, LaunchPad 4 | from fireworks.core.rocket_launcher import rapidfire 5 | 6 | from mispr.lammps.firetasks.run import RunParmchk 7 | 8 | if __name__ == "__main__": 9 | 10 | # set up the LaunchPad and reset it 11 | launchpad = LaunchPad() 12 | launchpad.reset("", require_password=False) 13 | 14 | working_dir = os.path.join( 15 | os.path.dirname(os.path.abspath(__file__)), "test_files", "parmchk" 16 | ) 17 | 18 | input_filename = "dhps.mol2" 19 | output_filename = "dhps.frcmod" 20 | 21 | task1 = RunParmchk( 22 | working_dir=working_dir, 23 | input_filename_p=input_filename, 24 | output_filename_p=output_filename, 25 | ) 26 | 27 | # assemble FireWork from tasks and give the FireWork a unique id 28 | fire_work1 = Firework(task1, name="RunParm", fw_id=1) 29 | 30 | # assemble Workflow from FireWorks and their connections by id 31 | wf = Workflow([fire_work1]) 32 | 33 | # store workflow and launch it 34 | launchpad.add_wf(wf) 35 | rapidfire(launchpad) 36 | -------------------------------------------------------------------------------- /mispr/lammps/tests/prmtop.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from collections import OrderedDict 4 | 5 | import numpy as np 6 | 7 | from fireworks import Firework, Workflow, LaunchPad, FiretaskBase, explicit_serialize 8 | from fireworks.core.rocket_launcher import rapidfire 9 | 10 | from pymatgen.io.gaussian import GaussianOutput 11 | from pymatgen.core.structure import Molecule 12 | 13 | from mispr.gaussian.utilities.metadata import get_mol_formula 14 | from mispr.lammps.firetasks.parse_outputs import ProcessPrmtop 15 | 16 | 17 | @explicit_serialize 18 | class PrintFW(FiretaskBase): 19 | """ 20 | Firetask for confirming that modspec works as intended in ProcessPrmtop firetask 21 | """ 22 | 23 | def run_task(self, fw_spec): 24 | print(str(fw_spec["system_force_field_dict"])) 25 | 26 | 27 | if __name__ == "__main__": 28 | 29 | # set up the LaunchPad and reset it 30 | launchpad = LaunchPad() 31 | launchpad.reset("", require_password=False) 32 | 33 | working_dir = os.path.join( 34 | os.path.dirname(os.path.abspath(__file__)), "test_files", "prmtop" 35 | ) 36 | 37 | # write inputs for initial 38 | # Phen_type parameter prep 39 | Phen_type = "dhps" 40 | Phen_type_gaussian_output = GaussianOutput( 41 | os.path.join(working_dir, Phen_type + ".out") 42 | ) 43 | Phen_type_molecule = Phen_type_gaussian_output.structures[-1] 44 | Phen_type_molecule.set_charge_and_spin( 45 | Phen_type_gaussian_output.charge, Phen_type_gaussian_output.spin_multiplicity 46 | ) 47 | Phen_type_label = get_mol_formula(Phen_type_molecule) 48 | # Spce parameter prep 49 | Spce_molecule = Molecule.from_file(os.path.join(working_dir, "SPC_E.pdb")) 50 | Spce_label = get_mol_formula(Spce_molecule) 51 | Spce_param_dict = { 52 | "Molecule": Spce_molecule, 53 | "Labels": ["ow" + Spce_label, "hw" + Spce_label, "hw" + Spce_label], 54 | "Masses": OrderedDict({"ow" + Spce_label: 16.000, "hw" + Spce_label: 1.008}), 55 | "Nonbond": [[0.155394259, 3.16555789], [0.0, 0.0]], 56 | "Bonds": [ 57 | {"coeffs": [553.0, 1], "types": [("ow" + Spce_label, "hw" + Spce_label)]} 58 | ], 59 | "Angles": [ 60 | { 61 | "coeffs": [100.0, 109.47], 62 | "types": [("hw" + Spce_label, "ow" + Spce_label, "hw" + Spce_label)], 63 | } 64 | ], 65 | "Dihedrals": [], 66 | "Impropers": [], 67 | "Improper Topologies": None, 68 | "Charges": np.asarray([-0.8476, 0.4238, 0.4238]), 69 | } 70 | # Na parameter prep 71 | Na_molecule = Molecule.from_file(os.path.join(working_dir, "Na.pdb")) 72 | Na_molecule.set_charge_and_spin(1) 73 | Na_label = get_mol_formula(Na_molecule) 74 | Na_param_dict = { 75 | "Molecule": Na_molecule, 76 | "Labels": ["na" + Na_label], 77 | "Masses": OrderedDict({"na" + Na_label: 22.99}), 78 | "Nonbond": [[0.02639002, 2.590733472]], # from frcmod.ions1lm_126_spce (2015) 79 | # 'Nonbond': [[0.3526418, 2.159538]], # from frcmod.ionsjc_tip3p (2008) 80 | "Bonds": [], 81 | "Angles": [], 82 | "Dihedrals": [], 83 | "Impropers": [], 84 | "Improper Topologies": None, 85 | "Charges": np.asarray([1.0]), 86 | } 87 | 88 | sys_ff_dict = {Na_label: Na_param_dict, Spce_label: Spce_param_dict} 89 | 90 | spec = {"system_force_field_dict": sys_ff_dict} 91 | 92 | task1 = ProcessPrmtop( 93 | working_dir=working_dir, 94 | molecule=Phen_type_molecule, 95 | prmtop_filename="dhps.prmtop", 96 | ) 97 | 98 | task2 = PrintFW() 99 | 100 | # assemble FireWork from tasks and give the FireWork a unique id 101 | fire_work1 = Firework([task1, task2], spec=spec, name="ParsePrmtop", fw_id=1) 102 | 103 | # assemble Workflow from FireWorks and their connections by id 104 | wf = Workflow([fire_work1]) 105 | 106 | # store workflow and launch it 107 | launchpad.add_wf(wf) 108 | rapidfire(launchpad) 109 | -------------------------------------------------------------------------------- /mispr/lammps/tests/run_lammps.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from fireworks import Workflow, LaunchPad 4 | from fireworks.core.rocket_launcher import rapidfire 5 | 6 | from mispr.lammps.fireworks.core import RunLammpsFW 7 | 8 | ELEMENTS_LIST = ["N", "C", "C", "C", "H", "O", "O", "H", "O", "H", "Na"] 9 | EMIN_SETTINGS = { 10 | "neigh_args": "2.0 bin", 11 | "neigh_modify_args": "delay 0 every 1 check yes", 12 | "pair_style": "lj/cut/coul/long", 13 | "pair_style_args": 10.0, 14 | "kspace_style": "pppm", 15 | "kspace_style_args": "1.0e-4", 16 | "data_file_name": "complex.data", 17 | "restart_final_name": "restart.emin.restart", 18 | "dump_file_name": "dump.emin.dump", 19 | "dump_modify_args": "", 20 | } 21 | 22 | NPT_SETTINGS = { 23 | "neigh_args": "2.0 bin", 24 | "neigh_modify_args": "delay 0 every 1 check yes", 25 | "special_bonds_style": "amber", 26 | "special_bonds_value": "", 27 | "bond_style": "harmonic", 28 | "bond_style_args": "", 29 | "angle_style": "harmonic", 30 | "dihedral_style": "harmonic", 31 | "improper_style": "cvff", 32 | "pair_style": "lj/cut/coul/long", 33 | "pair_style_args": 10.0, 34 | "kspace_style": "pppm", 35 | "kspace_style_args": "1.0e-4", 36 | "restart_filename": "restart.emin.restart", 37 | "group_definitions": "\n".join( 38 | ["group li 11", "group tfsi 1 2 3 4 5 6", "group solv 7 8 9 10"] 39 | ), 40 | "temperature_initial": 298.15, 41 | "velocity_seed": 250, 42 | "shake_logic": "#", 43 | "shake_group": "", 44 | "shake_topologies": "", 45 | "temperature_final": 298.15, 46 | "temp_damp": 100.0, 47 | "pressure_type": "iso", 48 | "pressure_initial": 1.0, 49 | "pressure_final": 1.0, 50 | "pres_damp": 1000.0, 51 | "thermo": 1000, 52 | "timestep": 1, 53 | "dump_period": 50000, 54 | "dump_file_name": "dump.npt.*.dump", 55 | "dump_modify_logic": "#", 56 | "dump_modify_args": "", 57 | "restart_period": 1000000, 58 | "restart_intermediate_file_name": "restart.npt.*.restart", 59 | "run": 2000000, 60 | "restart_final_file_name": "restart.npt.restart", 61 | } 62 | 63 | if __name__ == "__main__": 64 | # set up the LaunchPad and reset it 65 | launchpad = LaunchPad( 66 | host="mongodb+srv://mbliss01:idlewide@gettingstarted.dt0sv.mongodb.net/fireworks", 67 | uri_mode=True, 68 | ) 69 | launchpad.reset("", require_password=False) 70 | 71 | # set working directory 72 | working_dir = os.path.join( 73 | os.path.dirname(os.path.abspath(__file__)), "test_files", "run_lammps" 74 | ) 75 | 76 | # settings 77 | control_filename = "test_npt.lammpsin" 78 | template_type = "npt" 79 | 80 | # define workflow 81 | spec = {} 82 | fw = RunLammpsFW( 83 | working_dir=working_dir, 84 | control_filename=control_filename, 85 | template_filename=template_type, 86 | control_settings=NPT_SETTINGS, 87 | ) 88 | 89 | workflow = Workflow([fw]) 90 | launchpad.add_wf(workflow) 91 | rapidfire(launchpad) 92 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/Na.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 Na+ Na+ 1 -1.710 0.366 0.000 1.00 0.00 Na1+ 4 | MASTER 0 0 0 0 0 0 0 0 1 0 1 0 5 | END 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/SPC_E.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 O HOH 1 -5.506 0.767 0.813 1.00 0.00 O 4 | HETATM 2 H HOH 0 -4.506 0.767 0.813 1.00 0.00 H 5 | HETATM 3 H HOH 0 -5.839 0.226 1.585 1.00 0.00 H 6 | CONECT 1 2 3 7 | CONECT 2 1 8 | CONECT 3 1 9 | MASTER 0 0 0 0 0 0 0 0 3 0 3 0 10 | END 11 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/analysis/d__diff.txt: -------------------------------------------------------------------------------- 1 | OLS Regression Results 2 | ======================================================================================= 3 | Dep. Variable: D_ MSD ($\AA^2$) R-squared (uncentered): 0.997 4 | Model: OLS Adj. R-squared (uncentered): 0.997 5 | Method: Least Squares F-statistic: 7.342e+08 6 | Date: Sat, 15 May 2021 Prob (F-statistic): 0.00 7 | Time: 19:20:02 Log-Likelihood: -1.3331e+07 8 | No. Observations: 2500001 AIC: 2.666e+07 9 | Df Residuals: 2500000 BIC: 2.666e+07 10 | Df Model: 1 11 | Covariance Type: nonrobust 12 | ============================================================================== 13 | coef std err t P>|t| [0.025 0.975] 14 | ------------------------------------------------------------------------------ 15 | Time (ps) 0.1486 5.48e-06 2.71e+04 0.000 0.149 0.149 16 | ============================================================================== 17 | Omnibus: 32974.500 Durbin-Watson: 0.000 18 | Prob(Omnibus): 0.000 Jarque-Bera (JB): 32155.172 19 | Skew: -0.252 Prob(JB): 0.00 20 | Kurtosis: 2.767 Cond. No. 1.00 21 | ============================================================================== 22 | 23 | Notes: 24 | [1] R² is computed without centering (uncentered) since the model does not contain a constant. 25 | [2] Standard Errors assume that the covariance matrix of the errors is correctly specified. -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/analysis/diffusion.csv: -------------------------------------------------------------------------------- 1 | ,D_ MSD ($\AA^2$),W_ MSD ($\AA^2$),O_ MSD ($\AA^2$),N_ MSD ($\AA^2$) 2 | diffusion ($m^2$/s),2.477021768601186e-10,2.0418672152639424e-09,4.0620482162848264e-10,4.92531818207661e-10 3 | std,9.14152483756137e-15,4.389353622328912e-15,1.2634160134266872e-14,8.621732410479125e-15 4 | $R^2$,0.9966065505305146,0.999988447362652,0.9975873542998757,0.9992345304170412 5 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/analysis/in.emin_complex.lammpsin: -------------------------------------------------------------------------------- 1 | #Variables 2 | variable fname index complex.data 3 | variable sysname index 0.1_PHEN_1.3_NaOH_SPCE 4 | variable simname index emin 5 | 6 | 7 | # Initialization 8 | units real 9 | boundary p p p 10 | atom_style full 11 | #log log.${sysname}.${simname}.txt 12 | 13 | # Force Fields 14 | neighbor 2.0 bin 15 | # neigh_modify delay 0 every 1 check yes 16 | special_bonds amber 17 | bond_style harmonic 18 | angle_style harmonic 19 | dihedral_style harmonic 20 | improper_style cvff 21 | pair_style lj/cut/coul/long 10.0 22 | kspace_style pppm 1.0e-4 23 | 24 | read_data ${fname} 25 | 26 | thermo 1 27 | thermo_style custom step etotal pe ebond eangle edihed eimp evdwl ecoul elong press fmax fnorm 28 | min_style sd 29 | minimize 1e-6 1000 10 10000 30 | min_style cg 31 | minimize 1e-6 100 99990 990000 32 | #unfix 1 33 | write_restart restart.${simname}.restart 34 | 35 | write_dump all custom dump.emin.lammpstrj id type element mol x y z mass q modify element N C H O H O H Na 36 | write_dump all xyz dump.emin.xyz modify element N C H O H O H Na 37 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/analysis/n__diff.txt: -------------------------------------------------------------------------------- 1 | OLS Regression Results 2 | ======================================================================================= 3 | Dep. Variable: N_ MSD ($\AA^2$) R-squared (uncentered): 0.999 4 | Model: OLS Adj. R-squared (uncentered): 0.999 5 | Method: Least Squares F-statistic: 3.263e+09 6 | Date: Sat, 15 May 2021 Prob (F-statistic): 0.00 7 | Time: 19:20:03 Log-Likelihood: -1.3185e+07 8 | No. Observations: 2500001 AIC: 2.637e+07 9 | Df Residuals: 2500000 BIC: 2.637e+07 10 | Df Model: 1 11 | Covariance Type: nonrobust 12 | ============================================================================== 13 | coef std err t P>|t| [0.025 0.975] 14 | ------------------------------------------------------------------------------ 15 | Time (ps) 0.2955 5.17e-06 5.71e+04 0.000 0.296 0.296 16 | ============================================================================== 17 | Omnibus: 126766.845 Durbin-Watson: 0.000 18 | Prob(Omnibus): 0.000 Jarque-Bera (JB): 146844.593 19 | Skew: 0.584 Prob(JB): 0.00 20 | Kurtosis: 3.211 Cond. No. 1.00 21 | ============================================================================== 22 | 23 | Notes: 24 | [1] R² is computed without centering (uncentered) since the model does not contain a constant. 25 | [2] Standard Errors assume that the covariance matrix of the errors is correctly specified. -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/analysis/o__diff.txt: -------------------------------------------------------------------------------- 1 | OLS Regression Results 2 | ======================================================================================= 3 | Dep. Variable: O_ MSD ($\AA^2$) R-squared (uncentered): 0.998 4 | Model: OLS Adj. R-squared (uncentered): 0.998 5 | Method: Least Squares F-statistic: 1.034e+09 6 | Date: Sat, 15 May 2021 Prob (F-statistic): 0.00 7 | Time: 19:20:03 Log-Likelihood: -1.4140e+07 8 | No. Observations: 2500001 AIC: 2.828e+07 9 | Df Residuals: 2500000 BIC: 2.828e+07 10 | Df Model: 1 11 | Covariance Type: nonrobust 12 | ============================================================================== 13 | coef std err t P>|t| [0.025 0.975] 14 | ------------------------------------------------------------------------------ 15 | Time (ps) 0.2437 7.58e-06 3.22e+04 0.000 0.244 0.244 16 | ============================================================================== 17 | Omnibus: 132113.957 Durbin-Watson: 0.000 18 | Prob(Omnibus): 0.000 Jarque-Bera (JB): 208006.514 19 | Skew: -0.454 Prob(JB): 0.00 20 | Kurtosis: 4.083 Cond. No. 1.00 21 | ============================================================================== 22 | 23 | Notes: 24 | [1] R² is computed without centering (uncentered) since the model does not contain a constant. 25 | [2] Standard Errors assume that the covariance matrix of the errors is correctly specified. -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/analysis/w__diff.txt: -------------------------------------------------------------------------------- 1 | OLS Regression Results 2 | ======================================================================================= 3 | Dep. Variable: W_ MSD ($\AA^2$) R-squared (uncentered): 1.000 4 | Model: OLS Adj. R-squared (uncentered): 1.000 5 | Method: Least Squares F-statistic: 2.164e+11 6 | Date: Sat, 15 May 2021 Prob (F-statistic): 0.00 7 | Time: 19:20:02 Log-Likelihood: -1.1497e+07 8 | No. Observations: 2500001 AIC: 2.299e+07 9 | Df Residuals: 2500000 BIC: 2.299e+07 10 | Df Model: 1 11 | Covariance Type: nonrobust 12 | ============================================================================== 13 | coef std err t P>|t| [0.025 0.975] 14 | ------------------------------------------------------------------------------ 15 | Time (ps) 1.2251 2.63e-06 4.65e+05 0.000 1.225 1.225 16 | ============================================================================== 17 | Omnibus: 121835.477 Durbin-Watson: 0.000 18 | Prob(Omnibus): 0.000 Jarque-Bera (JB): 130333.090 19 | Skew: -0.534 Prob(JB): 0.00 20 | Kurtosis: 2.666 Cond. No. 1.00 21 | ============================================================================== 22 | 23 | Notes: 24 | [1] R² is computed without centering (uncentered) since the model does not contain a constant. 25 | [2] Standard Errors assume that the covariance matrix of the errors is correctly specified. -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/control/case_1.lammpsin: -------------------------------------------------------------------------------- 1 | # Initialization 2 | units real 3 | boundary p p p 4 | atom_style full 5 | log lammps.log 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 10 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 0.0001 17 | 18 | read_data complex.data 19 | 20 | thermo 1 21 | thermo_style custom step etotal pe ebond eangle edihed eimp evdwl ecoul elong press fmax fnorm 22 | min_style sd 23 | minimize 1e-6 1000 10 10000 24 | min_style cg 25 | minimize 1e-6 100 99990 990000 26 | #unfix 1 27 | write_restart emin.restart 28 | 29 | write_dump all custom dump.emin.lammpstrj id type element mol x y z mass q modify element N C C C H O O H O H Na -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/control/case_2.lammpsin: -------------------------------------------------------------------------------- 1 | # Initialization 2 | units real 3 | boundary p p p 4 | atom_style full 5 | log lammps.log 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 10 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 0.0001 17 | 18 | read_data complex.data 19 | 20 | thermo 1 21 | thermo_style custom step etotal pe ebond eangle edihed eimp evdwl ecoul elong press fmax fnorm 22 | min_style sd 23 | minimize 1e-6 1000 10 10000 24 | min_style cg 25 | minimize 1e-6 100 99990 990000 26 | #unfix 1 27 | write_restart emin.restart 28 | 29 | write_dump all custom dump.emin.lammpstrj id type element mol x y z mass q modify element N C C C H O O H O H Na -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/control/case_2_npt.lammpsin: -------------------------------------------------------------------------------- 1 | # Initialization 2 | units real 3 | boundary p p p 4 | atom_style full 5 | log log.lammps 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart $restart_file_name 19 | 20 | 21 | group li 11 22 | group tfsi 1 2 3 4 5 6 23 | group solv 7 8 9 10 24 | velocity all create 298.15 250 mom yes rot yes 25 | # fix 1 shake 0.0001 20 0 26 | fix 2 all npt temp 298.15 298.15 100.0 iso 1.0 1.0 1000.0 27 | thermo 1000 28 | thermo_style custom step temp press pe lx vol density 29 | timestep 1 30 | reset_timestep 0 31 | dump 1 all custom 50000 dump.npt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 32 | # dump_modify 1 33 | restart 1000000 restart.npt.*.restart 34 | run 2000000 35 | # unfix 1 36 | unfix 2 37 | write_restart restart.npt.restart 38 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/control/case_2_npt_group_list.lammpsin: -------------------------------------------------------------------------------- 1 | # Initialization 2 | units real 3 | boundary p p p 4 | atom_style full 5 | log log.lammps 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart $restart_file_name 19 | 20 | 21 | ['group li 11', 'group tfsi 1 2 3 4 5 6', 'group solv 7 8 9 10'] 22 | velocity all create 298.15 250 mom yes rot yes 23 | # fix 1 shake 0.0001 20 0 24 | fix 2 all npt temp 298.15 298.15 100.0 iso 1.0 1.0 1000.0 25 | thermo 1000 26 | thermo_style custom step temp press pe lx vol density 27 | timestep 1 28 | reset_timestep 0 29 | dump 1 all custom 50000 dump.npt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 30 | # dump_modify 1 31 | restart 1000000 restart.npt.*.restart 32 | run 2000000 33 | # unfix 1 34 | unfix 2 35 | write_restart restart.npt.restart 36 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/control/case_3.lammpsin: -------------------------------------------------------------------------------- 1 | # Initialization 2 | units real 3 | boundary p p p 4 | atom_style full 5 | log lammps.log 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 10 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 0.0001 17 | 18 | read_data complex.data 19 | 20 | thermo 1 21 | thermo_style custom step etotal pe ebond eangle edihed eimp evdwl ecoul elong press fmax fnorm 22 | min_style sd 23 | minimize 1e-6 1000 10 10000 24 | min_style cg 25 | minimize 1e-6 100 99990 990000 26 | #unfix 1 27 | write_restart emin.restart 28 | 29 | write_dump all custom dump.emin.lammpstrj id type element mol x y z mass q modify element N C C C H O O H O H Na -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/H5C12SN2O5/leap.log: -------------------------------------------------------------------------------- 1 | log started: Fri Jun 4 10:46:46 2021 2 | 3 | Log file: ./leap.log 4 | >> # 5 | >> # ----- leaprc for loading the general Amber Force field. 6 | >> # This file is mostly for use with Antechamber 7 | >> # 8 | >> # load atom type hybridizations 9 | >> # 10 | >> addAtomTypes { 11 | >> { "h1" "H" "sp3" } 12 | >> { "h2" "H" "sp3" } 13 | >> { "h3" "H" "sp3" } 14 | >> { "h4" "H" "sp3" } 15 | >> { "h5" "H" "sp3" } 16 | >> { "ha" "H" "sp3" } 17 | >> { "hc" "H" "sp3" } 18 | >> { "hn" "H" "sp3" } 19 | >> { "ho" "H" "sp3" } 20 | >> { "hp" "H" "sp3" } 21 | >> { "hs" "H" "sp3" } 22 | >> { "hw" "H" "sp3" } 23 | >> { "hx" "H" "sp3" } 24 | >> { "o" "O" "sp2" } 25 | >> { "o2" "O" "sp2" } 26 | >> { "oh" "O" "sp3" } 27 | >> { "op" "O" "sp3" } 28 | >> { "oq" "O" "sp3" } 29 | >> { "os" "O" "sp3" } 30 | >> { "ow" "O" "sp3" } 31 | >> { "c" "C" "sp2" } 32 | >> { "c1" "C" "sp2" } 33 | >> { "c2" "C" "sp2" } 34 | >> { "c3" "C" "sp3" } 35 | >> { "ca" "C" "sp2" } 36 | >> { "cc" "C" "sp2" } 37 | >> { "cd" "C" "sp2" } 38 | >> { "ce" "C" "sp2" } 39 | >> { "cf" "C" "sp2" } 40 | >> { "cg" "C" "sp2" } 41 | >> { "ch" "C" "sp2" } 42 | >> { "cp" "C" "sp2" } 43 | >> { "cq" "C" "sp2" } 44 | >> { "cu" "C" "sp2" } 45 | >> { "cv" "C" "sp2" } 46 | >> { "cx" "C" "sp2" } 47 | >> { "cy" "C" "sp2" } 48 | >> { "cz" "C" "sp2" } 49 | >> { "n" "N" "sp2" } 50 | >> { "n1" "N" "sp2" } 51 | >> { "n2" "N" "sp2" } 52 | >> { "n3" "N" "sp3" } 53 | >> { "n4" "N" "sp3" } 54 | >> { "na" "N" "sp2" } 55 | >> { "nb" "N" "sp2" } 56 | >> { "nc" "N" "sp2" } 57 | >> { "nd" "N" "sp2" } 58 | >> { "ne" "N" "sp2" } 59 | >> { "nf" "N" "sp2" } 60 | >> { "nh" "N" "sp2" } 61 | >> { "ni" "N" "sp2" } 62 | >> { "nj" "N" "sp2" } 63 | >> { "nk" "N" "sp3" } 64 | >> { "nl" "N" "sp3" } 65 | >> { "nm" "N" "sp2" } 66 | >> { "nn" "N" "sp2" } 67 | >> { "no" "N" "sp2" } 68 | >> { "np" "N" "sp3" } 69 | >> { "nq" "N" "sp3" } 70 | >> { "s" "S" "sp2" } 71 | >> { "s2" "S" "sp2" } 72 | >> { "s3" "S" "sp3" } 73 | >> { "s4" "S" "sp3" } 74 | >> { "s6" "S" "sp3" } 75 | >> { "sh" "S" "sp3" } 76 | >> { "sp" "S" "sp3" } 77 | >> { "sq" "S" "sp3" } 78 | >> { "ss" "S" "sp3" } 79 | >> { "sx" "S" "sp3" } 80 | >> { "sy" "S" "sp3" } 81 | >> { "p2" "P" "sp2" } 82 | >> { "p3" "P" "sp3" } 83 | >> { "p4" "P" "sp3" } 84 | >> { "p5" "P" "sp3" } 85 | >> { "pb" "P" "sp3" } 86 | >> { "pc" "P" "sp3" } 87 | >> { "pd" "P" "sp3" } 88 | >> { "pe" "P" "sp3" } 89 | >> { "pf" "P" "sp3" } 90 | >> { "px" "P" "sp3" } 91 | >> { "py" "P" "sp3" } 92 | >> { "f" "F" "sp3" } 93 | >> { "cl" "Cl" "sp3" } 94 | >> { "br" "Br" "sp3" } 95 | >> { "i" "I" "sp3" } 96 | >> } 97 | >> # 98 | >> # Load the general force field parameter set. 99 | >> # 100 | >> gaff = loadamberparams gaff.dat 101 | Loading parameters: /Users/matt/AmberTools/amber20/dat/leap/parm/gaff.dat 102 | Reading title: 103 | AMBER General Force Field for organic molecules (Version 1.81, May 2017) 104 | > 105 | > MOL = loadmol2 /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/H5C12SN2O5/H5C12SN2O5.mol2 106 | 107 | /Users/matt/AmberTools/amber20/bin/teLeap: Fatal Error! 108 | Could not open file /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/H5C12SN2O5/H5C12SN2O5.mol2: No such file or directory 109 | 110 | Exiting LEaP: Errors = 1; Warnings = 0; Notes = 0. 111 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/H5C12SN2O5/tleap.in: -------------------------------------------------------------------------------- 1 | source leaprc.gaff 2 | MOL = loadmol2 /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/H5C12SN2O5/H5C12SN2O5.mol2 3 | check MOL 4 | loadamberparams /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/H5C12SN2O5/H5C12SN2O5.frcmod 5 | saveamberparm MOL /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/H5C12SN2O5/H5C12SN2O5.prmtop /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/H5C12SN2O5/H5C12SN2O5.inpcrd 6 | quit -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/Na.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 Na+ Na+ 1 -1.710 0.366 0.000 1.00 0.00 Na1+ 4 | MASTER 0 0 0 0 0 0 0 0 1 0 1 0 5 | END 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/SPC_E.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 O HOH 1 -5.506 0.767 0.813 1.00 0.00 O 4 | HETATM 2 H HOH 0 -4.506 0.767 0.813 1.00 0.00 H 5 | HETATM 3 H HOH 0 -5.839 0.226 1.585 1.00 0.00 H 6 | CONECT 1 2 3 7 | CONECT 2 1 8 | CONECT 3 1 9 | MASTER 0 0 0 0 0 0 0 0 3 0 3 0 10 | END 11 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_AC.AC: -------------------------------------------------------------------------------- 1 | CHARGE -1.00 ( -1 ) 2 | Formula: H1 O1 3 | ATOM 1 O1 MOL 1 -4.383 3.077 0.000 -1.206776 o 4 | ATOM 2 H1 MOL 1 -3.420 3.077 0.000 0.206775 ho 5 | BOND 1 1 2 9 O1 H1 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_AC.AC0: -------------------------------------------------------------------------------- 1 | CHARGE -1.00 ( -1 ) 2 | Formula: H1 O1 3 | ATOM 1 O1 MOL 1 -4.383 3.077 0.000 -1.206776 O1 4 | ATOM 2 H1 MOL 1 -3.420 3.077 0.000 0.206775 H1 5 | BOND 1 1 2 9 O1 H1 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_BOND_TYPE.AC: -------------------------------------------------------------------------------- 1 | CHARGE -1.00 ( -1 ) 2 | Formula: H1 O1 3 | ATOM 1 O1 MOL 1 -4.383 3.077 0.000 -1.206776 O1 4 | ATOM 2 H1 MOL 1 -3.420 3.077 0.000 0.206775 H1 5 | BOND 1 1 2 9 O1 H1 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_BOND_TYPE.AC0: -------------------------------------------------------------------------------- 1 | CHARGE -1.00 ( -1 ) 2 | Formula: H1 O1 3 | ATOM 1 O1 MOL 1 -4.383 3.077 0.000 -1.206776 O1 4 | ATOM 2 H1 MOL 1 -3.420 3.077 0.000 0.206775 H1 5 | BOND 1 1 2 0 O1 H1 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_RESP.AC: -------------------------------------------------------------------------------- 1 | CHARGE -1.00 ( -1 ) 2 | Formula: H1 O1 3 | ATOM 1 O1 MOL 1 -4.383 3.077 0.000 -1.206776 o 4 | ATOM 2 H1 MOL 1 -3.420 3.077 0.000 0.206775 ho 5 | BOND 1 1 2 9 O1 H1 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_RESP1.IN: -------------------------------------------------------------------------------- 1 | Resp charges for organic molecule 2 | 3 | &cntrl 4 | 5 | nmol = 1, 6 | ihfree = 1, 7 | ioutopt = 1, 8 | qwt = 0.00050, 9 | 10 | &end 11 | 1.0 12 | Resp charges for organic molecule 13 | -1 2 14 | 8 0 15 | 1 0 16 | 17 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_RESP1.OUT: -------------------------------------------------------------------------------- 1 | 2 | ----------------------------------------------- 3 | Restrained ESP Fit 2.3 Amber 4.1 4 | ----------------------------------------------- 5 | Resp charges for organic molecule 6 | ----------------------------------------------- 7 | 8 | 9 | inopt = 0 ioutopt = 1 10 | nmol = 1 iqopt = 0 11 | ihfree = 1 irstrnt = 1 12 | iunits = 0 qwt = 0.00050000 13 | wtmol(1) = 1.000000 14 | subtitle: 15 | 16 | Resp charges for organic molecule 17 | ich = -1 iuniq = 2 18 | 1 8 0 19 | 2 1 0 20 | 21 | ---------------------------------------------------------------------------- 22 | ATOM COORDINATES CHARGE 23 | X Y Z 24 | ---------------------------------------------------------------------------- 25 | ---------------------------------------------------------------------------- 26 | 27 | 28 | Charge on the molecule(ich) = -1 29 | Total number of atoms (iuniq) = 2 30 | Weight factor on initial charge restraints(qwt)= 0.50000D-03 31 | 32 | 33 | there are 1 charge constraints: 34 | 35 | 36 | 1 1 37 | 2 1 38 | 39 | Reading esp"s for molecule 1 40 | total number of atoms = 2 41 | total number of esp points = 273 42 | 43 | 44 | center X Y Z 45 | 1 -0.8281851E+01 0.5814498E+01 0.7000000E-08 46 | 2 -0.6463172E+01 0.5814498E+01 0.1000000E-08 47 | Initial ssvpot = 12.838 48 | 49 | 50 | Number of unique UNfrozen centers= 2 51 | 52 | Non-linear optimization requested. 53 | qchnge = 0.6116268815 54 | qchnge = 0.1177633858E-03 55 | qchnge = 0.7694025006E-07 56 | 57 | Convergence in 2 iterations 58 | 59 | 60 | Resp charges for organic molecule 61 | 62 | Point Charges Before & After Optimization 63 | 64 | no. At.no. q(init) q(opt) ivary d(rstr)/dq 65 | 1 8 0.000000 -1.205982 0 0.000413 66 | 2 1 0.000000 0.205982 0 0.000000 67 | 68 | Sum over the calculated charges: -1.000 69 | 70 | Statistics of the fitting: 71 | The initial sum of squares (ssvpot) 12.838 72 | The residual sum of squares (chipot) 0.002 73 | The std err of estimate (sqrt(chipot/N)) 0.00247 74 | ESP relative RMS (SQRT(chipot/ssvpot)) 0.01137 75 | 76 | Center of Mass (Angst.): 77 | 78 | X = 0.00000 Y = 0.00000 Z = 0.00000 79 | 80 | Dipole (Debye): 81 | 82 | X = 22.00270 Y = -14.77909 Z = -0.00000 83 | 84 | Dipole Moment (Debye)= 26.50548 85 | 86 | Quadrupole (Debye*Angst.): 87 | 88 | Qxx =-153.89607 QYY = 8.73736 QZZ = 145.15871 89 | Qxy = 348.25905 QXZ = 145.15871 QYZ = 145.15871 90 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_RESP2.IN: -------------------------------------------------------------------------------- 1 | Resp charges for organic molecule 2 | 3 | &cntrl 4 | 5 | nmol = 1, 6 | ihfree = 1, 7 | ioutopt = 1, 8 | iqopt = 2, 9 | qwt = 0.00100, 10 | 11 | &end 12 | 1.0 13 | Resp charges for organic molecule 14 | -1 2 15 | 8 -99 16 | 1 -99 17 | 18 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ANTECHAMBER_RESP2.OUT: -------------------------------------------------------------------------------- 1 | 2 | ----------------------------------------------- 3 | Restrained ESP Fit 2.3 Amber 4.1 4 | ----------------------------------------------- 5 | Resp charges for organic molecule 6 | ----------------------------------------------- 7 | 8 | 9 | inopt = 0 ioutopt = 1 10 | nmol = 1 iqopt = 2 11 | ihfree = 1 irstrnt = 1 12 | iunits = 0 qwt = 0.00100000 13 | wtmol(1) = 1.000000 14 | subtitle: 15 | 16 | Resp charges for organic molecule 17 | ich = -1 iuniq = 2 18 | 1 8 -99 19 | 2 1 -99 20 | new q0 values to be read 2 21 | 22 | ---------------------------------------------------------------------------- 23 | ATOM COORDINATES CHARGE 24 | X Y Z 25 | ---------------------------------------------------------------------------- 26 | ---------------------------------------------------------------------------- 27 | 28 | 29 | Charge on the molecule(ich) = -1 30 | Total number of atoms (iuniq) = 2 31 | Weight factor on initial charge restraints(qwt)= 0.10000D-02 32 | 33 | 34 | there are 1 charge constraints: 35 | 36 | 37 | 1 1 38 | 2 1 39 | 40 | Reading esp"s for molecule 1 41 | total number of atoms = 2 42 | total number of esp points = 273 43 | 44 | 45 | center X Y Z 46 | 1 -0.8281851E+01 0.5814498E+01 0.7000000E-08 47 | 2 -0.6463172E+01 0.5814498E+01 0.1000000E-08 48 | Initial ssvpot = 12.838 49 | 50 | 51 | Number of unique UNfrozen centers= 0 52 | ALL charges are frozen!!! 53 | 54 | Non-linear optimization requested. 55 | qchnge = 0.6117232153 56 | qchnge = 0.000000000 57 | qchnge = 0.000000000 58 | 59 | Convergence in 2 iterations 60 | 61 | 62 | Resp charges for organic molecule 63 | 64 | Point Charges Before & After Optimization 65 | 66 | no. At.no. q(init) q(opt) ivary d(rstr)/dq 67 | 1 8 -1.205982 -1.205982 -99 0.000826 68 | 2 1 0.205982 0.205982 -99 0.000000 69 | 70 | Sum over the calculated charges: -1.000 71 | 72 | Statistics of the fitting: 73 | The initial sum of squares (ssvpot) 12.838 74 | The residual sum of squares (chipot) 0.002 75 | The std err of estimate (sqrt(chipot/N)) 0.00247 76 | ESP relative RMS (SQRT(chipot/ssvpot)) 0.01137 77 | 78 | Center of Mass (Angst.): 79 | 80 | X = 0.00000 Y = 0.00000 Z = 0.00000 81 | 82 | Dipole (Debye): 83 | 84 | X = 22.00270 Y = -14.77909 Z = -0.00000 85 | 86 | Dipole Moment (Debye)= 26.50548 87 | 88 | Quadrupole (Debye*Angst.): 89 | 90 | Qxx =-153.89609 QYY = 8.73737 QZZ = 145.15872 91 | Qxy = 348.25908 QXZ = 145.15872 QYZ = 145.15872 92 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/ATOMTYPE.INF: -------------------------------------------------------------------------------- 1 | ==================================================================================== 2 | -------------------------------ring property (I)------------------------------------ 3 | 4 | ==================================================================================== 5 | -------------------------------ring property (II)------------------------------------ 6 | 7 | ==================================================================================== 8 | -------------------------------ring property (III)----------------------------------- 9 | atom[ 1] (O1 ) is not in any ring (nr[1]=1) 10 | atom[ 2] (H1 ) is not in any ring (nr[2]=1) 11 | 12 | ==================================================================================== 13 | -------------------------------aromatic property------------------------------------ 14 | 15 | ==================================================================================== 16 | -------------------------------electronic property---------------------------------- 17 | atom [ 1] (O1 ) is an electron-withdrew atom 18 | atom [ 2] (H1 ) is not an electron-withdrew atom 19 | 20 | ==================================================================================== 21 | --------------------------------connectivity property------------------------------- 22 | atom[ 1] (O1 ) 2 H1 23 | atom[ 2] (H1 ) 1 O1 24 | ----------------------------------------END----------------------------------------- 25 | 26 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/H2O2.frcmod: -------------------------------------------------------------------------------- 1 | Remark line goes here 2 | MASS 3 | 4 | BOND 5 | 6 | ANGLE 7 | 8 | DIHE 9 | 10 | IMPROPER 11 | 12 | NONBON 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/H2O2.inpcrd: -------------------------------------------------------------------------------- 1 | MOL 2 | 2 3 | -4.3830000 3.0770000 0.0000000 -3.4200000 3.0770000 0.0000000 4 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/H2O2.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | MOL 3 | 2 1 1 0 0 4 | SMALL 5 | resp 6 | 7 | 8 | @ATOM 9 | 1 O1 -4.3830 3.0770 0.0000 o 1 MOL -1.205982 10 | 2 H1 -3.4200 3.0770 0.0000 ho 1 MOL 0.205982 11 | @BOND 12 | 1 1 2 1 13 | @SUBSTRUCTURE 14 | 1 MOL 1 TEMP 0 **** **** 0 ROOT 15 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/H5C12SN2O5.frcmod: -------------------------------------------------------------------------------- 1 | Remark line goes here 2 | MASS 3 | 4 | BOND 5 | 6 | ANGLE 7 | 8 | DIHE 9 | nb-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 10 | nb-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 11 | ca-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 12 | ca-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 13 | 14 | IMPROPER 15 | ca-ca-ca-ha 1.1 180.0 2.0 Using general improper torsional angle X- X-ca-ha, penalty score= 6.0) 16 | ca-ca-ca-nb 1.1 180.0 2.0 Using the default value 17 | ca-ca-ca-s6 1.1 180.0 2.0 Using the default value 18 | c -ca-cc-ha 1.1 180.0 2.0 Same as X -X -ca-ha, penalty score= 38.9 (use general term)) 19 | ca-cc-ca-nb 1.1 180.0 2.0 Using the default value 20 | c -cc-c -o 10.5 180.0 2.0 Using general improper torsional angle X- X- c- o, penalty score= 6.0) 21 | 22 | NONBON 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/H5C12SN2O5.inpcrd: -------------------------------------------------------------------------------- 1 | MOL 2 | 25 3 | 0.8610000 -1.1350000 0.4480000 1.0390000 1.6060000 -0.2190000 4 | -1.5330000 -0.9960000 0.2530000 -0.2570000 -0.3950000 0.1890000 5 | -2.6820000 -0.2820000 0.0030000 -2.5820000 1.0810000 -0.3250000 6 | -0.1610000 0.9700000 -0.1420000 -1.3530000 1.6820000 -0.3940000 7 | 3.2280000 -1.2440000 0.6350000 2.0290000 -0.5420000 0.3800000 8 | 4.5160000 -0.6830000 0.5830000 2.1260000 0.9070000 0.0280000 9 | 4.6130000 0.8160000 0.2180000 3.4030000 1.4940000 -0.0320000 10 | -1.5920000 -2.0360000 0.5120000 5.7270000 1.3460000 0.1620000 11 | -3.4800000 1.6450000 -0.5100000 -1.2610000 2.7280000 -0.6410000 12 | 3.1450000 -2.2890000 0.8890000 5.5600000 -1.3060000 0.8080000 13 | -4.7680000 -1.0880000 -1.3380000 3.4580000 2.5400000 -0.2870000 14 | -4.3030000 -1.0360000 0.0470000 -4.1300000 -2.3590000 0.6370000 15 | -5.1270000 -0.1480000 0.8660000 16 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/H5C12SN2O5.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | MOL 3 | 25 27 1 0 0 4 | SMALL 5 | resp 6 | 7 | 8 | @ATOM 9 | 1 N1 0.8610 -1.1350 0.4480 nb 1 MOL -0.691321 10 | 2 N2 1.0390 1.6060 -0.2190 nb 1 MOL -0.739056 11 | 3 C1 -1.5330 -0.9960 0.2530 ca 1 MOL -0.225806 12 | 4 C2 -0.2570 -0.3950 0.1890 ca 1 MOL 0.306611 13 | 5 C3 -2.6820 -0.2820 0.0030 ca 1 MOL -0.087046 14 | 6 C4 -2.5820 1.0810 -0.3250 ca 1 MOL -0.258214 15 | 7 C5 -0.1610 0.9700 -0.1420 ca 1 MOL 0.266008 16 | 8 C6 -1.3530 1.6820 -0.3940 ca 1 MOL -0.246607 17 | 9 C7 3.2280 -1.2440 0.6350 cc 1 MOL -0.764873 18 | 10 C8 2.0290 -0.5420 0.3800 ca 1 MOL 0.385158 19 | 11 C9 4.5160 -0.6830 0.5830 c 1 MOL 0.528041 20 | 12 C10 2.1260 0.9070 0.0280 ca 1 MOL 0.585862 21 | 13 C11 4.6130 0.8160 0.2180 c 1 MOL 0.586716 22 | 14 C12 3.4030 1.4940 -0.0320 cc 1 MOL -0.868683 23 | 15 H1 -1.5920 -2.0360 0.5120 ha 1 MOL 0.142804 24 | 16 O1 5.7270 1.3460 0.1620 o 1 MOL -0.748639 25 | 17 H2 -3.4800 1.6450 -0.5100 ha 1 MOL 0.146559 26 | 18 H3 -1.2610 2.7280 -0.6410 ha 1 MOL 0.103736 27 | 19 H4 3.1450 -2.2890 0.8890 ha 1 MOL 0.162410 28 | 20 O2 5.5600 -1.3060 0.8080 o 1 MOL -0.751707 29 | 21 O3 -4.7680 -1.0880 -1.3380 o 1 MOL -0.714735 30 | 22 H5 3.4580 2.5400 -0.2870 ha 1 MOL 0.170582 31 | 23 S1 -4.3030 -1.0360 0.0470 s6 1 MOL 1.141670 32 | 24 O4 -4.1300 -2.3590 0.6370 o 1 MOL -0.714735 33 | 25 O5 -5.1270 -0.1480 0.8660 o 1 MOL -0.714735 34 | @BOND 35 | 1 1 4 ar 36 | 2 1 10 ar 37 | 3 2 7 ar 38 | 4 2 12 ar 39 | 5 3 4 ar 40 | 6 3 5 ar 41 | 7 3 15 1 42 | 8 4 7 ar 43 | 9 5 6 ar 44 | 10 5 23 1 45 | 11 6 8 ar 46 | 12 6 17 1 47 | 13 7 8 ar 48 | 14 8 18 1 49 | 15 9 10 2 50 | 16 9 11 1 51 | 17 9 19 1 52 | 18 10 12 ar 53 | 19 11 13 1 54 | 20 11 20 2 55 | 21 12 14 2 56 | 22 13 14 1 57 | 23 13 16 2 58 | 24 14 22 1 59 | 25 21 23 1 60 | 26 23 24 1 61 | 27 23 25 1 62 | @SUBSTRUCTURE 63 | 1 MOL 1 TEMP 0 **** **** 0 ROOT 64 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/Na.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 Na+ Na+ 1 -1.710 0.366 0.000 1.00 0.00 Na1+ 4 | MASTER 0 0 0 0 0 0 0 0 1 0 1 0 5 | END 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/SPC_E.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 O HOH 1 -5.506 0.767 0.813 1.00 0.00 O 4 | HETATM 2 H HOH 0 -4.506 0.767 0.813 1.00 0.00 H 5 | HETATM 3 H HOH 0 -5.839 0.226 1.585 1.00 0.00 H 6 | CONECT 1 2 3 7 | CONECT 2 1 8 | CONECT 3 1 9 | MASTER 0 0 0 0 0 0 0 0 3 0 3 0 10 | END 11 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/punch: -------------------------------------------------------------------------------- 1 | 2 | Resp charges for organic molecule 3 | 4 | iqopt irstrnt ihfree qwt 5 | 2 1 1 0.001000 6 | 7 | rel.rms dipole mom Qxx Qyy Qzz 8 | 0.01137 26.50548-153.89609 8.73737 145.15872 9 | 10 | Point charges before & after optimization 11 | NO At.No. q0 q(opt) IVARY d(rstr)/dq 12 | 1 8 -1.205982 -1.205982 -99 0.000826 13 | 2 1 0.205982 0.205982 -99 0.000000 14 | 15 | Statistics of the fitting: 16 | The initial sum of squares (ssvpot) 12.838 17 | The residual sum of squares (chipot) 0.002 18 | The std err of estimate (sqrt(chipot/N)) 0.00247 19 | ESP relative RMS (SQRT(chipot/ssvpot)) 0.01137 20 | 21 | Dipole Moment (Debye)= 26.50548 22 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/qout: -------------------------------------------------------------------------------- 1 | -1.205982 0.205982 2 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/custom_workflow/tleap.in: -------------------------------------------------------------------------------- 1 | source leaprc.gaff 2 | MOL = loadmol2 /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/custom_workflow/H2O2.mol2 3 | check MOL 4 | loadamberparams /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/custom_workflow/H2O2.frcmod 5 | saveamberparm MOL /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/custom_workflow/H2O2.prmtop /Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/custom_workflow/H2O2.inpcrd 6 | quit -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/emin/complex.lammpsin: -------------------------------------------------------------------------------- 1 | log lammps.log 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_data ../complex.data 19 | 20 | thermo 1 21 | thermo_style custom step etotal pe ebond eangle edihed eimp evdwl ecoul elong press fmax fnorm 22 | min_style sd 23 | minimize 1e-6 1000 10 10000 24 | min_style cg 25 | minimize 1e-6 100 99990 990000 26 | #unfix 1 27 | write_restart restart.emin.restart 28 | 29 | write_dump all custom dump.emin.dump id type element mol x y z mass q -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/emin/run_file.json: -------------------------------------------------------------------------------- 1 | {"smiles": ["O=C1[CH]c2nc3ccc(cc3nc2[CH]C1=O)S([O])([O])[O]", "O", "[OH]", "[Na]"], "nmols": {"H5C12SN2O5": 9.0, "H2O2": 10.0, "Na": 37.0, "H2O": 438.0}, "box": {"@module": "pymatgen.io.lammps.data", "@class": "LammpsBox", "@version": "2020.9.14", "bounds": [[-0.25, 25.25], [-0.25, 25.25], [-0.25, 25.25]], "tilt": null}, "job_type": "emin_gaff", "working_dir": "/Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/emin"} -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/melt/complex.lammpsin: -------------------------------------------------------------------------------- 1 | log log.lammps 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart ../npt/restart.npt.restart 19 | 20 | group phen type 1 2 3 4 5 6 7 21 | group wat type 8 9 22 | group oh type 10 11 23 | group na type 12 24 | fix 1 wat shake 0.0001 20 0 b 11 a 16 25 | fix 2 all nvt temp 500.0 500.0 100.0 26 | thermo 1000 27 | 28 | thermo_style custom step temp press pe pxx pyy pzz pxy pxz pyz 29 | timestep 1 30 | reset_timestep 0 31 | dump 1 all custom 50000 dump.nvt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 32 | # dump_modify 1 33 | restart 1000000 restart.nvt.*.restart 34 | run 1000000 35 | unfix 1 36 | unfix 2 37 | write_restart restart.melt_500K.restart 38 | 39 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/melt/run_file.json: -------------------------------------------------------------------------------- 1 | {"smiles": ["O=C1[CH]c2nc3ccc(cc3nc2[CH]C1=O)S([O])([O])[O]", "O", "[OH]", "[Na]"], "nmols": {"H5C12SN2O5": 9.0, "H2O2": 10.0, "Na": 37.0, "H2O": 438.0}, "box": {"@module": "pymatgen.io.lammps.data", "@class": "LammpsBox", "@version": "2020.9.14", "bounds": [[-0.25, 25.25], [-0.25, 25.25], [-0.25, 25.25]], "tilt": null}, "job_type": "nvt", "working_dir": "/Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/melt"} -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/npt/complex.lammpsin: -------------------------------------------------------------------------------- 1 | log log.lammps 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart ../emin/restart.emin.restart 19 | 20 | 21 | group phen type 1 2 3 4 5 6 7 22 | group wat type 8 9 23 | group oh type 10 11 24 | group na type 12 25 | velocity all create 298.15 36624 mom yes rot yes 26 | fix 1 wat shake 0.0001 20 0 b 11 a 16 27 | fix 2 all npt temp 298.15 298.15 100.0 iso 1.0 1.0 1000.0 28 | thermo 1000 29 | thermo_style custom step temp press pe lx vol density 30 | timestep 2 31 | reset_timestep 0 32 | dump 1 all custom 25000 dump.npt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 33 | # dump_modify 1 34 | restart 1000000 restart.npt.*.restart 35 | run 1000000 36 | unfix 1 37 | unfix 2 38 | write_restart restart.npt.restart 39 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/npt/run_file.json: -------------------------------------------------------------------------------- 1 | {"smiles": ["O=C1[CH]c2nc3ccc(cc3nc2[CH]C1=O)S([O])([O])[O]", "O", "[OH]", "[Na]"], "nmols": {"H5C12SN2O5": 9.0, "H2O2": 10.0, "Na": 37.0, "H2O": 438.0}, "box": {"@module": "pymatgen.io.lammps.data", "@class": "LammpsBox", "@version": "2020.9.14", "bounds": [[-0.25, 25.25], [-0.25, 25.25], [-0.25, 25.25]], "tilt": null}, "job_type": "npt", "working_dir": "/Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/npt"} -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/nvt_0-20/complex.lammpsin: -------------------------------------------------------------------------------- 1 | log log.lammps 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart ../quench/restart.quench_298-15K.restart 19 | 20 | group phen type 1 2 3 4 5 6 7 21 | group wat type 8 9 22 | group oh type 10 11 23 | group na type 12 24 | fix 1 wat shake 0.0001 20 0 b 11 a 16 25 | fix 2 all nvt temp 298.15 298.15 100.0 26 | thermo 2 27 | compute P phen msd com yes 28 | compute W wat msd com yes 29 | compute O oh msd com yes 30 | compute N na msd com yes 31 | thermo_style custom step temp press pe pxx pyy pzz pxy pxz pyz c_P[4] c_W[4] c_O[4] c_N[4] 32 | timestep 2 33 | reset_timestep 0 34 | dump 1 all custom 25000 dump.nvt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 35 | # dump_modify 1 36 | restart 1000000 restart.nvt.*.restart 37 | run 10000000 38 | unfix 1 39 | unfix 2 40 | write_restart restart.nvt_20-ns.restart 41 | 42 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/nvt_0-20/run_file.json: -------------------------------------------------------------------------------- 1 | {"smiles": ["O=C1[CH]c2nc3ccc(cc3nc2[CH]C1=O)S([O])([O])[O]", "O", "[OH]", "[Na]"], "nmols": {"H5C12SN2O5": 9.0, "H2O2": 10.0, "Na": 37.0, "H2O": 438.0}, "box": {"@module": "pymatgen.io.lammps.data", "@class": "LammpsBox", "@version": "2020.9.14", "bounds": [[-0.25, 25.25], [-0.25, 25.25], [-0.25, 25.25]], "tilt": null}, "job_type": "nvt", "working_dir": "/Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/nvt_0-20"} -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/nvt_20-40/complex.lammpsin: -------------------------------------------------------------------------------- 1 | log log.lammps 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart ../nvt_0-20/restart.nvt_20-ns.restart 19 | 20 | group phen type 1 2 3 4 5 6 7 21 | group wat type 8 9 22 | group oh type 10 11 23 | group na type 12 24 | fix 1 wat shake 0.0001 20 0 b 11 a 16 25 | fix 2 all nvt temp 298.15 298.15 100.0 26 | thermo 2 27 | compute P phen msd com yes 28 | compute W wat msd com yes 29 | compute O oh msd com yes 30 | compute N na msd com yes 31 | thermo_style custom step temp press pe pxx pyy pzz pxy pxz pyz c_P[4] c_W[4] c_O[4] c_N[4] 32 | timestep 2 33 | # reset_timestep 0 34 | dump 1 all custom 25000 dump.nvt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 35 | # dump_modify 1 36 | restart 1000000 restart.nvt.*.restart 37 | run 10000000 38 | unfix 1 39 | unfix 2 40 | write_restart restart.nvt_40-ns.restart 41 | 42 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/nvt_20-40/run_file.json: -------------------------------------------------------------------------------- 1 | {"smiles": ["O=C1[CH]c2nc3ccc(cc3nc2[CH]C1=O)S([O])([O])[O]", "O", "[OH]", "[Na]"], "nmols": {"H5C12SN2O5": 9.0, "H2O2": 10.0, "Na": 37.0, "H2O": 438.0}, "box": {"@module": "pymatgen.io.lammps.data", "@class": "LammpsBox", "@version": "2020.9.14", "bounds": [[-0.25, 25.25], [-0.25, 25.25], [-0.25, 25.25]], "tilt": null}, "job_type": "nvt", "working_dir": "/Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/nvt_20-40"} -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/quench/complex.lammpsin: -------------------------------------------------------------------------------- 1 | log log.lammps 2 | # Initialization 3 | units real 4 | boundary p p p 5 | atom_style full 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart ../melt/restart.melt_500K.restart 19 | 20 | group phen type 1 2 3 4 5 6 7 21 | group wat type 8 9 22 | group oh type 10 11 23 | group na type 12 24 | fix 1 wat shake 0.0001 20 0 b 11 a 16 25 | fix 2 all nvt temp 500.0 298.15 100.0 26 | thermo 1000 27 | 28 | thermo_style custom step temp press pe pxx pyy pzz pxy pxz pyz 29 | timestep 2 30 | reset_timestep 0 31 | dump 1 all custom 25000 dump.nvt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 32 | # dump_modify 1 33 | restart 1000000 restart.nvt.*.restart 34 | run 1000000 35 | unfix 1 36 | unfix 2 37 | write_restart restart.quench_298-15K.restart 38 | 39 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/data/quench/run_file.json: -------------------------------------------------------------------------------- 1 | {"smiles": ["O=C1[CH]c2nc3ccc(cc3nc2[CH]C1=O)S([O])([O])[O]", "O", "[OH]", "[Na]"], "nmols": {"H5C12SN2O5": 9.0, "H2O2": 10.0, "Na": 37.0, "H2O": 438.0}, "box": {"@module": "pymatgen.io.lammps.data", "@class": "LammpsBox", "@version": "2020.9.14", "bounds": [[-0.25, 25.25], [-0.25, 25.25], [-0.25, 25.25]], "tilt": null}, "job_type": "nvt", "working_dir": "/Users/matt/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/data/quench"} -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/dhps.frcmod: -------------------------------------------------------------------------------- 1 | Remark line goes here 2 | MASS 3 | 4 | BOND 5 | 6 | ANGLE 7 | 8 | DIHE 9 | nb-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 10 | nb-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 11 | ca-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 12 | ca-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 13 | 14 | IMPROPER 15 | ca-ca-ca-ha 1.1 180.0 2.0 Using general improper torsional angle X- X-ca-ha, penalty score= 6.0) 16 | ca-ca-ca-nb 1.1 180.0 2.0 Using the default value 17 | ca-ca-ca-s6 1.1 180.0 2.0 Using the default value 18 | c -ca-cc-ha 1.1 180.0 2.0 Same as X -X -ca-ha, penalty score= 38.9 (use general term)) 19 | ca-cc-ca-nb 1.1 180.0 2.0 Using the default value 20 | c -cc-c -o 10.5 180.0 2.0 Using general improper torsional angle X- X- c- o, penalty score= 6.0) 21 | 22 | NONBON 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/dhps.inpcrd: -------------------------------------------------------------------------------- 1 | MOL 2 | 25 3 | 0.8610000 -1.1350000 0.4480000 1.0390000 1.6060000 -0.2190000 4 | -1.5330000 -0.9960000 0.2530000 -0.2570000 -0.3950000 0.1890000 5 | -2.6820000 -0.2820000 0.0030000 -2.5820000 1.0810000 -0.3250000 6 | -0.1610000 0.9700000 -0.1420000 -1.3530000 1.6820000 -0.3940000 7 | 3.2280000 -1.2440000 0.6350000 2.0290000 -0.5420000 0.3800000 8 | 4.5160000 -0.6830000 0.5830000 2.1260000 0.9070000 0.0280000 9 | 4.6130000 0.8160000 0.2180000 3.4030000 1.4940000 -0.0320000 10 | -1.5920000 -2.0360000 0.5120000 5.7270000 1.3460000 0.1620000 11 | -3.4800000 1.6450000 -0.5100000 -1.2610000 2.7280000 -0.6410000 12 | 3.1450000 -2.2890000 0.8890000 5.5600000 -1.3060000 0.8080000 13 | -4.7680000 -1.0880000 -1.3380000 3.4580000 2.5400000 -0.2870000 14 | -4.3030000 -1.0360000 0.0470000 -4.1300000 -2.3590000 0.6370000 15 | -5.1270000 -0.1480000 0.8660000 16 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/dhps.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | MOL 3 | 25 27 1 0 0 4 | SMALL 5 | resp 6 | 7 | 8 | @ATOM 9 | 1 N1 0.8610 -1.1350 0.4480 nb 1 MOL -0.691321 10 | 2 N2 1.0390 1.6060 -0.2190 nb 1 MOL -0.739056 11 | 3 C1 -1.5330 -0.9960 0.2530 ca 1 MOL -0.225806 12 | 4 C2 -0.2570 -0.3950 0.1890 ca 1 MOL 0.306611 13 | 5 C3 -2.6820 -0.2820 0.0030 ca 1 MOL -0.087046 14 | 6 C4 -2.5820 1.0810 -0.3250 ca 1 MOL -0.258214 15 | 7 C5 -0.1610 0.9700 -0.1420 ca 1 MOL 0.266008 16 | 8 C6 -1.3530 1.6820 -0.3940 ca 1 MOL -0.246607 17 | 9 C7 3.2280 -1.2440 0.6350 cc 1 MOL -0.764873 18 | 10 C8 2.0290 -0.5420 0.3800 ca 1 MOL 0.385158 19 | 11 C9 4.5160 -0.6830 0.5830 c 1 MOL 0.528041 20 | 12 C10 2.1260 0.9070 0.0280 ca 1 MOL 0.585862 21 | 13 C11 4.6130 0.8160 0.2180 c 1 MOL 0.586716 22 | 14 C12 3.4030 1.4940 -0.0320 cc 1 MOL -0.868683 23 | 15 H1 -1.5920 -2.0360 0.5120 ha 1 MOL 0.142804 24 | 16 O1 5.7270 1.3460 0.1620 o 1 MOL -0.748639 25 | 17 H2 -3.4800 1.6450 -0.5100 ha 1 MOL 0.146559 26 | 18 H3 -1.2610 2.7280 -0.6410 ha 1 MOL 0.103736 27 | 19 H4 3.1450 -2.2890 0.8890 ha 1 MOL 0.162410 28 | 20 O2 5.5600 -1.3060 0.8080 o 1 MOL -0.751707 29 | 21 O3 -4.7680 -1.0880 -1.3380 o 1 MOL -0.714735 30 | 22 H5 3.4580 2.5400 -0.2870 ha 1 MOL 0.170582 31 | 23 S1 -4.3030 -1.0360 0.0470 s6 1 MOL 1.141670 32 | 24 O4 -4.1300 -2.3590 0.6370 o 1 MOL -0.714735 33 | 25 O5 -5.1270 -0.1480 0.8660 o 1 MOL -0.714735 34 | @BOND 35 | 1 1 4 ar 36 | 2 1 10 ar 37 | 3 2 7 ar 38 | 4 2 12 ar 39 | 5 3 4 ar 40 | 6 3 5 ar 41 | 7 3 15 1 42 | 8 4 7 ar 43 | 9 5 6 ar 44 | 10 5 23 1 45 | 11 6 8 ar 46 | 12 6 17 1 47 | 13 7 8 ar 48 | 14 8 18 1 49 | 15 9 10 2 50 | 16 9 11 1 51 | 17 9 19 1 52 | 18 10 12 ar 53 | 19 11 13 1 54 | 20 11 20 2 55 | 21 12 14 2 56 | 22 13 14 1 57 | 23 13 16 2 58 | 24 14 22 1 59 | 25 21 23 1 60 | 26 23 24 1 61 | 27 23 25 1 62 | @SUBSTRUCTURE 63 | 1 MOL 1 TEMP 0 **** **** 0 ROOT 64 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H2O2/H2O2.frcmod: -------------------------------------------------------------------------------- 1 | Remark line goes here 2 | MASS 3 | 4 | BOND 5 | 6 | ANGLE 7 | 8 | DIHE 9 | 10 | IMPROPER 11 | 12 | NONBON 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H2O2/H2O2.inpcrd: -------------------------------------------------------------------------------- 1 | MOL 2 | 2 3 | -4.3830000 3.0770000 0.0000000 -3.4200000 3.0770000 0.0000000 4 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H2O2/H2O2.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | MOL 3 | 2 1 1 0 0 4 | SMALL 5 | resp 6 | 7 | 8 | @ATOM 9 | 1 O1 -4.3830 3.0770 0.0000 o 1 MOL -1.205982 10 | 2 H1 -3.4200 3.0770 0.0000 ho 1 MOL 0.205982 11 | @BOND 12 | 1 1 2 1 13 | @SUBSTRUCTURE 14 | 1 MOL 1 TEMP 0 **** **** 0 ROOT 15 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H2O2/tleap.in: -------------------------------------------------------------------------------- 1 | source leaprc.gaff 2 | MOL = loadmol2 /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H2O2/H2O2.mol2 3 | check MOL 4 | loadamberparams /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H2O2/H2O2.frcmod 5 | saveamberparm MOL /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H2O2/H2O2.prmtop /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H2O2/H2O2.inpcrd 6 | quit -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H5C12SN2O5/H5C12SN2O5.frcmod: -------------------------------------------------------------------------------- 1 | Remark line goes here 2 | MASS 3 | 4 | BOND 5 | 6 | ANGLE 7 | 8 | DIHE 9 | nb-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 10 | nb-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 11 | ca-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 12 | ca-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 13 | 14 | IMPROPER 15 | ca-ca-ca-ha 1.1 180.0 2.0 Using general improper torsional angle X- X-ca-ha, penalty score= 6.0) 16 | ca-ca-ca-nb 1.1 180.0 2.0 Using the default value 17 | ca-ca-ca-s6 1.1 180.0 2.0 Using the default value 18 | c -ca-cc-ha 1.1 180.0 2.0 Same as X -X -ca-ha, penalty score= 38.9 (use general term)) 19 | ca-cc-ca-nb 1.1 180.0 2.0 Using the default value 20 | c -cc-c -o 10.5 180.0 2.0 Using general improper torsional angle X- X- c- o, penalty score= 6.0) 21 | 22 | NONBON 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H5C12SN2O5/H5C12SN2O5.inpcrd: -------------------------------------------------------------------------------- 1 | MOL 2 | 25 3 | 0.8610000 -1.1350000 0.4480000 1.0390000 1.6060000 -0.2190000 4 | -1.5330000 -0.9960000 0.2530000 -0.2570000 -0.3950000 0.1890000 5 | -2.6820000 -0.2820000 0.0030000 -2.5820000 1.0810000 -0.3250000 6 | -0.1610000 0.9700000 -0.1420000 -1.3530000 1.6820000 -0.3940000 7 | 3.2280000 -1.2440000 0.6350000 2.0290000 -0.5420000 0.3800000 8 | 4.5160000 -0.6830000 0.5830000 2.1260000 0.9070000 0.0280000 9 | 4.6130000 0.8160000 0.2180000 3.4030000 1.4940000 -0.0320000 10 | -1.5920000 -2.0360000 0.5120000 5.7270000 1.3460000 0.1620000 11 | -3.4800000 1.6450000 -0.5100000 -1.2610000 2.7280000 -0.6410000 12 | 3.1450000 -2.2890000 0.8890000 5.5600000 -1.3060000 0.8080000 13 | -4.7680000 -1.0880000 -1.3380000 3.4580000 2.5400000 -0.2870000 14 | -4.3030000 -1.0360000 0.0470000 -4.1300000 -2.3590000 0.6370000 15 | -5.1270000 -0.1480000 0.8660000 16 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H5C12SN2O5/H5C12SN2O5.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | MOL 3 | 25 27 1 0 0 4 | SMALL 5 | resp 6 | 7 | 8 | @ATOM 9 | 1 N1 0.8610 -1.1350 0.4480 nb 1 MOL -0.691321 10 | 2 N2 1.0390 1.6060 -0.2190 nb 1 MOL -0.739056 11 | 3 C1 -1.5330 -0.9960 0.2530 ca 1 MOL -0.225806 12 | 4 C2 -0.2570 -0.3950 0.1890 ca 1 MOL 0.306611 13 | 5 C3 -2.6820 -0.2820 0.0030 ca 1 MOL -0.087046 14 | 6 C4 -2.5820 1.0810 -0.3250 ca 1 MOL -0.258214 15 | 7 C5 -0.1610 0.9700 -0.1420 ca 1 MOL 0.266008 16 | 8 C6 -1.3530 1.6820 -0.3940 ca 1 MOL -0.246607 17 | 9 C7 3.2280 -1.2440 0.6350 cc 1 MOL -0.764873 18 | 10 C8 2.0290 -0.5420 0.3800 ca 1 MOL 0.385158 19 | 11 C9 4.5160 -0.6830 0.5830 c 1 MOL 0.528041 20 | 12 C10 2.1260 0.9070 0.0280 ca 1 MOL 0.585862 21 | 13 C11 4.6130 0.8160 0.2180 c 1 MOL 0.586716 22 | 14 C12 3.4030 1.4940 -0.0320 cc 1 MOL -0.868683 23 | 15 H1 -1.5920 -2.0360 0.5120 ha 1 MOL 0.142804 24 | 16 O1 5.7270 1.3460 0.1620 o 1 MOL -0.748639 25 | 17 H2 -3.4800 1.6450 -0.5100 ha 1 MOL 0.146559 26 | 18 H3 -1.2610 2.7280 -0.6410 ha 1 MOL 0.103736 27 | 19 H4 3.1450 -2.2890 0.8890 ha 1 MOL 0.162410 28 | 20 O2 5.5600 -1.3060 0.8080 o 1 MOL -0.751707 29 | 21 O3 -4.7680 -1.0880 -1.3380 o 1 MOL -0.714735 30 | 22 H5 3.4580 2.5400 -0.2870 ha 1 MOL 0.170582 31 | 23 S1 -4.3030 -1.0360 0.0470 s6 1 MOL 1.141670 32 | 24 O4 -4.1300 -2.3590 0.6370 o 1 MOL -0.714735 33 | 25 O5 -5.1270 -0.1480 0.8660 o 1 MOL -0.714735 34 | @BOND 35 | 1 1 4 ar 36 | 2 1 10 ar 37 | 3 2 7 ar 38 | 4 2 12 ar 39 | 5 3 4 ar 40 | 6 3 5 ar 41 | 7 3 15 1 42 | 8 4 7 ar 43 | 9 5 6 ar 44 | 10 5 23 1 45 | 11 6 8 ar 46 | 12 6 17 1 47 | 13 7 8 ar 48 | 14 8 18 1 49 | 15 9 10 2 50 | 16 9 11 1 51 | 17 9 19 1 52 | 18 10 12 ar 53 | 19 11 13 1 54 | 20 11 20 2 55 | 21 12 14 2 56 | 22 13 14 1 57 | 23 13 16 2 58 | 24 14 22 1 59 | 25 21 23 1 60 | 26 23 24 1 61 | 27 23 25 1 62 | @SUBSTRUCTURE 63 | 1 MOL 1 TEMP 0 **** **** 0 ROOT 64 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/H5C12SN2O5/tleap.in: -------------------------------------------------------------------------------- 1 | source leaprc.gaff 2 | MOL = loadmol2 /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H5C12SN2O5/H5C12SN2O5.mol2 3 | check MOL 4 | loadamberparams /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H5C12SN2O5/H5C12SN2O5.frcmod 5 | saveamberparm MOL /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H5C12SN2O5/H5C12SN2O5.prmtop /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/esp_to_data/H5C12SN2O5/H5C12SN2O5.inpcrd 6 | quit -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/Na.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 Na+ Na+ 1 -1.710 0.366 0.000 1.00 0.00 Na1+ 4 | MASTER 0 0 0 0 0 0 0 0 1 0 1 0 5 | END 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/esp_to_data/SPC_E.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 O HOH 1 -5.506 0.767 0.813 1.00 0.00 O 4 | HETATM 2 H HOH 0 -4.506 0.767 0.813 1.00 0.00 H 5 | HETATM 3 H HOH 0 -5.839 0.226 1.585 1.00 0.00 H 6 | CONECT 1 2 3 7 | CONECT 2 1 8 | CONECT 3 1 9 | MASTER 0 0 0 0 0 0 0 0 3 0 3 0 10 | END 11 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/leap.log: -------------------------------------------------------------------------------- 1 | log started: Fri Apr 17 12:42:35 2020 2 | 3 | Log file: ./leap.log 4 | >> # 5 | >> # ----- leaprc for loading the general Amber Force field. 6 | >> # This file is mostly for use with Antechamber 7 | >> # 8 | >> # load atom type hybridizations 9 | >> # 10 | >> addAtomTypes { 11 | >> { "h1" "H" "sp3" } 12 | >> { "h2" "H" "sp3" } 13 | >> { "h3" "H" "sp3" } 14 | >> { "h4" "H" "sp3" } 15 | >> { "h5" "H" "sp3" } 16 | >> { "ha" "H" "sp3" } 17 | >> { "hc" "H" "sp3" } 18 | >> { "hn" "H" "sp3" } 19 | >> { "ho" "H" "sp3" } 20 | >> { "hp" "H" "sp3" } 21 | >> { "hs" "H" "sp3" } 22 | >> { "hw" "H" "sp3" } 23 | >> { "hx" "H" "sp3" } 24 | >> { "o" "O" "sp2" } 25 | >> { "o2" "O" "sp2" } 26 | >> { "oh" "O" "sp3" } 27 | >> { "os" "O" "sp3" } 28 | >> { "ow" "O" "sp3" } 29 | >> { "c" "C" "sp2" } 30 | >> { "c1" "C" "sp2" } 31 | >> { "c2" "C" "sp2" } 32 | >> { "c3" "C" "sp3" } 33 | >> { "ca" "C" "sp2" } 34 | >> { "cc" "C" "sp2" } 35 | >> { "cd" "C" "sp2" } 36 | >> { "ce" "C" "sp2" } 37 | >> { "cf" "C" "sp2" } 38 | >> { "cg" "C" "sp2" } 39 | >> { "ch" "C" "sp2" } 40 | >> { "cp" "C" "sp2" } 41 | >> { "cq" "C" "sp2" } 42 | >> { "cu" "C" "sp2" } 43 | >> { "cv" "C" "sp2" } 44 | >> { "cx" "C" "sp2" } 45 | >> { "cy" "C" "sp2" } 46 | >> { "cz" "C" "sp2" } 47 | >> { "n" "N" "sp2" } 48 | >> { "n1" "N" "sp2" } 49 | >> { "n2" "N" "sp2" } 50 | >> { "n3" "N" "sp3" } 51 | >> { "n4" "N" "sp3" } 52 | >> { "na" "N" "sp2" } 53 | >> { "nb" "N" "sp2" } 54 | >> { "nc" "N" "sp2" } 55 | >> { "nd" "N" "sp2" } 56 | >> { "ne" "N" "sp2" } 57 | >> { "nf" "N" "sp2" } 58 | >> { "nh" "N" "sp2" } 59 | >> { "no" "N" "sp2" } 60 | >> { "s" "S" "sp2" } 61 | >> { "s2" "S" "sp2" } 62 | >> { "s3" "S" "sp3" } 63 | >> { "s4" "S" "sp3" } 64 | >> { "s6" "S" "sp3" } 65 | >> { "sh" "S" "sp3" } 66 | >> { "ss" "S" "sp3" } 67 | >> { "sx" "S" "sp3" } 68 | >> { "sy" "S" "sp3" } 69 | >> { "p2" "P" "sp2" } 70 | >> { "p3" "P" "sp3" } 71 | >> { "p4" "P" "sp3" } 72 | >> { "p5" "P" "sp3" } 73 | >> { "pb" "P" "sp3" } 74 | >> { "pc" "P" "sp3" } 75 | >> { "pd" "P" "sp3" } 76 | >> { "pe" "P" "sp3" } 77 | >> { "pf" "P" "sp3" } 78 | >> { "px" "P" "sp3" } 79 | >> { "py" "P" "sp3" } 80 | >> { "f" "F" "sp3" } 81 | >> { "cl" "Cl" "sp3" } 82 | >> { "br" "Br" "sp3" } 83 | >> { "i" "I" "sp3" } 84 | >> } 85 | >> # 86 | >> # Load the general force field parameter set. 87 | >> # 88 | >> gaff = loadamberparams gaff.dat 89 | Loading parameters: /Users/mbliss01/Documents/AMBERTOOLS/amber18/dat/leap/parm/gaff.dat 90 | Reading title: 91 | AMBER General Force Field for organic molecules (Version 1.81, May 2017) 92 | (UNKNOWN ATOM TYPE: op) 93 | (UNKNOWN ATOM TYPE: oq) 94 | (UNKNOWN ATOM TYPE: ni) 95 | (UNKNOWN ATOM TYPE: nj) 96 | (UNKNOWN ATOM TYPE: np) 97 | (UNKNOWN ATOM TYPE: nq) 98 | (UNKNOWN ATOM TYPE: nk) 99 | (UNKNOWN ATOM TYPE: nl) 100 | (UNKNOWN ATOM TYPE: nm) 101 | (UNKNOWN ATOM TYPE: nn) 102 | (UNKNOWN ATOM TYPE: sp) 103 | (UNKNOWN ATOM TYPE: sq) 104 | > 105 | > MOL = loadmol2 /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.mol2 106 | Loading Mol2 file: /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.mol2 107 | Reading MOLECULE named MOL 108 | > check MOL 109 | Checking 'MOL'.... 110 | 111 | /Users/mbliss01/Documents/AMBERTOOLS/amber18/bin/teLeap: Warning! 112 | The unperturbed charge of the unit (-3.000000) is not zero. 113 | Checking parameters for unit 'MOL'. 114 | Checking for bond parameters. 115 | Checking for angle parameters. 116 | check: Warnings: 1 117 | Unit is OK. 118 | > loadamberparams /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.frcmod 119 | Loading parameters: /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.frcmod 120 | Reading force field modification type file (frcmod) 121 | Reading title: 122 | Remark line goes here 123 | > saveamberparm MOL dhps.prmtop dhps.inpcrd 124 | Checking Unit. 125 | 126 | /Users/mbliss01/Documents/AMBERTOOLS/amber18/bin/teLeap: Warning! 127 | The unperturbed charge of the unit (-3.000000) is not zero. 128 | 129 | /Users/mbliss01/Documents/AMBERTOOLS/amber18/bin/teLeap: Note. 130 | Ignoring the warning from Unit Checking. 131 | 132 | Building topology. 133 | Building atom parameters. 134 | Building bond parameters. 135 | Building angle parameters. 136 | Building proper torsion parameters. 137 | Building improper torsion parameters. 138 | total 12 improper torsions applied 139 | Building H-Bond parameters. 140 | Incorporating Non-Bonded adjustments. 141 | Not Marking per-residue atom chain types. 142 | Marking per-residue atom chain types. 143 | (Residues lacking connect0/connect1 - 144 | these don't have chain types marked: 145 | 146 | res total affected 147 | 148 | MOL 1 149 | ) 150 | (no restraints) 151 | quit 152 | Quit 153 | 154 | Exiting LEaP: Errors = 0; Warnings = 2; Notes = 1. 155 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/liquid_workflow/Na.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 Na+ Na+ 1 -1.710 0.366 0.000 1.00 0.00 Na1+ 4 | MASTER 0 0 0 0 0 0 0 0 1 0 1 0 5 | END 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/liquid_workflow/SPC_E.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 O HOH 1 -5.506 0.767 0.813 1.00 0.00 O 4 | HETATM 2 H HOH 0 -4.506 0.767 0.813 1.00 0.00 H 5 | HETATM 3 H HOH 0 -5.839 0.226 1.585 1.00 0.00 H 6 | CONECT 1 2 3 7 | CONECT 2 1 8 | CONECT 3 1 9 | MASTER 0 0 0 0 0 0 0 0 3 0 3 0 10 | END 11 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/parmchk/dhps.frcmod: -------------------------------------------------------------------------------- 1 | Remark line goes here 2 | MASS 3 | 4 | BOND 5 | 6 | ANGLE 7 | 8 | DIHE 9 | nb-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 10 | nb-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 11 | ca-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 12 | ca-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 13 | 14 | IMPROPER 15 | ca-ca-ca-ha 1.1 180.0 2.0 Using general improper torsional angle X- X-ca-ha, penalty score= 6.0) 16 | ca-ca-ca-nb 1.1 180.0 2.0 Using the default value 17 | ca-ca-ca-s6 1.1 180.0 2.0 Using the default value 18 | c -ca-cc-ha 1.1 180.0 2.0 Same as X -X -ca-ha, penalty score= 38.9 (use general term)) 19 | ca-cc-ca-nb 1.1 180.0 2.0 Using the default value 20 | c -cc-c -o 10.5 180.0 2.0 Using general improper torsional angle X- X- c- o, penalty score= 6.0) 21 | 22 | NONBON 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/parmchk/dhps.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | MOL 3 | 25 27 1 0 0 4 | SMALL 5 | resp 6 | 7 | 8 | @ATOM 9 | 1 N1 0.8610 -1.1350 0.4480 nb 1 MOL -0.691321 10 | 2 N2 1.0390 1.6060 -0.2190 nb 1 MOL -0.739056 11 | 3 C1 -1.5330 -0.9960 0.2530 ca 1 MOL -0.225806 12 | 4 C2 -0.2570 -0.3950 0.1890 ca 1 MOL 0.306611 13 | 5 C3 -2.6820 -0.2820 0.0030 ca 1 MOL -0.087046 14 | 6 C4 -2.5820 1.0810 -0.3250 ca 1 MOL -0.258214 15 | 7 C5 -0.1610 0.9700 -0.1420 ca 1 MOL 0.266008 16 | 8 C6 -1.3530 1.6820 -0.3940 ca 1 MOL -0.246607 17 | 9 C7 3.2280 -1.2440 0.6350 cc 1 MOL -0.764873 18 | 10 C8 2.0290 -0.5420 0.3800 ca 1 MOL 0.385158 19 | 11 C9 4.5160 -0.6830 0.5830 c 1 MOL 0.528041 20 | 12 C10 2.1260 0.9070 0.0280 ca 1 MOL 0.585862 21 | 13 C11 4.6130 0.8160 0.2180 c 1 MOL 0.586716 22 | 14 C12 3.4030 1.4940 -0.0320 cc 1 MOL -0.868683 23 | 15 H1 -1.5920 -2.0360 0.5120 ha 1 MOL 0.142804 24 | 16 O1 5.7270 1.3460 0.1620 o 1 MOL -0.748639 25 | 17 H2 -3.4800 1.6450 -0.5100 ha 1 MOL 0.146559 26 | 18 H3 -1.2610 2.7280 -0.6410 ha 1 MOL 0.103736 27 | 19 H4 3.1450 -2.2890 0.8890 ha 1 MOL 0.162410 28 | 20 O2 5.5600 -1.3060 0.8080 o 1 MOL -0.751707 29 | 21 O3 -4.7680 -1.0880 -1.3380 o 1 MOL -0.714735 30 | 22 H5 3.4580 2.5400 -0.2870 ha 1 MOL 0.170582 31 | 23 S1 -4.3030 -1.0360 0.0470 s6 1 MOL 1.141670 32 | 24 O4 -4.1300 -2.3590 0.6370 o 1 MOL -0.714735 33 | 25 O5 -5.1270 -0.1480 0.8660 o 1 MOL -0.714735 34 | @BOND 35 | 1 1 4 ar 36 | 2 1 10 ar 37 | 3 2 7 ar 38 | 4 2 12 ar 39 | 5 3 4 ar 40 | 6 3 5 ar 41 | 7 3 15 1 42 | 8 4 7 ar 43 | 9 5 6 ar 44 | 10 5 23 1 45 | 11 6 8 ar 46 | 12 6 17 1 47 | 13 7 8 ar 48 | 14 8 18 1 49 | 15 9 10 2 50 | 16 9 11 1 51 | 17 9 19 1 52 | 18 10 12 ar 53 | 19 11 13 1 54 | 20 11 20 2 55 | 21 12 14 2 56 | 22 13 14 1 57 | 23 13 16 2 58 | 24 14 22 1 59 | 25 21 23 1 60 | 26 23 24 1 61 | 27 23 25 1 62 | @SUBSTRUCTURE 63 | 1 MOL 1 TEMP 0 **** **** 0 ROOT 64 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/prmtop/Na.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 Na+ Na+ 1 -1.710 0.366 0.000 1.00 0.00 Na1+ 4 | MASTER 0 0 0 0 0 0 0 0 1 0 1 0 5 | END 6 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/prmtop/SPC_E.pdb: -------------------------------------------------------------------------------- 1 | COMPND UNNAMED 2 | AUTHOR GENERATED BY OPEN BABEL 2.3.90 3 | HETATM 1 O HOH 1 -5.506 0.767 0.813 1.00 0.00 O 4 | HETATM 2 H HOH 0 -4.506 0.767 0.813 1.00 0.00 H 5 | HETATM 3 H HOH 0 -5.839 0.226 1.585 1.00 0.00 H 6 | CONECT 1 2 3 7 | CONECT 2 1 8 | CONECT 3 1 9 | MASTER 0 0 0 0 0 0 0 0 3 0 3 0 10 | END 11 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/run_lammps/test.lammpsin: -------------------------------------------------------------------------------- 1 | # Initialization 2 | units real 3 | boundary p p p 4 | atom_style full 5 | log log.lammps 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart $restart_file_name 19 | 20 | 21 | group li 11 22 | group tfsi 1 2 3 4 5 6 23 | group solv 7 8 9 10 24 | velocity all create 298.15 250 mom yes rot yes 25 | # fix 1 shake 0.0001 20 0 26 | fix 2 all npt temp 298.15 298.15 100.0 iso 1.0 1.0 1000.0 27 | thermo 1000 28 | thermo_style custom step temp press pe lx vol density 29 | timestep 1 30 | reset_timestep 0 31 | dump 1 all custom 50000 dump.npt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 32 | # dump_modify 1 33 | restart 1000000 restart.npt.*.restart 34 | run 2000000 35 | # unfix 1 36 | unfix 2 37 | write_restart restart.npt.restart 38 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/run_lammps/test_npt.lammpsin: -------------------------------------------------------------------------------- 1 | # Initialization 2 | units real 3 | boundary p p p 4 | atom_style full 5 | log log.lammps 6 | 7 | # Force Fields 8 | neighbor 2.0 bin 9 | neigh_modify delay 0 every 1 check yes 10 | special_bonds amber 11 | bond_style harmonic 12 | angle_style harmonic 13 | dihedral_style harmonic 14 | improper_style cvff 15 | pair_style lj/cut/coul/long 10.0 16 | kspace_style pppm 1.0e-4 17 | 18 | read_restart $restart_file_name 19 | 20 | 21 | group li 11 22 | group tfsi 1 2 3 4 5 6 23 | group solv 7 8 9 10 24 | velocity all create 298.15 250 mom yes rot yes 25 | # fix 1 shake 0.0001 20 0 26 | fix 2 all npt temp 298.15 298.15 100.0 iso 1.0 1.0 1000.0 27 | thermo 1000 28 | thermo_style custom step temp press pe lx vol density 29 | timestep 1 30 | reset_timestep 0 31 | dump 1 all custom 50000 dump.npt.*.dump id type element mol x y z ix iy iz xu yu zu vx vy vz fx fy fz mass q 32 | # dump_modify 1 33 | restart 1000000 restart.npt.*.restart 34 | run 2000000 35 | # unfix 1 36 | unfix 2 37 | write_restart restart.npt.restart 38 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/tleap.in: -------------------------------------------------------------------------------- 1 | source leaprc.gaff 2 | MOL = loadmol2 /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.mol2 3 | check MOL 4 | loadamberparams /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.frcmod 5 | saveamberparm MOL /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.prmtop /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/dhps.inpcrd 6 | quit -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/tleap/dhps.frcmod: -------------------------------------------------------------------------------- 1 | Remark line goes here 2 | MASS 3 | 4 | BOND 5 | 6 | ANGLE 7 | 8 | DIHE 9 | nb-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 10 | nb-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 11 | ca-ca-cc-c 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 12 | ca-ca-cc-ha 4 2.800 180.000 2.000 same as X -c2-ca-X , penalty score=232.0 13 | 14 | IMPROPER 15 | ca-ca-ca-ha 1.1 180.0 2.0 Using general improper torsional angle X- X-ca-ha, penalty score= 6.0) 16 | ca-ca-ca-nb 1.1 180.0 2.0 Using the default value 17 | ca-ca-ca-s6 1.1 180.0 2.0 Using the default value 18 | c -ca-cc-ha 1.1 180.0 2.0 Same as X -X -ca-ha, penalty score= 38.9 (use general term)) 19 | ca-cc-ca-nb 1.1 180.0 2.0 Using the default value 20 | c -cc-c -o 10.5 180.0 2.0 Using general improper torsional angle X- X- c- o, penalty score= 6.0) 21 | 22 | NONBON 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/tleap/dhps.inpcrd: -------------------------------------------------------------------------------- 1 | MOL 2 | 25 3 | 0.8610000 -1.1350000 0.4480000 1.0390000 1.6060000 -0.2190000 4 | -1.5330000 -0.9960000 0.2530000 -0.2570000 -0.3950000 0.1890000 5 | -2.6820000 -0.2820000 0.0030000 -2.5820000 1.0810000 -0.3250000 6 | -0.1610000 0.9700000 -0.1420000 -1.3530000 1.6820000 -0.3940000 7 | 3.2280000 -1.2440000 0.6350000 2.0290000 -0.5420000 0.3800000 8 | 4.5160000 -0.6830000 0.5830000 2.1260000 0.9070000 0.0280000 9 | 4.6130000 0.8160000 0.2180000 3.4030000 1.4940000 -0.0320000 10 | -1.5920000 -2.0360000 0.5120000 5.7270000 1.3460000 0.1620000 11 | -3.4800000 1.6450000 -0.5100000 -1.2610000 2.7280000 -0.6410000 12 | 3.1450000 -2.2890000 0.8890000 5.5600000 -1.3060000 0.8080000 13 | -4.7680000 -1.0880000 -1.3380000 3.4580000 2.5400000 -0.2870000 14 | -4.3030000 -1.0360000 0.0470000 -4.1300000 -2.3590000 0.6370000 15 | -5.1270000 -0.1480000 0.8660000 16 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/tleap/dhps.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | MOL 3 | 25 27 1 0 0 4 | SMALL 5 | resp 6 | 7 | 8 | @ATOM 9 | 1 N1 0.8610 -1.1350 0.4480 nb 1 MOL -0.691321 10 | 2 N2 1.0390 1.6060 -0.2190 nb 1 MOL -0.739056 11 | 3 C1 -1.5330 -0.9960 0.2530 ca 1 MOL -0.225806 12 | 4 C2 -0.2570 -0.3950 0.1890 ca 1 MOL 0.306611 13 | 5 C3 -2.6820 -0.2820 0.0030 ca 1 MOL -0.087046 14 | 6 C4 -2.5820 1.0810 -0.3250 ca 1 MOL -0.258214 15 | 7 C5 -0.1610 0.9700 -0.1420 ca 1 MOL 0.266008 16 | 8 C6 -1.3530 1.6820 -0.3940 ca 1 MOL -0.246607 17 | 9 C7 3.2280 -1.2440 0.6350 cc 1 MOL -0.764873 18 | 10 C8 2.0290 -0.5420 0.3800 ca 1 MOL 0.385158 19 | 11 C9 4.5160 -0.6830 0.5830 c 1 MOL 0.528041 20 | 12 C10 2.1260 0.9070 0.0280 ca 1 MOL 0.585862 21 | 13 C11 4.6130 0.8160 0.2180 c 1 MOL 0.586716 22 | 14 C12 3.4030 1.4940 -0.0320 cc 1 MOL -0.868683 23 | 15 H1 -1.5920 -2.0360 0.5120 ha 1 MOL 0.142804 24 | 16 O1 5.7270 1.3460 0.1620 o 1 MOL -0.748639 25 | 17 H2 -3.4800 1.6450 -0.5100 ha 1 MOL 0.146559 26 | 18 H3 -1.2610 2.7280 -0.6410 ha 1 MOL 0.103736 27 | 19 H4 3.1450 -2.2890 0.8890 ha 1 MOL 0.162410 28 | 20 O2 5.5600 -1.3060 0.8080 o 1 MOL -0.751707 29 | 21 O3 -4.7680 -1.0880 -1.3380 o 1 MOL -0.714735 30 | 22 H5 3.4580 2.5400 -0.2870 ha 1 MOL 0.170582 31 | 23 S1 -4.3030 -1.0360 0.0470 s6 1 MOL 1.141670 32 | 24 O4 -4.1300 -2.3590 0.6370 o 1 MOL -0.714735 33 | 25 O5 -5.1270 -0.1480 0.8660 o 1 MOL -0.714735 34 | @BOND 35 | 1 1 4 ar 36 | 2 1 10 ar 37 | 3 2 7 ar 38 | 4 2 12 ar 39 | 5 3 4 ar 40 | 6 3 5 ar 41 | 7 3 15 1 42 | 8 4 7 ar 43 | 9 5 6 ar 44 | 10 5 23 1 45 | 11 6 8 ar 46 | 12 6 17 1 47 | 13 7 8 ar 48 | 14 8 18 1 49 | 15 9 10 2 50 | 16 9 11 1 51 | 17 9 19 1 52 | 18 10 12 ar 53 | 19 11 13 1 54 | 20 11 20 2 55 | 21 12 14 2 56 | 22 13 14 1 57 | 23 13 16 2 58 | 24 14 22 1 59 | 25 21 23 1 60 | 26 23 24 1 61 | 27 23 25 1 62 | @SUBSTRUCTURE 63 | 1 MOL 1 TEMP 0 **** **** 0 ROOT 64 | -------------------------------------------------------------------------------- /mispr/lammps/tests/test_files/tleap/tleap.in: -------------------------------------------------------------------------------- 1 | source leaprc.gaff 2 | MOL = loadmol2 /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/tleap/dhps.mol2 3 | check MOL 4 | loadamberparams /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/tleap/dhps.frcmod 5 | saveamberparm MOL /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/tleap/dhps.prmtop /Users/mbliss01/Documents/GitHub/infrastructure/infrastructure/lammps/tests/test_files/tleap/dhps.inpcrd 6 | quit -------------------------------------------------------------------------------- /mispr/lammps/tests/tleap.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from fireworks import Firework, Workflow, LaunchPad 4 | from fireworks.core.rocket_launcher import rapidfire 5 | 6 | from mispr.lammps.firetasks.run import RunTleap 7 | from mispr.lammps.firetasks.write_inputs import WriteTleapScript 8 | 9 | if __name__ == "__main__": 10 | 11 | # set up the LaunchPad and reset it 12 | launchpad = LaunchPad() 13 | launchpad.reset("", require_password=False) 14 | 15 | working_dir = os.path.join( 16 | os.path.dirname(os.path.abspath(__file__)), "test_files", "tleap" 17 | ) 18 | file_label = "dhps" 19 | 20 | tleap_settings = { 21 | "mol2_file_path": os.path.join(working_dir, f"{file_label}.mol2"), 22 | "frcmod_file_path": os.path.join(working_dir, f"{file_label}.frcmod"), 23 | "prmtop_file_path": os.path.join(working_dir, f"{file_label}.prmtop"), 24 | "inpcrd_file_path": os.path.join(working_dir, f"{file_label}.inpcrd"), 25 | } 26 | 27 | task1 = WriteTleapScript(working_dir=working_dir, tleap_settings=tleap_settings) 28 | 29 | task2 = RunTleap(working_dir=working_dir) 30 | 31 | # assemble FireWork from tasks and give the FireWork a unique id 32 | fire_work1 = Firework([task1, task2], name="RunTleap", fw_id=1) 33 | 34 | # assemble Workflow from FireWorks and their connections by id 35 | wf = Workflow([fire_work1]) 36 | 37 | # store workflow and launch it 38 | launchpad.add_wf(wf) 39 | rapidfire(launchpad) 40 | -------------------------------------------------------------------------------- /mispr/lammps/utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/lammps/utilities/__init__.py -------------------------------------------------------------------------------- /mispr/lammps/workflows/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/molmd/mispr/7194c76a09e0669dc228d2a442de19c16a259130/mispr/lammps/workflows/__init__.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools", "wheel"] 3 | build-backend = "setuptools.build_meta" 4 | 5 | [project] 6 | name = "mispr" 7 | authors = [ 8 | {name = "Rasha Atwi", email = "rasha.atwi@stonybrook.edu"}, 9 | {name = "Matthew Bliss", email = "matthew.bliss@stonybrook.edu"} 10 | ] 11 | maintainers = [ 12 | {name = "Rasha Atwi", email = "rasha.atwi@stonybrook.edu"}, 13 | {name = "Matthew Bliss", email = "matthew.bliss@stonybrook.edu"} 14 | ] 15 | dynamic = ["version"] 16 | description = "mispr contains FireWorks workflows for Materials Science" 17 | readme = "README.md" 18 | license = { text = "MIT" } 19 | keywords = ["dft", "md", "lammps", "gaussian", "high-throughput", "workflow", "materials science"] 20 | classifiers = [ 21 | "Programming Language :: Python :: 3", 22 | "Programming Language :: Python :: 3.10", 23 | "Programming Language :: Python :: 3.11", 24 | "Programming Language :: Python :: 3.12", 25 | "Development Status :: 3 - Alpha", 26 | "Intended Audience :: Science/Research", 27 | "Intended Audience :: Information Technology", 28 | "Operating System :: OS Independent", 29 | "Topic :: Scientific/Engineering", 30 | ] 31 | requires-python = ">=3.10, <3.13" 32 | dependencies = [ 33 | "numpy >= 1.21.1", 34 | "pymongo>=3.3.0,<=3.12.0", 35 | "matplotlib >= 3.3.1", 36 | "networkx >= 2.5", 37 | "FireWorks >= 2.0.3", 38 | "scipy >= 1.6.0", 39 | "pandas >= 1.1.2", 40 | "pubchempy", 41 | "parmed", 42 | "mdproptools>=0.0.6", 43 | "dnspython", 44 | "custodian==2024.10.16", 45 | "ruamel.yaml>=0.15.35,<=0.17.40", # should be removed in the future, but is needed since FireWorks has not updated their function calls to match newer versions of ruamel.yaml 46 | ] 47 | 48 | [project.optional-dependencies] 49 | dev = ["black>=23.3.0", "isort>=5.10.0"] 50 | chem = ["rdkit>=2023.9.1"] 51 | utils = ["bibtexparser>=1.4.0"] 52 | 53 | [tool.setuptools.package-data] 54 | "mispr.gaussian.data" = ["*.bib"] 55 | "mispr.lammps.data" = ["*.json"] 56 | 57 | [project.urls] 58 | repository = "https://github.com/molmd/mispr" 59 | documentation = "https://molmd.github.io/mispr/" 60 | changelog = "https://github.com/molmd/mispr/blob/master/CHANGELOG.md" 61 | 62 | [tool.setuptools] 63 | license-files = ["LICENSE"] 64 | include-package-data = true 65 | 66 | [tool.setuptools.dynamic] 67 | version = {attr = "mispr.__version__"} 68 | 69 | [tool.setuptools.packages.find] 70 | namespaces = false 71 | 72 | [tool.isort] 73 | profile = "black" 74 | multi_line_output = 3 75 | include_trailing_comma = true 76 | line_length = 88 77 | order_by_type = true 78 | length_sort = true 79 | lines_between_types = 1 80 | group_by_package = true 81 | force_alphabetical_sort_within_sections = true 82 | combine_straight_imports = false 83 | balanced_wrapping = true 84 | sections = ["FUTURE", "STDLIB", "THIRDPARTY", "OPENBABEL", "PYMATGEN", "FIREWORKS", "CUSTODIAN", "MDPROPTOOLS", "MISPR", "FIRSTPARTY", "LOCALFOLDER"] 85 | forced_separate = ["openbabel", "pymatgen", "fireworks", "custodian", "mdproptools", "mispr"] 86 | known_openbabel = ["openbabel"] 87 | known_pymatgen = ["pymatgen"] 88 | known_fireworks = ["fireworks"] 89 | known_custodian = ["custodian"] 90 | known_mdproptools = ["mdproptools"] 91 | known_mispr = ["mispr"] 92 | 93 | [tool.black] 94 | line-length = 88 95 | --------------------------------------------------------------------------------