Skip to main content

molsystem

Project description

MolSystem

GitHub pull requests Build Status Code Coverage Code Quality Documentation Status PyPi VERSION

Description

Molsystem provides a general class for handling molecular and periodic systems. This is the heart of SEAMM.

Features

  • Supports molecular and periodic (crystalline) systems.

  • Support for pointgroup and spacegroup symmetry.

  • Implemented as a SQL database, currently using SQLite, which provides permanence and a disk file.

  • Handles multiple systems, and for each system any number of configurations. Configurations are different structures, generally having different coordinates. Examples are conformers or frames in an MD trajectory.

  • Configurations can have differing bonds, supporting reactive forcefields such as ReaxFF.

  • Configurations can also have differing numbers of atoms, supporting e.g. grand canonical Monte Carlo.

  • Support for templates and subsets. Templates can be used for creating or finding structures in systems and subsets hold substes of atoms. An atom can be in multiple subsets. For proteins, subsets can be used for residues and chains; for polymers, monomers; and for fluids the subsets can track individual molecules.

  • Subsets and templates handle the correspondance between atoms so if, for instance, the ordering of atoms in residues are different, that can be handled using the correspondances.

  • Direct connection to and support of RDKit and OpenBabel molecules, allowing direct transfer back and forth between configurations and those libraries.

  • Properties of systems and configurations are stored in fact tables of integers, floats, strings, and JSON, using a star schema. One of the dimensions is metadata describing the property. This data warehousing approach is almost identical to that used in CIF files, with the metadata being the CIF dictionaries.

  • Good support of CIF files, with the ability to store data other than the actual atoms using the properties warehouse.

  • Direct support for SMILES, SMARTS and substructure searching.

  • Scales to millions of systems and configurations, and databases in excess of 100 GB.

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Developed by the Molecular Sciences Software Institute (MolSSI), which receives funding from the National Science Foundation under award OAC-1547580 and CHE-2136142.

History

2023.8.30 – Support for spacegroup symmetry.

2023.8.27 – Bugfix: writing SDF did not handle charge and multiplicity.

2023.7.30 – Improved handling of properties
  • Added ability to get lists of systems or configurations filtered by name

  • Improved handling of properties on just a system, not configuration

  • Added ability to filter properties retrieved

  • Improved handling of properties when creating OpenBabel OB_MOL object

2023.7.26 – Bugfix: error in QCSchema bonds; enhancement: RDKit
  • Fixed bug in the bond indices in QCSchema

  • Added ability to use RDKit for SMILES and InChI

2023.7.18.1 – Added support for creating structures from InChIKeys
  • Uses PubChem to translate the InChiKey to InChI.

2023.7.18 – Added support for InChI and InChIKeys

2023.7.9 – Added JSON properties
  • Added properties stored as JSON, which allows, vectors, tensors, etc.

2023.4.6 – Enhancements for CIF files
  • Handle uncertainties in CIF files expressed as ‘(x)’ at end of value.

2023.3.30 – Enhancements to QCSchema support
  • Improved naming of molecule in QCSchema

  • Added creation of configurations from QCSchema objects.

2023.2.13 – Fixed issue with valence in RDkit for cations like NH4+

2022.11.20 – Added a method to copy a configuration.

Added a new method to the system class, copy_configuration, that creates a copy of the configuration using the same atomset and bonset, but new coordinates and cell so that any changes to coordinates and cell are not shared between the configurations. By default it copies the current configuration.

2022.11.18 – Fixed bug with handling for Open Babel

The total charge and multiplicity were not correctly set when creating an Open Babel molecule.

2022.11.3 – Add handling of strain and improved handling of properties

Added methods for straining the unit cell, and also straining a configuration, correctly handling the coordinates for an affine transformation. In the future will add e.g. affine transformation of the centers of molecules, which is useful for molecular fluids.

Added the system for properties, in addition to the configuration. This allows system properties that are not associated with a particular configuration, which is often appropriate for experimental results. It also makes it much easier to search for systems where any configuration has a particular property.

2022.10.26 – Improved database write performance.

Switched to write-ahead mode and tweaked memory settings. This gives a large performance improvement (10x or more) for large database (~1 GB).

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

molsystem-2023.8.30.tar.gz (592.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

molsystem-2023.8.30-py2.py3-none-any.whl (108.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file molsystem-2023.8.30.tar.gz.

File metadata

  • Download URL: molsystem-2023.8.30.tar.gz
  • Upload date:
  • Size: 592.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for molsystem-2023.8.30.tar.gz
Algorithm Hash digest
SHA256 ca0a3865f01ef0218dbf270459fb0346184f4a08aacbe9158b55ca7f0ee26321
MD5 e4d62906852b6369be0ad7761b5ea84d
BLAKE2b-256 354ae9a8b7cb1f397cdc000ea21ee6e6e300961adc045d7b322eb0142c5dfd21

See more details on using hashes here.

File details

Details for the file molsystem-2023.8.30-py2.py3-none-any.whl.

File metadata

  • Download URL: molsystem-2023.8.30-py2.py3-none-any.whl
  • Upload date:
  • Size: 108.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for molsystem-2023.8.30-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 40259f410a723badebe186384ec7febece0250776ce57d3ce76e25274f25eaee
MD5 12edc8afa07ce0209ec9646017fcc3f1
BLAKE2b-256 a7c24654a46001bd72805da2c4f1ff6ee6bf9641b61f3ce0af159ce5543e3abf

See more details on using hashes here.

Supported by

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