Skip to main content

Squid

Squid is an open-source molecular simulation codebase developed by the Clancy Lab at the Johns Hopkins University. The codebase includes simplified Molecular Dynamics (MD) and Density Functional Theory (DFT) simulation submission, as well as other utilities such as file I/O and post-processing.

Installing

For most, the easiest way to install squid is to use pip install:

[user@local]~% pip install clancylab-squid

If you wish, you may also clone the repository though:

[user@local]~% cd ~; git clone https://github.com/ClancyLab/squid.git

Note, you will need various additional software to fully take advantage of squid. We include some helper scripts to aid you in setting up these files; however, these are not robust and we do encourage you to setup your own development environment. Nevertheless, if you so choose, the following information may be of use:

Setup on Ubuntu

  1. Ensure that your system is up-to-date with relevant softare. The following commands will help.

[user@local]~% sudo apt-get update
[user@local]~% sudo apt-get upgrade
[user@local]~% sudo apt-get install build-essential make cmake g++ git swig mpich lmod
  1. As the above line installs lmod, we have found that there may be a bug in the default install. If you find that when you open a terminal you are getting a weird error about posix not existing, this is a bug in lua install. Simply put, take the path it wants and make a simlink to point to posix_c.so. An example of how to do this is as follows (note, your lua version and directories may or may not be the same).

[user@local]~% sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
  1. Setup your directories. In this case, we want all programs installed to the ~/programs folder, and all modules installed to ~/.modules.

[user@local]~% mkdir ~/programs; mkdir ~/.modules
  1. Setup a default environment file for lmod. In this case, we are making an empty one.

[user@local]~% touch ~/.modules/StdEnv.lua
  1. Ensure that lmod is setup. This can be done by ensuring that the ~/.bashrc is updated accordingly. Note, do not blindly copy, but understand what the following lines of code do!

# LMOD Setup
if [ -f /usr/share/lmod/6.6/init/bash ]; then
    . /usr/share/lmod/6.6/init/bash
fi
module use /home/$USER/.modules
if [ -z "$__Init_Default_Modules" ]; then
  export __Init_Default_Modules=1;

  LMOD_SYSTEM_DEFAULT_MODULES=${LMOD_SYSTEM_DEFAULT_MODULES:-"StdEnv"}
  export LMOD_SYSTEM_DEFAULT_MODULES
  module --initial_load --no_redirect restore
else
  module refresh
fi
  1. Install as much as possible from squid. This can be done by running the following command:

import os
from squid.installers import *

# Get relevant path information
home_folder = os.path.expanduser("~")
program_folder = "%s/programs" % home_folder
module_folder = "%s/.modules" % home_folder
if not os.path.exists(program_folder):
    os.makedirs(program_folder, exist_ok=True)
if not os.path.exists(module_folder):
    os.makedirs(module_folder, exist_ok=True)

# As we plan to get orca/4.2.0, we need openmpi/3.1.4
openmpi_installer(program_folder, "3.1.4", module_folder)
  1. Note, because you may want some programs for others, it is recommended that you first setup openmpi, as above, then return to install the others. This requires that you also load the openmpi module before compiling the next programs.

import os
from squid.installers import *

# Get relevant path information
home_folder = os.path.expanduser("~")
program_folder = "%s/programs" % home_folder
module_folder = "%s/.modules" % home_folder
if not os.path.exists(program_folder):
    os.makedirs(program_folder, exist_ok=True)
if not os.path.exists(module_folder):
    os.makedirs(module_folder, exist_ok=True)

# LAMMPS has many install options.  Here we simplify things.
# Note, we can only choose between mpi or serial.
# Note, "16Mar18_mpi" is the name of the module in the lammps
# submodule folder.  Be unique!
lammps_installer(
    program_folder, "16Mar18", "mpi", "16Mar18_mpi",
    compiler="mpicxx",
    extra_lammps_packages=[
        "RIGID", "PYTHON", "REPLICA", "USER-MISC", "USER-REAXC"],
    smrff_path=None,
    MODULEDIR=module_folder
)

# Install packmol
packmol_installer(program_folder, module_folder)

# Install nlopt
nlopt_installer(program_folder, "2.6.1", module_folder)
  1. Download Orca from https://orcaforum.kofo.mpg.de/app.php/dlext/ (note, you’ll have to register), and make your own orca module. An example is listed below (it would be saved in the modules folder as a .lua file.)

help([[
For detailed instructions, go to:
    https://orcaforum.cec.mpg.de/

    ]])
whatis("Version: 4.2.0")
whatis("Keywords: Orca 4")
whatis("URL: https://orcaforum.cec.mpg.de/")
whatis("Description: Orca 4")

load("openmpi/3.1.4")

prepend_path("PATH",               "/home/username/programs/orca/4.2.0")
prepend_path("LD_LIBRARY_PATH",    "/home/username/programs/orca/4.2.0")

Contributing

If you would like to be an active developer within the Clancy Group, please contact the project maintainer to be added as a collaborator on the project. Otherwise, you are welcome to submit pull requests as you see fit, and they will be addressed.

Documentation

Documentation is necessary, and the following steps MUST be followed during contribution of new code:

Setup

  1. Download Sphinx. This can be done simply if you have pip installed via pip install -U Sphinx

  2. Wherever you have squid installed, you want another folder called squid-docs (NOT as a subfolder of squid).

[user@local]~% cd ~; mkdir squid-docs; cd squid-docs; git clone -b gh-pages git@github.com:clancylab/squid.git html
  1. Forever more just ignore that directory (don’t delete it though)

Adding Documentation

Documentation is done using ReStructuredText format docstrings, the Sphinx python package, and indices with autodoc extensions. To add more documentation, first add the file to be included in docs/source/conf.py under os.path.abspath(‘example/dir/to/script.py’). Secondly, ensure that you have proper docstrings in the python file, and finally run make full to re-generate the documentation and commit it to your local branch, as well as the git gh-pages branch.

For anymore information on documentation, the tutorial follwed can be found here.

Metadata

Release files for clancyLab-squid 2.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for clancyLab-squid 2.1.6
File Interpreter ABI Platform Actions
clancyLab_squid-2.1.6-py3-none-any.whl Python 3 none any Details for clancyLab_squid-2.1.6-py3-none-any.whl

Release files / clancyLab_squid-2.1.6-py3-none-any.whl

Download URL clancyLab_squid-2.1.6-py3-none-any.whl
Size 363.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ccd749fb5d99f8ff11b41a32914a4a8a7aa2aec1734ee58dc63681ab579fc132
BLAKE2b-256 checksum
How to use checksums
b055dfcfb514eccf1f8a4b21193e254b30165f265d75dabecc9482b060f2f68e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

Security for clancyLab-squid 2.1.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.1.6 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page