Member Site › Forums › PyRosetta › PyRosetta – General › Error getting MinMover attributes
- This topic has 6 replies, 3 voices, and was last updated 12 years, 9 months ago by Anonymous.
-
AuthorPosts
-
-
March 25, 2012 at 5:54 pm #1214Anonymous
Hi,
I’m experiencing some very strange behavior on part of PyRosetta.
I’m running pre-built PyRosetta v2.011 for ScientificLinux (64 bit, r47657) on Linux 3.0.3 ( x86_64) with Python 2.6.6. I’ll use
MinMover
as an example, but this happens with many other object types.I can instantiate, configure and run a MinMover without a hitch, e.g.
min_mover.tolerance(0.025)
works fine. But when I try to access that information using a getter, i.e.min_mover.tolerance()
, I get anArgumentError
.Here’s the output from my iPython session:
In [1]: import rosetta
In [2]: rosetta.init()
PYROSETTA_DATABASE environment variable was set to: /vol/ek/share/csbw/tools/pyrosetta/rosetta_database... using it...
PyRosetta 2.011 [r47657] retrieved from: https://svn.rosettacommons.org/source/trunk/rosetta/rosetta_source
(C) Copyright Rosetta Commons Member Institutions.
Created in JHU by Sergey Lyskov and PyRosetta Team.
core.init: Mini-Rosetta version 47657 from https://svn.rosettacommons.org/source/trunk/rosetta/rosetta_source
core.init: command: app -database /vol/ek/share/csbw/tools/pyrosetta/rosetta_database -ex1 -ex2aro
core.init: 'RNG device' seed mode, using '/dev/urandom', seed=1831869119 seed_offset=0 real_seed=1831869119
core.init.random: RandomGenerator:init: Normal mode, seed=1831869119 RG_type=mt19937
In [3]: min_mover = rosetta.MinMover()
In [4]: min_mover.tolerance(0.025) # no problems here
In [5]: min_mover.tolerance
Out[5]:>
In [6]: min_mover.tolerance()
ArgumentError Traceback (most recent call last)
/a/fr-01/vol/home/grad/assaff/in ()
----> 1 min_mover.tolerance()
ArgumentError: Python argument types in
MinMover.tolerance(MinMover)
did not match C++ signature:
tolerance(MinMover_exposer_callback {lvalue}, double tolerance_in)
tolerance(protocols::simple_moves::MinMover {lvalue}, double tolerance_in)
In [7]: min_mover.min_type
Out[7]:>
In [8]: min_mover.min_type()
ArgumentError Traceback (most recent call last)
/a/fr-01/vol/home/grad/assaff/in ()
----> 1 min_mover.min_type()
ArgumentError: Python argument types in
MinMover.min_type(MinMover)
did not match C++ signature:
min_type(MinMover_exposer_callback {lvalue}, std::string min_type_in)
min_type(protocols::simple_moves::MinMover {lvalue}, std::string min_type_in)
In [9]: exit() -
March 25, 2012 at 5:57 pm #6847Anonymous
MinMover doesn’t have a getter tolerance(). At least, it doesn’t in trunk C++, SVN 47908. Is this a general answer to the missing functions?
-
March 26, 2012 at 3:39 am #6852Anonymous
I committed the path that add accessor methods, so builds for versions 48154+ will have it.
-
March 26, 2012 at 7:15 am #6855Anonymous
Getters and setters section in PyRosetta documentation:
http://www.pyrosetta.org/documentation#TOC-5.-Getters-and-Setters -
March 26, 2012 at 7:11 am #6853Anonymous
Thanks for your (insanely) quick reply, Steven. Saved me some time and agony.
Regarding generality, I don’t know how common this issue is among Rosetta objects. If it’s widespread, then IMHO objects missing basic getters *is* an issue (think debugging, or interactive PyRosetta).
-
March 26, 2012 at 7:13 am #6854Anonymous
Thanks, Sergey. I’m checking out the PyRosetta.develop dir right now.
Was that a specific oversight in MinMover, or a reoccurring theme?
-
March 26, 2012 at 1:27 pm #6857Anonymous
I would guess our general getter-and-setter co-coverage is about 75%. I would guess the coverage of internal data that SHOULD be exposed via getters and setters (as opposed to only being available via constructor) is something like 33%. These are wild guesses…
They’re generally easy to write if you want to attack the problem!
-
-
AuthorPosts
- You must be logged in to reply to this topic.