Coder Social home page Coder Social logo

molssi / eex Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 4.0 1.75 MB

The Energy Expression Exchange for Molecular Dynamics.

License: BSD 3-Clause "New" or "Revised" License

Python 93.62% Batchfile 0.01% Shell 1.61% Jupyter Notebook 4.76%

eex's People

Contributors

dgasmith avatar emarinri avatar janash avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eex's Issues

Amber dihedral count

The current amber writer counts the dihedrals as they are stored in the datalayer. As Amber only supports charmm dihedrals, we need to now how many equivalent charmm dihedrals (both types and actual dihedrals) are stored in the datalayer. Additionally, we need to distinguish among those dihedrals that contain hydrogens and those that don't.

Improper torsions in amber

We do not currently read or write information on improper torsions for amber.

From amber documentation (http://ambermd.org/prmtop.pdf):

Information about improper torsions is stored in DIHEDRALS_INC_HYDROGEN and DIHEDRALS_WITHOUT_HYDROGEN section.

"If the fourth atom is negative, then the torsion is improper."

Currently atom indices are stored in the datalayer with the negative sign discarded. It's not immediately clear why it is stored this way, or if amber actually reads this information....

Improved way of dispatching functional form converters, mixing rule and NB

The way to call a function for these functional form conversion in convert_form.py (and also the mixing rule application in nb_converter.py and the NB functional form conversion in nb_converter.py) is currently being done in an ad-hoc manner (assembling the function name and calling it by string). The current version is probably not very robust. Maybe we need to find a way to make this more elegant.

EEX readme

The EEX readme should be expanded (written)

Jupyter notebook examples

Jupyter notebook examples do not work after port from old repository. Jupyter notebook testing should be incorporated in tests.

Function in MD helper

Write a function that returns the compatible functional forms for a given functional form when translating. This should be placed in md_helper to be useable among all modules.

Datalayer copy function

We have previously added a remove_terms function in the datalayer which allows for terms to removed from the datalayer. The motivation for the addition of this function was to allow terms to be removed and replaced during conversion from one file type to another.

A copy function for the datalayer could be useful so that the original datalayer object remains unchanged and is not overwritten. I believe this can be compared to pandas, where actions are performed on a copy of a datalayer unless inplace=True is set.

Using deepcopy will not work for HDF5 backend (but is fine for memory backend), so copy function should be added to datalayer (information in file layer and datalayer will have to be copied).

Note: Pandas dataframes and hdf5 both have copy functions

Clean up docstrings

Will need to clean up docstrings at some point -

Add testing docstrings

pytest --doctest-module

Mixing rule internal metadata duplication

The internal metadata for the mixing rule is duplicated in nb_converter.py and additional_metadata.py.

Note also that the function set_mixing_rule in datalayer.py uses the dict defined nb_converter.py as metadata.

We need to define the mixing metadata only in one place (probably in additional_metadata.py). Then, we might need to automatically map functions in nb_converter.py to the metadata keywords.

DL argument format

We agreed that all inputs to datalayer functions should be dictionaries, but some functions still accept list/tuples.

Consistent type return with convert_form function

The convert_form function returns a dictionary of integers except. There are some exceptions:

  1. If attempting X-->charmm, the resulting conversion is a dict of vectors.
  2. If attempting charmm-->charmm, the resulting conversion is a dict of ints.

In general, we might want to return always vectors?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.