From 1d8fa2bbbeb1cc16c8af8bfbf8e419d9a1625876 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 12:33:52 -0700 Subject: [PATCH 01/22] Update setup.py with 3.2.0 information. --- setup.py | 67 ++++++++++++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 38 deletions(-) diff --git a/setup.py b/setup.py index 19d8938..6fe4229 100755 --- a/setup.py +++ b/setup.py @@ -1,19 +1,16 @@ #! /usr/bin/python -# PROPKA 3.1 -# -# -# setuptools installation of PROPKA 3.1 +# PROPKA 3 from setuptools import setup, find_packages -VERSION = "3.1.1" +VERSION = "3.2.0" -setup(name="PROPKA", - version=VERSION, - description="Heuristic pKa calculations with ligands", - long_description=""" +setup( + name="PROPKA", + version=VERSION, + description="Heuristic pKa calculations with ligands", long_description=""" PROPKA predicts the pKa values of ionizable groups in proteins (version 3.0) and -protein-ligand complexes (version 3.1) based on the 3D structure. +protein-ligand complexes (version 3.1 and later) based on the 3D structure. For proteins without ligands both version should produce the same result. @@ -32,31 +29,25 @@ in publications: See http://propka.org/ for the PROPKA web server. """, - author="Jan H. Jensen", - author_email="jhjensen@chem.ku.dk", - license="LGPL v2.1", - url="http://propka.org", - keywords="science", - classifiers=[ - 'Development Status :: 6 - Mature', - 'Environment :: Console', - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)', - 'Operating System :: POSIX', - 'Programming Language :: Python', - 'Topic :: Scientific/Engineering :: Bio-Informatics', - 'Topic :: Scientific/Engineering :: Chemistry', - ], - packages=find_packages(exclude=['scripts']), - package_data = {'propka': ['*.dat', '*.cfg']}, - #scripts = ["scripts/propka31.py"], # use entry point below - entry_points = { - 'console_scripts': [ - 'propka31 = propka.run:main', - ], - }, - zip_safe=True, - python_requires='>=3.5', - tests_require=["pandas", "numpy"], - test_suite="tests", -) + author="Jan H. Jensen", + author_email="jhjensen@chem.ku.dk", + license="LGPL v2.1", + url="http://propka.org", + keywords="science", + classifiers=[ + 'Development Status :: 6 - Mature', + 'Environment :: Console', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)', + 'Operating System :: POSIX', 'Programming Language :: Python', + 'Topic :: Scientific/Engineering :: Bio-Informatics', + 'Topic :: Scientific/Engineering :: Chemistry', + ], + packages=find_packages(exclude=['scripts']), + package_data={'propka': ['*.dat', '*.cfg']}, + entry_points={'console_scripts': ['propka31 = propka.run:main', ]}, + zip_safe=True, + python_requires='>=3.5', + tests_require=["pandas", "numpy"], + test_suite="tests", + ) From e8576fb4f3adc8553c3a955acb747af6881f52a0 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 13:12:09 -0700 Subject: [PATCH 02/22] Remove specific 3.1 version information. Except for name of script `propka31`; will handle that in another commit. --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 81d7472..ab849c8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# PROPKA 3.1 +# PROPKA 3.2 PROPKA predicts the pKa values of ionizable groups in proteins -(version 3.0) and protein-ligand complexes (version 3.1) +(version 3.0) and protein-ligand complexes (version 3.2 and later) based on the 3D structure. For proteins without ligands both version should produce the same result. @@ -25,7 +25,7 @@ you don't have setuptools installed you will need an internet connection so that the installation procedure can download the required files): - cd propka-3.1 + cd python setup.py install --user This will install the `propka31` script in your executable directory, @@ -59,7 +59,6 @@ Calculate using pdb file propka31 1hpx.pdb - ## Testing (for developers) Please see [`tests/README.md`](tests/README.md) for testing instructions. From 89a9eb15d43893e6d03bc5373167e8d28e2a33e6 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 13:17:33 -0700 Subject: [PATCH 03/22] Update INSTALL with better instructions. Remove explicit references to version 3.1 except for name of `propka31` script which will be changed in subsequent commit. --- INSTALL | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/INSTALL b/INSTALL index 04e0e36..6809d14 100644 --- a/INSTALL +++ b/INSTALL @@ -3,9 +3,10 @@ Clone repository or unpack the tar ball and install with [pip](https://pip.pypa.io): - pip install propka-3.1/ + pip install This will install the `propka31` script in your executable -directory. The `propka` Python module will also become available for -import. +directory. The `propka` Python module will also become available for import +and can be invoked in lieu of the `propka31` script via: + python -m propka From 54294684b0d7c09dd44c562e03130f4a7f2ea1a5 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 13:22:17 -0700 Subject: [PATCH 04/22] Remove broken links from README.md. --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index ab849c8..8e518fa 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,6 @@ in publications: * Olsson, Mats HM, Chresten R. Sondergaard, Michal Rostkowski, and Jan H. Jensen. "PROPKA3: consistent treatment of internal and surface residues in empirical pKa predictions." Journal of Chemical Theory and Computation 7, no. 2 (2011): 525-537. doi:[10.1021/ct100578z](https://doi.org/10.1021/ct100578z) -See [propka.ki.ku.dk](http://propka.ki.ku.dk/) for the PROPKA web server, -using the [tutorial](http://propka.ki.ku.dk/~luca/wiki/index.php/PROPKA_3.1_Tutorial). - - ## Installation Clone repository or unpack the tar ball and install with From d52620d4e946d2553e02191659d2eaeea5aa63c7 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 15:24:00 -0700 Subject: [PATCH 05/22] Update PROPKA header banner. --- propka/output.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/propka/output.py b/propka/output.py index 7353779..18768f6 100644 --- a/propka/output.py +++ b/propka/output.py @@ -363,7 +363,7 @@ def get_propka_header(): string """ today = date.today() - str_ = "propka3.1 {0!s:>93s}\n".format(today) + str_ = "propka3.2 {0!s:>93s}\n".format(today) str_ += """ ------------------------------------------------------------------------------- -- -- @@ -381,6 +381,9 @@ def get_propka_header(): -- VERSION 3.1, 07/01/2011, COPENHAGEN -- -- BY CHRESTEN R. SONDERGARD AND MATS H.M. OLSSON -- -- -- +-- VERSION 3.2, 06/17/2020, PLANET EARTH -- +-- SEE ABOVE FOR AUTHORS -- +-- -- ------------------------------------------------------------------------------- """ return str_ From 0e4f565c90cbfc6fddb460d4e74cc23b7d7e9430 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 15:24:20 -0700 Subject: [PATCH 06/22] Remove version number from tests. Tests aren't version-dependent. --- tests/test_basic_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_basic_regression.py b/tests/test_basic_regression.py index fc78a21..54c41f5 100644 --- a/tests/test_basic_regression.py +++ b/tests/test_basic_regression.py @@ -1,4 +1,4 @@ -"""Tests for PROPKA 3.1""" +"""Tests for PROPKA""" import logging import os import re From 4e7a41730d3fae431df16901310af3e610cdd30f Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 15:25:23 -0700 Subject: [PATCH 07/22] Change module version number. --- propka/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/propka/__init__.py b/propka/__init__.py index ecfacd3..50786dc 100644 --- a/propka/__init__.py +++ b/propka/__init__.py @@ -1,4 +1,4 @@ -"""PROPKA 3.1 +"""PROPKA 3.2 See https://github.com/jensengroup/propka-3.1 for more information. From 0c4979560d0844c33bc201065a90837aad14d10c Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 15:25:50 -0700 Subject: [PATCH 08/22] Change propka31 to propka32. --- INSTALL | 4 ++-- README.md | 8 ++++---- scripts/{propka31.py => propka32.py} | 0 setup.py | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename scripts/{propka31.py => propka32.py} (100%) diff --git a/INSTALL b/INSTALL index 6809d14..24b6241 100644 --- a/INSTALL +++ b/INSTALL @@ -5,8 +5,8 @@ Clone repository or unpack the tar ball and install with pip install -This will install the `propka31` script in your executable +This will install the `propka32` script in your executable directory. The `propka` Python module will also become available for import -and can be invoked in lieu of the `propka31` script via: +and can be invoked in lieu of the `propka32` script via: python -m propka diff --git a/README.md b/README.md index 8e518fa..aaab4fc 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ required files): cd python setup.py install --user -This will install the `propka31` script in your executable directory, +This will install the `propka32` script in your executable directory, as configured for setuptools, for instance `~/.local/bin`. You can change the bin directory with the `--install-scripts` option. For -example, in order to install in my `bin` directory in my home +example, in order to install in the `bin` directory in the home directory: python setup.py install --user --install-scripts ~/bin @@ -47,13 +47,13 @@ from within a virtual environment (e.g., via [virtualenv](https://pypi.org/proje 1. Clone the code from GitHub 2. `python setup.py install --user` -2. Run `propka31` with a .pdb file (see Examples) +2. Run `propka32` with a .pdb file (see Examples) ## Examples Calculate using pdb file - propka31 1hpx.pdb + propka32 1hpx.pdb ## Testing (for developers) diff --git a/scripts/propka31.py b/scripts/propka32.py similarity index 100% rename from scripts/propka31.py rename to scripts/propka32.py diff --git a/setup.py b/setup.py index 6fe4229..20dc5ef 100755 --- a/setup.py +++ b/setup.py @@ -45,7 +45,7 @@ See http://propka.org/ for the PROPKA web server. ], packages=find_packages(exclude=['scripts']), package_data={'propka': ['*.dat', '*.cfg']}, - entry_points={'console_scripts': ['propka31 = propka.run:main', ]}, + entry_points={'console_scripts': ['propka32 = propka.run:main', ]}, zip_safe=True, python_requires='>=3.5', tests_require=["pandas", "numpy"], From 2909173caf24276373071951f672c2e9e4f36bd4 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Wed, 17 Jun 2020 15:31:16 -0700 Subject: [PATCH 09/22] Add missing *.json to package data list. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 20dc5ef..506841e 100755 --- a/setup.py +++ b/setup.py @@ -44,7 +44,7 @@ See http://propka.org/ for the PROPKA web server. 'Topic :: Scientific/Engineering :: Chemistry', ], packages=find_packages(exclude=['scripts']), - package_data={'propka': ['*.dat', '*.cfg']}, + package_data={'propka': ['*.dat', '*.cfg', '*.json']}, entry_points={'console_scripts': ['propka32 = propka.run:main', ]}, zip_safe=True, python_requires='>=3.5', From a2196cdc6fba738d83dc2f373bfde7a74b915dc9 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Thu, 18 Jun 2020 08:19:22 -0700 Subject: [PATCH 10/22] Consolidate documentation. Addresses https://github.com/jensengroup/propka-3.1/pull/61#discussion_r442016279. --- INSTALL | 12 --------- README.md | 74 ++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 46 insertions(+), 40 deletions(-) delete mode 100644 INSTALL diff --git a/INSTALL b/INSTALL deleted file mode 100644 index 24b6241..0000000 --- a/INSTALL +++ /dev/null @@ -1,12 +0,0 @@ -## Installation - -Clone repository or unpack the tar ball and install with -[pip](https://pip.pypa.io): - - pip install - -This will install the `propka32` script in your executable -directory. The `propka` Python module will also become available for import -and can be invoked in lieu of the `propka32` script via: - - python -m propka diff --git a/README.md b/README.md index aaab4fc..759a331 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ PROPKA predicts the pKa values of ionizable groups in proteins (version 3.0) and protein-ligand complexes (version 3.2 and later) based on the 3D structure. -For proteins without ligands both version should produce the same result. +For proteins without ligands, both version should produce the same result. The method is described in the following papers, which you should cite in publications: @@ -13,45 +13,66 @@ in publications: * Olsson, Mats HM, Chresten R. Sondergaard, Michal Rostkowski, and Jan H. Jensen. "PROPKA3: consistent treatment of internal and surface residues in empirical pKa predictions." Journal of Chemical Theory and Computation 7, no. 2 (2011): 525-537. doi:[10.1021/ct100578z](https://doi.org/10.1021/ct100578z) +## Requirements + +PROPKA 3.2 requires Python 3.5 or higher. Additional requirements are specified in the `requirements.txt` file and automatically satisfied when installing with [pip](https://pip.pypa.io). + ## Installation -Clone repository or unpack the tar ball and install with -[setuptools](http://pythonhosted.org/setuptools/index.html) (note: if -you don't have setuptools installed you will need an internet -connection so that the installation procedure can download the -required files): +### PIP-based installation - cd - python setup.py install --user +The easiest way to install PROPKA is via the [PyPI archive](https://pypi.org/project/PROPKA/) with the command -This will install the `propka32` script in your executable directory, -as configured for setuptools, for instance `~/.local/bin`. You can -change the bin directory with the `--install-scripts` option. For -example, in order to install in the `bin` directory in the home -directory: + pip install propka - python setup.py install --user --install-scripts ~/bin +As always, a virtual environment (e.g., via [virtualenv](https://pypi.org/project/virtualenv/)) is recommended when installing packages. For the purposes of testing or development, you may prefer to install PROPKA as an editable module via PIP by running -``` -pip install -e . -``` -from within a virtual environment (e.g., via [virtualenv](https://pypi.org/project/virtualenv/)). -## Requirements + pip install -e . -* Python 3.5 or higher +### Source-based installation + +The source code can be installed by cloning the repository or unpacking from a source code archive and running + + pip install . + +in the source directory. + +Installation is also possible with +[setuptools](http://pythonhosted.org/setuptools/index.html) which offers additional customization options; e.g. + + python setup.py install --user + +will install the `propka32` script in your executable directory, +as configured for setuptools, for instance `~/.local/bin` while + + python setup.py install --user --install-scripts ~/bin + +will install the script in the `bin` subdirectory of your home directory. ## Getting started -1. Clone the code from GitHub -2. `python setup.py install --user` -2. Run `propka32` with a .pdb file (see Examples) +PROPKA can be used either as a module or via the installed script; i.e., either -## Examples + propka32 -Calculate using pdb file +or + + python -m propka + +works for invoking PROPKA. + +A brief list of available options can be obtained by running PROPKA with no options: + + propka32 + +A longer list of options and descriptions is available using the `--help` option: + + propka32 --help + +Most users run PROPKA by invoking the program with a PDB file as its argument; e.g., propka32 1hpx.pdb @@ -67,6 +88,3 @@ Please cite these references in publications: * Sondergaard, Chresten R., Mats HM Olsson, Michal Rostkowski, and Jan H. Jensen. "Improved Treatment of Ligands and Coupling Effects in Empirical Calculation and Rationalization of pKa Values." Journal of Chemical Theory and Computation 7, no. 7 (2011): 2284-2295. * Olsson, Mats HM, Chresten R. Sondergaard, Michal Rostkowski, and Jan H. Jensen. "PROPKA3: consistent treatment of internal and surface residues in empirical pKa predictions." Journal of Chemical Theory and Computation 7, no. 2 (2011): 525-537. - - - From 573b38db386b1e79ed4053a1bcc4ee2b516ff142 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Thu, 18 Jun 2020 08:24:51 -0700 Subject: [PATCH 11/22] Fix stray `propka31` to `propka32`. --- scripts/propka32.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/propka32.py b/scripts/propka32.py index faa5b46..0ccdffb 100755 --- a/scripts/propka32.py +++ b/scripts/propka32.py @@ -3,12 +3,12 @@ This is the original propka script. However, this distribute-based installation moved the main() function into propka.run.main and just -generates a script called propka31 from the setup.py installation +generates a script called `propka32` from the setup.py installation script. You should not need to use this script. (Also note that there can be import problems because the script name is the same as the module name; that's why the new script is called -propka31.) +`propka32`.) """ from propka.lib import loadOptions from propka.input import read_parameter_file, read_molecule_file From 7a25ec6598ac01558c5416e104bde5452172d919 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Thu, 18 Jun 2020 08:57:12 -0700 Subject: [PATCH 12/22] Update executable script name. Changed script name to propka3 based on https://github.com/jensengroup/propka-3.1/pull/61#discussion_r442326049 Updated additional information in setup.py --- README.md | 10 +++++----- scripts/{propka32.py => propka3.py} | 4 ++-- setup.py | 8 +++++--- 3 files changed, 12 insertions(+), 10 deletions(-) rename scripts/{propka32.py => propka3.py} (93%) diff --git a/README.md b/README.md index 759a331..8b4712c 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Installation is also possible with python setup.py install --user -will install the `propka32` script in your executable directory, +will install the `propka3` script in your executable directory, as configured for setuptools, for instance `~/.local/bin` while python setup.py install --user --install-scripts ~/bin @@ -56,7 +56,7 @@ will install the script in the `bin` subdirectory of your home directory. PROPKA can be used either as a module or via the installed script; i.e., either - propka32 + propka3 or @@ -66,15 +66,15 @@ works for invoking PROPKA. A brief list of available options can be obtained by running PROPKA with no options: - propka32 + propka3 A longer list of options and descriptions is available using the `--help` option: - propka32 --help + propka3 --help Most users run PROPKA by invoking the program with a PDB file as its argument; e.g., - propka32 1hpx.pdb + propka3 1hpx.pdb ## Testing (for developers) diff --git a/scripts/propka32.py b/scripts/propka3.py similarity index 93% rename from scripts/propka32.py rename to scripts/propka3.py index 0ccdffb..5896ae6 100755 --- a/scripts/propka32.py +++ b/scripts/propka3.py @@ -3,12 +3,12 @@ This is the original propka script. However, this distribute-based installation moved the main() function into propka.run.main and just -generates a script called `propka32` from the setup.py installation +generates a script called `propka3` from the setup.py installation script. You should not need to use this script. (Also note that there can be import problems because the script name is the same as the module name; that's why the new script is called -`propka32`.) +`propka3`.) """ from propka.lib import loadOptions from propka.input import read_parameter_file, read_molecule_file diff --git a/setup.py b/setup.py index 506841e..4b10e79 100755 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ from setuptools import setup, find_packages VERSION = "3.2.0" setup( - name="PROPKA", + name="propka", version=VERSION, description="Heuristic pKa calculations with ligands", long_description=""" PROPKA predicts the pKa values of ionizable groups in proteins (version 3.0) and @@ -31,6 +31,8 @@ See http://propka.org/ for the PROPKA web server. """, author="Jan H. Jensen", author_email="jhjensen@chem.ku.dk", + maintainer="Nathan Baker", + maintainer_email="nathanandrewbaker@gmail.com", license="LGPL v2.1", url="http://propka.org", keywords="science", @@ -45,9 +47,9 @@ See http://propka.org/ for the PROPKA web server. ], packages=find_packages(exclude=['scripts']), package_data={'propka': ['*.dat', '*.cfg', '*.json']}, - entry_points={'console_scripts': ['propka32 = propka.run:main', ]}, + entry_points={'console_scripts': ['propka3 = propka.run:main', ]}, zip_safe=True, python_requires='>=3.5', - tests_require=["pandas", "numpy"], + tests_require=["pandas", "numpy", "pytest"], test_suite="tests", ) From 75057fbfef1150e8b998cf9f38d65d2f0e178073 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Thu, 18 Jun 2020 09:53:17 -0700 Subject: [PATCH 13/22] Remove specific version number Co-authored-by: Oliver Beckstein --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b4712c..4cf474a 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ in publications: ## Requirements -PROPKA 3.2 requires Python 3.5 or higher. Additional requirements are specified in the `requirements.txt` file and automatically satisfied when installing with [pip](https://pip.pypa.io). +PROPKA 3 requires Python 3.5 or higher. Additional requirements are specified in the `requirements.txt` file and automatically satisfied when installing with [pip](https://pip.pypa.io). ## Installation From 18368b456a8e10957c5908009e3190c68bfcbfb7 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Thu, 18 Jun 2020 09:53:51 -0700 Subject: [PATCH 14/22] Remove setuptools discussion Co-authored-by: Oliver Beckstein --- README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index 4cf474a..2aa883d 100644 --- a/README.md +++ b/README.md @@ -45,12 +45,7 @@ Installation is also possible with python setup.py install --user -will install the `propka3` script in your executable directory, -as configured for setuptools, for instance `~/.local/bin` while - - python setup.py install --user --install-scripts ~/bin - -will install the script in the `bin` subdirectory of your home directory. +will install the `propka3` script in your executable directory. ## Getting started From e80473db33e530860b3904755dc48c5fcea5595f Mon Sep 17 00:00:00 2001 From: Thomas Holder Date: Thu, 18 Jun 2020 20:19:10 +0200 Subject: [PATCH 15/22] Handle KeyError in read_parameter_file Fixes basic usage of propka after `python setup.py install` followed by `propka3 1ubq.pdb` --- propka/input.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/propka/input.py b/propka/input.py index 3971f12..b71b96f 100644 --- a/propka/input.py +++ b/propka/input.py @@ -99,7 +99,7 @@ def read_parameter_file(input_file, parameters): try: ifile = resource_filename(__name__, input_file) input_ = open_file_for_reading(ifile) - except (IOError, FileNotFoundError, ValueError): + except (IOError, FileNotFoundError, ValueError, KeyError): input_ = open_file_for_reading(input_file) for line in input_: parameters.parse_line(line) From 6b9f01a7c3d85548644895bbfc2d6e3e246f6ea9 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Fri, 19 Jun 2020 06:24:40 -0700 Subject: [PATCH 16/22] Standardize version references to "PROPKA 3". Partially addresses https://github.com/jensengroup/propka-3.1/pull/61#pullrequestreview-433445231 --- README.md | 4 ++-- propka/__init__.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2aa883d..501ce6a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# PROPKA 3.2 +# PROPKA 3 PROPKA predicts the pKa values of ionizable groups in proteins -(version 3.0) and protein-ligand complexes (version 3.2 and later) +(version 3.0) and protein-ligand complexes (version 3.1 and later) based on the 3D structure. For proteins without ligands, both version should produce the same result. diff --git a/propka/__init__.py b/propka/__init__.py index 50786dc..58533d8 100644 --- a/propka/__init__.py +++ b/propka/__init__.py @@ -1,4 +1,4 @@ -"""PROPKA 3.2 +"""PROPKA 3 See https://github.com/jensengroup/propka-3.1 for more information. From 73e956f141930dd5ae366b7eeac8e1437f1c993f Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Fri, 19 Jun 2020 06:28:01 -0700 Subject: [PATCH 17/22] Add description of PROPKA versions. Implements suggestion https://github.com/jensengroup/propka-3.1/pull/61#discussion_r442352878 --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 501ce6a..dc5fea5 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,10 @@ in publications: * Olsson, Mats HM, Chresten R. Sondergaard, Michal Rostkowski, and Jan H. Jensen. "PROPKA3: consistent treatment of internal and surface residues in empirical pKa predictions." Journal of Chemical Theory and Computation 7, no. 2 (2011): 525-537. doi:[10.1021/ct100578z](https://doi.org/10.1021/ct100578z) +## PROPKA versions + +The code in this repository is named _PROPKA 3_ and it is based on the original PROPKA 3.1 release (described in the papers above). It has undergone various changes, which is reflected in the version numbering. For instance, version 3.2 contains a number of API changes and code refactoring that introduce incompatibilities between the original 3.1 release and the more recent versions. In the future, we will increase the minor version number to indicate further changes to the code base (e.g., release 3.3 or 3.4). The major release number is not expected to change unless major changes to the underlying algorithms are implemented. + ## Requirements PROPKA 3 requires Python 3.5 or higher. Additional requirements are specified in the `requirements.txt` file and automatically satisfied when installing with [pip](https://pip.pypa.io). @@ -76,6 +80,7 @@ Most users run PROPKA by invoking the program with a PDB file as its argument; e Please see [`tests/README.md`](tests/README.md) for testing instructions. Please run these tests after making changes to the code and _before_ pushing commits. + ## References / Citations Please cite these references in publications: From 9cd0da8ff3ff851ac0ab7c5bb428a1f8df328e58 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Fri, 19 Jun 2020 06:39:07 -0700 Subject: [PATCH 18/22] Clean up README instructions. Remove references to setuptools and add some additional fixes. Addresses https://github.com/jensengroup/propka-3.1/pull/61#discussion_r442357797 --- README.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index dc5fea5..bef0e99 100644 --- a/README.md +++ b/README.md @@ -29,13 +29,9 @@ The easiest way to install PROPKA is via the [PyPI archive](https://pypi.org/pro pip install propka +This installation will install the `propka` Python module and the `propka3` executable script. As always, a virtual environment (e.g., via [virtualenv](https://pypi.org/project/virtualenv/)) is recommended when installing packages. -For the purposes of testing or development, you may prefer to install PROPKA as -an editable module via PIP by running - - pip install -e . - ### Source-based installation The source code can be installed by cloning the repository or unpacking from a source code archive and running @@ -43,13 +39,11 @@ The source code can be installed by cloning the repository or unpacking from a s pip install . in the source directory. +For the purposes of testing or development, you may prefer to install PROPKA as an editable module via PIP by running -Installation is also possible with -[setuptools](http://pythonhosted.org/setuptools/index.html) which offers additional customization options; e.g. + pip install -e . - python setup.py install --user - -will install the `propka3` script in your executable directory. +in the source directory. ## Getting started From 2f47d0ea9a5884b633d1c0ffcc7ec5cb6ecbdfc6 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Fri, 19 Jun 2020 06:43:33 -0700 Subject: [PATCH 19/22] Remove redundant PROPKA script. Fixes https://github.com/jensengroup/propka-3.1/pull/61#discussion_r442401079 --- scripts/propka3.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100755 scripts/propka3.py diff --git a/scripts/propka3.py b/scripts/propka3.py deleted file mode 100755 index 5896ae6..0000000 --- a/scripts/propka3.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -"""PROPKA script. - -This is the original propka script. However, this distribute-based -installation moved the main() function into propka.run.main and just -generates a script called `propka3` from the setup.py installation -script. You should not need to use this script. - -(Also note that there can be import problems because the script name -is the same as the module name; that's why the new script is called -`propka3`.) -""" -from propka.lib import loadOptions -from propka.input import read_parameter_file, read_molecule_file -from propka.parameters import Parameters -from propka.molecular_container import MolecularContainer - - -def main(): - """Read in structure files, calculates pKa values, and prints pKa files.""" - # loading options, flaggs and arguments - options = loadOptions([]) - pdbfiles = options.filenames - parameters = read_parameter_file(options.parameters, Parameters()) - - for pdbfile in pdbfiles: - my_molecule = MolecularContainer(parameters, options) - my_molecule = read_molecule_file(pdbfile, my_molecule) - my_molecule.calculate_pka() - my_molecule.write_pka() - if options.generate_propka_input: - my_molecule.write_propka() - - -if __name__ == '__main__': - main() From fb38d28f51d2b4c68e72f103c9aa1af73183cd44 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Fri, 19 Jun 2020 06:46:36 -0700 Subject: [PATCH 20/22] Add specific python versions to setup.py Co-authored-by: Oliver Beckstein --- setup.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4b10e79..f5b7470 100755 --- a/setup.py +++ b/setup.py @@ -41,7 +41,13 @@ See http://propka.org/ for the PROPKA web server. 'Environment :: Console', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)', - 'Operating System :: POSIX', 'Programming Language :: Python', + 'Operating System :: POSIX', + 'Operating System :: MacOS :: MacOS X', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'Topic :: Scientific/Engineering :: Bio-Informatics', 'Topic :: Scientific/Engineering :: Chemistry', ], From 77286be67a29978aee962d772a18abf9f2f00337 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Fri, 19 Jun 2020 06:52:06 -0700 Subject: [PATCH 21/22] Add Microsoft Windows to OS list. Addresses https://github.com/jensengroup/propka-3.1/pull/61#discussion_r442365647 --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index f5b7470..44f6a56 100755 --- a/setup.py +++ b/setup.py @@ -43,6 +43,7 @@ See http://propka.org/ for the PROPKA web server. 'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)', 'Operating System :: POSIX', 'Operating System :: MacOS :: MacOS X', + 'Operating System :: Microsoft :: Windows', 'Programming Language :: Python', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', From 11bc32e9fcea71bec87681aab87ff8d52dde49b1 Mon Sep 17 00:00:00 2001 From: Nathan Baker Date: Fri, 19 Jun 2020 07:21:05 -0700 Subject: [PATCH 22/22] Require Python 3.6+. Fixes https://github.com/jensengroup/propka-3.1/pull/61#issuecomment-646190977 --- README.md | 2 +- setup.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bef0e99..4f24163 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ The code in this repository is named _PROPKA 3_ and it is based on the original ## Requirements -PROPKA 3 requires Python 3.5 or higher. Additional requirements are specified in the `requirements.txt` file and automatically satisfied when installing with [pip](https://pip.pypa.io). +PROPKA 3 requires Python 3.6 or higher. Additional requirements are specified in the `requirements.txt` file and automatically satisfied when installing with [pip](https://pip.pypa.io). ## Installation diff --git a/setup.py b/setup.py index 44f6a56..9efaf41 100755 --- a/setup.py +++ b/setup.py @@ -45,7 +45,6 @@ See http://propka.org/ for the PROPKA web server. 'Operating System :: MacOS :: MacOS X', 'Operating System :: Microsoft :: Windows', 'Programming Language :: Python', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', @@ -56,7 +55,7 @@ See http://propka.org/ for the PROPKA web server. package_data={'propka': ['*.dat', '*.cfg', '*.json']}, entry_points={'console_scripts': ['propka3 = propka.run:main', ]}, zip_safe=True, - python_requires='>=3.5', + python_requires='>=3.6', tests_require=["pandas", "numpy", "pytest"], test_suite="tests", )