[Rdkit-discuss] Link error using Xcode 5

2014-01-31 Thread Alexey Chernobrovkin
Dear all,

I’ve just tried to build simple GUI in Xcode using rdkit libraries. 
Unfortunately I’ve got link errors. I tried to use homebrew installed version, 
also compiled sources from github by myself. Any idea?

PS
Python bindings work perfectly on my computer.
If I don’ include MolDrowing.h and DrawingToSVG.h project is linked without 
errors.

simple code:

#include testmol.h
#include GraphMol/RDKitBase.h
#include GraphMol/SmilesParse/SmilesParse.h
#include GraphMol/Depictor/RDDepictor.h
#include Geometry/point.h
#include GraphMol/ROMol.h

#include GraphMol/MolDrawing/MolDrawing.h
//#include GraphMol/MolDrawing/DrawingToSVG.h


Error listing:

Ld 
/Users/black/Library/Developer/Xcode/DerivedData/SMILES_Viewer-ftbnkyhvxqageqflovukoyyuiamy/Build/Products/Debug/SMILES\
 Viewer.app/Contents/MacOS/SMILES\ Viewer normal x86_64
cd /Users/black/projects/SMILES Viewer
setenv MACOSX_DEPLOYMENT_TARGET 10.9

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
 -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk
 
-L/Users/black/Library/Developer/Xcode/DerivedData/SMILES_Viewer-ftbnkyhvxqageqflovukoyyuiamy/Build/Products/Debug
 -L/Users/black/projects/rdkit/build/lib -L/usr/local/Cellar/boost/1.54.0/lib 
-F/Users/black/Library/Developer/Xcode/DerivedData/SMILES_Viewer-ftbnkyhvxqageqflovukoyyuiamy/Build/Products/Debug
 -filelist 
/Users/black/Library/Developer/Xcode/DerivedData/SMILES_Viewer-ftbnkyhvxqageqflovukoyyuiamy/Build/Intermediates/SMILES\
 Viewer.build/Debug/SMILES\ Viewer.build/Objects-normal/x86_64/SMILES\ 
Viewer.LinkFileList -mmacosx-version-min=10.9 -fobjc-arc -fobjc-link-runtime 
-stdlib=libstdc++ -framework Cocoa -Xlinker -dependency_info -Xlinker 
/Users/black/Library/Developer/Xcode/DerivedData/SMILES_Viewer-ftbnkyhvxqageqflovukoyyuiamy/Build/Intermediates/SMILES\
 Viewer.build/Debug/SMILES\ Viewer.build/Objects-normal/x86_64/SMILES\ 
Viewer_dependency_info.dat -o 
/Users/black/Library/Developer/Xcode/DerivedData/SMILES_Viewer-ftbnkyhvxqageqflovukoyyuiamy/Build/Products/Debug/SMILES\
 Viewer.app/Contents/MacOS/SMILES\ Viewer

Undefined symbols for architecture x86_64:
  Invar::operator(std::ostream, Invar::Invariant), referenced from:
  RDGeom::Point3D::operator[](unsigned int) const in testmol.o
  RDGeom::Point3D::operator[](unsigned int) in testmol.o
  RDGeom::Point2D::operator[](unsigned int) const in testmol.o
  RDGeom::Point2D::operator[](unsigned int) in testmol.o
  RDKit::ROMol::initFromOther(RDKit::ROMol const, bool), referenced from:
  RDKit::RWMol::RWMol(RDKit::ROMol const, bool) in testmol.o
  RDKit::ROMol::initMol(), referenced from:
  RDKit::ROMol::ROMol() in testmol.o
  RDKit::MolOps::Kekulize(RDKit::RWMol, bool, unsigned int), referenced from:
  RDKit::Drawing::MolToDrawing(RDKit::ROMol const, std::vectorint, 
std::allocatorint  const*, bool) in testmol.o
  RDKit::MolOps::findSSSR(RDKit::ROMol const, std::vectorstd::vectorint, 
std::allocatorint , std::allocatorstd::vectorint, std::allocatorint   
*), referenced from:
  RDKit::Drawing::DrawMol(RDKit::ROMol const, int, std::vectorint, 
std::allocatorint  const*, unsigned int, double, double, double) in testmol.o
  RDLog::toStream(std::ostream), referenced from:
  RDGeom::Point3D::operator[](unsigned int) const in testmol.o
  RDGeom::Point3D::operator[](unsigned int) in testmol.o
  RDGeom::Point2D::operator[](unsigned int) const in testmol.o
  RDGeom::Point2D::operator[](unsigned int) in testmol.o
  RDGeom::operator/(RDGeom::Point2D const, double), referenced from:
  RDKit::Drawing::DrawMol(RDKit::ROMol const, int, std::vectorint, 
std::allocatorint  const*, unsigned int, double, double, double) in testmol.o
  RDGeom::operator-(RDGeom::Point2D const, RDGeom::Point2D const), 
