From ddaf27dea83985a6e52308ba13f456c653652069 Mon Sep 17 00:00:00 2001 From: Oliver Beckstein Date: Tue, 10 Jun 2014 14:12:24 -0700 Subject: [PATCH] run.single() to run a propka calculation without script - can pass a single pdffile (or stream(!)) - added options lib.loadOptions() to pass opt string --- propka/lib.py | 8 ++++++-- propka/run.py | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/propka/lib.py b/propka/lib.py index caa62ff..88f2ba9 100644 --- a/propka/lib.py +++ b/propka/lib.py @@ -107,7 +107,7 @@ def make_combination(combis, interaction): -def loadOptions(): +def loadOptions(*args): """ load the arguments parser with options """ @@ -166,7 +166,11 @@ def loadOptions(): # parsing and returning options and arguments - options, args = parser.parse_args() + if len(args) == 0: + # command line + options, args = parser.parse_args() + else: + options, args = parser.parse_args(list(args)) # adding specified filenames to arguments if options.filenames: diff --git a/propka/run.py b/propka/run.py index 867a000..7eb13a5 100644 --- a/propka/run.py +++ b/propka/run.py @@ -13,3 +13,21 @@ def main(): my_molecule = propka.molecular_container.Molecular_container(pdbfile, options) my_molecule.calculate_pka() my_molecule.write_pka() + +def single(pdbfile, optargs=None): + """Run a single PROPKA calculation using *pdbfile* as input. + + Commandline options can be passed as a **list** in *optargs*. + + .. rubric:: Example + + :: + single("protein.pdb", optargs=["--mutation=N25R/N181D", "-v", "--pH=7.2"]) + """ + optargs = optargs if optargs is not None else [] + options, ignored_pdbfiles = propka.lib.loadOptions(*optargs) + + my_molecule = propka.molecular_container.Molecular_container(pdbfile, options) + my_molecule.calculate_pka() + my_molecule.write_pka() + return my_molecule