Commit Graph

31 Commits

Author SHA1 Message Date
Greg Landrum
4049814132 Support some cactvs extensions to SMARTS (#1704)
* add queries for the number of heteroatom neighbors

* support cactvs "z" extension
this includes support for range queries on z that could
be extended to other query types as well

* extend range query extension to other SMARTS primitives

* add the less-than and greater-than versions of the range queries

* updates and new tests

* update .cmake files

* support [#6] in SMILES

* document SMILES extensions (such as they are)

* Add support for cactvs's Z queries

* add support for ^4 and ^5

* get tests running
doc update

* book updates

* update .cmake files
2018-01-04 12:00:39 -05:00
Greg Landrum
87786c08b5 Merge branch 'master' into modern_cxx
# Conflicts:
#	.travis.yml
#	Code/GraphMol/FileParsers/MolFileParser.cpp
#	Code/GraphMol/FileParsers/MolFileStereochem.cpp
#	Code/GraphMol/ForceFieldHelpers/UFF/testUFFHelpers.cpp
#	Code/GraphMol/MolAlign/testMolAlign.cpp
#	Code/GraphMol/MolDraw2D/MolDraw2D.cpp
#	Code/GraphMol/MolDraw2D/Wrap/rdMolDraw2D.cpp
#	Code/GraphMol/QueryOps.cpp
#	Code/GraphMol/ROMol.cpp
#	Code/GraphMol/SmilesParse/test.cpp
#	Code/GraphMol/Trajectory/Trajectory.cpp
#	Code/GraphMol/Wrap/Atom.cpp
#	Code/GraphMol/Wrap/Bond.cpp
#	Code/GraphMol/new_canon.cpp
#	Code/RDGeneral/testDict.cpp
#	Code/SimDivPickers/Wrap/MaxMinPicker.cpp
2017-10-05 05:58:38 +02:00
Greg Landrum
db89172bf8 handle the heavy-atom degree queries differently (#1560)
* handle the heavy-atom degree queries differently

* Fixes #1563

* add a test for the heavy atom degree option

* Support (and test) adjustHeavyDegree in the cartridge too.

* test results
2017-09-12 16:10:15 -04:00
Greg Landrum
915cf08faa run clang-format with c++-11 style over that 2017-04-22 17:19:10 +02:00
Greg Landrum
7c0bb0b743 clang-tidy output 2017-04-22 17:09:24 +02:00
Greg Landrum
270f7b76e5 Partial support for reading CXSMILES (#1237)
* add a SmilesParserParams object to prepare for this

* add a SmilesParserParams object to prepare for this

* add tests for the SmilesParseParmas

* support name parsing, should it be the default?

* rename CXNSmiles to CXSmiles;
add a spirit parser for CXSmiles coordinate that is at least syntax correct

* abandon boost::spirit for now; crude atom token parser

* support params in smiles parser (not tested, may not build)

* can read coords and atom labels along with mol names; crude, but works

* read coordinate bonds

* remove some compiler warnings with VS2015

* remove a bunch of compiler warnings on windows

* remove more warnings on windows

* remove more warnings on windows

* backup commit: first pass at parsing query features

* radical spec parsing

* handle attachment points using atom mapping

* switch to a named property for atom labels

* fix handling of the "A" atom query

* add functions to construct A and Q queries (needs more work)

* fix a problem created while cleaning up warnings earlier

* add some additional convenience functions for making generic atoms.
Still need M and to recognize these while writing CXSMILES

* add M queries; update some tests

* fix a linux compile problem

* get the cxsmiles stuff working in python; basic testing

* support "M" in CXSMILES
2017-01-31 13:50:36 -05:00
Greg Landrum
6745264a82 Adds some additional canned atom and bond query definitions (#1047)
* atoms: radical electrons and presence of a chiral tag

* bonds: presence of stereo

* add new atom queries to python wrapper

* add queries for missing atom chiral tags
2016-09-09 10:31:02 -04:00
Greg Landrum
e08e0d16d8 first pass, using google style 2015-11-14 14:58:11 +01:00
Greg Landrum
00146b2cd7 Move the query information functions from Fingerprints to QueryOps.h 2015-08-18 16:41:24 +02:00
Brian Kelley
7fcf0bda9e RDKit learns how to query Atom/Bond properties
QueryBond qB;
  qB.setQuery(makePropQuery<Bond, double>("foo", 2));

  QueryAtom qA;
  qA.setQuery(makePropQuery<Atom, string>("foo", “bar”));
2015-02-27 08:28:17 -05:00
Brian Kelley
7a8df171d0 RDKit learns how to query properties on Atoms
Examples:

    QueryAtom qA;
    qA.setQuery(makeAtomHasPropQuery("foo"));

    QueryAtom qA;
    qA.setQuery(makeAtomPropQuery<double>("foo", 2));

    QueryAtom qA;
    qA.setQuery(makeAtomPropQuery<std::string>("foo", "bar"));
2015-02-25 15:28:34 -05:00
Greg Landrum
2d8500b407 Fixes #314 2014-08-21 07:29:09 +02:00
Greg Landrum
8959e07798 Fixes #313
NOTE: this still needs testing on machines with older versions of flex/bison
2014-08-19 07:20:04 +02:00
Greg Landrum
36ec3ff809 move towards more flexible queries 2013-12-14 09:59:12 +01:00
Greg Landrum
2cbc96aec2 laying the groundwork for more generic atomic query functions 2013-12-14 09:32:12 +01:00
Greg Landrum
b45423be3e rename makeAtomNumEqualsQuery() to makeAtomNumQuery() 2013-12-14 09:14:57 +01:00
Greg Landrum
97dd2d1f44 Fixes #60 2013-07-04 06:47:03 +02:00
Greg Landrum
e7d25d7973 tests passing except reactions 2012-04-21 04:40:55 +00:00
Greg Landrum
3b3d44db16 remove exe property from source files 2011-01-13 04:22:56 +00:00
Greg Landrum
f3fbef45c5 update copyright statements 2010-09-26 17:04:37 +00:00
Greg Landrum
e05580e495 This is a sizeable one: change the way BGL is used so that atoms and bonds are stored as bundled properties
instead of using the property map interface.
A nice side-effect is that the wart of having to use property maps to loop over bonds or atom neighbors
is now gone.
This potentially breaks lots of client C++ code.
2009-02-11 20:19:25 +00:00
Greg Landrum
335820c020 add explicit valence query 2008-11-17 08:09:23 +00:00
Greg Landrum
57be4a92ef This is a fix for sf.net issue 1968930:
http://sourceforge.net/tracker/index.php?func=detail&aid=1968930&group_id=160139&atid=814650

In order to fix the problem, the value of the query function for atomMass queries
is being multiplied by a constant factor (currently 1000) before converting
to an int. This allows distinguishing between things like [CH4] (where the
C has mass 12.011) and [12CH4] (where the C has mass 12.000).
2008-08-13 04:56:48 +00:00
Greg Landrum
9c7f33a5c8 merge changes from QuerySerialization_6March2008 branch, revs 555:563, into the trunk; 2008-03-12 06:11:39 +00:00
Greg Landrum
75cd5eb0e8 this is partial progress towards feature request 1902466 :
translate more query information into SMARTS
https://sourceforge.net/tracker/index.php?func=detail&aid=1902466&group_id=160139&atid=814653

This commit adds support for ring bond counts 
and unsaturation queries.
2008-03-04 05:34:49 +00:00
Greg Landrum
562c18fdfa further progress towards supporting MDL mol file queries (sf.net issue 1756962) 2008-02-26 18:06:20 +00:00
Greg Landrum
98b90f2ae9 - fix sf.net issue 1836223: "r" misinterpreted in SMARTS queries
http://sourceforge.net/tracker/index.php?func=detail&aid=1836223&group_id=160139&atid=814650

- some general code cleanups in the query handling 
  (needs to be tested on windows)
2008-01-15 06:43:09 +00:00
Greg Landrum
32c3fbe2cf reorg the query stuff a bit;
add ChemTransforms to the makefile (duh)
2006-10-18 17:08:35 +00:00
Greg Landrum
a890611a22 merge back in changes from ChemTransforms (r30:51);
the makefile for linux is still missing (I have one, I just need to retrieve it)
but otherwise this is in pretty good shape. 
err, I think so at least.
2006-09-15 16:44:38 +00:00
Greg Landrum
5d03333c22 setup svn keywords (should have done this before import... grn) 2006-05-06 22:54:39 +00:00
Greg Landrum
75a79b6327 initial import 2006-05-06 22:20:08 +00:00