htpolynet 2.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- htpolynet-2.0.0/.claude/settings.json +23 -0
- htpolynet-2.0.0/.github/workflows/docker.yml +35 -0
- htpolynet-2.0.0/.github/workflows/release.yaml +102 -0
- htpolynet-2.0.0/.gitignore +145 -0
- htpolynet-2.0.0/.readthedocs.yaml +15 -0
- htpolynet-2.0.0/CHANGELOG.md +41 -0
- htpolynet-2.0.0/Dockerfile +35 -0
- htpolynet-2.0.0/LICENSE +21 -0
- htpolynet-2.0.0/MANIFEST.in +1 -0
- htpolynet-2.0.0/PKG-INFO +78 -0
- htpolynet-2.0.0/README.md +50 -0
- htpolynet-2.0.0/compose.yml +7 -0
- htpolynet-2.0.0/docs/Makefile +20 -0
- htpolynet-2.0.0/docs/README.rst +6 -0
- htpolynet-2.0.0/docs/make.bat +35 -0
- htpolynet-2.0.0/docs/requirements.txt +7 -0
- htpolynet-2.0.0/docs/source/changelog.rst +7 -0
- htpolynet-2.0.0/docs/source/conf.py +68 -0
- htpolynet-2.0.0/docs/source/example-tutorials/index.rst +13 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/index.rst +309 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/equil-rho_v_ns.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/postsim-typical.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-e.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-equil-rho_v_ns.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-rho_v_ns.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/prod-tg.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/rho_v_ns.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/short-e.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/postsim_analyses/pics/short-tg.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/configuration.rst +164 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/files/STY.mol2 +44 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/index.rst +18 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/introduction.rst +38 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/monomer.rst +90 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/pics/STY.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/pics/STYCC.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/pics/styrene-polymerization.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/reactions.rst +70 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/results.rst +32 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/1-polystyrene/run.rst +48 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/configuration.rst +51 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/files/DGE.mol2 +115 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/files/PAC.mol2 +91 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/index.rst +16 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/introduction.rst +69 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/monomers.rst +295 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/DGE-epoxy.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/DGE-labelled.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/PAC-2d.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/PAC-labelled.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/buildtraces.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/cure_info.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/densification-density.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dge-pac-cured.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dge-pac-liq.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dgesys.eps +748 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dgesys.fig +396 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/dgesys.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/r1.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/r2.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/pics/r3.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/reactions.rst +104 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/results.rst +46 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/2-DGEBA-PACM/run.rst +267 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/configuration.rst +39 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/index.rst +15 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/introduction.rst +68 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/BPA.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/GMA.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/HIE.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/buildtraces.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/cure_info.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/densification-density.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/four_dimers.eps +417 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/four_dimers.fig +221 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/four_dimers.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/gma-sty-cured.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/gma-sty-liq.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/p1-traces.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/vesys.eps +972 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/vesys.fig +582 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/pics/vesys.png +0 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/reactions.rst +275 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/results.rst +46 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/3-VE-STY/run.rst +374 -0
- htpolynet-2.0.0/docs/source/example-tutorials/shortbuilds/index.rst +18 -0
- htpolynet-2.0.0/docs/source/htpolynetpackage.rst +199 -0
- htpolynet-2.0.0/docs/source/index.rst +37 -0
- htpolynet-2.0.0/docs/source/install.rst +131 -0
- htpolynet-2.0.0/docs/source/references/index.rst +16 -0
- htpolynet-2.0.0/docs/source/references/mol2-reference.pdf +0 -0
- htpolynet-2.0.0/docs/source/references.bib +68 -0
- htpolynet-2.0.0/docs/source/release-history.rst +69 -0
- htpolynet-2.0.0/docs/source/user-guide/CURE.odg +0 -0
- htpolynet-2.0.0/docs/source/user-guide/bond_filter.odg +0 -0
- htpolynet-2.0.0/docs/source/user-guide/configs/configs-for-analyze.rst +147 -0
- htpolynet-2.0.0/docs/source/user-guide/configs/configs-for-postsim.rst +298 -0
- htpolynet-2.0.0/docs/source/user-guide/configs/configs-for-run.rst +462 -0
- htpolynet-2.0.0/docs/source/user-guide/configuration-files.rst +14 -0
- htpolynet-2.0.0/docs/source/user-guide/container-usage.rst +122 -0
- htpolynet-2.0.0/docs/source/user-guide/flow1.odg +0 -0
- htpolynet-2.0.0/docs/source/user-guide/flow1yaml.odg +0 -0
- htpolynet-2.0.0/docs/source/user-guide/hydrogenated.eps +280 -0
- htpolynet-2.0.0/docs/source/user-guide/hydrogenated.fig +135 -0
- htpolynet-2.0.0/docs/source/user-guide/index.rst +22 -0
- htpolynet-2.0.0/docs/source/user-guide/molecular-structure-inputs.rst +35 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/CURE.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/STY.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/STYCC.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/TypicalUsageFlow.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/bond_filter.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/chemdoodle-2dsketcher-emb.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/chemdoodle-2dsketcher-styrene.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/flow1.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/hydrogenated.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/ring_pierce/ring_pierce_cases.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/pics/ring_pierce/ring_pierce_linkcell.png +0 -0
- htpolynet-2.0.0/docs/source/user-guide/program-flow.rst +42 -0
- htpolynet-2.0.0/docs/source/user-guide/usage.rst +271 -0
- htpolynet-2.0.0/pyproject.toml +49 -0
- htpolynet-2.0.0/scripts/release.sh +88 -0
- htpolynet-2.0.0/src/htpolynet/__init__.py +2 -0
- htpolynet-2.0.0/src/htpolynet/analysis/__init__.py +0 -0
- htpolynet-2.0.0/src/htpolynet/analysis/analyze.py +256 -0
- htpolynet-2.0.0/src/htpolynet/analysis/plot.py +588 -0
- htpolynet-2.0.0/src/htpolynet/analysis/postsim.py +444 -0
- htpolynet-2.0.0/src/htpolynet/analysis/utils.py +399 -0
- htpolynet-2.0.0/src/htpolynet/cli.py +488 -0
- htpolynet-2.0.0/src/htpolynet/core/__init__.py +0 -0
- htpolynet-2.0.0/src/htpolynet/core/bondtemplate.py +112 -0
- htpolynet-2.0.0/src/htpolynet/core/configuration.py +83 -0
- htpolynet-2.0.0/src/htpolynet/core/coordinates.py +644 -0
- htpolynet-2.0.0/src/htpolynet/core/molecule.py +998 -0
- htpolynet-2.0.0/src/htpolynet/core/projectfilesystem.py +616 -0
- htpolynet-2.0.0/src/htpolynet/core/runtime.py +774 -0
- htpolynet-2.0.0/src/htpolynet/core/topocoord.py +2044 -0
- htpolynet-2.0.0/src/htpolynet/core/topology.py +1138 -0
- htpolynet-2.0.0/src/htpolynet/cure/__init__.py +0 -0
- htpolynet-2.0.0/src/htpolynet/cure/chain.py +135 -0
- htpolynet-2.0.0/src/htpolynet/cure/curecontroller.py +746 -0
- htpolynet-2.0.0/src/htpolynet/cure/expandreactions.py +294 -0
- htpolynet-2.0.0/src/htpolynet/cure/reaction.py +280 -0
- htpolynet-2.0.0/src/htpolynet/external/__init__.py +0 -0
- htpolynet-2.0.0/src/htpolynet/external/ambertools.py +97 -0
- htpolynet-2.0.0/src/htpolynet/external/command.py +73 -0
- htpolynet-2.0.0/src/htpolynet/external/gromacs.py +308 -0
- htpolynet-2.0.0/src/htpolynet/external/slurm.py +111 -0
- htpolynet-2.0.0/src/htpolynet/external/software.py +183 -0
- htpolynet-2.0.0/src/htpolynet/geometry/__init__.py +0 -0
- htpolynet-2.0.0/src/htpolynet/geometry/bondlist.py +205 -0
- htpolynet-2.0.0/src/htpolynet/geometry/lattice.py +32 -0
- htpolynet-2.0.0/src/htpolynet/geometry/linkcell.py +210 -0
- htpolynet-2.0.0/src/htpolynet/geometry/matrix4.py +110 -0
- htpolynet-2.0.0/src/htpolynet/geometry/ring.py +274 -0
- htpolynet-2.0.0/src/htpolynet/io/__init__.py +6 -0
- htpolynet-2.0.0/src/htpolynet/io/gro.py +195 -0
- htpolynet-2.0.0/src/htpolynet/io/mol2.py +210 -0
- htpolynet-2.0.0/src/htpolynet/io/pdb.py +157 -0
- htpolynet-2.0.0/src/htpolynet/resources/README.md +20 -0
- htpolynet-2.0.0/src/htpolynet/resources/__init__.py +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/DGE-PAC-hi.yaml +115 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/DGE-PAC-lo.yaml +115 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/FDE-DFDA-hi.yaml +116 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/FDE-DFDA-lo.yaml +116 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/GMASTY-hi.yaml +158 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/GMASTY-lo.yaml +158 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/README.md +1 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/STY.yaml +23 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/pMSTY-hi.yaml +101 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/pMSTY-lo.yaml +101 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/pSTY-hi.yaml +101 -0
- htpolynet-2.0.0/src/htpolynet/resources/cfg/pSTY-lo.yaml +101 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/0-liquid-styrene.sh +134 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/0-liquid-styrene.tgz +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/1-polystyrene.sh +202 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/1-polystyrene.tgz +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/2-bisgma-styrene-thermoset.sh +353 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/2-bisgma-styrene-thermoset.tgz +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/3-pacm-dgeba-epoxy-thermoset.sh +242 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/3-pacm-dgeba-epoxy-thermoset.tgz +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/4-dfda-fde-epoxy-thermoset.sh +216 -0
- htpolynet-2.0.0/src/htpolynet/resources/example_depot/4-dfda-fde-epoxy-thermoset.tgz +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/README.md +1 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/drag-min.mdp +13 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/drag-npt.mdp +36 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/drag-nvt.mdp +31 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/min.mdp +14 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/npt.mdp +37 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/nvt.mdp +29 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/relax-min.mdp +13 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/relax-npt.mdp +37 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/relax-nvt.mdp +31 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/single-molecule-min.mdp +12 -0
- htpolynet-2.0.0/src/htpolynet/resources/mdp/single-molecule-nvt.mdp +25 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/DFA.pdb +62 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/DGE.mol2 +115 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/EMB.mol2 +50 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/FDE.pdb +72 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/GMA.mol2 +163 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/PAC.mol2 +91 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/inputs/STY.mol2 +44 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/make-monomers.sh +64 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/DFA.png +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/DGE.png +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/EMB.png +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/FDE.png +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/GMA.png +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/PAC.png +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/pics/STY.png +0 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/DFA.pdb +62 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/DGE.mol2 +115 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/EMB.mol2 +50 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/FDE.pdb +72 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/GMA.mol2 +163 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/PAC.mol2 +91 -0
- htpolynet-2.0.0/src/htpolynet/resources/molecules/sample-inputs/STY.mol2 +44 -0
- htpolynet-2.0.0/src/htpolynet/resources/tcl/readbonds.tcl +32 -0
- htpolynet-2.0.0/src/htpolynet/resources/tcl/readgrx.tcl +46 -0
- htpolynet-2.0.0/src/htpolynet/resources/tcl/render.tcl +74 -0
- htpolynet-2.0.0/src/htpolynet/utils/__init__.py +0 -0
- htpolynet-2.0.0/src/htpolynet/utils/banner.py +34 -0
- htpolynet-2.0.0/src/htpolynet/utils/checkpoint.py +85 -0
- htpolynet-2.0.0/src/htpolynet/utils/dataframetools.py +92 -0
- htpolynet-2.0.0/src/htpolynet/utils/inputcheck.py +49 -0
- htpolynet-2.0.0/src/htpolynet/utils/logsetup.py +44 -0
- htpolynet-2.0.0/src/htpolynet/utils/stringthings.py +39 -0
- htpolynet-2.0.0/tests/__init__.py +0 -0
- htpolynet-2.0.0/tests/conftest.py +72 -0
- htpolynet-2.0.0/tests/unit/__init__.py +0 -0
- htpolynet-2.0.0/tests/unit/fixtures/config1.gro +3603 -0
- htpolynet-2.0.0/tests/unit/fixtures/config1.top +29474 -0
- htpolynet-2.0.0/tests/unit/fixtures/config2.gro +39160 -0
- htpolynet-2.0.0/tests/unit/fixtures/config2.top +401126 -0
- htpolynet-2.0.0/tests/unit/fixtures/items31.edr +0 -0
- htpolynet-2.0.0/tests/unit/fixtures/items43.edr +0 -0
- htpolynet-2.0.0/tests/unit/fixtures/items45.edr +0 -0
- htpolynet-2.0.0/tests/unit/fixtures/short.mdp +28 -0
- htpolynet-2.0.0/tests/unit/test_bondtemplate.py +408 -0
- htpolynet-2.0.0/tests/unit/test_chain.py +170 -0
- htpolynet-2.0.0/tests/unit/test_configuration.py +456 -0
- htpolynet-2.0.0/tests/unit/test_dataframetools.py +24 -0
- htpolynet-2.0.0/tests/unit/test_gromacs_get_energy_menu.py +34 -0
- htpolynet-2.0.0/tests/unit/test_gromacs_gmx_energy_trace.py +70 -0
- htpolynet-2.0.0/tests/unit/test_linkcell_pierce.py +333 -0
- htpolynet-2.0.0/tests/unit/test_parameterize_react.py +345 -0
- htpolynet-2.0.0/tests/unit/test_projectfilesystem.py +478 -0
- htpolynet-2.0.0/tests/unit/test_resources.py +24 -0
- htpolynet-2.0.0/tests/unit/test_ring.py +175 -0
- htpolynet-2.0.0/tests/unit/test_ring_pierce_figs.py +450 -0
- htpolynet-2.0.0/tests/unit/test_topology/test.top +29474 -0
- htpolynet-2.0.0/tests/unit/test_topology.py +45 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(wc -l /home/cfa/Git/HTPolyNet/src/htpolynet/*.py)",
|
|
5
|
+
"Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/core/*.py)",
|
|
6
|
+
"Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/cure/*.py)",
|
|
7
|
+
"Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/geometry/*.py)",
|
|
8
|
+
"Bash(sort grep:*)",
|
|
9
|
+
"Bash(grep -rn \"^\\\\s*\\\\\\(from\\\\|import\\\\\\)\" /home/cfa/Git/HTPolyNet/src/htpolynet/analysis/*.py)",
|
|
10
|
+
"Bash(BASE=/home/cfa/Git/HTPolyNet __NEW_LINE_9d067e0cee514a78__ SED_CMD=':*)",
|
|
11
|
+
"Bash(xargs sed:*)",
|
|
12
|
+
"Bash(wc -l /home/cfa/Git/htpolynet/src/htpolynet/cure/*.py /home/cfa/Git/htpolynet/src/htpolynet/external/*.py /home/cfa/Git/htpolynet/src/htpolynet/geometry/*.py /home/cfa/Git/htpolynet/src/htpolynet/utils/*.py /home/cfa/Git/htpolynet/src/htpolynet/driver.py /home/cfa/Git/htpolynet/src/htpolynet/resources/__init__.py)",
|
|
13
|
+
"Bash(grep -rل \"Args:\" /home/cfa/Git/htpolynet/src/htpolynet --include=\"*.py\" -l)",
|
|
14
|
+
"Bash(/home/cfa/anaconda3/envs/panacea/bin/pip index:*)",
|
|
15
|
+
"Read(//home/cfa/Git/**)",
|
|
16
|
+
"Bash(gh run:*)",
|
|
17
|
+
"Bash(git ls-tree:*)"
|
|
18
|
+
],
|
|
19
|
+
"additionalDirectories": [
|
|
20
|
+
"/home/cfa/Git/HTPolyNet/.github/workflows"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: Build and push Docker image
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
- "d*"
|
|
8
|
+
schedule:
|
|
9
|
+
# Rebuild weekly (Monday 03:00 UTC) to pick up latest Gromacs/AmberTools
|
|
10
|
+
- cron: '0 3 * * 1'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
docker:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
packages: write
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- name: Log in to GitHub Container Registry
|
|
22
|
+
uses: docker/login-action@v3
|
|
23
|
+
with:
|
|
24
|
+
registry: ghcr.io
|
|
25
|
+
username: ${{ github.actor }}
|
|
26
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
27
|
+
|
|
28
|
+
- name: Build and push
|
|
29
|
+
uses: docker/build-push-action@v6
|
|
30
|
+
with:
|
|
31
|
+
context: .
|
|
32
|
+
push: true
|
|
33
|
+
tags: |
|
|
34
|
+
ghcr.io/abramsgroup/htpolynet:latest
|
|
35
|
+
ghcr.io/abramsgroup/htpolynet:${{ github.sha }}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: Release & Upload to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
release:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
contents: write
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- name: Checkout code
|
|
17
|
+
uses: actions/checkout@v4
|
|
18
|
+
with:
|
|
19
|
+
fetch-depth: 0
|
|
20
|
+
|
|
21
|
+
- name: Set up Python
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: "3.12"
|
|
25
|
+
|
|
26
|
+
- name: Install package
|
|
27
|
+
run: pip install -e .
|
|
28
|
+
|
|
29
|
+
- name: Install Hatch
|
|
30
|
+
run: python -m pip install --upgrade hatch
|
|
31
|
+
|
|
32
|
+
- name: Verify tag matches pyproject version and CHANGELOG
|
|
33
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
34
|
+
run: |
|
|
35
|
+
TAG="${GITHUB_REF_NAME#v}"
|
|
36
|
+
VER="$(grep '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/')"
|
|
37
|
+
echo "Tag version: $TAG"
|
|
38
|
+
echo "Project version: $VER"
|
|
39
|
+
test "$TAG" = "$VER" || { echo "ERROR: tag $TAG != pyproject version $VER"; exit 1; }
|
|
40
|
+
grep -q "^## \[$VER\]" CHANGELOG.md || { echo "ERROR: no CHANGELOG entry for $VER"; exit 1; }
|
|
41
|
+
|
|
42
|
+
- name: Clean previous builds
|
|
43
|
+
run: rm -rf dist/
|
|
44
|
+
|
|
45
|
+
- name: Build the package with Hatch
|
|
46
|
+
run: hatch build
|
|
47
|
+
|
|
48
|
+
- name: Extract release notes from CHANGELOG.md
|
|
49
|
+
run: |
|
|
50
|
+
echo 'RELEASE_BODY<<EOF' >> $GITHUB_ENV
|
|
51
|
+
awk '
|
|
52
|
+
BEGIN {found=0; capture=0}
|
|
53
|
+
/^## \[Unreleased\]/ {next}
|
|
54
|
+
/^## \[/ {
|
|
55
|
+
if (found) exit;
|
|
56
|
+
found = 1;
|
|
57
|
+
capture = 1;
|
|
58
|
+
next
|
|
59
|
+
}
|
|
60
|
+
/^## / {capture=0}
|
|
61
|
+
capture {print}
|
|
62
|
+
' CHANGELOG.md >> $GITHUB_ENV
|
|
63
|
+
echo 'EOF' >> $GITHUB_ENV
|
|
64
|
+
|
|
65
|
+
- name: Create GitHub Release
|
|
66
|
+
uses: softprops/action-gh-release@v2
|
|
67
|
+
with:
|
|
68
|
+
tag_name: ${{ github.ref_name }}
|
|
69
|
+
name: Release ${{ github.ref_name }}
|
|
70
|
+
body: ${{ env.RELEASE_BODY }}
|
|
71
|
+
files: |
|
|
72
|
+
dist/*.tar.gz
|
|
73
|
+
dist/*.whl
|
|
74
|
+
|
|
75
|
+
- name: Upload dist artifacts
|
|
76
|
+
uses: actions/upload-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: dist
|
|
79
|
+
path: dist/
|
|
80
|
+
|
|
81
|
+
- name: Trigger ReadTheDocs build
|
|
82
|
+
run: |
|
|
83
|
+
curl -X POST \
|
|
84
|
+
-H "Authorization: Token ${{ secrets.RTD_SECRET }}" \
|
|
85
|
+
https://readthedocs.org/api/v3/projects/htpolynet/versions/latest/builds/
|
|
86
|
+
curl -X POST \
|
|
87
|
+
-H "Authorization: Token ${{ secrets.RTD_SECRET }}" \
|
|
88
|
+
https://readthedocs.org/api/v3/projects/htpolynet/versions/${{ github.ref_name }}/builds/
|
|
89
|
+
|
|
90
|
+
publish:
|
|
91
|
+
needs: release
|
|
92
|
+
runs-on: ubuntu-latest
|
|
93
|
+
permissions:
|
|
94
|
+
id-token: write
|
|
95
|
+
steps:
|
|
96
|
+
- name: Download dist artifacts
|
|
97
|
+
uses: actions/download-artifact@v4
|
|
98
|
+
with:
|
|
99
|
+
name: dist
|
|
100
|
+
path: dist/
|
|
101
|
+
- name: Publish to PyPI
|
|
102
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Singularity/Apptainer images and Docker artifacts
|
|
2
|
+
*.sif
|
|
3
|
+
*.simg
|
|
4
|
+
*.img
|
|
5
|
+
docker-*.tar
|
|
6
|
+
|
|
7
|
+
*.bak
|
|
8
|
+
__defunct__/
|
|
9
|
+
# Byte-compiled / optimized / DLL files
|
|
10
|
+
__pycache__/
|
|
11
|
+
*.py[cod]
|
|
12
|
+
*$py.class
|
|
13
|
+
.idea/
|
|
14
|
+
*tmp*
|
|
15
|
+
*/results
|
|
16
|
+
.vscode/
|
|
17
|
+
# C extensions
|
|
18
|
+
*.so
|
|
19
|
+
|
|
20
|
+
CLAUDE.md
|
|
21
|
+
|
|
22
|
+
# Distribution / packaging
|
|
23
|
+
.Python
|
|
24
|
+
build/
|
|
25
|
+
develop-eggs/
|
|
26
|
+
dist/
|
|
27
|
+
downloads/
|
|
28
|
+
eggs/
|
|
29
|
+
.eggs/
|
|
30
|
+
lib/
|
|
31
|
+
lib64/
|
|
32
|
+
parts/
|
|
33
|
+
sdist/
|
|
34
|
+
var/
|
|
35
|
+
wheels/
|
|
36
|
+
pip-wheel-metadata/
|
|
37
|
+
share/python-wheels/
|
|
38
|
+
*.egg-info/
|
|
39
|
+
.installed.cfg
|
|
40
|
+
*.egg
|
|
41
|
+
MANIFEST
|
|
42
|
+
|
|
43
|
+
# PyInstaller
|
|
44
|
+
# Usually these files are written by a python script from a template
|
|
45
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
46
|
+
*.manifest
|
|
47
|
+
*.spec
|
|
48
|
+
|
|
49
|
+
# Installer logs
|
|
50
|
+
pip-log.txt
|
|
51
|
+
pip-delete-this-directory.txt
|
|
52
|
+
|
|
53
|
+
# Unit test / coverage reports
|
|
54
|
+
htmlcov/
|
|
55
|
+
.tox/
|
|
56
|
+
.nox/
|
|
57
|
+
.coverage
|
|
58
|
+
.coverage.*
|
|
59
|
+
.cache
|
|
60
|
+
nosetests.xml
|
|
61
|
+
coverage.xml
|
|
62
|
+
*.cover
|
|
63
|
+
*.py,cover
|
|
64
|
+
.hypothesis/
|
|
65
|
+
.pytest_cache/
|
|
66
|
+
|
|
67
|
+
# Translations
|
|
68
|
+
*.mo
|
|
69
|
+
*.pot
|
|
70
|
+
|
|
71
|
+
# Django stuff:
|
|
72
|
+
*.log
|
|
73
|
+
local_settings.py
|
|
74
|
+
db.sqlite3
|
|
75
|
+
db.sqlite3-journal
|
|
76
|
+
|
|
77
|
+
# Flask stuff:
|
|
78
|
+
instance/
|
|
79
|
+
.webassets-cache
|
|
80
|
+
|
|
81
|
+
# Scrapy stuff:
|
|
82
|
+
.scrapy
|
|
83
|
+
|
|
84
|
+
# Sphinx documentation
|
|
85
|
+
docs/_build/
|
|
86
|
+
docs/source/_build/
|
|
87
|
+
|
|
88
|
+
# PyBuilder
|
|
89
|
+
target/
|
|
90
|
+
|
|
91
|
+
# Jupyter Notebook
|
|
92
|
+
.ipynb_checkpoints
|
|
93
|
+
|
|
94
|
+
# IPython
|
|
95
|
+
profile_default/
|
|
96
|
+
ipython_config.py
|
|
97
|
+
|
|
98
|
+
# pyenv
|
|
99
|
+
.python-version
|
|
100
|
+
|
|
101
|
+
# pipenv
|
|
102
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
103
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
104
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
105
|
+
# install all needed dependencies.
|
|
106
|
+
#Pipfile.lock
|
|
107
|
+
|
|
108
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
109
|
+
__pypackages__/
|
|
110
|
+
|
|
111
|
+
# Celery stuff
|
|
112
|
+
celerybeat-schedule
|
|
113
|
+
celerybeat.pid
|
|
114
|
+
|
|
115
|
+
# SageMath parsed files
|
|
116
|
+
*.sage.py
|
|
117
|
+
|
|
118
|
+
# Environments
|
|
119
|
+
.env
|
|
120
|
+
.venv
|
|
121
|
+
env/
|
|
122
|
+
venv/
|
|
123
|
+
ENV/
|
|
124
|
+
env.bak/
|
|
125
|
+
venv.bak/
|
|
126
|
+
|
|
127
|
+
# Spyder project settings
|
|
128
|
+
.spyderproject
|
|
129
|
+
.spyproject
|
|
130
|
+
|
|
131
|
+
# Rope project settings
|
|
132
|
+
.ropeproject
|
|
133
|
+
|
|
134
|
+
# mkdocs documentation
|
|
135
|
+
/site
|
|
136
|
+
|
|
137
|
+
# mypy
|
|
138
|
+
.mypy_cache/
|
|
139
|
+
.dmypy.json
|
|
140
|
+
dmypy.json
|
|
141
|
+
|
|
142
|
+
# Pyre type checker
|
|
143
|
+
.pyre/
|
|
144
|
+
.vscode/settings.json
|
|
145
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to htpolynet will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [2.0.0] - 2026-05-07
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Package renamed from `HTPolyNet` to `htpolynet` (fully lowercase) for PEP 8 compliance and PyPI consistency.
|
|
15
|
+
- Runtime now logs the HTPolyNet git commit hash at startup, with a warning when uncommitted changes are present.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Apptainer/Singularity container support: distributed as a `.sif` image for reproducible execution on HPC clusters.
|
|
20
|
+
- New `gen-slurm-script` subcommand generates a ready-to-submit SLURM batch script from an htpolynet YAML config file.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Chain-expansion bug: bond-chain `ChainManager` was not rebuilt for monomers on the fetch path, causing `bondchain_expand_reactions` to produce no chain-extended oligomers in runs that reused cached parameterizations.
|
|
25
|
+
|
|
26
|
+
## [1.0.9] - 2025-01-01
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
|
|
30
|
+
- `minimum_bondcycle_length` parameter to allow for cyclic polymerization above a certain threshold length.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Rings not transferred from monomer templates if they are pre-parameterized.
|
|
35
|
+
- Atom indexes in bondchain structure not remapped after atom deletion.
|
|
36
|
+
|
|
37
|
+
## [1.0.8] - 2024-01-04
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- Uses `chordless_cycles` to find rings; `ringidx` is no longer a unique atom attribute; improved ring-pierce detection.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# HTPolyNet container image
|
|
2
|
+
# Includes Gromacs, AmberTools (antechamber, tleap, parmchk2), and OpenBabel via conda-forge.
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# docker run --rm -v $(pwd):/work ghcr.io/abramsgroup/htpolynet htpolynet run config.yaml
|
|
6
|
+
#
|
|
7
|
+
# To avoid files being written as root, pass your host uid/gid:
|
|
8
|
+
# docker run --rm -v $(pwd):/work --user $(id -u):$(id -g) ghcr.io/abramsgroup/htpolynet htpolynet run config.yaml
|
|
9
|
+
#
|
|
10
|
+
# GPU support (requires nvidia-container-toolkit):
|
|
11
|
+
# docker run --rm --gpus all -v $(pwd):/work ghcr.io/abramsgroup/htpolynet htpolynet run config.yaml
|
|
12
|
+
|
|
13
|
+
FROM continuumio/miniconda3:latest
|
|
14
|
+
|
|
15
|
+
# Install Gromacs and AmberTools (latest available on conda-forge)
|
|
16
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
17
|
+
openbabel \
|
|
18
|
+
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
19
|
+
|
|
20
|
+
RUN conda install -y -c conda-forge \
|
|
21
|
+
ambertools \
|
|
22
|
+
gromacs \
|
|
23
|
+
parmed \
|
|
24
|
+
&& conda clean -afy
|
|
25
|
+
|
|
26
|
+
# Install HTPolyNet
|
|
27
|
+
COPY . /htpolynet
|
|
28
|
+
WORKDIR /htpolynet
|
|
29
|
+
RUN pip install --no-cache-dir .
|
|
30
|
+
|
|
31
|
+
# User data is mounted here at runtime
|
|
32
|
+
WORKDIR /work
|
|
33
|
+
|
|
34
|
+
ENTRYPOINT ["htpolynet"]
|
|
35
|
+
CMD ["--help"]
|
htpolynet-2.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Cameron Abrams
|
|
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.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
recursive-include htpolynet resources
|
htpolynet-2.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: htpolynet
|
|
3
|
+
Version: 2.0.0
|
|
4
|
+
Summary: Automated MD System Builder for Amorphous Network Polymers
|
|
5
|
+
Project-URL: Source, https://github.com/AbramsGroup/htpolynet
|
|
6
|
+
Project-URL: Documentation, https://htpolynet.readthedocs.io/
|
|
7
|
+
Project-URL: Bug Tracker, https://github.com/AbramsGroup/htpolynet/issues
|
|
8
|
+
Author-email: Cameron F Abrams <cfa22@drexel.edu>
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Science/Research
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
16
|
+
Requires-Python: >=3.9
|
|
17
|
+
Requires-Dist: gputil>=1.4
|
|
18
|
+
Requires-Dist: networkx>=3.2
|
|
19
|
+
Requires-Dist: numpy>=1.24
|
|
20
|
+
Requires-Dist: pandas>=2
|
|
21
|
+
Requires-Dist: parmed>=4
|
|
22
|
+
Requires-Dist: pyyaml>=6
|
|
23
|
+
Requires-Dist: requests>=2.28
|
|
24
|
+
Requires-Dist: scipy>=1.10
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# htpolynet
|
|
30
|
+
> High-Throughput Polymer Network Atomistic Simulations
|
|
31
|
+
|
|
32
|
+
htpolynet is a Python utility for generating atomistic models of cross-linked polymer networks together with appropriate topology and parameter files required for molecular dynamics simulations using Gromacs. It is intended as a fully automated system builder requiring as inputs only the molecular structures of any monomer species, a description of the polymerization chemistry, and a handful of options describing desired system size and composition. htpolynet uses the Generalized Amber Force Field for atom-typing and parameter generation.
|
|
33
|
+
|
|
34
|
+
## Installation
|
|
35
|
+
|
|
36
|
+
From PyPI:
|
|
37
|
+
```bash
|
|
38
|
+
pip install htpolynet
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
From conda-forge:
|
|
42
|
+
```bash
|
|
43
|
+
conda install -c conda-forge htpolynet
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
From source:
|
|
47
|
+
```bash
|
|
48
|
+
git clone git@github.com:AbramsGroup/htpolynet.git
|
|
49
|
+
cd htpolynet
|
|
50
|
+
pip install -e .
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Once installed, the user has access to the main ``htpolynet`` command.
|
|
54
|
+
|
|
55
|
+
IMPORTANT NOTES: The programs ``antechamber``, ``parmchk2`` and ``tleap`` from AmberTools must be in your path. These can be installed using the ``ambertools`` package from ``conda-forge`` or compiled from source. You also need Gromacs installed so ``gmx`` is in your path. The examples show how to build input monomer structures using OpenBabel, so to use them you need ``obabel`` in your path as well.
|
|
56
|
+
|
|
57
|
+
## Documentation
|
|
58
|
+
|
|
59
|
+
Please consult documentation at [abramsgroup.github.io/htpolynet](https://abramsgroup.github.io/htpolynet/).
|
|
60
|
+
|
|
61
|
+
## Meta
|
|
62
|
+
|
|
63
|
+
Cameron F. Abrams – cfa22@drexel.edu
|
|
64
|
+
|
|
65
|
+
Distributed under the MIT license. See ``LICENSE`` for more information.
|
|
66
|
+
|
|
67
|
+
[https://github.com/cameronabrams](https://github.com/cameronabrams/)
|
|
68
|
+
|
|
69
|
+
[https://github.com/AbramsGroup](https://github.com/AbramsGroup/)
|
|
70
|
+
|
|
71
|
+
## Contributing
|
|
72
|
+
|
|
73
|
+
1. Fork it (<https://github.com/AbramsGroup/htolynet/fork>)
|
|
74
|
+
2. Create your feature branch (`git checkout -b feature/fooBar`)
|
|
75
|
+
3. Commit your changes (`git commit -am 'Add some fooBar'`)
|
|
76
|
+
4. Push to the branch (`git push origin feature/fooBar`)
|
|
77
|
+
5. Create a new Pull Request
|
|
78
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# htpolynet
|
|
2
|
+
> High-Throughput Polymer Network Atomistic Simulations
|
|
3
|
+
|
|
4
|
+
htpolynet is a Python utility for generating atomistic models of cross-linked polymer networks together with appropriate topology and parameter files required for molecular dynamics simulations using Gromacs. It is intended as a fully automated system builder requiring as inputs only the molecular structures of any monomer species, a description of the polymerization chemistry, and a handful of options describing desired system size and composition. htpolynet uses the Generalized Amber Force Field for atom-typing and parameter generation.
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
From PyPI:
|
|
9
|
+
```bash
|
|
10
|
+
pip install htpolynet
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
From conda-forge:
|
|
14
|
+
```bash
|
|
15
|
+
conda install -c conda-forge htpolynet
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
From source:
|
|
19
|
+
```bash
|
|
20
|
+
git clone git@github.com:AbramsGroup/htpolynet.git
|
|
21
|
+
cd htpolynet
|
|
22
|
+
pip install -e .
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Once installed, the user has access to the main ``htpolynet`` command.
|
|
26
|
+
|
|
27
|
+
IMPORTANT NOTES: The programs ``antechamber``, ``parmchk2`` and ``tleap`` from AmberTools must be in your path. These can be installed using the ``ambertools`` package from ``conda-forge`` or compiled from source. You also need Gromacs installed so ``gmx`` is in your path. The examples show how to build input monomer structures using OpenBabel, so to use them you need ``obabel`` in your path as well.
|
|
28
|
+
|
|
29
|
+
## Documentation
|
|
30
|
+
|
|
31
|
+
Please consult documentation at [abramsgroup.github.io/htpolynet](https://abramsgroup.github.io/htpolynet/).
|
|
32
|
+
|
|
33
|
+
## Meta
|
|
34
|
+
|
|
35
|
+
Cameron F. Abrams – cfa22@drexel.edu
|
|
36
|
+
|
|
37
|
+
Distributed under the MIT license. See ``LICENSE`` for more information.
|
|
38
|
+
|
|
39
|
+
[https://github.com/cameronabrams](https://github.com/cameronabrams/)
|
|
40
|
+
|
|
41
|
+
[https://github.com/AbramsGroup](https://github.com/AbramsGroup/)
|
|
42
|
+
|
|
43
|
+
## Contributing
|
|
44
|
+
|
|
45
|
+
1. Fork it (<https://github.com/AbramsGroup/htolynet/fork>)
|
|
46
|
+
2. Create your feature branch (`git checkout -b feature/fooBar`)
|
|
47
|
+
3. Commit your changes (`git commit -am 'Add some fooBar'`)
|
|
48
|
+
4. Push to the branch (`git push origin feature/fooBar`)
|
|
49
|
+
5. Create a new Pull Request
|
|
50
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
# i've changed this?
|
|
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)
|
|
@@ -0,0 +1,35 @@
|
|
|
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=build
|
|
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.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
|