referenced from:
  RDKit::Drawing::DrawMol(RDKit::ROMol const, int, std::vectorint, 
std::allocatorint  const*, unsigned int, double, double, double) in testmol.o
  RDGeom::operator*(RDGeom::Point2D const, double), referenced from:
  RDKit::Drawing::DrawMol(RDKit::ROMol const, int, std::vectorint, 
std::allocatorint  const*, unsigned int, double, double, double) in testmol.o
  RDGeom::operator+(RDGeom::Point2D const, RDGeom::Point2D const), 
referenced from:
  RDKit::Drawing::DrawMol(RDKit::ROMol const, int, std::vectorint, 
std::allocatorint  const*, unsigned int, double, double, double) in testmol.o
  RDDepict::compute2DCoords(RDKit::ROMol, std::mapint, RDGeom::Point2D, 
std::lessint, std::allocatorstd::pairint const, RDGeom::Point2D   
const*, bool, bool, unsigned int, unsigned int, int, bool), referenced from:
  RDKit::Drawing::MolToDrawing(RDKit::ROMol const, std::vectorint, 
std::allocatorint  const*, bool) in testmol.o
  RDKit::Atom::getTotalNumHs(bool) const, referenced from:
  RDKit::Drawing::detail::getAtomSymbolAndOrientation(RDKit::Atom const, 

Re: [Rdkit-discuss] Possible rotatable bonds replacement

2014-01-31 Thread JP
My 2p worth:

I am not a big fan of outright replacing the NumRotatableBonds
implementation (option 2).  This is quite a popular descriptor which is
used in many ways (e.g. QSAR models, conformer generation, property
calculation, etc.).  IF we are lucky (or skilful, or have had enough time),
we have tests written out for everything which will break as soon as soon
as we get different rotatable bonds count, and different results.  We can
then revalidate our protocols using the new (strict) rotatable counts.
 Perhaps we get better correlations/enrichments/AUCs etc ! Yeah!

On the other hand option (1), having two methods NumRotatableBonds() and
NumStrictRotatableBonds() will lead to some confusion.  Greg has a point
about different people and/or libraries intermixing between the two.

Like Paul, I prefer option (3) - with the default behaviour giving the old
rotatable counts (not strict).  This does not come for free either, as the
API becomes slightly less clean (and what to do in the future when, for
example, someone finds a non-SMARTS based way to do this -- add another
parameter?).  Still I think this is the less of all evils.

Thanks Toby  Greg!
JP


On 31 January 2014 06:54, paul.czodrow...@merckgroup.com wrote:

  I could add the new descriptor as Toby provided it. People are then
  free to pick between NumRotatableBonds() and NumStrictRotatableBonds
  (). This has the advantage of maintaining strict backwards
  compatibility, but I could imagine it being confusing/irritating to
  people using the code to have to choose between them (or, worse, using
 both).
 
  Another option is to just replace the current NumRotatableBonds()
  SMARTS with the new one.
  This loses backwards compatibility, but replaces NumRotableBonds()
  with something more correct.
 
  Finally, I could take a hybrid approach: replace the default
  NumRotatableBonds() with the new one, but add an extra argument that
  allows the old one to be used.

 
  I'm leaning towards the second option. I'd normally go with the
  third, but I almost view this as a bug fix for the rotatable bonds
 definition.
 
  Comments? suggestions? Other options?

 I like your idea of your hybrid approach which would mean backwards
 compatibility.


 paul



 This message and any attachment are confidential and may be privileged or
 otherwise protected from disclosure. If you are not the intended recipient,
 you must not copy this message or attachment or disclose the contents to
 any other person. If you have received this transmission in error, please
 notify the sender immediately and delete the message and any attachment
 from your system. Merck KGaA, Darmstadt, Germany and any of its
 subsidiaries do not accept liability for any omissions or errors in this
 message which may arise as a result of E-Mail-transmission or for damages
 resulting from any unauthorized changes of the content of this message and
 any attachment thereto. Merck KGaA, Darmstadt, Germany and any of its
 subsidiaries do not guarantee that this message is free of viruses and does
 not accept liability for any damages caused by any virus transmitted
 therewith.

 Click http://www.merckgroup.com/disclaimer to access the German, French,
 Spanish and Portuguese versions of this disclaimer.


 --
 WatchGuard Dimension instantly turns raw network data into actionable
 security intelligence. It gives you real-time visual feedback on key
 security issues and trends.  Skip the complicated setup - simply import
 a virtual appliance and go from zero to informed in seconds.

 http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
 ___
 Rdkit-discuss mailing list
 Rdkit-discuss@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] Possible rotatable bonds replacement

