From 2a1a92d62a9568605c54dc30f3b6a60b966b142c Mon Sep 17 00:00:00 2001 From: Levi Naden Date: Thu, 15 Feb 2018 08:58:59 -0500 Subject: [PATCH 1/6] Make OEIUPAC optional for normalize_molecule, cut release Also fixed typo in the error messages for OEIUPAC which incorrectly told the user it was missing OEOmega This is actually a critical bugfix for some users who have everything needed but IUPAC and its inhibiting some packages which depend on this package. --- openmoltools/openeye.py | 22 +++++++++++++++------- setup.py | 6 ++---- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/openmoltools/openeye.py b/openmoltools/openeye.py index 1ca0ede..3e00c2d 100644 --- a/openmoltools/openeye.py +++ b/openmoltools/openeye.py @@ -105,7 +105,9 @@ def get_charges(molecule, max_confs=800, strictStereo=True, def normalize_molecule(molecule): - """Normalize a copy of the molecule by checking aromaticity, adding explicit hydrogens, and renaming by IUPAC name. + """ + Normalize a copy of the molecule by checking aromaticity, adding explicit hydrogens, and + (if possible) renaming by IUPAC name. Parameters ---------- @@ -119,9 +121,10 @@ def normalize_molecule(molecule): """ oechem = import_("openeye.oechem") - if not oechem.OEChemIsLicensed(): raise(ImportError("Need License for OEChem!")) + if not oechem.OEChemIsLicensed(): + raise(ImportError("Need License for OEChem!")) oeiupac = import_("openeye.oeiupac") - if not oeiupac.OEIUPACIsLicensed(): raise(ImportError("Need License for OEOmega!")) + has_iupac = oeiupac.OEIUPACIsLicensed() molcopy = oechem.OEMol(molecule) @@ -132,8 +135,9 @@ def normalize_molecule(molecule): oechem.OEAddExplicitHydrogens(molcopy) # Set title to IUPAC name. - name = oeiupac.OECreateIUPACName(molcopy) - molcopy.SetTitle(name) + if has_iupac: + name = oeiupac.OECreateIUPACName(molcopy) + molcopy.SetTitle(name) # Check for any missing atom names, if found reassign all of them. if any([atom.GetName() == '' for atom in molcopy.GetAtoms()]): @@ -141,6 +145,7 @@ def normalize_molecule(molecule): return molcopy + def iupac_to_oemol(iupac_name): """Create a OEMolBuilder from a iupac name. @@ -156,9 +161,11 @@ def iupac_to_oemol(iupac_name): """ oechem = import_("openeye.oechem") - if not oechem.OEChemIsLicensed(): raise(ImportError("Need License for OEChem!")) + if not oechem.OEChemIsLicensed(): + raise(ImportError("Need License for OEChem!")) oeiupac = import_("openeye.oeiupac") - if not oeiupac.OEIUPACIsLicensed(): raise(ImportError("Need License for OEOmega!")) + if not oeiupac.OEIUPACIsLicensed(): + raise(ImportError("Need License for OEIupac!")) # Create an OEMol molecule from IUPAC name. molecule = oechem.OEMol() # create a molecule @@ -171,6 +178,7 @@ def iupac_to_oemol(iupac_name): return molecule + def smiles_to_oemol(smiles): """Create a OEMolBuilder from a smiles string. diff --git a/setup.py b/setup.py index ac9a2f1..b048181 100644 --- a/setup.py +++ b/setup.py @@ -21,11 +21,9 @@ setup_kwargs = {} cython_extension = 'c' - - ########################## -VERSION = "0.8.2dev0" -ISRELEASED = False +VERSION = "0.8.2" +ISRELEASED = True __version__ = VERSION ########################## From e8b3bd344a0d603eb1b312d72dbc460d122c5420 Mon Sep 17 00:00:00 2001 From: Levi Naden Date: Thu, 15 Feb 2018 09:34:27 -0500 Subject: [PATCH 2/6] Add conda-forge to the setup script --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index dfda84d..2420863 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,6 +36,8 @@ script: - conda config --add channels ${ORGNAME} # Add omnia dev channels - conda config --add channels https://conda.anaconda.org/omnia/label/dev + # Add the conda-forge channel + - conda config --add channels conda-forge # Install OpenEye toolkit - conda install --yes --quiet pip - pip install $OPENEYE_CHANNEL openeye-toolkits && python -c "import openeye; print(openeye.__version__)" From ab0576da4702cf54b420de177743d2c9bbc1fb70 Mon Sep 17 00:00:00 2001 From: Levi Naden Date: Thu, 15 Feb 2018 10:01:07 -0500 Subject: [PATCH 3/6] Support Python 3.6, drop 3.4, make sure we are using conda-build from conda-forge but updating packages --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2420863..c8527ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,6 +38,8 @@ script: - conda config --add channels https://conda.anaconda.org/omnia/label/dev # Add the conda-forge channel - conda config --add channels conda-forge + # Update everything + - conda update --quiet --yes --all # Install OpenEye toolkit - conda install --yes --quiet pip - pip install $OPENEYE_CHANNEL openeye-toolkits && python -c "import openeye; print(openeye.__version__)" @@ -57,12 +59,12 @@ env: matrix: # OpenEye production - CONDA_PY=27 python=2.7 OPENEYE_CHANNEL="-i https://pypi.anaconda.org/OpenEye/simple/" - - CONDA_PY=34 python=3.4 OPENEYE_CHANNEL="-i https://pypi.anaconda.org/OpenEye/simple/" - CONDA_PY=35 python=3.5 OPENEYE_CHANNEL="-i https://pypi.anaconda.org/OpenEye/simple/" + - CONDA_PY=36 python=3.6 OPENEYE_CHANNEL="-i https://pypi.anaconda.org/OpenEye/simple/" # OpenEye beta - CONDA_PY=27 python=2.7 OPENEYE_CHANNEL="--pre -i https://pypi.anaconda.org/OpenEye/simple/" - - CONDA_PY=34 python=3.4 OPENEYE_CHANNEL="--pre -i https://pypi.anaconda.org/OpenEye/simple/" - CONDA_PY=35 python=3.5 OPENEYE_CHANNEL="--pre -i https://pypi.anaconda.org/OpenEye/simple/" + - CONDA_PY=36 python=3.6 OPENEYE_CHANNEL="--pre -i https://pypi.anaconda.org/OpenEye/simple/" global: - ORGNAME="omnia" From bf471519ebcbc0634637c42a9664eb398fb589ce Mon Sep 17 00:00:00 2001 From: Levi Naden Date: Thu, 15 Feb 2018 12:15:54 -0500 Subject: [PATCH 4/6] More updates to the travis install script. --- devtools/travis-ci/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devtools/travis-ci/install.sh b/devtools/travis-ci/install.sh index e34e351..f74ef43 100755 --- a/devtools/travis-ci/install.sh +++ b/devtools/travis-ci/install.sh @@ -9,5 +9,5 @@ bash $MINICONDA -b -p $HOME/miniconda PIP_ARGS="-U" export PATH=$HOME/miniconda/bin:$PATH - -conda install --yes conda-build=2.1.5 jinja2 anaconda-client pip +conda update --yes conda +conda install --yes conda-build=2.1.7 jinja2 anaconda-client pip From 433521ad1b803d60102c900b1d23c85a3759ae3d Mon Sep 17 00:00:00 2001 From: jchodera Date: Thu, 15 Feb 2018 16:07:22 -0500 Subject: [PATCH 5/6] Update encrypted OpenEye license --- oe_license.txt.enc | Bin 6768 -> 6560 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/oe_license.txt.enc b/oe_license.txt.enc index 7dcb789be1b82be54817484e5e8a6cd05914dd4b..2460da8730b8a1cd9f03ae4d3245b7a95185bbe6 100644 GIT binary patch literal 6560 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 S?>V1Hsl8yf@+PQVjvOo8d(=4q literal 6768 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 Date: Fri, 16 Feb 2018 08:45:13 -0500 Subject: [PATCH 6/6] This should finally pass tests, since local tests are now passing --- openmoltools/tests/test_openeye.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/openmoltools/tests/test_openeye.py b/openmoltools/tests/test_openeye.py index 708b496..b128d77 100644 --- a/openmoltools/tests/test_openeye.py +++ b/openmoltools/tests/test_openeye.py @@ -11,7 +11,7 @@ import openmoltools.openeye import pandas as pd import mdtraj as md -from mdtraj.testing import raises +from numpy.testing import assert_raises smiles_fails_with_strictStereo = "CN1CCN(CC1)CCCOc2cc3c(cc2OC)C(=[NH+]c4cc(c(cc4Cl)Cl)OC)C(=C=[N-])C=[NH+]3" @@ -237,17 +237,17 @@ def test_ffxml_simulation(): @skipIf(not HAVE_OE, "Cannot test openeye module without OpenEye tools.") -@raises(RuntimeError) def test_charge_fail1(): - with utils.enter_temp_directory(): - openmoltools.openeye.smiles_to_antechamber(smiles_fails_with_strictStereo, "test.mol2", "test.frcmod", strictStereo=True) + with assert_raises(RuntimeError): + with utils.enter_temp_directory(): + openmoltools.openeye.smiles_to_antechamber(smiles_fails_with_strictStereo, "test.mol2", "test.frcmod", strictStereo=True) @skipIf(not HAVE_OE, "Cannot test openeye module without OpenEye tools.") -@raises(RuntimeError) def test_charge_fail2(): - m = openmoltools.openeye.smiles_to_oemol(smiles_fails_with_strictStereo) - m = openmoltools.openeye.get_charges(m, strictStereo=True, keep_confs=1) + with assert_raises(RuntimeError): + m = openmoltools.openeye.smiles_to_oemol(smiles_fails_with_strictStereo) + m = openmoltools.openeye.get_charges(m, strictStereo=True, keep_confs=1) @skipIf(not HAVE_OE, "Cannot test openeye module without OpenEye tools.") @@ -262,11 +262,11 @@ def test_charge_success2(): m = openmoltools.openeye.get_charges(m, strictStereo=False) @skipIf(not HAVE_OE, "Cannot test openeye module without OpenEye tools.") -@raises(RuntimeError) def test_oeassigncharges_fail(): - # Fail test for OEToolkits (2017.2.1) new charging function - m = openmoltools.openeye.smiles_to_oemol(smiles_fails_with_strictStereo) - m = openmoltools.openeye.get_charges(m, strictStereo=False, legacy=False) + with assert_raises(RuntimeError): + # Fail test for OEToolkits (2017.2.1) new charging function + m = openmoltools.openeye.smiles_to_oemol(smiles_fails_with_strictStereo) + m = openmoltools.openeye.get_charges(m, strictStereo=False, legacy=False) @skipIf(not HAVE_OE, "Cannot test openeye module without OpenEye tools.") def test_oeassigncharges_success():