Re: [Rdkit-discuss] Problem with depicting reaction SMARTS

2022-02-09 Thread Mark Mackey via Rdkit-discuss
Thanks Paolo – we’ll give that a try.

Regards,
Mark

Dr Mark Mackey
Chief Scientific Officer
Cresset
New Cambridge House, Bassingbourn Road, Litlington, Cambridgeshire, SG8 0SS, UK
Tel: +44 (0)1223 858890   Mobile: +44 (0)7595099165
Email: m...@cresset-group.com<mailto:m...@cresset-group.com> Web: 
www.cresset-group.com<http://www.cresset-group.com/>



From: Paolo Tosco 
Sent: 08 February 2022 21:48
To: Mark Mackey 
Cc: rdkit-discuss@lists.sourceforge.net
Subject: Re: [Rdkit-discuss] Problem with depicting reaction SMARTS

Hi Mark,

I believe the bug is caused by the fact that isAtomListQuery() returns true for 
a query that is actually a complex query, and that subsequently 
getAtomListQueryVals() (called by getAtomListText()) fails to parse.
The following patch seems to solve the problem:

$ git diff
diff --git a/Code/GraphMol/QueryOps.cpp b/Code/GraphMol/QueryOps.cpp
index a80d8f5..ea28ad3 100644
--- a/Code/GraphMol/QueryOps.cpp
+++ b/Code/GraphMol/QueryOps.cpp
@@ -812,8 +812,9 @@ bool _atomListQueryHelper(const T query) {
 return false;
   }
 }
+return true;
   }
-  return true;
+  return false;
 }
 }  // namespace
 bool isAtomListQuery(const Atom *a) {

Cheers,
p.

On Tue, Feb 8, 2022 at 8:29 PM Mark Mackey via Rdkit-discuss 
mailto:rdkit-discuss@lists.sourceforge.net>>
 wrote:
Hi all,

I’m trying to generate an SVG from reaction SMARTS. The code looks like this:

QByteArray ChemicalReactionsCalculation::toSvg(const QString , int 
width, int height)
{
try
{
std::string text = reaction.toStdString();

std::unique_ptr 
rxn(RDKit::RxnSmartsToChemicalReaction(text));
if (rxn)
{
RDKit::MolDraw2DSVG drawer(width, height);
drawer.drawReaction(*rxn);
drawer.finishDrawing();

auto svg = drawer.getDrawingText();
return QByteArray::fromStdString(svg);
}
}
catch (const std::exception )
{
qWarning() << "Exception in ChemicalReactionsCalculation::toSvg on" << 
reaction << ":" << e.what();
}
return QByteArray();
}

This works fine for most reaction SMARTS strings, but throws an exception at 
“drawer.drawReaction” when the SMARTS string has a combination of Boolean 
operators in it. For example, “[n:1]>>[o:1]” works fine, as does 
“[c,n:1]>>[O:1]”, but doing “[c,n:1]>>[o:1]” fails (as does the equivalent 
“[c,nH1:1]>>[o:1]”):

Exception in ChemicalReactionsCalculation::toSvg on "[c,n:1]>>[o:1]" : bad 
query type1

This happens for pretty much any combination of “,” and “&” operators inside 
the square brackets. Any ideas?

Regards,
Mark

Dr Mark Mackey
Chief Scientific Officer
Cresset
New Cambridge House, Bassingbourn Road, Litlington, Cambridgeshire, SG8 0SS, UK
Tel: +44 (0)1223 858890   Mobile: +44 (0)7595099165
Email: m...@cresset-group.com<mailto:m...@cresset-group.com> Web: 
www.cresset-group.com<http://www.cresset-group.com/>




This email has been sent from Cresset BioMolecular Discovery Limited, 
registered in England and Wales, Company Number: 04151475. The information in 
this email and any attachments are confidential and may be privileged. It is 
intended solely for the addressee and access to this email by anyone else is 
unauthorised. If an addressing or transmission error has misdirected this 
email, please notify the author by replying to this email. If you are not the 
intended recipient you must not use, disclose, distribute, store or copy the 
information in any medium. Although this e-mail and any attachments are 
believed to be free from any virus or other defect which might affect any 
system into which they are opened or received, it is the responsibility of the 
recipient to check that they are virus-free and that they will in no way affect 
systems and data. No responsibility is accepted by Cresset BioMolecular 
Discovery Limited for any loss or damage arising in any way from their receipt, 
opening or use. Privacy notice<https://www.cresset-group.com/privacy/>
___
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


Re: [Rdkit-discuss] Problem with depicting reaction SMARTS

2022-02-08 Thread Paolo Tosco
Hi Mark,

I believe the bug is caused by the fact that isAtomListQuery() returns true
for a query that is actually a complex query, and that subsequently
getAtomListQueryVals() (called by getAtomListText()) fails to parse.
The following patch seems to solve the problem:

$ git diff
diff --git a/Code/GraphMol/QueryOps.cpp b/Code/GraphMol/QueryOps.cpp
index a80d8f5..ea28ad3 100644
--- a/Code/GraphMol/QueryOps.cpp
+++ b/Code/GraphMol/QueryOps.cpp
@@ -812,8 +812,9 @@ bool _atomListQueryHelper(const T query) {
 return false;
   }
 }
+return true;
   }