2014-01-31 Thread Toby Wright
Hi,

I favour option 1 but not strongly over option 3. Option 2 is cleanest but
I think the cost to users that expect the existing behaviour is too high. I
don't see much difference in the confusion levels between:
numRotatableBonds() vs numStrictRotatableBonds()
and
numRotatableBonds() vs numRotatableBonds(strict=true)
as neither is truly clean if the user thinks that the two definitions are
interchangable.
The invariant numRotatableBonds(X)=numStrictRotatableBonds(X) holds which
is why I was thinking that one is a strict version of the other, but I'd
welcome a better name for the new function/variable.

Yours,

Toby Wright

--
InhibOx Ltd
Oxford



On 31 January 2014 11:05, JP jeanpaul.ebe...@inhibox.com wrote:

 My 2p worth:

 I am not a big fan of outright replacing the NumRotatableBonds
 implementation (option 2).  This is quite a popular descriptor which is
 used in many ways (e.g. QSAR models, conformer generation, property
 calculation, etc.).  IF we are lucky (or skilful, or have had enough time),
 we have tests written out for everything which will break as soon as soon
 as we get different rotatable bonds count, and different results.  We can
 then revalidate our protocols using the new (strict) rotatable counts.
  Perhaps we get better correlations/enrichments/AUCs etc ! Yeah!

 On the other hand option (1), having two methods NumRotatableBonds() and
 NumStrictRotatableBonds() will lead to some confusion.  Greg has a point
 about different people and/or libraries intermixing between the two.

 Like Paul, I prefer option (3) - with the default behaviour giving the old
 rotatable counts (not strict).  This does not come for free either, as the
 API becomes slightly less clean (and what to do in the future when, for
 example, someone finds a non-SMARTS based way to do this -- add another
 parameter?).  Still I think this is the less of all evils.

 Thanks Toby  Greg!
 JP


 On 31 January 2014 06:54, paul.czodrow...@merckgroup.com wrote:

  I could add the new descriptor as Toby provided it. People are then
  free to pick between NumRotatableBonds() and NumStrictRotatableBonds
  (). This has the advantage of maintaining strict backwards
  compatibility, but I could imagine it being confusing/irritating to
  people using the code to have to choose between them (or, worse, using
 both).
 
  Another option is to just replace the current NumRotatableBonds()
  SMARTS with the new one.
  This loses backwards compatibility, but replaces NumRotableBonds()
  with something more correct.
 
  Finally, I could take a hybrid approach: replace the default
  NumRotatableBonds() with the new one, but add an extra argument that
  allows the old one to be used.

 
  I'm leaning towards the second option. I'd normally go with the
  third, but I almost view this as a bug fix for the rotatable bonds
 definition.
 
  Comments? suggestions? Other options?

 I like your idea of your hybrid approach which would mean backwards
 compatibility.


 paul



 This message and any attachment are confidential and may be privileged or
 otherwise protected from disclosure. If you are not the intended recipient,
 you must not copy this message or attachment or disclose the contents to
 any other person. If you have received this transmission in error, please
 notify the sender immediately and delete the message and any attachment
 from your system. Merck KGaA, Darmstadt, Germany and any of its
 subsidiaries do not accept liability for any omissions or errors in this
 message which may arise as a result of E-Mail-transmission or for damages
 resulting from any unauthorized changes of the content of this message and
 any attachment thereto. Merck KGaA, Darmstadt, Germany and any of its
 subsidiaries do not guarantee that this message is free of viruses and does
 not accept liability for any damages caused by any virus transmitted
 therewith.

 Click http://www.merckgroup.com/disclaimer to access the German, French,
 Spanish and Portuguese versions of this disclaimer.


 --
 WatchGuard Dimension instantly turns raw network data into actionable
 security intelligence. It gives you real-time visual feedback on key
 security issues and trends.  Skip the complicated setup - simply import
 a virtual appliance and go from zero to informed in seconds.

 http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
 ___
 Rdkit-discuss mailing list
 Rdkit-discuss@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/rdkit-discuss




 --
 WatchGuard Dimension instantly turns raw network data into actionable
 security intelligence. It gives you real-time visual feedback on key
 security issues and trends.  Skip the complicated setup - simply import
 a virtual appliance and go from zero to informed in seconds.

 

