Hi Max,

thanks for your reply.

The result you provided is exactly what I was looking for.

However, I think it has more to do with the color of the highlight than any different setting of the transparency parameter in the underlying methods. (which is a good thing!)

I was just focusing so much on the transparency effect that I obviously forgot to try to use lighter tones for the color...

For instance, the snippet below also works for my purpose.

Cheers,
Jose Manuel

snippet:

import matplotlib
from rdkit import rdBase
from rdkit import Chem
# display molecules
from rdkit.Chem import Draw
from rdkit.Chem.Draw import IPythonConsole
from IPython.display import SVG

m = Chem.MolFromSmiles("O1CCCC1") # tetrahydrofuran
highlight=[0] # oxygen
color = matplotlib.colors.ColorConverter().to_rgb('pink')

Draw.MolsToGridImage( [m],highlightAtomLists=[highlight], highlightAtomColors=[{0:color}])


On 12/20/18 7:33 PM, Max Pinheiro Jr wrote:
Hi Jose,

Have you tried to use the "DrawMolecules" from the "rdMolDraw2D.MolDraw2DSVG" class? I think this class has some other options that allow one to change the highlight colors while still keeping the alpha transparency. I did a test here with your code and it seems to provide the result you are looking for:

m = Chem.MolFromSmiles("O1CCCC1") # tetrahydrofuran
highlight=[0] # oxygen

matches = m.GetSubstructMatches(Chem.MolFromSmiles('CO'))
print matches
color_1 = {}
color_2 = {}
color_3 = {}
radius = {}
for i,j in zip(matches[0], matches[1]):
    color_1[i] = ColorConverter().to_rgb('lightgray')
    color_2[j] = ColorConverter().to_rgb('skyblue')
tm = rdMolDraw2D.PrepareMolForDrawing(m)
view = rdMolDraw2D.MolDraw2DSVG(660,350)
option = view.drawOptions()
option.padding=0.13
option.legendFontSize=18
view.DrawMolecules([tm], highlightAtoms=[highlight], highlightAtomColors=[color_2])
view.FinishDrawing()
svg = view.GetDrawingText()
with open('./example.svg', 'w') as f:
    f.write(svg)
SVG(svg.replace('svg:', ''))

I hope it works for you.

All the best,

Max

Em qui, 20 de dez de 2018 às 14:33, Jose Manuel Gally <jose.manuel.ga...@gmail.com <mailto:jose.manuel.ga...@gmail.com>> escreveu:

    Hi all,

    I am trying to highlight substructures found in a set of molecules.

    However, if I use a specific color in Draw.MolsToGridImage by
    defining the highlightAtomColors parameter, I lose the
    transparency effect, so some atoms can be hidden by the highlight.

    Is there a way to set the transparency level (alpha) with defined
    highlightAtomColors?

    I could not find any relevant parameter in the documentation
    (alpha is mentioned only once in the calcAtomGaussians docstring)
    or in this mailing list.

    I also tried to set a value an additional value in the RGB code
    (i.e. RGBa=(1, 0, 0, 0.5)), but it seems to be simply ignored.

    Please find attached a notebook with a very simple example.

    Am I missing something obvious?

    By default there seems to be some transparency applied when
    highlighting.

    Thank you for your help!

    Best regards,
    Jose Manuel

    _______________________________________________
    Rdkit-discuss mailing list
    Rdkit-discuss@lists.sourceforge.net
    <mailto:Rdkit-discuss@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to