Commit Graph

61 Commits

Author SHA1 Message Date
Brian Kelley
373a89021e Change boost int types to std types (#2233) 2019-01-22 17:45:03 +01:00
Ric
d26d4b076e Support for parsing/writing SGroups in SD Mol files. (#2138)
* Implementation of SGroups

* remove sample files test

* update gitignore with test outputs

* fix RevisionModifier

* re-enable tests

* backup commit; things seem to work so far

* some refactoring; obvious s group tests pass now

* more refactoring

* everything now out of the public API

* not sure why this was still in there

* rename functions; all tests now pass

* remove getNextFreeSGroupId; readd comment in copy SGroups

* clang-format

* squash-merge current master

* squash merge master

* Address comments on PR

- Update to current master.
- Move SGroup parse time checks to SGroupChecks namespace.
- Store SGroups in ROMOl as vector<SGroups>.
- SGroup methods return referenes instead of pointers.
- Use atom/bond/sgroup indexes for properties instead of pointers.
- Have SGroups inherit from RDProps; move properties to RDProps.
- Remove trivial/unused methods.
- Add a link to the SD specification atop SGroup.h
2019-01-22 15:42:27 +01:00
Dan N
eaa44b40c2 Enhanced stereo read/write support in SDF files. (#2022)
* add a couple test files

* backup

* first pass at some theory documentatin

* it's a draft

* Update enhanced stereochemistry documentation

Adds initial target use case and caveats about the tentative
nature of the current implementation.

* Support read/write of molfile enhanced stereochemistry

This includes reading and writing of enhanced stereochemistry
from v3000 molfiles (sdf). Enhanced stereochemistry encodes
the relative configuration of stereocenters, allowing
representation of racemic mixtures and compounds with
unknown absolute stereochemistry.

It does not include:
* Python wrapping
* invalidation of the enhanced stereochemistry
* use of enhanced stereochemistry in search
* depiction of enhanced stereochemistry.

* Update to reflect changes from #1971

* change names of enum elements to allow compilation in VS2017

I think it's also clearer to do things this way

* Addressed most review comments.

* Run missed test "testEnhancedStereoChemistry"
* In tests, added size checks to group equality checks
* Updated copyright statements
* Deleted mol created for a test
* Use perfect forwarding in RWMol::setStereoGroups()
* use references for stereo groups that are checked in write and pickle
* Updated stereogroup.h in hopes of fixing compilation on Windows.
* clang-format

* try allowing a switch to boost regex and requiring it for g++-4.8

* do a better job of that

* typo

* Code review comments. Updated Copyright notice.

* When an atom is deleted, delete stereo groups containing it.

Also updates StereoGroup toUse accessors instead of
constant member attributes. This allows move of StereoGroups.

* RDKit style guide

* Add header required on Windows.

* get the SWIG wrappers to build
2018-09-26 15:44:23 +02:00
Greg Landrum
09acc0c2a9 fixes #1999 (#2004) 2018-08-13 08:45:41 -04:00
Greg Landrum
dfae8377dd Some optimization of the queries constructed from SMARTS (#1940)
* Fixes #1929

* add a tests to make sure bogus template directories work

* add a combined atomic number + aromaticity query operation to speed up SMARTS matches
Still needs to be recognized by the SMARTS writer, serialization, and no doubt a few other places.

* add a combined query for the single/aromatic bond query that shows up in SMARTS

* Stop using a dead pointer in the when parsing Marvin SMARTS in a CTAB

* At this point all tests pass on windows

* debugging info back in

* update the bison output
2018-06-30 20:22:06 -04:00
Greg Landrum
108d84ab1e Switch from boost::thread to std::thread (#1745)
* boost::thread mostly gone... still need to get rid of once
everything compiles

* replace boost::call_once

* remove link-time dependency on boost::thread

* first pass at using async

* switch to using async everywhere
2018-02-22 03:43:07 +01:00
Greg Landrum
ef60d71c6f Allows CIS/TRANS double bonds to be de-pickled (#1710) (#1711)
* Fixes #1710

* add an additional test for #1563 while we're here
2018-01-21 07:18:26 +01:00
Greg Landrum
46e494b387 Set atomic properties from SMARTS (#1716)
* set some chemical properties (charge, isotope) on query atoms when parsing from smiles

* fix an irritating cmake problem

* add explicit Hs too

* I think this is now done
2018-01-12 11:15:05 -05:00
Greg Landrum
ae3aebeb32 Get queries from the new cactvs SMARTS extensions to pickle correctly (#1712)
* not yet working

* update smarts testing so that it verifies that the parsed patterns can also be pickled/unpickled

* fix pickling/unpickling of range queries;
add unpickling of new cactvs queries and range_ queries

* force CI to re-run

* cleanup in response to review
2018-01-09 12:23:36 -05:00
Greg Landrum
1efa8e696e another clang-format run 2017-10-12 06:42:15 +02: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
Brian Kelley
3d75f5c78f Fixes blanking of non-query atom data when QueryAtomData was being pi… (#1541)
* Fixes blanking of non-query atom data when QueryAtomData was being pickled

* Adds old version pickle test for properties

* Makes pickle py2 and py3 compatible
2017-09-07 20:43:08 +02: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
Brian Kelley
e70599a12e Dev/pickle properties (#1277)
* Adds pickling of properties (optional)

* Ignores RDKit::Dict::Pairs - previously private

* Fixes AllProps definition

* Fixes BondProps seperation

* Fixes reaction pickling - Adds ability to pickle atom + QueryAtom

* Bumps pickle version

* Removes fugly post-increments

* Changes Default to NoProps

* Tests more options for pickling

* Runs clang format

* Adds get/setDefaultPropertyPickleOptions, exposes to python

* turns tests back on.

* Fixes enum (clang was allowing c++11 semantics)

* Adds global settings test

* Code/GraphMol/testPicklerGlobalSettings.cpp
2017-02-09 16:06:01 +01:00
Greg Landrum
c8862fb111 Fixes #713 2015-12-22 07:18:35 +01:00
kelley
5dbec2fe85 Adds rdcasts where appropriate 2015-11-29 17:52:27 -05:00
Greg Landrum
e08e0d16d8 first pass, using google style 2015-11-14 14:58:11 +01:00
Greg Landrum
e37296d7c7 post review 2015-11-14 08:08:14 +01:00
Brian Kelley
5f59333a56 Silences unused parameters 2015-10-18 14:02:29 -04:00
Greg Landrum
797db2fa82 remove Atom::setMass() 2015-03-22 17:57:04 +01:00
Brian Kelley
95a92282d1 Dictionary access is saniztized and optimized.
o rdkit gains a RDKit::common_properties namespace that contains common string value properties

 o Dict.h and below gain getPropIfPresent that attempts to retrieve a property and returns
  true/false on success or failure.  This is used to optimize access.

 o rdkit learns how to pass property keys by reference, not value.

A new namespace has been added to RDKit, common_properties
that contains the std::string values for commonly used
properties.  This helps to avoid typos in string values
but also avoids a creation of std::strings from character
values.  All accessors (has/get/clear and getPropIfPresent) now pass
the key by reference.

Additionally, getPropIfPresent removes the double lookup
of hasProp/getProp which can be a significant speedup
in the smiles and smarts parsers (10-20%)
2015-01-15 12:23:29 -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
d8c523352c fix a profoundly stupid mistake from an earlier commit 2014-05-10 07:43:30 +02:00
Greg Landrum
f5cf3322fe code cleanup: removing compiler warnings 2014-05-08 06:06:07 +02:00
Greg Landrum
7eca2ead35 Fixes #149 2014-01-01 09:24:06 +01:00
Greg Landrum
60a68669da remove more clang warnings 2013-12-02 04:46:46 +01:00
Greg Landrum
0726c3ea9d changes suggested by Roger S:
add residueNumber
serialNumber -> int
add segmentNumber
2013-10-08 05:49:54 +02:00
Greg Landrum
866e43ec2b add data fields for heteroatom and secondary structure 2013-08-21 04:56:40 +02:00
Greg Landrum
7b805988f1 rename AtomPeptideMonomerInfo->AtomPDBMonomerInfo;
remove element and charge fields
2013-08-20 17:07:37 +02:00
Greg Landrum
7e1843a2c5 initial set of tests in 2013-08-09 14:07:20 +02:00
Greg Landrum
a4734bbd43 start using the alternate getProp form 2013-07-20 07:26:06 -04:00
Greg Landrum
97dd2d1f44 Fixes #60 2013-07-04 06:47:03 +02:00
Greg Landrum
8adebd6321 Fixes #52 2013-06-19 05:48:30 -04:00
Greg Landrum
ed84596422 fix and test issue 285 2013-02-01 04:12:41 +00:00
Greg Landrum
e55d73fa57 fix and test sf.net issue 280. 2013-01-08 12:56:24 +00:00
Greg Landrum
e7d25d7973 tests passing except reactions 2012-04-21 04:40:55 +00:00
Greg Landrum
162662186d not working yet 2012-04-19 06:15:40 +00:00
Greg Landrum
d9949b6765 fixes and tests for sf.net issues 3496759, 3496799, and 3496800 2012-03-04 15:37:50 +00:00
Greg Landrum
33ed58db4d fix and test issue 3316407 2012-02-16 05:09:21 +00:00
Greg Landrum
a99ad44859 clean up some compiler warnings 2011-12-31 15:58:57 +00:00
Greg Landrum
a7a145f3d9 modifications to the pickle binary format to make serialized molecules smaller 2011-03-29 04:35:43 +00:00
Greg Landrum
c3c929f02d fix and test sf.net issue 3202580 2011-03-08 05:00:01 +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
9edbb9909a more extensive testing of pickler 2010-06-17 05:53:37 +00:00
Greg Landrum
96adbc11ea remove the deprecated assign{Atom,Bond}ChiralCodes functions 2009-08-02 15:33:08 +00:00
Greg Landrum
c425bc8c03 fix and test sf.net Issue2788233 2009-06-01 13:04:33 +00:00