-  return true;
+  return false;
 }
 }  // namespace
 bool isAtomListQuery(const Atom *a) {

Cheers,
p.

On Tue, Feb 8, 2022 at 8:29 PM Mark Mackey via Rdkit-discuss <
rdkit-discuss@lists.sourceforge.net> wrote:

> Hi all,
>
>
>
> I’m trying to generate an SVG from reaction SMARTS. The code looks like
> this:
>
>
>
> QByteArray ChemicalReactionsCalculation::toSvg(const QString ,
> int width, int height)
>
> {
>
> try
>
> {
>
> std::string text = reaction.toStdString();
>
>
>
> std::unique_ptr
> rxn(RDKit::RxnSmartsToChemicalReaction(text));
>
> if (rxn)
>
> {
>
> RDKit::MolDraw2DSVG drawer(width, height);
>
> drawer.drawReaction(*rxn);
>
> drawer.finishDrawing();
>
>
>
> auto svg = drawer.getDrawingText();
>
> return QByteArray::fromStdString(svg);
>
> }
>
> }
>
> catch (const std::exception )
>
> {
>
> qWarning() << "Exception in ChemicalReactionsCalculation::toSvg
> on" << reaction << ":" << e.what();
>
> }
>
> return QByteArray();
>
> }
>
>
>
> This works fine for most reaction SMARTS strings, but throws an exception
> at “drawer.drawReaction” when the SMARTS string has a combination of
> Boolean operators in it. For example, “[n:1]>>[o:1]” works fine, as does
> “[c,n:1]>>[O:1]”, but doing “[c,n:1]>>[o:1]” fails (as does the
> equivalent “[c,nH1:1]>>[o:1]”):
>
>
>
> Exception in ChemicalReactionsCalculation::toSvg on "[c,n:1]>>[o:1]" :
> bad query type1
>
>
>
> This happens for pretty much any combination of “,” and “&” operators
> inside the square brackets. Any ideas?
>
>
>
> Regards,
>
> Mark
>
>
>
>
>
> *Dr Mark Mackey Chief Scientific Officer *
> *Cresset *New Cambridge House, Bassingbourn Road, Litlington,
> Cambridgeshire, SG8 0SS, UK
> Tel: +44 (0)1223 858890   Mobile: +44 (0)7595099165
> Email: m...@cresset-group.com Web: www.cresset-group.com
>
>
>
>
>
> This email has been sent from Cresset BioMolecular Discovery Limited,
> registered in England and Wales, Company Number: 04151475. The information
> in this email and any attachments are confidential and may be privileged.
> It is intended solely for the addressee and access to this email by anyone
> else is unauthorised. If an addressing or transmission error has
> misdirected this email, please notify the author by replying to this email.
> If you are not the intended recipient you must not use, disclose,
> distribute, store or copy the information in any medium. Although this
> e-mail and any attachments are believed to be free from any virus or other
> defect which might affect any system into which they are opened or
> received, it is the responsibility of the recipient to check that they are
> virus-free and that they will in no way affect systems and data. No
> responsibility is accepted by Cresset BioMolecular Discovery Limited for
> any loss or damage arising in any way from their receipt, opening or use. 
> Privacy
> notice 
> ___
> 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


[Rdkit-discuss] Problem with depicting reaction SMARTS

2022-02-08 Thread Mark Mackey via Rdkit-discuss
Hi all,

I'm trying to generate an SVG from reaction SMARTS. The code looks like this:

QByteArray ChemicalReactionsCalculation::toSvg(const QString , int 
width, int height)
{
try
{
std::string text = reaction.toStdString();

std::unique_ptr 
rxn(RDKit::RxnSmartsToChemicalReaction(text));
if (rxn)
{
RDKit::MolDraw2DSVG drawer(width, height);
drawer.drawReaction(*rxn);
drawer.finishDrawing();

auto svg = drawer.getDrawingText();
return QByteArray::fromStdString(svg);
}
}
catch (const std::exception )
{
qWarning() << "Exception in ChemicalReactionsCalculation::toSvg on" << 
reaction << ":" << e.what();
}
return QByteArray();
}

This works fine for most reaction SMARTS strings, but throws an exception at 
"drawer.drawReaction" when the SMARTS string has a combination of Boolean 
operators in it. For example, "[n:1]>>[o:1]" works fine, as does 
"[c,n:1]>>[O:1]", but doing "[c,n:1]>>[o:1]" fails (as does the equivalent 
"[c,nH1:1]>>[o:1]"):

Exception in ChemicalReactionsCalculation::toSvg on "[c,n:1]>>[o:1]" : bad 
query type1

This happens for pretty much any combination of "," and "&" operators inside 
the square brackets. Any ideas?

Regards,
Mark

Dr Mark Mackey
Chief Scientific Officer
Cresset
New Cambridge House, Bassingbourn Road, Litlington, Cambridgeshire, SG8 0SS, UK
Tel: +44 (0)1223 858890   Mobile: +44 (0)7595099165
Email: m...@cresset-group.com Web: 
www.cresset-group.com




This email has been sent from Cresset BioMolecular Discovery Limited, 
registered in England and Wales, Company Number: 04151475. The information in 
this email and any attachments are confidential and may be privileged. It is 
intended solely for the addressee and access to this email by anyone else is 
unauthorised. If an addressing or transmission error has misdirected this 
email, please notify the author by replying to this email. If you are not the 
intended recipient you must not use, disclose, distribute, store or copy the 
information in any medium. Although this e-mail and any attachments are 
believed to be free from any virus or other defect which might affect any 
system into which they are opened or received, it is the responsibility of the 
recipient to check that they are virus-free and that they will in no way affect 
systems and data. No responsibility is accepted by Cresset BioMolecular 
Discovery Limited for any loss or damage arising in any way from their receipt, 
opening or use. Privacy notice
___
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss