Hi Lukas,

I did a Mac build for python 3.6 this morning and put it in my channel with
a beta label.
You can install it like this:
conda install -c greglandrum/label/beta rdkit

Please let me know if you hit any problems
-greg


On Tue, Mar 12, 2019 at 11:40 AM Greg Landrum <greg.land...@gmail.com>
wrote:

> HI Lukas,
>
> I haven't done the build yet. I will see if I can manage to do one
> tomorrow.
>
> These changes have been merged onto the trunk and will definitely be in
> the release.
>
> -greg
>
>
> On Tue, Mar 12, 2019 at 10:42 AM Lukas Pravda <lpra...@ebi.ac.uk> wrote:
>
>> Hi Greg,
>>
>>
>>
>> I was wondering If you managed to create the Mac build you were talking
>> about some time ago. Also I wonder If this functionality is going to be
>> part of the next RDKit release?
>>
>>
>>
>> Best,
>>
>> Lukas
>>
>>
>>
>> *From: *Greg Landrum <greg.land...@gmail.com>
>> *Date: *Tuesday, 5 February 2019 at 14:45
>> *To: *Lukas Pravda <lpra...@ebi.ac.uk>
>> *Cc: *RDKIT mailing list <rdkit-discuss@lists.sourceforge.net>
>> *Subject: *Re: [Rdkit-discuss] Bond tags in SVGs
>>
>>
>>
>> Sure. I don't have my Mac with me, so that'll need to wait until I'm back
>> in Basel on the weekend.
>>
>>
>>
>> -greg
>>
>>
>>
>>
>>
>>
>>
>> On Tue, Feb 5, 2019 at 2:39 PM Lukas Pravda <lpra...@ebi.ac.uk> wrote:
>>
>> If it is not too much trouble to ask, please build it for mac os
>> (10.14.3) python 3.6.x.
>>
>>
>>
>> Thanks!
>>
>> Lukas
>>
>>
>>
>> *From: *Greg Landrum <greg.land...@gmail.com>
>> *Date: *Tuesday, 5 February 2019 at 13:40
>> *To: *Lukas Pravda <lpra...@ebi.ac.uk>
>> *Cc: *RDKIT mailing list <rdkit-discuss@lists.sourceforge.net>
>> *Subject: *Re: [Rdkit-discuss] Bond tags in SVGs
>>
>>
>>
>>
>>
>>
>>
>> On Tue, Feb 5, 2019 at 12:23 PM Lukas Pravda <lpra...@ebi.ac.uk> wrote:
>>
>>
>>
>> Thanks for this. It looks excellent!! Is there a way how I can test this?
>> Other than cloning and compiling the repository? So far I have been using
>> rdkit solely from python and its conda builds, so don’t really know how to
>> test it.
>>
>>
>>
>> At the moment you would need to get a copy of the repo and build it. I
>> can do a build so that it's conda-installable though. Which OS are you
>> using?
>>
>>
>>
>> If I understand this correctly, the atom and bond class ids are added
>> only after TagAtoms() is called, or are they added at the ‘DrawMolecule()’
>> stage?
>>
>>
>>
>> Bond classes are added as the bonds are written. Atom classes can only be
>> added at the TagAtoms() stage - there's not an object in the SVG for many
>> atoms without TagAtoms() being called.
>>
>>
>>
>> I can imagine a lot of possible scenarios and use cases with this new
>> functionality. However, in order to make the function TagAtoms()
>> sufficiently general, a bit more control over the javascript used in the
>> events would be needed. As a possible suggestions, I can imagine to pass as
>> the third parameter a lambda selector, which would in turn feed the JS
>> function with parameters to display names/charges/whatever. Also it would
>> be nice to have a mean how to pass dict of key-val properties for both
>> atoms and bonds so that you can incorporate related data into the svg.
>>
>>
>>
>> Having said that, in my opinion if svgs end up as a part of
>> html/javascript application, it is the best to expose this interactivity
>> directly from the client, rather than ‘pre-generating’ the behaviour on the
>> server. So I’m not sure If it is worth investing time into mimicking this
>> functionality in C++/python code, Whoever is in a need of generating
>> interactive svgs, can directly consume the svg string and modify it
>> according to their needs.
>>
>>
>>
>> Yeah, that's more or less what I was thinking. We want to write something
>> that can be reasonably easily modified after the fact to produce something
>> useful.
>>
>>
>>
>>
>>
>> To sum up, I think it should enough just to tag positions and identifiers
>> of atoms/bonds exactly as you do and possibly further extend them with a
>> mean how to pass some extra data to all of it. Then users can modify svgs
>> whichever way they want, but others might think differently.
>>
>>
>>
>> Excellent!
>>
>>
>>
>> -greg
>>
>>
>>
>>
>>
>> Best,
>>
>> Lukas
>>
>> *From: *Greg Landrum <greg.land...@gmail.com>
>> *Date: *Sunday, 3 February 2019 at 17:49
>> *To: *Lukas Pravda <lpra...@ebi.ac.uk>
>> *Cc: *RDKIT mailing list <rdkit-discuss@lists.sourceforge.net>
>> *Subject: *Re: [Rdkit-discuss] Bond tags in SVGs
>>
>>
>>
>> Hi Lukas,
>>
>>
>>
>> I had a chance to do a bit of work on this recently and I'd be interested
>> to hear your feedback.
>>
>>
>>
>> Bonds are now tagged with their bond IDs (using classes) and the
>> "TagAtoms()" function now adds clickable transparent circles above each
>> atom. These are also tagged with atom IDs using classes. TagAtoms() also
>> lets you add callback functions for events associated with the atom
>> circles. At the moment these are simply called with the atom id, but
>> there's almost certainly a better way to do that. Suggestions are very
>> welcome.
>>
>>
>>
>> Here's a gist showing what's currently on the branch:
>> https://gist.github.com/greglandrum/d23517cb449003252cf09b5bd14d8637
>>
>>
>>
>>
>>
>> On Tue, Dec 4, 2018 at 6:46 PM Lukas Pravda <lpra...@ebi.ac.uk> wrote:
>>
>> Hi Greg,
>>
>>
>>
>> that’s what I have been thinking, unlucky. Essentially, I want to color
>> the molecule in web-browser with various annotations and make it
>> interactive. For that part I’m converting it internally to the d3.js
>> internal representation (https://d3js.org/) and connecting it to its
>> environment. For most of the parts I’m just fine with the position of atoms
>> in svg using the tag property.
>>
>>
>>
>> What I wanted to avoid is to replicate rdkit svg drawing code in
>> javascript so that I don’t want to consume the dump of rdkit.Mol object.
>> What I wanted to do instead is to use existing svg images and parse them
>> into d3.js, so I know which paths belong to which bond.
>>
>>
>>
>> At this point my only idea is to color bonds individually and based on
>> the overlay/proximity use kd-tree to reverse-engineer which bonds the paths
>> belong to, which is a bit overkill in my view.
>>
>>
>>
>> Lukas
>>
>>
>>
>>
>>
>> *From: *Greg Landrum <greg.land...@gmail.com>
>> *Date: *Tuesday, 4 December 2018 at 17:24
>> *To: *Lukas Pravda <lpra...@ebi.ac.uk>
>> *Cc: *RDKIT mailing list <rdkit-discuss@lists.sourceforge.net>
>> *Subject: *Re: [Rdkit-discuss] Bond tags in SVGs
>>
>>
>>
>> Hi Lukas,
>>
>>
>>
>> There's not currently a way to do this at the moment. The closest you can
>> get is by calling AddMoleculeMetadata():
>>
>>
>>
>> In [6]: d = Draw.MolDraw2DSVG(200,200)
>>
>>
>>
>> In [8]: d.DrawMolecule(nm)
>>
>>
>>
>> In [10]: d.AddMoleculeMetadata(nm)
>>
>>
>>
>> In [11]: d.FinishDrawing()
>>
>>
>>
>> In [12]: svg = d.GetDrawingText()
>>
>>
>>
>> In [14]: print(svg)
>>
>> <?xml version='1.0' encoding='iso-8859-1'?>
>>
>> <svg version='1.1' baseProfile='full'
>>
>>               xmlns='http://www.w3.org/2000/svg'
>>
>>                       xmlns:rdkit='http://www.rdkit.org/xml'
>>
>>                       xmlns:xlink='http://www.w3.org/1999/xlink'
>>
>>                   xml:space='preserve'
>>
>> width='200px' height='200px' >
>>
>> <rect style='opacity:1.0;fill:#FFFFFF;stroke:none' width='200'
>> height='200' x='0' y='0'> </rect>
>>
>> <path d='M 9.09091,126.243 100,73.7568'
>> style='fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoi
>>
>> n:miter;stroke-opacity:1' />
>>
>> <path d='M 100,73.7568 190.909,126.243'
>> style='fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoi
>>
>> n:miter;stroke-opacity:1' />
>>
>> <metadata>
>>
>> <rdkit:mol xmlns:rdkit = "http://www.rdkit.org/xml"; version="0.9">
>>
>> <rdkit:atom idx="1" atom-smiles="[CH3]" drawing-x="9.09091"
>> drawing-y="126.243" x="-1.29904" y="-0.25" z="0" />
>>
>> <rdkit:atom idx="2" atom-smiles="[CH2]" drawing-x="100"
>> drawing-y="73.7568" x="0" y="0.5" z="0" />
>>
>> <rdkit:atom idx="3" atom-smiles="[CH3]" drawing-x="190.909"
>> drawing-y="126.243" x="1.29904" y="-0.25" z="0" />
>>
>> <rdkit:bond idx="1" begin-atom-idx="1" end-atom-idx="2" bond-smiles="-" />
>>
>> <rdkit:bond idx="2" begin-atom-idx="2" end-atom-idx="3" bond-smiles="-" />
>>
>> </rdkit:mol></metadata>
>>
>> </svg>
>>
>>
>>
>> This gets you the information you need to connect bond indices to the
>> atoms, but I suspect that's not what you're looking for.
>>
>>
>>
>> In general you are guaranteed that the order of the bonds in the output
>> SVG is the same as the order in the input molecule, but you can have
>> multiple paths for a given bond. For example here, where the end atoms have
>> different colors:
>>
>>
>>
>> In [25]: print(svg)
>>
>> <?xml version='1.0' encoding='iso-8859-1'?>
>>
>> <svg version='1.1' baseProfile='full'
>>
>>               xmlns='http://www.w3.org/2000/svg'
>>
>>                       xmlns:rdkit='http://www.rdkit.org/xml'
>>
>>                       xmlns:xlink='http://www.w3.org/1999/xlink'
>>
>>                   xml:space='preserve'
>>
>> width='200px' height='200px' >
>>
>> <rect style='opacity:1.0;fill:#FFFFFF;stroke:none' width='200'
>> height='200' x='0' y='0'> </rect>
>>
>> <path d='M 9.09091,100 59.1479,100'
>> style='fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:mi
>>
>> ter;stroke-opacity:1' />
>>
>> <path d='M 59.1479,100 109.205,100'
>> style='fill:none;fill-rule:evenodd;stroke:#FF0000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:mi
>>
>> ter;stroke-opacity:1' />
>>
>> <text x='109.205' y='107.5'
>> style='font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;text
>>
>> -anchor:start;fill:#FF0000' ><tspan>OH</tspan></text>
>>
>> <metadata>
>>
>> <rdkit:mol xmlns:rdkit = "http://www.rdkit.org/xml"; version="0.9">
>>
>> <rdkit:atom idx="1" atom-smiles="[CH3]" drawing-x="9.09091"
>> drawing-y="100" x="-0.75" y="5.55112e-17" z="0" />
>>
>> <rdkit:atom idx="2" atom-smiles="[OH]" drawing-x="122.71" drawing-y="100"
>> x="0.75" y="-5.55112e-17" z="0" />
>>
>> <rdkit:bond idx="1" begin-atom-idx="1" end-atom-idx="2" bond-smiles="-" />
>>
>> </rdkit:mol></metadata>
>>
>> </svg>
>>
>>
>>
>> What are you looking to be able to do? That may make it easier to either
>> come up with a work around or figure out what a new feature addition might
>> look like.
>>
>>
>>
>> -greg
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Mon, Dec 3, 2018 at 6:57 PM Lukas Pravda <lpra...@ebi.ac.uk> wrote:
>>
>> Hi all,
>>
>>
>>
>> I was wondering if there is a way how you can tag <path> elements (bonds)
>> in the svg created by rdkit.
>>
>>
>>
>> i.e. transform something like this:
>>
>> <path d='M 265.658,263.25 342.74,218.746' style='...' />
>>
>> <path d='M 342.74,218.746 419.822,174.241' style='...' />
>>
>>
>>
>> Into:
>>
>> <path bondId='1' d='M 265.658,263.25 342.74,218.746' style='...' />
>>
>> <path bondId='2' d='M 342.74,218.746 419.822,174.241' style='...' />
>>
>>
>>
>> Or similar. I’ve found possibility of tagging atoms in the SVG using
>> Draw.rdMolDraw2D.MolDraw2DSVG.drawOptions() method that exposes property
>> includeAtomTags. This then renders following additional elements into the
>> SVG:
>>
>> rdkit:atom idx="4" label="O<sup>-</sup>" x="153.479" y="82.8259" />
>>
>>
>>
>> But I have not seen anything like this for bonds (latest release of RDKIT
>> and python). Thanks, in advance for any hints. I was wondering about using
>> *highlightBondLists* and then based on the svg infer the bond
>> annotation, but that seems to be a bit of an overkill.
>>
>>
>>
>> Cheers,
>>
>> Lukas
>>
>>
>>
>>
>>
>> _______________________________________________
>> Rdkit-discuss mailing list
>> 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