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