Skip to main content

A Python package to perform pre- and post-processing of molecular simulations

Project description

Welcome to Use Xponge!

Introduction

Xponge is a lightweight and easy to customize python package to perform pre- and post-processing of molecular simulations.

What can Xponge do?

Xponge includes three major categories of functionality, namely, the simulation system construction, simulation data transformation and analysis, and automated workflows for complex simulations. Xponge is mainly designed for the molecular dynamics (MD) program SPONGE[1], but it can also output some general format files such as mol2 and PDB, so it may help the other molecular modelling programs too.

Installation

Xponge can be used on all operating systems (Windows/Linux/MacOS).

1. pip install

pip install Xponge

2. source setup

  • 2.1 Download or clone the source from the gitee or github repository

    The gitee repository is here. The github repository is here.

      git clone http://gitee.com/gao_hyp_xyj_admin/xponge.git
      git clone http://github.com/xia-yijie/xponge.git
    
  • 2.2 Open the directory where you download or clone the repository

  • 2.3 (Optional) Configure the environment

    It is recommended to use conda to configure the environment. Two yml files named install_requirements.yml and extras_requirements.yml are provided in the repository.

    If you only need the basic functionality of Xponge, use the following command to configure the environment.

    conda env create -f install_requirements.yml
    conda activate Xponge
    

    If you want to experience all the features of Xponge, use the following command to configure the environment.

    conda env create -f extras_requirements.yml
    conda activate Xponge
    
  • 2.4 Run the command

    python setup.py install
    

Installation check

There are some unit tests in Xponge. You can do the basic test to check whether the installation is successful like this:

Xponge test --do base -o test --verbose 1

Here, Xponge can be replaced to python -m Xponge, python3 -m Xponge and so on according to your settings of the environmental variables. Some files will be generated after the test is finished.

Quickstart

Here is a simple example.

import Xponge
# Import the force field you need
import Xponge.forcefield.amber.ff14sb
# Build the molecule like this
peptide = ACE + ALA + NME
# or like this
peptide2 = NALA + ALA * 10 + CALA
# or like this
peptide3 = Xponge.Get_Peptide_From_Sequence("AAAAA")
# See the documentation for more usage!
# Save them as your favorite format
Xponge.save_pdb(peptide, "ala.pdb")
Xponge.save_mol2(peptide2, "ala12.mol2")
Xponge.save_sponge_input(peptide3, "ala5")

Then we can see ala12.mol2 in VMD:

pic2

Here is another simple example.

import Xponge
import Xponge.forcefield.amber.tip3p

box = Xponge.BlockRegion(0, 0, 0, 60, 60, 60)
region_1 = Xponge.BlockRegion(0, 0, 20, 20, 20, 40)
region_2 = Xponge.BlockRegion(0, 0, 40, 20, 20, 60)
region_3 = Xponge.BlockRegion(0, 0, 0, 20, 20, 20)
region_4 = Xponge.SphereRegion(20, 10, 30, 10)
region_5 = Xponge.BlockRegion(20, 0, 20, 60, 60, 60)
region_2or3 = Xponge.UnionRegion(region_2, region_3)
region_4and5 = Xponge.IntersectRegion(region_4, region_5)
t = Xponge.Lattice("bcc", basis_molecule=CL, scale=4)
t2 = Xponge.Lattice("fcc", basis_molecule=K, scale=3)
t3 = Xponge.Lattice("sc", basis_molecule=NA, scale=3)
mol = t.Create(box, region_1)
mol = t2.create(box, region_2or3, mol)
mol = t3.create(box, region_4and5, mol)
Xponge.Save_PDB(mol, "out.pdb")

Then we can see out.pdb in VMD:

pic1

Detailed usage and API documentation

All can be seen here.

Contribution Guideline

If you want to contribute to the main codebase or report some issues, see here for the guides.

Dependencies

Xponge does not depend on other packages except numpy for its basic use.

However, there are some complicated functions rely on some other packages. If you do not install the dependent package, you can not use the related functions.

Here is the list of all packages which may be uesd:

package name description how to install
XpongeLib c/c++ compiled library for Xponge pip install XpongeLib
pyscf [2-4] quantum chemistry pip install pyscf
geometric[5] geometry optimization pip install geometric
rdkit[6] cheminformatics conda install -c rdkit rdkit
MDAnalysis[7-8] trajectory analysis pip install MDAnalysis
mindspore[9] AI framework for machine learning See the official website
mindsponge[1] end-to-end differentiable MD See the official website

References

[1] Y.-P. Huang, et al. Chinese J. Chem. (2022) DOI: 10.1002/cjoc.202100456

[2] Q. Sun, et al. J. Chem. Phys. (2020) DOI: 10.1063/5.0006074

[3] Q. Sun, et al. Wiley Interdiscip. Rev. Comput. Mol. Sci. (2018) DOI: 10.1002/wcms.1340

[4] Q. Sun, J. Comp. Chem. (2015) DOI: 10.1002/jcc.23981

[5] L.-P. Wang, C.C. Song, J. Chem. Phys. (2016) DOI: 10.1063/1.4952956

[6] RDKit: Open-source cheminformatics. https://www.rdkit.org

[7] R. J. Gowers, et al. Proceedings of the 15th Python in Science Conference (2016) DOI: 10.25080/majora-629e541a-00e

[8] N. Michaud-Agrawal, et al. J. Comput. Chem. (2011) DOI: 10.1002/jcc.21787

[9] MindSpore: An Open AI Framwork. https://www.mindspore.cn/

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Xponge-1.2.6.7.tar.gz (514.1 kB view details)

Uploaded Source

File details

Details for the file Xponge-1.2.6.7.tar.gz.

File metadata

  • Download URL: Xponge-1.2.6.7.tar.gz
  • Upload date:
  • Size: 514.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for Xponge-1.2.6.7.tar.gz
Algorithm Hash digest
SHA256 ed2db82a1d0d76e2484a0cd2990ae00e1e63330a525a77890f2d584573ea73e3
MD5 227dd981925cb1cf199091a9b60b8a3c
BLAKE2b-256 6bb93a90400cf1afd1e49ecd2144b25b9fda85f870f4113a2e5d5b48bc4dfb99

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page