Files
apbs/examples
Noah Oblath fb6ecf9710 Nsoblath/issue 163 (#171) (#202)
* Add a Dockerfile for testing

* Switch to FETK 1.8.1 and cleanup of FETK build

* New versions of geoflow and pb_solvers for testing

* Simplified Dockerfile

* Fixing a bug for getting FETK in windows

* A little more cleanup

* Update Geoflow git tag for new release

* Test building static libs

* Update pb_solvers commit to most recent release

* Update to the latest release of pb_solvers

* Separate configure/build stage for linux and mac

* Update the build script

* Update .build.sh

* Add libopenblas-dev to the linux dependencies

* Add tmate session to debug windows packing issue

* Debugging the windows packaging failure

* Maybe it's a shell problem?

* A little more debugging of the windows cpack failure

* Separate package creation for windows to get around the cmake/chocolatey conflict

* Best if I use the proper syntax . . .

* Typo fix

* Remove debugging modifications

* Cleanup of the build workflow

* Removing AppVeyor build and badge (Windows build is now done in GitHub Actions)

* Update .build.sh

* Update index.rst

* Use software-properties-common to get python3 in the Dockerfile

* Change directory into build before running tests

* Tests don't need to be their own project

* Turning off testing and building in the build script for GHA test purposes

* Check that the geoflow tests are working with this dev branch of geoflow

* Updated to released version of Geoflow

* First attempt at a test job

* Added required dependencies for apbs linkages
Added running of an example

* Fix directory

* Fixing the path to the downloaded artifacts

* Testing for mac and windows requirements

* Syntax fix

* Mod to check mac prereqs; note about windows prereqs

* (temporarily) remove some slow tests

* Add mac prereqs for test job

* Add component specification to all install lines and use to control the package creation

* Add tmate back in for now

* Enable the build of iAPBS, with a few changes to how it's done to make sure it links into apbs

* Minor logic fix

* Removed the include/Eigen directory.  It seemed to be confusing the Windows build.

* APBS needs to know where Eigen3 is

* Geoflow updated to deconflict class name with FETK/mc.  Build of Geoflow updated, with APBS dependency moved into APBS.  Build in src is updated accordingly.

* Updating Geoflow to the new release

* Move configure_file for apbscfg.h down in the CMakeLists.txt so that it has all of the necessary info

* Enable tmate session in windows to check linking for a successful windows test

* Potential fix to incorrect arguments in calls to preRefineFE and postRefineFE

* tmate session on test job failure

* Temporarily include headers and libraries in the zip file

* Remove hardcoded apbscfg.h and maloccf.h

* Add windows dependencies to the test run

* echo the PATH variable so we can check to see if the vcpkg libraries are findable

* Add the vcpkg bin directory to the path

* Use variable ENABLE_FETK instead of FETK_ENABLED to control building with FETK

* Renaming some build variables, per some TODOs in apbscfg.h.in

* Switch use tests to using run_selected_tests.sh

* Forgot to include the script to run

* Fix permissions for the examples scripts by using the USE_SOURCE_PERMISSIONS argument

* Added CHANGELOG.md and .extract_section.sh script (copied from FETK implementation)

* Add release.yaml and release artifacts (copied implementation from FETK)

* Update version to 3.3.0.alpha

* Fix variable for tag name

* Move release of artifacts to a separate job

* Was missing the step id

* Also had the wrong id here

* Oy, hopefully the last thing I missed

* Fixing the logic of having a separate publish release job

* Reworking how the package filenames are handled

* Trigger a new build

* Attempting fix to issue with retrieving and storing the zip file name

* Use expression instead of shell expansion

* Workflow cleanup

* Back-filling the changelog's previous entries from the GitHub Releases

* Git tags are prepended with a v

* Consolidating cmake settings

* Turn PYGBE on, and a couple of associated fixes

* Stripping out Tinker support

* Enable debugging in workflows

* Add python3 to mac and linux dependencies

* Shouldn't need `vcpkg integrate install` in the use test

* Need the python library in linux

* Update .extract_section.sh to handle the rst file releases.rst

* Test conversion of release rst to md

* Oops, docker actions are linux only

* One more linux-only restriction

* Build directory and install directory check for already-set values in .build.sh

* Do initial work to accommodate building the NSIS file

* Fixing typos from the last commit

* Actually process and attempt to use the NSIS file

* Separate NSIS build into a separate step to see what's causing the job to hang

* Fixing step id

* Move release extraction to release.yaml and use setup-python@v2 for python installation

* Setup to do a little debugging

* Removing the use of git submodule updating in the build

* Remove NSIS use test for now

* Removing the use of NSIS packaging

* Setup a tmate session for container testing

* Do a test of running a windows container

* Another container test

* One more docker container attempt

* Some documentation updates

* Return to the regular build

* Copying in dependency libraries

* Fixing a library name

* Option for a fully static build (does not work when OpenMP is used)

* Try out a fully static build without OpenMP

* Working on diagnosing static build

* Two bug fixes

* Using a test version of FETK to try a static build

* YAML fix

* Not sure why it's behaving as if a git hash matches a version tag, but for now we'll force it to use the git hash FETK download

* Compile flag needed for linux, at least

* Modifying dependencies that are installed

* Updated pb_solvers for testing the use of the pbsolvers namespace; Fixed inclusion of BLAS.

* Try removing specification of compiler

* Update pb_solvers for wrapping fixes

* Enable tmate on failure

* Another pb_solvers update

* Remove openmp; I think it's screwing up finding OpenBLAS on Ubuntu

* Missing headers were causing a problem on macos

* Let's see if using libopenblas-serial-dev fixes the finding-openblas problem on linux

* Avoid some cmake warnings and use an updated pb_solvers

* Maybe the final fix to have things working?  Updating pb_solvers.

* New version of FETK

* Including some dependencies

* Added finding AMD

* git-ignore all directories that start with build

* FETK is now treated as a required dependency, much earlier in the build

* These find modules are now handled by FETK

* Updating how dependencies are searched for and handled

* Use GNU standard install directories

* Getting things in the right order

* Remove the use of EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH

* I think we deleted nanoshaper when we cleared the temp directory, so don't do this

* Install metis manually on mac and linux to get static libs

* Separate tar and gunzip calls

* Sudo make install on linux

* Fixing the TABIPB library install location and NanoShaper duplicate install issues.

* Adding Python for linux

* Add a global static-build option and set the MSVC runtime library variable to hopefully perform a static build in windows

* Run tmate for windows to check linking

* Some anticipation of the types of jobs that will be run

* Adapt to changes in FETK

* Update FETK hash

* Remove extra line and print umfpack libraries

* Verbose build, for now

* Debugging messages

* Update FETK

* Need libumfpack for the windows use tests.  And use tmate if the build fails.

* Remove the link search variables

* Enable PYGBE in Windows and add Python to use tests in all builds

* Fix copying of dlls into the Windows zip package

* Attempt at providing a windows equivalent of the use of dirname in main.c

* Typo

* We shouldn't need the installed prereqs in Windows (libraries should come with the zip file)

* Need to get rid of the extension

* Use 7z instead of zip/unzip

* Fixing the path to the package

* Need to specify the python version to CMake

* Min and max python versions

* Treat version numbers as strings until they're into CMake

* Fix python version variable

* Add ldd step for debugging windows use test

* Let's see if it's just Python/PYGBE causing problems on the windows build

* Let's see if it's the python linking or the PYGBE-enabled code is causing the Windows use test problem

* Fixing the declaration of mol_dirname for the Windows build and re-enabling the use of PYGBE

* Some documentation updates

* Try including PYGBE without doing _splitpath

* Get tmate in windows after build

* Specify Python architecture

* Revert tmate to on failure after build

* [skip ci]
Test skipping the CI process, and also minor docs update

* Retesting with all selected examples enabled

* Remove examples that fail

* Added comments on CMake policy choices

* New FETK version

* Cleanup

* Re-enable examples to check current status

* [skip ci] Updated current status of examples in run_selected_examples.sh.

* Add metis build to the Dockerfile

* Update FETK version in the Dockerfile

* Replace pbsam-auto with pbsam in a couple of examples

* Updated run_selected_examples.sh with gdb bt of geoflow/glycerol.in example

* [skip ci] Updated releases.rst

* Fixing the logic for recognizing version numbers.  The key was to put the FETK_IMPORT_VERSION variable in brackets in the if() statement.

* Fixing issues in the running and wrapping of geoflow:
* The molecule index used when calling runGeometricFlowWrapAPBS is taken from the configuration `mol` value instead of hardcoded
* The input geoflow parameters (in struct of type GeometricFlowInput) are passed by pointer instead of as a struct

* PBAM and PBSAM are now disabled by default pending further development work on their integration

* Added notes for the failure of the born/apbs-mol-fem-extmesh.in example.  Update FETK to fix the failure.

* Enable maximum verbosity in ctest to try to diagnose the weirdness in the windows ctest run

* Fix logic around finding python for cmake <v3.19 and for only having a minimum version defined

* Report test failures with raised exceptions

* See if the Windows test failures are a shell-related issue

* Adding some missing newlines

* Trying to sort the install dir for mac and linux

* Don't clean the install and build dirs.  Let cmake take care of what it needs to take care of.  And rm -rf'ing a directory passed to a script without any validation is scary.

* I do, in fact, need to create the build dir

* Un-verbose the linux and mac build

* Relative install dir

* Same thing, this time in linux too

* Non-verbose makefile in windows

* Install PYGBE if enabled

* Install in the build directory, not build/build

* Include bin directory in path for tests

* hyphens, not minuses.  fixed spaces in names

* Parse before printing

* Debugging messages for python version

* Set path to include location of libumfpack

* Fix directory name in windows

* Prevent checking of uninitialized array

* Remove the PYGBE example

* Some CMake/Python debugging

* Set swap space in Windows to handle memory-intensive tests

* Instead of setting the swap space, set the pagefile size

* Add the large-address-aware option to the linker flags under Windows

* Print the execution log on failure

* Enter tmate in windows during the build job

* Use RELEASE_TYPE variable instead of hardcoding configuration name

* Switch to debug build for debugging

* Try to catch windows build failure

* Try to resolve the python debug library issue using Python_LIBRARY_RELEASE

* Use Python3_FIND_ABI to specify non-debug library

* Undo the python ABI thing

* Test hack to get around python debug library

* Add a temporary debugging tmate session

* Let's try debugging with the mac build

* For now, just build linux and mac

* Go back to a release build to try to replicate the crashes we saw before

* Make sure all arrays get some sort of initialization

* Call destructors if pointers aren't NULL

* FETK now on 1.9.0

* Updating FETK version to 1.9.1

* Cleanup and docs updates

* Exit the build script with an error when the build fails

* Use FETK v1.9.2

* Remove -fPIE option in a strange place

* Verbose build for debug

* Skip RPATH for static builds?

* Try FETK source build instead of release download

* Switch default FETK version to the git hash at v1.9.2 (causes source build instead of binary install)

* Remove verbosity from build script

* Cleanup

* Tweaking the docs

* Updating the check for a linux build

Co-authored-by: Noah Oblath <noah.oblath@pnnl.gov>
Co-authored-by: Darren Curtis <Darren.Curtis@pnnl.gov>

Co-authored-by: Noah Oblath <noah.oblath@pnnl.gov>
Co-authored-by: Darren Curtis <Darren.Curtis@pnnl.gov>
2022-01-24 15:35:09 -08:00
..
2022-01-24 15:35:09 -08:00
2020-11-10 19:47:25 -05:00
2021-02-14 19:06:55 -08:00

APBS version validation and test cases

APBS examples and test cases

This directory serves as the root directory for the APBS test suite. In each directory you will find example input files to use with APBS and a README file displaying the results for different versions of APBS.

Executing make test in each directory will run the examples for that directory and log the results to TESTRESULTS.log. Executing make test from the root examples directory will run all the tests listed below. Tests will either pass, pass with rounding error (within 10-9 of the expected result), or fail outright.

Example README file Source Description
Actin dimer (actin-dimer) actin-dimer/README.md Dave Sept Calculate binding energies for actin dimers. This is an example of a large biomolecule binding energy calculation that often requires parallel focusing.
Alkane nonpolar solvation energies (alkanes) alkanes/README.md Nathan Baker, Jason Wagoner Calculate nonpolar solvation energies for various alkanes. Taken from Wagoner JA, Baker NA. Assessing implicit models for nonpolar mean solvation forces: the importance of dispersion and volume terms. Proc Natl Acad Sci USA, 103, 8331-8336, 2006.
Born ion (born) born/README.md Nathan Baker Calculate solvation energies for ions of various sizes and compare to the analytical results.
FKBP (FKBP) FKBP/README.md Jung-Hsin Lin Binding of various (small) ligands to FKBP. Analogous to HCA binding case (except it works).
HCA ligand binding (hca-bind) hca-bind/README.md UHBD Calculate the binding of a small molecule (acetazolamide) to a medium-sized protein (human carbonic anhydrase).
Acetic acid ionization (ionize) ionize/README.md UHBD Calculate electrostatic contributions to the ionization energy of acetic acid.
Ion-ion PMF (ion-pmf) ion-pmf/README.md Nathan Baker Calculate solvation energies and solvation force components for ion pairs.
Ion-protein interaction energies (ion-protein) ion-protein/README.md Dave Sept Calculate polar energy of placing an ion near a macromolecule.
PKA-balanol binding (pka-lig) pka-lig/README.md Chung Wong Calculate binding energies of a ligand to protein kinase A.
PKA-balanol binding (pka-lig)/UHDB pka-lig/UHDB/readme.md Chun Wong Shows the calculations done using molecular surface based and van der Waals dielectric definitions.
Coulomb's law (point-pmf) point-pmf/README.md Nathan Baker See how well we do reproducing Coulomb's law.
Methanol solvation (solv) solv/README.md UHBD Calculate the solvation energies of methanol and methoxide.
Protein-RNA interactions (protein-rna) protein-rna/README.md David Draper Calculate the salt dependence of protein interactions with box B RNA hairpin.
Geometric flow solvation model geoflow/README.md Elizabeth Jurrus Calculate the dielectric interface profile across the solute-solvent boundary in a thermodynamically sef-consistent fashion.
Ion Binding to DNA Duplexes Using SMPBE smpbe/readme.md Calculate PBE taking into account the finite ion size.
Focusing Membrane Boundary Condition membrane/readme.md Solve the PBE with a single atom using focusing membrane boundary conditions.
NMR Structure of the RNA binding Domain bem/readme.md Calculate the solvation complex using the boundary element method as is implemented in APBS.
Born Ion opal/README.md Nathan Baker The Born ion is a canonical electrostatic's test case for which there is an analytical solution. This example examines the solvation free energy.
Miscellaneous misc/README.md A collection of pqr files of molecules that have interesting potentials.