Skip to content

Commit

Permalink
Update README before creating release (#69)
Browse files Browse the repository at this point in the history
* update docs before pinning a version

* update version numbers, add lgtm to readme

* add last example to the appropriate README

* make Alpha version clear
  • Loading branch information
bannanc authored Jan 24, 2019
1 parent f4776ba commit c89224f
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 33 deletions.
41 changes: 23 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Build Status](https://travis-ci.org/MobleyLab/chemper.svg?branch=master)](https://travis-ci.org/MobleyLab/chemper) [![codecov](https://codecov.io/gh/MobleyLab/chemper/branch/master/graph/badge.svg)](https://codecov.io/gh/MobleyLab/chemper) [![Documentation Status](https://readthedocs.org/projects/chemper/badge/?version=latest)](http://chemper.readthedocs.io/en/latest/?badge=latest)
[![Build Status](https://travis-ci.org/MobleyLab/chemper.svg?branch=master)](https://travis-ci.org/MobleyLab/chemper) [![codecov](https://codecov.io/gh/MobleyLab/chemper/branch/master/graph/badge.svg)](https://codecov.io/gh/MobleyLab/chemper) [![Documentation Status](https://readthedocs.org/projects/chemper/badge/?version=latest)](http://chemper.readthedocs.io/en/latest/?badge=latest) [![Total alerts](https://img.shields.io/lgtm/alerts/g/MobleyLab/chemper.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/MobleyLab/chemper/alerts/)

# chemper

Expand Down Expand Up @@ -28,6 +28,9 @@ For example, if you know you want to assign certain group of angles (sets of thr
the same equilibrium bond angle and force constant,
then chemper should generate SMIRKS patterns that maintain that clustering.

**Warning**
This repository is still under active development. While an initial [version](#versions) is available changes are still expected in the API and the underlying code.

## Prerequisites

We currently test with Python 3.5, though we expect anything 3.5+ should work.
Expand Down Expand Up @@ -73,7 +76,18 @@ pip install -e .
Below are some details on the tools provided in `chemper` see
[examples](https://github.com/MobleyLab/chemper/tree/master/examples) for more detailed usage examples

### mol_toolkits
### SMIRKSifier

This is `chempers` main function.
It takes groups of molecular fragments which should be typed together and generates a heirarchical list
of SMIRKS patterns which maintains this typing.
`chemper`'s `SMIRKSifier` takes a list of molecules and groups of atoms based on index and generates
a hierarchical list of SMIRKS in just a few lines of code.
In the example, [general_smirks_for_clusters](https://chemper.readthedocs.io/en/latest/examples/general_smirks_for_clusters.html)
we cluster bonds in a set of simple hydrocarbons based on order. Then `SMIRKSifer` turns these clusters into a list of SMIRKS patterns.
The following functionalities are used to make the `SMIRKSifier` possible, but may be useful on their own.

### `mol_toolkits`

As noted [above](#installation), we seek to keep `chemper` independent of the cheminformatics toolkit.
`mol_toolkits` is created to keep all code dependent on the toolkit installed. It can create molecules from
Expand Down Expand Up @@ -134,26 +148,17 @@ In pentane (mol2) however atom1 can be a terminal or middle of the chain carbon
hydrogen atoms (`Hn` decorator) on the carbon, thus there are two possible SMIRKS patterns for atom `:1`
`#6AH2X4x0r0+0` or (indicated by the "`,`") `#6AH3X4x0r0+0`. But, atom `:2` only has one possibility `#6AH2X4x0r0+0`.

## Versions

# What's coming next?

The ClusterGraph code can accurately create a SMIRKS pattern for a group of clustered molecular subgraphes.
However as you can see in the [SMIRKS_from_molecules](examples/using_cluster_graph/SMIRKS_from_molecules.ipynb)
the SMIRKS created by `ClusterGraph` are highly specific.
Our final goal here is to maintain a given set of clustering, but to generate relatively general SMIRKS patterns
that can then be used to assign force field parameters. This use of relatively generic SMIRKS patterns is part of what
we believe makes the SMIRNOFF force field format so powerful.

One option here would be to go back to the MC sampling used in [SMARTY/SMIRKY](https://github.com/openforcefield/smarty).
Where the information stored in `ClusterGraph` could be used to make more intelligent/efficient moves.
However, we believe there is a yet more efficient option where the differences and similarities in `ClusterGraph` objects
could be used to determine the correct SMIRKS patterns. Thus, the next step is to essentially find the similarities
and differences in `ClusterGraph`s so that the most general SMIRKS can be used to maintain clustering as the user
inputs, but not specify more information than necessary.
### 0.1.0 Alpha Release
This is a first release of the Alpha testing version of `chemper`. As you can follow in the [issue tracker](https://github.com/MobleyLab/chemper/issues) there are still
on going problems to resolve. This first release will allow for reference to the concepts and algorithms included here
for automated chemical perception. However, the API is still in flux and nothing should be considered permanent at this time.

## Contributors

* [Caitlin Bannan (UCI)](https://github.com/bannanc)
* [Caitlin C. Bannan (UCI)](https://github.com/bannanc)
* [Jessica Maat (UCI)](https://github.com/jmaat)
* [David L. Mobley (UCI)](https://github.com/davidlmobley)

## Acknowledgments
Expand Down
4 changes: 2 additions & 2 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
author = 'Caitlin C. Bannan'

# The short X.Y version
version = '0.0.0'
version = '0.1.0'
# The full version, including alpha/beta/rc tags
release = '0.0.0'
release = '0.1.0'


# -- General configuration ---------------------------------------------------
Expand Down
3 changes: 2 additions & 1 deletion docs/intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ See :doc:`installation`.
Contributors
------------

* `Caitlin Bannan (UCI) <https://github.com/bannanc>`_
* `Caitlin C. Bannan (UCI) <https://github.com/bannanc>`_
* `Jessica Maat (UCI) <https://github.com/jmaat>`_
* `David L. Mobley (UCI) <https://github.com/davidlmobley>`_

Acknowledgments
Expand Down
19 changes: 13 additions & 6 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

This is directory stores examples for how to use and work with ChemPer

### Single Mol SMIRKS
### Generating reasonable SMIRKS patterns

`ChemPerGraph`s convert a molecule into a SMIRKS pattern by
converting information about the atoms and bonds.
The `ChemPerGraph` stores only one molecule. It can convert only certain atoms or
the *entire* molecule into a SMIRKS pattern.
This direction of molecule to SMIRKS string is new as far as the authors know with chemper.
`SMIRKSifier` is used to create a hierarchical list of SMIRKS patterns for
bonds which are clustered by order. This is done by first grouping the bonds in
a small set of molecules based on their order. Then, the `SMIRKSifier` takes those
molecules and groups of bonds and create SMIRKS patterns that are specific to these molecules.
Lastly, these SMIRKS patterns are made more general by removing unncessary decorators.

### SMIRKS from Molecules

Expand All @@ -17,3 +17,10 @@ They can store information about multiple atoms and bonds simultaneously.
This is a starting example for how to use ChemPer's `ClusterGraph` class
to create SMIRKS patterns from clusters of molecular graphs.

### Single Mol SMIRKS

`ChemPerGraph`s convert a molecule into a SMIRKS pattern by
converting information about the atoms and bonds.
The `ChemPerGraph` stores only one molecule. It can convert only certain atoms or
the *entire* molecule into a SMIRKS pattern.
This direction of molecule to SMIRKS string is new as far as the authors know with chemper.
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def find_package_data(data_root, package_root):
if __name__ == "__main__":
setuptools.setup(
name='chemper', # Make sure to change to match your library name
version="0.0.0", # you should keep track of versions
version="0.1.0", # you should keep track of versions
description='A python package for automatically sampling chemical perception', # add a description
long_description=read('README.md'),
author='Caitlin C. Bannan', # add your name to author category
Expand Down Expand Up @@ -68,7 +68,7 @@ def find_package_data(data_root, package_root):
],

classifiers=[
'Development Status :: 4 - Beta',
'Development Status :: 4 - Alpha',
'Intended Audience :: Science/Research',
'Programming Language :: Python :: 3',
],
Expand Down
7 changes: 3 additions & 4 deletions tests/test_mol_toolkits.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
"""
This is a test for the molecule, atom, and bond objects.
Currently chemper only downloads one version of these objects.
This test runs for which ever mol_toolkit is available and will
print which one it is using
First, it checks which toolkits (OpenEye or RDKit) are available
It will run tests for each object for all toolkits that are available.
"""

from chemper.mol_toolkits import mol_toolkit
Expand Down Expand Up @@ -218,4 +217,4 @@ def test_default_toolkit():
if mol_toolkit.HAS_OE:
assert tk == 'openeye'
else:
assert tk == 'rdkit'
assert tk == 'rdkit'

0 comments on commit c89224f

Please sign in to comment.