Re: [Rdkit-discuss] Possible rotatable bonds replacement

2014-01-31 Thread Gerebtzoff, Gregori
Hi,

I would also go for the second option (i.e. replace the current SMART): I
also see it as a bug fix. What you could do is to highlight in the release
notes or somewhere else the call one would have to do to mimic the behavior
of previous releases:
Lipinski.RotatableBondSmarts =
Chem.MolFromSmarts('[!$(*#*)!D1]-!@[!$(*#*)!D1]')
Lipinski.NumRotatableBonds(m)

Grégori

Date: Fri, 31 Jan 2014 05:05:56 +0100
 From: Greg Landrum greg.land...@gmail.com
 Subject: [Rdkit-discuss] Possible rotatable bonds replacement
 To: RDKit Discuss rdkit-discuss@lists.sourceforge.net,Toby
 Wright
 toby.wri...@inhibox.com
 Message-ID:
 CAD4fdRTpTwHbq9iC3VYKfTKOZeGEtsjFG=
 xpfjmyue6x0_p...@mail.gmail.com
 Content-Type: text/plain; charset=iso-8859-1

 Dear all,

 A question for the community:

 Toby Wright submitted a pull request this week that introduces a new,
 stricter, rotatable bond definition:
 https://github.com/rdkit/rdkit/pull/211/files
 The new SMARTS, re-formatted to be somewhat more readable, is:
 [!$(*#*)\
  !D1\
  !$(C(F)(F)F)\
  !$(C(Cl)(Cl)Cl)\
  !$(C(Br)(Br)Br)\
  !$(C([CH3])([CH3])[CH3])\
  !$([CD3](=[N,O,S])-!@[#7,O,S!D1])\
  !$([#7,O,S!D1]-!@[CD3]=[N,O,S])\
  !$([CD3](=[N+])-!@[#7!D1])\
  !$([#7!D1]-!@[CD3]=[N+])]\
 -!@\
 [!$(*#*)\
  !D1\
  !$(C(F)(F)F)\
  !$(C(Cl)(Cl)Cl)\
  !$(C(Br)(Br)Br)\
  !$(C([CH3])([CH3])[CH3])]

 Toby was quite careful and added a new descriptor -
 NumStrictRotatableBonds() - that uses this SMARTS.

 I see a few options to deal with this:

 I could add the new descriptor as Toby provided it. People are then free to
 pick between NumRotatableBonds() and NumStrictRotatableBonds(). This has
 the advantage of maintaining strict backwards compatibility, but I could
 imagine it being confusing/irritating to people using the code to have to
 choose between them (or, worse, using both).

 Another option is to just replace the current NumRotatableBonds() SMARTS
 with the new one.
 This loses backwards compatibility, but replaces NumRotableBonds() with
 something more correct.

 Finally, I could take a hybrid approach: replace the default
 NumRotatableBonds() with the new one, but add an extra argument that allows
 the old one to be used.

 I'm leaning towards the second option. I'd normally go with the third, but
 I almost view this as a bug fix for the rotatable bonds definition.

 Comments? suggestions? Other options?
 -greg

--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


[Rdkit-discuss] SDMolSupplier doesn't support file handlers?

2014-01-31 Thread Michał Nowotka
Hi,

I need to process large, compressed SDF file. I was planning to use
SDMolSupplier but there is a problem:

1. I can't just pass a file name, as this is compressed file and if I
understand, SDMolSupplier doesn't support compressed files.
2. I can't read a file to string and then call setData() method of
SDMolSupplier, because size of uncompressed string will be larger than
available memory.

The solution would be to obtain file handler (f = gzip.open(...)) but
the problem is that there is no way (at least I don't know any) to
pass it to SDMolSupplier.

Any ideas?

Kind regards,
Michał Nowotka

--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] SDMolSupplier doesn't support file handlers?

2014-01-31 Thread Adrian Jasiński
Example from tutorial:

 import gzip inf = gzip.open('data/actives_5ht3.sdf.gz') gzsuppl = 
 Chem.ForwardSDMolSupplier(inf) ms = [x for x in gzsuppl if x is not 
 None] len(ms)180



pozdrawiam
Adrian Jasiński


2014-01-31 Michał Nowotka mmm...@gmail.com:

 Hi,

 I need to process large, compressed SDF file. I was planning to use
 SDMolSupplier but there is a problem:

 1. I can't just pass a file name, as this is compressed file and if I
 understand, SDMolSupplier doesn't support compressed files.
 2. I can't read a file to string and then call setData() method of
 SDMolSupplier, because size of uncompressed string will be larger than
 available memory.

 The solution would be to obtain file handler (f = gzip.open(...)) but
 the problem is that there is no way (at least I don't know any) to
 pass it to SDMolSupplier.

 Any ideas?

 Kind regards,
 Michał Nowotka


 --
 WatchGuard Dimension instantly turns raw network data into actionable
 security intelligence. It gives you real-time visual feedback on key
 security issues and trends.  Skip the complicated setup - simply import
 a virtual appliance and go from zero to informed in seconds.

 http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
 ___
 Rdkit-discuss mailing list
 Rdkit-discuss@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] SDMolSupplier doesn't support file handlers?

2014-01-31 Thread Michał Nowotka
I'm sorry I've overlooked this. Thank you for help.

On Fri, Jan 31, 2014 at 2:58 PM, Adrian Jasiński
jasinski.adr...@gmail.com wrote:
 Example from tutorial:

 import gzip
 inf = gzip.open('data/actives_5ht3.sdf.gz')
 gzsuppl = Chem.ForwardSDMolSupplier(inf)
 ms = [x for x in gzsuppl if x is not None]
 len(ms)
 180



 pozdrawiam
 Adrian Jasiński


 2014-01-31 Michał Nowotka mmm...@gmail.com:

 Hi,

 I need to process large, compressed SDF file. I was planning to use
 SDMolSupplier but there is a problem:

 1. I can't just pass a file name, as this is compressed file and if I
 understand, SDMolSupplier doesn't support compressed files.
 2. I can't read a file to string and then call setData() method of
 SDMolSupplier, because size of uncompressed string will be larger than
 available memory.

 The solution would be to obtain file handler (f = gzip.open(...)) but
 the problem is that there is no way (at least I don't know any) to
 pass it to SDMolSupplier.

 Any ideas?

 Kind regards,
 Michał Nowotka


 --
 WatchGuard Dimension instantly turns raw network data into actionable
 security intelligence. It gives you real-time visual feedback on key
 security issues and trends.  Skip the complicated setup - simply import
 a virtual appliance and go from zero to informed in seconds.

 http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
 ___
 Rdkit-discuss mailing list
 Rdkit-discuss@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/rdkit-discuss



--
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss