Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Loris Bennett
Hi Greg,

Greg Landrum  writes:

> One thing that may help is this (somewhat older, but I believe still 
> accurate) post from Riccardo:
> https://sourceforge.net/p/rdkit/mailman/message/30074971/
>
> It's been a while since I looked at this (since I mainly use conda these 
> days), but I just did a quick experiment with:
>
> mkdir build
> cd build
> cmake -DCMAKE_INSTALL_PREFIX=/opt/rdkit_test -DRDK_INSTALL_INTREE=OFF ..
>
> followed by
>
> make install
>
> and that seems to have worked.
>
> This type of install behaves somewhat differently from what the
> documentation describes. It arranges the files in the PREFIX directory
> like "normal" software is arranged. So as a user I need to set my
> PYTHONPATH like this:
>
> export PYTHONPATH=/opt/rdkit_test/lib/python3.5/site-packages
> and modify LD_LIBRARY_PATH to include: /opt/rdkit_test/lib
> RDBASE is:
> export RDBASE=/opt/rdkit_test/share/RDKit
>
> This is not documented in any useful way, which is something that we
> ought to change.

OK, I think I have got things mostly working.  The
-DRDK_INSTALL_INTREE=OFF seems to have been the main thing I was
missing.  Additionally I had to add some environment variables by hand
that cmake didn't pickup on, presumably because due to my having
multiple versions of Python installed.  This is what I did:

  export VERSION=2017_03_3
  export RDBASE=/home/BUILD/rdkit/rdkit-Release_${VERSION}
  export LD_LIBRARY_PATH=${RDBASE}:${LD_LIBRARY_PATH}

  source /cm/shared/apps/python27/enable

  export PYTHON_ROOT=/opt/rh/python27/root
  export CMAKE_INSTALL_PREFIX=/cm/shared/apps/rdkit/${VERSION}
  export PYTHON_INCLUDE_DIR=${PYTHON_ROOT}/usr/include/python2.7
  export PYTHON_LIBRARY=${PYTHON_ROOT}/usr/lib64/libpython2.7.so
  export 
PYTHON_NUMPY_INCLUDE_PATH=${PYTHON_ROOT}/usr/lib64/python2.7/site-packages/numpy/core/include

  cmake -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} \
-DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIR} \
-DPYTHON_LIBRARY=${PYTHON_LIBRARY} \
-DPYTHON_NUMPY_INCLUDE_PATH=${PYTHON_NUMPY_INCLUDE_PATH} \
-DRDK_INSTALL_INTREE=OFF \
..

  make

  make install

When I did

  make test
  
some of the tests failed:

  61% tests passed, 46 tests failed out of 117

but most of the failures seemed to have been caused by

  ImportError: No module named rdkit

However, if I set up the user environment (we use modules:
http://modules.sourceforge.net/), I can import 'rdkit' without any
problem, so there must just be something I need to tweak before running
the tests.  Thus, apart from the outstanding 46 tests, I think I'm done.

Thanks for the help,

Loris

-- 
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Greg Landrum
On Fri, Sep 15, 2017 at 1:37 PM, Loris Bennett 
wrote:

>
> When I did
>
>   make test
>
> some of the tests failed:
>
>   61% tests passed, 46 tests failed out of 117
>
> but most of the failures seemed to have been caused by
>
>   ImportError: No module named rdkit
>

Yeah, this is because you'd need to also setup the RDBASE, PYTHONPATH, and
LD_LIBRARY_PATH variables for the account that's running ctest.



> However, if I set up the user environment (we use modules:
> http://modules.sourceforge.net/), I can import 'rdkit' without any
> problem, so there must just be something I need to tweak before running
> the tests.  Thus, apart from the outstanding 46 tests, I think I'm done.
>
>
Excellent. I'm glad to hear it. I hope things end up working now for your
users.

If you have some time next Wed./Thurs. you should swing by the UGM during
one of the breaks and say hi. :-)

-greg
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] Using the new drawing code

2017-09-15 Thread Michał Nowotka
Perfect, thank you!

On Fri, Sep 15, 2017 at 9:47 AM, Greg Landrum  wrote:
>
>
> On Fri, Sep 15, 2017 at 9:25 AM, Michał Nowotka  wrote:
>>
>> Thanks Greg, very helpful!
>> Can you tell me how should I modify my code to provide the list of
>> bonds to be highlighted, so I get the image generated by DrawMolecules
>> looking the same way as produced by DrawMolecule?
>
>
> Sure, here's an example GIST with the code:
> https://gist.github.com/greglandrum/431483ac1f9edb03b09c8577031c10e0
>
>
> -greg
>
>> On Thu, Sep 14, 2017 at 4:36 PM, Greg Landrum 
>> wrote:
>> > Hi Michal,
>> >
>> > There are a couple of things in here.
>> >
>> > On Fri, Aug 25, 2017 at 11:42 AM, Michał Nowotka 
>> > wrote:
>> >>
>> >> Hi,
>> >>
>> >> I finally decided to try the new C++ drawing code and I found some
>> >> issues with it. I'll try to descibe my problems.
>> >>
>> >> First, lets start with a code that works perfectly:
>> >>
>> >> from rdkit import Chem
>> >> from rdkit.Chem.AllChem import Compute2DCoords
>> >> from rdkit.Chem.Draw import rdMolDraw2D
>> >>
>> >> m = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
>> >> Compute2DCoords(m)
>> >> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
>> >>
>> >>
>> >> drawer.DrawMolecule(m,highlightAtoms=m.GetSubstructMatch(Chem.MolFromSmarts('c1c1')))
>> >> drawer.FinishDrawing()
>> >> with open('aspirin_a.png','wb') as f:
>> >> f.write(drawer.GetDrawingText())
>> >>
>> >> This code produces the attached 'aspirin_a.png' image, that looks
>> >> perfect.
>> >
>> >
>> > Yay! :-)
>> >
>> >>
>> >> Now, apart from the `DrawMolecule` there is also `DrawMolecules`
>> >> function exposed by the `MolDraw2DCairo` module. So what will happen
>> >> when I use it to render the same molecule?
>> >>
>> >> from rdkit import Chem
>> >> from rdkit.Chem.AllChem import Compute2DCoords
>> >> from rdkit.Chem.Draw import rdMolDraw2D
>> >>
>> >> m = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
>> >> Compute2DCoords(m)
>> >> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
>> >>
>> >>
>> >> drawer.DrawMolecules([m],highlightAtoms=[m.GetSubstructMatch(Chem.MolFromSmarts('c1c1'))])
>> >> drawer.FinishDrawing()
>> >> with open('aspirin_b.png','wb') as f:
>> >> f.write(drawer.GetDrawingText())
>> >>
>> >>
>> >> The image is different - only atoms are highlighted, bonds between
>> >> atoms are not (see the attached 'aspirin_b.png') image.
>> >
>> >
>> > Short answer: DrawMolecules() requires you to provide the list of bonds
>> > to
>> > be highlighted too. This is just a couple of lines of code.
>> >
>> >>
>> >> OK, but who would use `DrawMolecules` to render a single compound
>> >> anyway? I think it's meant to render multiple compounds at once. The
>> >> 'old' drawing code has a function called `MolsToGridImage` to do this.
>> >> And it has a `molsPerRow` parameter which makes it easy to define a
>> >> shape of the grid. I couldn't find a similar function in the 'new'
>> >> drawing code so it looks like using `DrawMolecules` is the only way to
>> >> render multiple mols at once. Let's try that:
>> >>
>> >> from rdkit import Chem
>> >> from rdkit.Chem.AllChem import Compute2DCoords
>> >> from rdkit.Chem.Draw import rdMolDraw2D
>> >>
>> >> m1 = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
>> >> Compute2DCoords(m1)
>> >> m2 = Chem.MolFromSmiles('c1cccnc1O')
>> >> Compute2DCoords(m2)
>> >> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
>> >> drawer.DrawMolecules([m1, m2])
>> >> drawer.FinishDrawing()
>> >> with open('mols.png','wb') as f:
>> >> f.write(drawer.GetDrawingText())
>> >
>> >
>> > The MolDraw2D constructors can be called with additional arguments that
>> > provide the size of the panes used to render grids of molecules.
>> > For example, here's the code to draw two molecules side by side derived
>> > from
>> > your example:
>> > from rdkit import Chem
>> > from rdkit.Chem.Draw import rdMolDraw2D
>> >
>> > m1 = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
>> > pm1 = rdMolDraw2D.PrepareMolForDrawing(m1)
>> > m2 = Chem.MolFromSmiles('c1cccnc1O')
>> > pm2 = rdMolDraw2D.PrepareMolForDrawing(m2)
>> > drawer = rdMolDraw2D.MolDraw2DCairo(600,300,300,300)
>> > drawer.DrawMolecules([m1, m2])
>> > drawer.FinishDrawing()
>> > with open('mols.png','wb') as f:
>> > f.write(drawer.GetDrawingText())
>> >
>> >
>> > I've switched to use PrepareMolForDrawing() (because I think it's nice
>> > to
>> > have kekule structures and wedged bonds) and provided a canvas size of
>> > 600x300 divided into 300x300 panels. The code figures out that this
>> > means 2
>> > mols per row.
>> >
>> > It's somewhat curious (and I don't mean that in a good way) that this
>> > hasn't
>> > made it onto the RDKit master yet (instead of using the hack that's
>> > currently there). I will try to get that done before the next release.
>> >
>> > To summarize:
>> >>
>> >>
>> >> - `DrawMolecules` doesn't highlight bonds in the same way as the
>> >> 

Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Loris Bennett
Greg Landrum  writes:

> On Fri, Sep 15, 2017 at 1:37 PM, Loris Bennett  
> wrote:
>
>  When I did
>
>  make test
>
>  some of the tests failed:
>
>  61% tests passed, 46 tests failed out of 117
>
>  but most of the failures seemed to have been caused by
>
>  ImportError: No module named rdkit
>
> Yeah, this is because you'd need to also setup the RDBASE, PYTHONPATH,
> and LD_LIBRARY_PATH variables for the account that's running ctest.

I think that is already correctly set up.  If I look at the first error:

  Command: "/opt/rh/python27/root/usr/bin/python" 
"/home/BUILD/rdkit/rdkit-Release_2017_03_3/Code/DataStructs/Wrap/testBV.py"
  Directory: 
/home/BUILD/rdkit/rdkit-Release_2017_03_3/build/Code/DataStructs/Wrap
  "pyBV" start time: Sep 15 12:55 CEST
  Output:
  --
  Traceback (most recent call last):
File 
"/home/BUILD/rdkit/rdkit-Release_2017_03_3/Code/DataStructs/Wrap/testBV.py", 
line 1, in 
  from rdkit import DataStructs
  ImportError: No module named rdkit

I can run this test directly and it succeeds:

  $ /opt/rh/python27/root/usr/bin/python 
/home/BUILD/rdkit/rdkit-Release_2017_03_3/Code/DataStructs/Wrap/testBV.py
  .
  --
  Ran 13 tests in 0.545s

  OK

So, strangely, it sort of looks as if part of the environment is being
overwritten when I run 'make test'.  However, I may have to leave this
for the time-being.  I'm sure the users will let me know if something is
still broken. 

[snip (7 lines)]

> If you have some time next Wed./Thurs. you should swing by the UGM
> during one of the breaks and say hi. :-)

Thanks, will do.

Cheers,

Loris

-- 
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


[Rdkit-discuss] How to highligh a structure but avoid intersecting edges at the same time?

2017-09-15 Thread Michał Nowotka
Hi,

Thanks for all the help with 'forcing' molecule highlighing. I have a
different (hopefully the last) problem now.
When I align a structure to the pattern and highlight it I'm getting
the attached result. The substructure is correctly aligned and
highlighted but the other part intersects with it.

Can that be avoided?

Michał
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] How to highligh a structure but avoid intersecting edges at the same time?

2017-09-15 Thread Greg Landrum
At the moment there's not a solution to that problem that I'm aware of.
The constraints imposed by the alignment to the pattern end up confusing
the rest of the coordinate generation code.


-greg


On Fri, Sep 15, 2017 at 4:08 PM, Michał Nowotka  wrote:

> Hi,
>
> Thanks for all the help with 'forcing' molecule highlighing. I have a
> different (hopefully the last) problem now.
> When I align a structure to the pattern and highlight it I'm getting
> the attached result. The substructure is correctly aligned and
> highlighted but the other part intersects with it.
>
> Can that be avoided?
>
> Michał
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Markus Sitzmann
Well, if you have python 2.7 and 3.5 already running ,you can use
(mini)conda for the RDKit installation (conda is anaconda but instead of
one huge package you can install the packages you want including RDKit)

On Fri, Sep 15, 2017 at 9:12 AM, Loris Bennett 
wrote:

> Hi Greg,
>
> Greg Landrum  writes:
>
> > I'll provide a more detailed answer in a bit, but since you aren't
> > using the system python anyway, is there any chance that you could
> > switch to anaconda python on your machines? Anaconda is a great python
> > distribution for scientific applications and it makes many things
> > (including system administration) a ton easier.
>
> Anaconda might be a possibility.  On the other hand we already have 3
> versions of Python in use: 2.6 from the OS, and 2.7 and 3.5 from the
> Software Collections.  In addition, the current cluster is nearing its
> end-of-life, probably before the end of the year and so I am somewhat
> loathe to install yet another one and add to my can of worms (or pit of
> snakes).
>
> However, now I have a slight handle on the problem and know that there
> is a responsive and helpful mailing list to back me up, I'm happy to
> invest a little more time in trying another source build.
>
> Cheers,
>
> Loris
>
> --
> Dr. Loris Bennett (Mr.)
> ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> ___
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] Using the new drawing code

2017-09-15 Thread Michał Nowotka
Thanks Greg, very helpful!
Can you tell me how should I modify my code to provide the list of
bonds to be highlighted, so I get the image generated by DrawMolecules
looking the same way as produced by DrawMolecule?

On Thu, Sep 14, 2017 at 4:36 PM, Greg Landrum  wrote:
> Hi Michal,
>
> There are a couple of things in here.
>
> On Fri, Aug 25, 2017 at 11:42 AM, Michał Nowotka  wrote:
>>
>> Hi,
>>
>> I finally decided to try the new C++ drawing code and I found some
>> issues with it. I'll try to descibe my problems.
>>
>> First, lets start with a code that works perfectly:
>>
>> from rdkit import Chem
>> from rdkit.Chem.AllChem import Compute2DCoords
>> from rdkit.Chem.Draw import rdMolDraw2D
>>
>> m = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
>> Compute2DCoords(m)
>> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
>>
>> drawer.DrawMolecule(m,highlightAtoms=m.GetSubstructMatch(Chem.MolFromSmarts('c1c1')))
>> drawer.FinishDrawing()
>> with open('aspirin_a.png','wb') as f:
>> f.write(drawer.GetDrawingText())
>>
>> This code produces the attached 'aspirin_a.png' image, that looks perfect.
>
>
> Yay! :-)
>
>>
>> Now, apart from the `DrawMolecule` there is also `DrawMolecules`
>> function exposed by the `MolDraw2DCairo` module. So what will happen
>> when I use it to render the same molecule?
>>
>> from rdkit import Chem
>> from rdkit.Chem.AllChem import Compute2DCoords
>> from rdkit.Chem.Draw import rdMolDraw2D
>>
>> m = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
>> Compute2DCoords(m)
>> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
>>
>> drawer.DrawMolecules([m],highlightAtoms=[m.GetSubstructMatch(Chem.MolFromSmarts('c1c1'))])
>> drawer.FinishDrawing()
>> with open('aspirin_b.png','wb') as f:
>> f.write(drawer.GetDrawingText())
>>
>>
>> The image is different - only atoms are highlighted, bonds between
>> atoms are not (see the attached 'aspirin_b.png') image.
>
>
> Short answer: DrawMolecules() requires you to provide the list of bonds to
> be highlighted too. This is just a couple of lines of code.
>
>>
>> OK, but who would use `DrawMolecules` to render a single compound
>> anyway? I think it's meant to render multiple compounds at once. The
>> 'old' drawing code has a function called `MolsToGridImage` to do this.
>> And it has a `molsPerRow` parameter which makes it easy to define a
>> shape of the grid. I couldn't find a similar function in the 'new'
>> drawing code so it looks like using `DrawMolecules` is the only way to
>> render multiple mols at once. Let's try that:
>>
>> from rdkit import Chem
>> from rdkit.Chem.AllChem import Compute2DCoords
>> from rdkit.Chem.Draw import rdMolDraw2D
>>
>> m1 = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
>> Compute2DCoords(m1)
>> m2 = Chem.MolFromSmiles('c1cccnc1O')
>> Compute2DCoords(m2)
>> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
>> drawer.DrawMolecules([m1, m2])
>> drawer.FinishDrawing()
>> with open('mols.png','wb') as f:
>> f.write(drawer.GetDrawingText())
>
>
> The MolDraw2D constructors can be called with additional arguments that
> provide the size of the panes used to render grids of molecules.
> For example, here's the code to draw two molecules side by side derived from
> your example:
> from rdkit import Chem
> from rdkit.Chem.Draw import rdMolDraw2D
>
> m1 = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
> pm1 = rdMolDraw2D.PrepareMolForDrawing(m1)
> m2 = Chem.MolFromSmiles('c1cccnc1O')
> pm2 = rdMolDraw2D.PrepareMolForDrawing(m2)
> drawer = rdMolDraw2D.MolDraw2DCairo(600,300,300,300)
> drawer.DrawMolecules([m1, m2])
> drawer.FinishDrawing()
> with open('mols.png','wb') as f:
> f.write(drawer.GetDrawingText())
>
>
> I've switched to use PrepareMolForDrawing() (because I think it's nice to
> have kekule structures and wedged bonds) and provided a canvas size of
> 600x300 divided into 300x300 panels. The code figures out that this means 2
> mols per row.
>
> It's somewhat curious (and I don't mean that in a good way) that this hasn't
> made it onto the RDKit master yet (instead of using the hack that's
> currently there). I will try to get that done before the next release.
>
> To summarize:
>>
>>
>> - `DrawMolecules` doesn't highlight bonds in the same way as the
>> `DrawMolecule` does
>
>
> correct. That's by design (correct method described above)
>
>> - There is no equivalent of the `MolsToGridImage` where I can define
>> the shape of the grid of molecules at least nothing documented in
>>
>> http://www.rdkit.org/Python_Docs/rdkit.Chem.Draw.rdMolDraw2D.MolDraw2D-class.html
>
>
> Right, it's not documented, but hopefully what I have above helps you see
> how to do it.
>>
>>
>> - `DrawMolecules` does nothing to layout molecules in such a way that
>> they don't obscure each other
>
>
> Correct. It does what you tell it to do, but hopefully the rest of the
> answer tells you how to tell it the right thing.
>
> -greg
>
>
>>
>>
>> Regards,
>>
>> Michał Nowotka
>>
>>
>> 

Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Greg Landrum
One thing that may help is this (somewhat older, but I believe still
accurate) post from Riccardo:
https://sourceforge.net/p/rdkit/mailman/message/30074971/

It's been a while since I looked at this (since I mainly use conda these
days), but I just did a quick experiment with:

   mkdir build
   cd build
   cmake -DCMAKE_INSTALL_PREFIX=/opt/rdkit_test -DRDK_INSTALL_INTREE=OFF ..

followed by

   make install

and that seems to have worked.

This type of install behaves somewhat differently from what the
documentation describes. It arranges the files in the PREFIX directory like
"normal" software is arranged. So as a user I need to set my PYTHONPATH
like this:
export PYTHONPATH=/opt/rdkit_test/lib/python3.5/site-packages
and modify LD_LIBRARY_PATH to include: /opt/rdkit_test/lib
RDBASE is:
export RDBASE=/opt/rdkit_test/share/RDKit

This is not documented in any useful way, which is something that we ought
to change.

-greg


On Fri, Sep 15, 2017 at 8:19 AM, Loris Bennett 
wrote:

>
> >  import rdkit
> >
> >  I get
> >
> >  ImportError: No module named rdkit
> >
> >  I am not a Python person and my naive expectation was that there should
> >  be a file called
> >
> >  rdkit.py
> >
> > Based on the info provided so far, there should be a directory called
> > rdkit in the directory: /cm/shared/apps/rdkit/rdkit_2017_03_3
>
> This directory exists.
>
> > That directory should contain a number of sub dirs, other files, and a
> > file called __init__.py (this is the one that tells Python that it can
> > import the directory as a package).  What do you see there?
>
> The directory just contains
>
>   lib
>   rdkit
>
> an nothing else, in particular, no __init__.py.  I have plenty of
> __init__.pys in the build directory, so I assume I must have done some
> thing wrong when running cmake and/or make install.
>
I must admit that I found the installation instructions somewhat unclear
> on that point.  I would find it clearer if things were couched in terms
> of 'source' and 'destination'.  For me, as a make-guy rather than a
> cmake-guy, it would also be helpful if it were made clearer at which
> point the destination directory should be specified.  I ended up with
> RDKit being installed under a very long path with included both my
> intended path and the original build path, so I had to move things
> around and may have goofed up at that point.
>
> >  which has to be on my PYTHONPATH. However, since the unpacked sources
> >  together with the build don't seem to contain such a file, either
> >  something is broken or the rdkit module should be found by some other
> >  mechanism.
> >
> > Again, based on the info above, I would expect that you want "make
> > install" to copy the "rdkit" and "lib" directories (as well as a
> > couple others) to /cm/shared/apps/rdkit/rdkit_2017_03_3. Once we
> > figure out what actually happened I can maybe help you figure out how
> > to fix it.
>
> This is what I did:
>
>   module add boost # this just sets the boost stuff up
>
>   export VERSION=2017_03_3
>   export RDBASE=/home/BUILD/rdkit/rdkit-rdkit-Release_${VERSION}
>   export LD_LIBRARY_PATH=${RDBASE}:${LD_LIBRARY_PATH}
>   export DESTDIR=/cm/shared/apps/rdkit/${VERSION}
>
> and then probably
>
>   cmake -DCMAKE_INSTALL_PREFIX=/cm/shared/apps/rdkit/${VERSION}
>
> so I may have over-egged my install-path-cake.  I started all the
> fiddling with DESTDIR and CMAKE_INSTALL_PREFIX, because my initial
> attempt resulted in the destination directory being the same as the
> build directory, which didn't work so well.
>
> Thanks for the help - I'll have another go Python 3.5 and try to keep my
> eye on __init__.py.
>
> Cheers,
>
> Loris
>
> --
> Dr. Loris Bennett (Mr.)
> ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] Fixed scale drawing

2017-09-15 Thread Maciek Wójcikowski
Hi again,

I've managed to make it work. Please find the working code attached as a
notebook. Unfortunately, it seam there is a small bug with SetScale: if the
diff in min/max x or y in the minimum point and maximum point is zero or
close to zero, then the molecules are broken. I've added a margin of 1 to
each sides and it worked.


Pozdrawiam,  |  Best regards,
Maciek Wójcikowski
mac...@wojcikowski.pl

2017-09-14 20:53 GMT+02:00 Maciek Wójcikowski :

> I've tried that, but ended up with molecules out of picture. I'll try
> again tomorrow and ping back here should I succeed. The real problem were
> two atom molecules, which have delta x or y = 0, such as C=0 or CN.
>
> 
> Pozdrawiam,  |  Best regards,
> Maciek Wójcikowski
> mac...@wojcikowski.pl
>
> 2017-09-14 17:21 GMT+02:00 Greg Landrum :
>
>> Hi Maciek,
>>
>> You can do this by calling setScale() method on MolDraw2D(). There's not
>> a decent python example around yet (would be something for the cookbook I
>> suppose), but the C++ code isn't too complex and demonstrates how it works:
>> https://github.com/rdkit/rdkit/blob/master/Code/GraphMol/
>> MolDraw2D/test1.cpp#L1962
>>
>> Hope this helps,
>> -greg
>>
>>
>> On Thu, Sep 14, 2017 at 10:24 AM, Maciek Wójcikowski <
>> mac...@wojcikowski.pl> wrote:
>>
>>> Hi RDKitters!
>>>
>>> Quick question: is there a way to force drawing to output molecules on a
>>> grid image or separate in fixed scale (i.e. constant/matching bond length)?
>>>
>>> 
>>> Pozdrawiam,  |  Best regards,
>>> Maciek Wójcikowski
>>> mac...@wojcikowski.pl
>>>
>>> 
>>> --
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> ___
>>> Rdkit-discuss mailing list
>>> Rdkit-discuss@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>>
>>>
>>
>


fixed_bond_drawing.ipynb
Description: application/ipynb
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Loris Bennett
Hi Greg,

Greg Landrum  writes:

> Hi Loris,
>
> On Thu, Sep 14, 2017 at 2:25 PM, Loris Bennett  
> wrote:
>
>  I am trying to install RDKit on a university cluster running Linux from
>  source. The build seem to go OK and 'make install' copied the
>  directories
>
>  lib
>  rdkit
>
>  to the NFS share where the software should reside. I then do
>
>  export RDBASE=/cm/shared/apps/rdkit/rdkit_2017_03_3
>  export PYTHONPATH=$PYTHONPATH:$RDBASE
>  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RDBASE/lib
>
>  However when I then run Python (2.6.6) and try
>
> Just to do some expectation management: python 2.6 is pretty ancient
> and there's no guarantee that all of the RDKit code will work with
> it. Python 2.7 is the minimum version that we "officially"
> support. It's a very good idea to update.

OK.  I didn't notice that 2.6 was deprecated - maybe this could be
explicitly mentioned in the install instructions.  I'm running the
RedHat clone Scientific Linux 6, so everything in this thread on
RH/Python applies.  So I can use either Python 2.7 or Python 3.5.  I can
ask the users what they prefer - although, as you seem know my users
here in Berlin, maybe you know too ;-)

>  import rdkit
>
>  I get
>
>  ImportError: No module named rdkit
>
>  I am not a Python person and my naive expectation was that there should
>  be a file called
>
>  rdkit.py
>
> Based on the info provided so far, there should be a directory called
> rdkit in the directory: /cm/shared/apps/rdkit/rdkit_2017_03_3

This directory exists.

> That directory should contain a number of sub dirs, other files, and a
> file called __init__.py (this is the one that tells Python that it can
> import the directory as a package).  What do you see there?

The directory just contains

  lib
  rdkit
  
an nothing else, in particular, no __init__.py.  I have plenty of
__init__.pys in the build directory, so I assume I must have done some
thing wrong when running cmake and/or make install.

I must admit that I found the installation instructions somewhat unclear
on that point.  I would find it clearer if things were couched in terms
of 'source' and 'destination'.  For me, as a make-guy rather than a
cmake-guy, it would also be helpful if it were made clearer at which
point the destination directory should be specified.  I ended up with
RDKit being installed under a very long path with included both my
intended path and the original build path, so I had to move things
around and may have goofed up at that point.

>  which has to be on my PYTHONPATH. However, since the unpacked sources
>  together with the build don't seem to contain such a file, either
>  something is broken or the rdkit module should be found by some other
>  mechanism.
>
> Again, based on the info above, I would expect that you want "make
> install" to copy the "rdkit" and "lib" directories (as well as a
> couple others) to /cm/shared/apps/rdkit/rdkit_2017_03_3. Once we
> figure out what actually happened I can maybe help you figure out how
> to fix it.

This is what I did:

  module add boost # this just sets the boost stuff up

  export VERSION=2017_03_3
  export RDBASE=/home/BUILD/rdkit/rdkit-rdkit-Release_${VERSION}
  export LD_LIBRARY_PATH=${RDBASE}:${LD_LIBRARY_PATH}
  export DESTDIR=/cm/shared/apps/rdkit/${VERSION}

and then probably

  cmake -DCMAKE_INSTALL_PREFIX=/cm/shared/apps/rdkit/${VERSION}

so I may have over-egged my install-path-cake.  I started all the
fiddling with DESTDIR and CMAKE_INSTALL_PREFIX, because my initial
attempt resulted in the destination directory being the same as the
build directory, which didn't work so well.

Thanks for the help - I'll have another go Python 3.5 and try to keep my
eye on __init__.py.

Cheers,

Loris

-- 
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss


Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Markus Sitzmann
BTW, python 3.6 is out since last Christmas ;-)   (and made it to
sub-release .2)

On Fri, Sep 15, 2017 at 8:36 AM, Greg Landrum 
wrote:

> I'll provide a more detailed answer in a bit, but since you aren't using
> the system python anyway, is there any chance that you could switch to
> anaconda python on your machines? Anaconda is a great python distribution
> for scientific applications and it makes many things (including system
> administration) a ton easier.
>
> -greg
>
>
> On Fri, Sep 15, 2017 at 8:19 AM, Loris Bennett  > wrote:
>
>> Hi Greg,
>>
>> Greg Landrum  writes:
>>
>> > Hi Loris,
>> >
>> > On Thu, Sep 14, 2017 at 2:25 PM, Loris Bennett <
>> loris.benn...@fu-berlin.de> wrote:
>> >
>> >  I am trying to install RDKit on a university cluster running Linux from
>> >  source. The build seem to go OK and 'make install' copied the
>> >  directories
>> >
>> >  lib
>> >  rdkit
>> >
>> >  to the NFS share where the software should reside. I then do
>> >
>> >  export RDBASE=/cm/shared/apps/rdkit/rdkit_2017_03_3
>> >  export PYTHONPATH=$PYTHONPATH:$RDBASE
>> >  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RDBASE/lib
>> >
>> >  However when I then run Python (2.6.6) and try
>> >
>> > Just to do some expectation management: python 2.6 is pretty ancient
>> > and there's no guarantee that all of the RDKit code will work with
>> > it. Python 2.7 is the minimum version that we "officially"
>> > support. It's a very good idea to update.
>>
>> OK.  I didn't notice that 2.6 was deprecated - maybe this could be
>> explicitly mentioned in the install instructions.  I'm running the
>> RedHat clone Scientific Linux 6, so everything in this thread on
>> RH/Python applies.  So I can use either Python 2.7 or Python 3.5.  I can
>> ask the users what they prefer - although, as you seem know my users
>> here in Berlin, maybe you know too ;-)
>>
>> >  import rdkit
>> >
>> >  I get
>> >
>> >  ImportError: No module named rdkit
>> >
>> >  I am not a Python person and my naive expectation was that there should
>> >  be a file called
>> >
>> >  rdkit.py
>> >
>> > Based on the info provided so far, there should be a directory called
>> > rdkit in the directory: /cm/shared/apps/rdkit/rdkit_2017_03_3
>>
>> This directory exists.
>>
>> > That directory should contain a number of sub dirs, other files, and a
>> > file called __init__.py (this is the one that tells Python that it can
>> > import the directory as a package).  What do you see there?
>>
>> The directory just contains
>>
>>   lib
>>   rdkit
>>
>> an nothing else, in particular, no __init__.py.  I have plenty of
>> __init__.pys in the build directory, so I assume I must have done some
>> thing wrong when running cmake and/or make install.
>>
>> I must admit that I found the installation instructions somewhat unclear
>> on that point.  I would find it clearer if things were couched in terms
>> of 'source' and 'destination'.  For me, as a make-guy rather than a
>> cmake-guy, it would also be helpful if it were made clearer at which
>> point the destination directory should be specified.  I ended up with
>> RDKit being installed under a very long path with included both my
>> intended path and the original build path, so I had to move things
>> around and may have goofed up at that point.
>>
>> >  which has to be on my PYTHONPATH. However, since the unpacked sources
>> >  together with the build don't seem to contain such a file, either
>> >  something is broken or the rdkit module should be found by some other
>> >  mechanism.
>> >
>> > Again, based on the info above, I would expect that you want "make
>> > install" to copy the "rdkit" and "lib" directories (as well as a
>> > couple others) to /cm/shared/apps/rdkit/rdkit_2017_03_3. Once we
>> > figure out what actually happened I can maybe help you figure out how
>> > to fix it.
>>
>> This is what I did:
>>
>>   module add boost # this just sets the boost stuff up
>>
>>   export VERSION=2017_03_3
>>   export RDBASE=/home/BUILD/rdkit/rdkit-rdkit-Release_${VERSION}
>>   export LD_LIBRARY_PATH=${RDBASE}:${LD_LIBRARY_PATH}
>>   export DESTDIR=/cm/shared/apps/rdkit/${VERSION}
>>
>> and then probably
>>
>>   cmake -DCMAKE_INSTALL_PREFIX=/cm/shared/apps/rdkit/${VERSION}
>>
>> so I may have over-egged my install-path-cake.  I started all the
>> fiddling with DESTDIR and CMAKE_INSTALL_PREFIX, because my initial
>> attempt resulted in the destination directory being the same as the
>> build directory, which didn't work so well.
>>
>> Thanks for the help - I'll have another go Python 3.5 and try to keep my
>> eye on __init__.py.
>>
>> Cheers,
>>
>> Loris
>>
>> --
>> Dr. Loris Bennett (Mr.)
>> ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de
>>
>
>
> 
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! 

Re: [Rdkit-discuss] Using the new drawing code

2017-09-15 Thread Greg Landrum
On Fri, Sep 15, 2017 at 9:25 AM, Michał Nowotka  wrote:

> Thanks Greg, very helpful!
> Can you tell me how should I modify my code to provide the list of
> bonds to be highlighted, so I get the image generated by DrawMolecules
> looking the same way as produced by DrawMolecule?


Sure, here's an example GIST with the code:
https://gist.github.com/greglandrum/431483ac1f9edb03b09c8577031c10e0


-greg

On Thu, Sep 14, 2017 at 4:36 PM, Greg Landrum 
> wrote:
> > Hi Michal,
> >
> > There are a couple of things in here.
> >
> > On Fri, Aug 25, 2017 at 11:42 AM, Michał Nowotka 
> wrote:
> >>
> >> Hi,
> >>
> >> I finally decided to try the new C++ drawing code and I found some
> >> issues with it. I'll try to descibe my problems.
> >>
> >> First, lets start with a code that works perfectly:
> >>
> >> from rdkit import Chem
> >> from rdkit.Chem.AllChem import Compute2DCoords
> >> from rdkit.Chem.Draw import rdMolDraw2D
> >>
> >> m = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
> >> Compute2DCoords(m)
> >> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
> >>
> >> drawer.DrawMolecule(m,highlightAtoms=m.GetSubstructMatch(Chem.
> MolFromSmarts('c1c1')))
> >> drawer.FinishDrawing()
> >> with open('aspirin_a.png','wb') as f:
> >> f.write(drawer.GetDrawingText())
> >>
> >> This code produces the attached 'aspirin_a.png' image, that looks
> perfect.
> >
> >
> > Yay! :-)
> >
> >>
> >> Now, apart from the `DrawMolecule` there is also `DrawMolecules`
> >> function exposed by the `MolDraw2DCairo` module. So what will happen
> >> when I use it to render the same molecule?
> >>
> >> from rdkit import Chem
> >> from rdkit.Chem.AllChem import Compute2DCoords
> >> from rdkit.Chem.Draw import rdMolDraw2D
> >>
> >> m = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
> >> Compute2DCoords(m)
> >> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
> >>
> >> drawer.DrawMolecules([m],highlightAtoms=[m.GetSubstructMatch(Chem.
> MolFromSmarts('c1c1'))])
> >> drawer.FinishDrawing()
> >> with open('aspirin_b.png','wb') as f:
> >> f.write(drawer.GetDrawingText())
> >>
> >>
> >> The image is different - only atoms are highlighted, bonds between
> >> atoms are not (see the attached 'aspirin_b.png') image.
> >
> >
> > Short answer: DrawMolecules() requires you to provide the list of bonds
> to
> > be highlighted too. This is just a couple of lines of code.
> >
> >>
> >> OK, but who would use `DrawMolecules` to render a single compound
> >> anyway? I think it's meant to render multiple compounds at once. The
> >> 'old' drawing code has a function called `MolsToGridImage` to do this.
> >> And it has a `molsPerRow` parameter which makes it easy to define a
> >> shape of the grid. I couldn't find a similar function in the 'new'
> >> drawing code so it looks like using `DrawMolecules` is the only way to
> >> render multiple mols at once. Let's try that:
> >>
> >> from rdkit import Chem
> >> from rdkit.Chem.AllChem import Compute2DCoords
> >> from rdkit.Chem.Draw import rdMolDraw2D
> >>
> >> m1 = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
> >> Compute2DCoords(m1)
> >> m2 = Chem.MolFromSmiles('c1cccnc1O')
> >> Compute2DCoords(m2)
> >> drawer = rdMolDraw2D.MolDraw2DCairo(500, 500)
> >> drawer.DrawMolecules([m1, m2])
> >> drawer.FinishDrawing()
> >> with open('mols.png','wb') as f:
> >> f.write(drawer.GetDrawingText())
> >
> >
> > The MolDraw2D constructors can be called with additional arguments that
> > provide the size of the panes used to render grids of molecules.
> > For example, here's the code to draw two molecules side by side derived
> from
> > your example:
> > from rdkit import Chem
> > from rdkit.Chem.Draw import rdMolDraw2D
> >
> > m1 = Chem.MolFromSmiles('O=C(C)Oc1c1C(=O)O')
> > pm1 = rdMolDraw2D.PrepareMolForDrawing(m1)
> > m2 = Chem.MolFromSmiles('c1cccnc1O')
> > pm2 = rdMolDraw2D.PrepareMolForDrawing(m2)
> > drawer = rdMolDraw2D.MolDraw2DCairo(600,300,300,300)
> > drawer.DrawMolecules([m1, m2])
> > drawer.FinishDrawing()
> > with open('mols.png','wb') as f:
> > f.write(drawer.GetDrawingText())
> >
> >
> > I've switched to use PrepareMolForDrawing() (because I think it's nice to
> > have kekule structures and wedged bonds) and provided a canvas size of
> > 600x300 divided into 300x300 panels. The code figures out that this
> means 2
> > mols per row.
> >
> > It's somewhat curious (and I don't mean that in a good way) that this
> hasn't
> > made it onto the RDKit master yet (instead of using the hack that's
> > currently there). I will try to get that done before the next release.
> >
> > To summarize:
> >>
> >>
> >> - `DrawMolecules` doesn't highlight bonds in the same way as the
> >> `DrawMolecule` does
> >
> >
> > correct. That's by design (correct method described above)
> >
> >> - There is no equivalent of the `MolsToGridImage` where I can define
> >> the shape of the grid of molecules at least nothing documented in
> >>
> >> 

Re: [Rdkit-discuss] ImportError: No module named rdkit

2017-09-15 Thread Greg Landrum
I'll provide a more detailed answer in a bit, but since you aren't using
the system python anyway, is there any chance that you could switch to
anaconda python on your machines? Anaconda is a great python distribution
for scientific applications and it makes many things (including system
administration) a ton easier.

-greg


On Fri, Sep 15, 2017 at 8:19 AM, Loris Bennett 
wrote:

> Hi Greg,
>
> Greg Landrum  writes:
>
> > Hi Loris,
> >
> > On Thu, Sep 14, 2017 at 2:25 PM, Loris Bennett <
> loris.benn...@fu-berlin.de> wrote:
> >
> >  I am trying to install RDKit on a university cluster running Linux from
> >  source. The build seem to go OK and 'make install' copied the
> >  directories
> >
> >  lib
> >  rdkit
> >
> >  to the NFS share where the software should reside. I then do
> >
> >  export RDBASE=/cm/shared/apps/rdkit/rdkit_2017_03_3
> >  export PYTHONPATH=$PYTHONPATH:$RDBASE
> >  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RDBASE/lib
> >
> >  However when I then run Python (2.6.6) and try
> >
> > Just to do some expectation management: python 2.6 is pretty ancient
> > and there's no guarantee that all of the RDKit code will work with
> > it. Python 2.7 is the minimum version that we "officially"
> > support. It's a very good idea to update.
>
> OK.  I didn't notice that 2.6 was deprecated - maybe this could be
> explicitly mentioned in the install instructions.  I'm running the
> RedHat clone Scientific Linux 6, so everything in this thread on
> RH/Python applies.  So I can use either Python 2.7 or Python 3.5.  I can
> ask the users what they prefer - although, as you seem know my users
> here in Berlin, maybe you know too ;-)
>
> >  import rdkit
> >
> >  I get
> >
> >  ImportError: No module named rdkit
> >
> >  I am not a Python person and my naive expectation was that there should
> >  be a file called
> >
> >  rdkit.py
> >
> > Based on the info provided so far, there should be a directory called
> > rdkit in the directory: /cm/shared/apps/rdkit/rdkit_2017_03_3
>
> This directory exists.
>
> > That directory should contain a number of sub dirs, other files, and a
> > file called __init__.py (this is the one that tells Python that it can
> > import the directory as a package).  What do you see there?
>
> The directory just contains
>
>   lib
>   rdkit
>
> an nothing else, in particular, no __init__.py.  I have plenty of
> __init__.pys in the build directory, so I assume I must have done some
> thing wrong when running cmake and/or make install.
>
> I must admit that I found the installation instructions somewhat unclear
> on that point.  I would find it clearer if things were couched in terms
> of 'source' and 'destination'.  For me, as a make-guy rather than a
> cmake-guy, it would also be helpful if it were made clearer at which
> point the destination directory should be specified.  I ended up with
> RDKit being installed under a very long path with included both my
> intended path and the original build path, so I had to move things
> around and may have goofed up at that point.
>
> >  which has to be on my PYTHONPATH. However, since the unpacked sources
> >  together with the build don't seem to contain such a file, either
> >  something is broken or the rdkit module should be found by some other
> >  mechanism.
> >
> > Again, based on the info above, I would expect that you want "make
> > install" to copy the "rdkit" and "lib" directories (as well as a
> > couple others) to /cm/shared/apps/rdkit/rdkit_2017_03_3. Once we
> > figure out what actually happened I can maybe help you figure out how
> > to fix it.
>
> This is what I did:
>
>   module add boost # this just sets the boost stuff up
>
>   export VERSION=2017_03_3
>   export RDBASE=/home/BUILD/rdkit/rdkit-rdkit-Release_${VERSION}
>   export LD_LIBRARY_PATH=${RDBASE}:${LD_LIBRARY_PATH}
>   export DESTDIR=/cm/shared/apps/rdkit/${VERSION}
>
> and then probably
>
>   cmake -DCMAKE_INSTALL_PREFIX=/cm/shared/apps/rdkit/${VERSION}
>
> so I may have over-egged my install-path-cake.  I started all the
> fiddling with DESTDIR and CMAKE_INSTALL_PREFIX, because my initial
> attempt resulted in the destination directory being the same as the
> build directory, which didn't work so well.
>
> Thanks for the help - I'll have another go Python 3.5 and try to keep my
> eye on __init__.py.
>
> Cheers,
>
> Loris
>
> --
> Dr. Loris Bennett (Mr.)
> ZEDAT, Freie Universität Berlin Email loris.benn...@fu-berlin.de
>
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss