Re: [Rdkit-discuss] any want to get the current RDKit version?
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
From: Andrew D. <da...@da...> - 2010-01-27 02:58:17
|
On Jan 26, 2010, at 6:55 AM, Greg Landrum wrote: > The fingerprinting functions already have version numbers assigned to > them. I exposed this information to python this morning: > [4]>>> from rdkit.Chem import rdmolops > > [5]>>> rdmolops.__LayeredFingerprint_version__ > Out[5] '0.2.1' Just a note that leading and trailing "__"s are reserved for the Python implementation. Removing the trailing "__" should be fine, but why even have the leading "__"? > That's part of it. The next part is the boost version, which is also > now available (see my previous post from this morning): > > [10]>>> from rdkit import rdBase Oh! Another note: the docstring from rdbase says No user-serviceable parts inside. ;) > But all these pieces of information don't really address the > compatibility problem: fingerprints between different versions of the > RDKit or different boost versions are often, but not always, > compatible with each other. > > For example, the following combinations of versions should give > compatible fingerprints: > - RDKit 2009Q3_1+boost 1.40; RDKit 2009Q4_1+boost 1.40; RDKit > 2009Q3_1+boost 1.41; RDKit 2009Q4_1+boost 1.41 > These combinations should also be compatible with each other, but not > with those above: > - RDKit 2009Q3_1+boost 1.39; RDKit 2009Q4_1+boost 1.39; RDKit > 2009Q3_1+boost 1.38; RDKit 2009Q4_1+boost 1.38 Ooof. I see your point. But isn't that something to push down into the __LayeredFingerprint_version__ string? That is, what's the purpose of the version number that's there, if it can't be used as a way to test if two fingerprints can be compared? Perhaps there could be an ugly set of #defines, to get a unique number based on the relevant factors? #if BOOST_VERSION >= 140 LayeredFingerprint_version = "1.1" #else LayeredFingerprint_version = "1.0" #endif That's doable, but it's going to be ugly and a bit fragile. The only other solution I really see would be to distribute all the components (like the boost RNG code) as part of the distribution. This is definitely a place where binary-only distributions have it easier. Andrew da...@da... |