Commit Graph

92 Commits

Author SHA1 Message Date
John Mayfield
76ed536c87 Branch/vf2 optimisations (#2500)
* Remove out_1 and out_2, only need for directed graphs.

* Variable renaming, no other changes.

* Fix a couple things that were forgotten during the rename

* Only one of these counts is updated now.

* Add ifdef to enable/disable VF2Pruning

* Add degree bound check, could be pushed down to the generic VertexCheck predicate.

* The stack knows at each point what was added, by passing these into the Backtrack call the clone allocation can be removed.

* Indent and rename added_node1 to node1.

* Now the clone is removed we can add a member function to handle the recursion cleanly.

* Also make for MatchAll a member function.

* Set lim=0 to mean infinity.

* VF2Plus optimisation, when candidate is in the terminal set select from a mapped neighbours adjacency list.

* Optimisation hint.

* Use a struct for the Pair removing the need for double pointer and heap alloc/delete of the iterators.

* disable pruning by default (it's a bit quicker to not do this)

* update expected test results

The updated VF2 code can return symmetric results in a different order
than we were getting previously. The results are still correct, but they
change some of the downstream things that don't do symmetrization

* update expected java results
2019-06-30 04:49:24 +02:00
Steve Roughley
8636cb34a5 Added rankAtoms to ROMol wrapper and added Java test case (#1540)
* Added rankAtoms to ROMol wrapper and added Java test case

* Added missing argument to rankMolAtoms call in wrapper

* Update ROMol.i

* Update ROMol.i

Removed circular reference to Canon

* Update ROMol.i

* Update ROMol.i

* Update SmilesTests.java

* minor stuff to force the CI builds to run again

* Update the test to match the current code
2019-06-07 15:57:22 +02:00
Francois Berenger
7ec8ec0bb9 Vdv radii from blue obelisk (#2154)
* updated atomic radii to follow the Blue Obelisk Data Repository

Ubuntu package bodr version 10-1; radii are from file
/usr/share/bodr/elements.xml

* typo

* use 2.0 as default VDW radius instead of 1.7

for elements missing from the Blue Obelisk Data Repository

* Document the atomic_data

* update expected test results

* update java tests

* allow a bit more slop when comparing confs

For cross-platform stability
2019-05-29 09:23:27 +02:00
jones-gareth
ebaa7b64e3 Cart fixes (#2462)
* Wrapper fixes: Tversky for De Morgan and java byte functions for ExplicitBitVect

* Wrapper fixes: Tversky for De Morgan and java byte functions for ExplicitBitVect
2019-05-27 14:29:09 +02:00
Greg Landrum
d8ade5f9c8 Fix a copy-paste bug in the Java tests 2019-03-18 05:56:12 +01:00
Brian Kelley
d2f716a2e4 Adds gzstream stream, exposes to swig (#2314)
* Move RDBoostStreams to RDStreams

* RDBoostStreams->RDStreams

* RDBoostStreams->RDStreams

* Wrap SWIG (with Java test)

* Fix missing declaration

* Use the file that already exists

* Revert to original version

* Revert to CXSMiles version

* Update boost version

* Remove redundant code

* Add zlib

* check for win32

* FileParsers now builds static on windows
2019-03-18 05:32:42 +01:00
Greg Landrum
89439f5520 Expose RGroupDecomposition to SWIG (#2345)
* change to make the SWig builds work on windows

* add the wrapper. Still needs tests

* first rgd java wrapper test, does not pass

* get static builds working on windows
2019-03-13 08:23:23 -04:00
Brian Kelley
af6d413ccc Exposes substructlibrary to swig (#2337)
* SWIG wrap SubstructLibrary

* Fix tests

* Fix virtual overload for tagAtoms

* Add SubstructLibrary to swig
2019-03-12 16:35:22 +01:00
Greg Landrum
a102eaf932 Add options for substructure searching (#2254)
* first pass at adding a SubstructMatchParameter struct

* start moving the rest of the backend to use the parameters

* backend at least mostly moved over

* add aromaticMatchesConjugated
add tests

* switch over the MolBundle too
Add templates to reduce duplicated code

* support older compilers

let's see if it works...

* add SubstructMatchParameters to Python wrapper

* remove some deprecations and warnings

* damn compilers

* parameter support for bundles in python wrapper

* add the parameters to the java wrappers

* response to review
2019-02-08 09:10:10 -05:00
Greg Landrum
4d14a819e6 Fixes #2245 (#2250)
* not yet done

* update docs, python tests, and the release notes

* updates in response to review
2019-01-31 00:03:39 -05:00
Susan Leung
956fdf268c Dev/GSOC2018_MolVS_Integration (#2002)
* short test file for MolVS standardize_sm

* short test file for MolVS fragment

* short test file for MolVS metals

* short test file for MolVS normalize

* short test file for MolVS reionize

* short test file for MolVS tautomer

* short test file for MolVS validate

* long test file for MolVS standardize smiles

* long test file for MolVS fragment

* long test file for MolVS metals

* long test file for MolVS normalize

* long test file for MolVS reionize

* long test file for MolVS tautomer

* long test file for MolVS validate

* Unit tests for MolVS steps

* dropping support for Python2

* molvs/__init__.py

* molvs/charge.py

* molvs/errors.py

* molvs/fragment.py

* molvs/metal.py

* molvs/normalize.py

* molvs/resonance.py

* molvs/standardize.py

* molvs/tautomer.py

* molvs/utils.py

* molvs/validate.py

* molvs/validations.py

* molvs/cli.py

* adapted and renamed molvs/cli.py to work within $RDBASE/Contrib/MolVS/

* setup MolStandardize directories, source with empty cleanup function, header, CMake files

* corrections to empty source, header and test1.cpp

* adding empty functions and initializers to MolStandardize

* empty Metal source, header and added test

* added most of Metal.cpp functionality and made some more tests

* empty functions and initializers to Normalize

* empty functions and initializers to Validate

* added most code for RDKitDefault mode, along with some tests

* restructure for abstract base class ValidateMethod

* written in isNoneValidation for MolVSValidation

* took out isNoneValidation, put in noAtomValidation, neutralValidation, isotopeValidation for MolVSValidation

* added in AllowedAtoms

* added in disallowedAtoms

* corrections to Validate

* added code for FragmentRemover

* extended fragment functionality to include choose largest fragment, added in tests for fragment catalog, fragment remover. Also added fragmentValidation method in MolStandardize

* added another test to testValidate test_fragment

* corrections to fragment

* corrections to Metal

* added code for Normalize

* added normalize member function to MolStandardize and added tests

* added multi fragment functionality to Normalize.cpp and additional tests

* TransformCatalog

* tests for Normalize.cpp

* first bit of cleanup

* added most of Charge functionality and some tests

* some corrections to Charge.cpp and some more tests to testCharge.cpp

* corrections to Charge.cpp

* start of Tautomer Enumerate with some tests

* added BondType option to Tautomer Enumeration

* correcting for some memory leakage

* a few alterations to formatting

* sorting out some memory leaks

* sorting out some memory leaks

* some corrections for PCS test set

* redo tests with updated RDKit

* fixing memory leak

* more fixes after 100kPCS set testing

* using tab as delimiter in CSVs rather than comma

* tutorial for MolStandardize

* still working on Tautomer enumeration

* deleted some empty tests

* starting writing tautomer canonicalize

* rename test_data -> data (the source still needs to be updated)

* automatic source reformatting

* adjust to directory rename

* move the fragment catalog test into the MolStandardize directory
do not create separate library for FragmentCatalog

* stop building separate libraries for the catalogs

* move the CleanupParameters into the MolStandardize namespace

* first pass at python wrapper

* move the py module to the correct dir;
add some python tests;
add standardizeSmiles to python wrapper

* disabling the compareMolVSTest since that requires command line arguments to run

* get this building on windows

* put the python lib in the right place

* further work on python wrapper for rdMolStandardize

* added get and set functions to Metal and wrapped them

* added get and set functions to Metal and wrapped them

* changed construstor of Reionizer class and input args for reionize, wrapped this default

* overload Reionizer constructor so user can input own AcidBaseFile from python

* added Uncharger class to Charge and added test for Uncharger

* wrapped Fragment, fixed some memory leakage, changed some args and return types, added some tests

* wrapped Normalized and changed how Normalizer class is initiated

* changing MolVSValidation structure so user can choose which MolVS submethod they want

* starting to write Wrap for Validate

* now it compiles with Wrap/Validate.cpp

* a couple refactorings around validate

* move the validate code into the rdMolStandardize module

* make sure a valid pointer is returned for standardizeSmiles

* rdMolStandardize.MolVSValidation done and tests added

* half way through AllowedAtomsValidation

* finished AllowedAtomsValidation and DisallowedAtomsValidation

* moved charge, fragment, metal, normalize into the rdMolStandardize module

* changed tutorial to use wrapped code

* added copyrights

* added copyrights

* move the data files

* modify source files to adjust to the move

* added validateSmiles functionality

* removed std::cout

* redid some of the 100k PCS tests

* working on the tutorial

* adding some documentation

* deleting some comment lines

* some changes after pull review

* More changes after pull review

* start of trying to make java wrap

* remove some warnings, add some questions

* additional warning removals, a bit more reporting

* some test cleanups

* enable testing of the java code
2018-09-28 11:24:25 +02:00
Matt Swain
a6354d1501 Make svg xmlns prefix use more consistent (#1866)
Set svg as the default xmlns, so no prefix is needed for every svg tag. Also remove all code in python wrappers that stripped these prefixes.
2018-05-14 17:07:55 +02:00
Greg Landrum
5f6650306e Fixes #1837 (#1839)
* Fixes #1837

* do not expose the takeOwnership forms of addAtom and addBond
2018-04-26 16:02:21 -04:00
Greg Landrum
404df80b8a make sure that the global EmbedParameter objects are not writeable from Java (#1824) 2018-04-17 13:37:04 +02:00
Greg Landrum
b8738361f1 Fixes #1776 (#1780)
* add wrapper for reaction fingerprints.
Fixes #1776

* Move definitions of default fingerprint params to .cpp file.

* just a kick to get travis to run
2018-03-20 10:10:40 -04:00
Greg Landrum
42eecc664d Integrate Coordgen (#1708)
* first pass, does not yet actually work

* pass2, same problems

* pass2, same problems

* another test

* new tests; bugfix

* move the code out to a header

* add a double bond example

* enable auto-downloads of the code

* move the function to its own namespace

* first pass at a basic python wrapper

* change coordgen commit used

* try supporting bond stereo; does not currently work

* cis/trans seems to now work.

* first pass at templates; needs testing

* use the fixed flag too

* need mol align

* expand test

* initial pass at python wrapper for template

* simplify tests

* add an option to directly use a substructure match for alignment

* scaling

* add #define

* Define a cache setting for RDK_COORDGEN_LIBS to allow these to be used in other packages

* return the conformer id from addCoords

* Make CoordGen the default when it’s available.
This is a backup commit… the tests don’t even come close to passing.

* add some debugging options for a bit

* add alignment step to testing when using non-fixed coords

* Add global to allow use of CoordGen to be disabled
get the basic depictor tests working

* make coordgen the default when it is available

* make sure things continue to work when coordgen is disabled

* get windows builds working

* mods to get this building on windows.
something is screwy with the fileParsersTest1

* no need to generate coords for the 1K C string

* fix java wrappers

* works on linux

* update the (stupid) way dependencies were handled on windows.
this allows a lot of cleanup of cmake files (still more to do)
the linux build is unlikely to work due to the way _statics aren't handled

* docs

* extend forceRDKit applicability

* switch coordgen version

* try using templates

* try to get the template dir finding reasonably robust w.r.t. conda install

* continuing to iterate on the way the template file is installed

* fix a problem caused by the merge

* remove test that should never have been checked in

* update expected results for cartridge tests

* switch back to using the RDKit as the default coordinate generator
2018-02-15 05:36:03 +01:00
Greg Landrum
1efa8e696e another clang-format run 2017-10-12 06:42:15 +02:00
Greg Landrum
e38d42ca11 Fix problems in the SWIG wrappers caused by #1546 (#1558)
* fix a couple problems in the java wrappers created by the changes

* more tests
2017-09-11 16:08:47 +02:00
Steve Roughley
d03e9b512b Added IsInRing methods to Bond in Java wrapper(addresses #1535) (#1536) 2017-08-18 12:01:15 -04:00
Greg Landrum
b9450b7ba7 add prepareMolForDrawing to SWIG wrapper; add a test for that too (#1523) 2017-08-12 15:34:50 -04:00
Greg Landrum
ae774c4f24 add support the new sequence readers to wrappers (#1181) (#1221)
* Fixes #1181
needs more testing

* improved docs and a couple tests

* add the new sequence support to the java wrappers too
2016-12-21 04:42:17 +01:00
Matt Swain
abbac22a8c Fix Java Trajectory Test 2016-11-15 14:51:05 +00:00
Steve Roughley
3680644ebf Added getAlignmentTransform to ROMol.i to expose in Java SWIG wrapper (#1155)
* Added getAlignmentTransform to ROMol.i to expose in Java SWIG wrapper

* Added missing argument

Added missing argument to call to getAlignmentTransform causing build failure

* Added test case for getAlignmentTransform

* Update AlignTests.java

* Update AlignTests.java

* Update AlignTests.java
2016-11-10 21:44:03 +01:00
Greg Landrum
051a4deb12 add tests for the new param objects from java 2016-11-05 20:03:25 +01:00
Greg Landrum
4315388f77 Add a parameters structure for controlling the embedding options. (#1121)
* initial version; no actual testing yet

* start on tests

* rename seed->randomSeed; add tests

* add support in java wrapper

* add support in python wrapper

* initial version; no actual testing yet

* start on tests

* rename seed->randomSeed; add tests

* add support in java wrapper

* add support in python wrapper

* yapf

* document the parameter object;
introduce pre-defined const objects for ETDG, ETKDG, and KDG

* this is why we write tests

* swig did not like the initialization in the header file
2016-11-01 11:39:03 +01:00
Brian Kelley
13c3eef7c4 Dev/expose filtermatch to swig (#1117)
* Exposes FilterMatch and getFilterMatches to java

* Updates java test

* Fixes typo in test
2016-10-21 20:43:00 -04:00
Greg Landrum
74635c5fe1 Fix leak with renumberAtoms() in the SWIG wrappers (#1064)
* fix a leak with renumberAtoms() in Java

* add a test to show that leak
2016-09-13 12:24:08 -04:00
Greg Landrum
cb710340a1 Support ETKDG from within the SWIG wrappers (#1010)
* add test files

* add seed to the mol name so that it is obvious

* add support (and tests) for ETKDG to Java
2016-08-08 11:08:55 +02:00
Paolo Tosco
a286112cbe Java wrappers for Trajectory/Snapshot objects (#977)
* - started SWIG wrapping of Trajectory code
* - work in progress
* - wip
* - wip
* - WIP on TrajectoryTests.java
* - WIP
* - WIP
* - TrajectoryTests.java completed
* - reverted file modified my accident
2016-07-20 22:51:01 -04:00
Greg Landrum
db0db2e4e4 expose FPS functions to java; add tests for that (#897) 2016-05-02 14:39:48 -04:00
Brian Kelley
f26b53067e Exposes NumRotatableBondsOptions to java, adds tests 2016-03-17 10:14:20 -04:00
Brian Kelley
f1ca9e6115 Merge pull request #791 from greglandrum/feat/lazy_picker_for_java
Add a bit more control over the lazy MaxMin picker to the java layer
2016-03-01 23:47:40 -05:00
Brian Kelley
a779d5bcfd Add test for addDummyAtoms==false flag 2016-02-27 13:26:35 -05:00
Brian Kelley
8c2aca2dcd Exposes reduceProductToSideChains to Java 2016-02-27 09:53:56 -05:00
Greg Landrum
6002415bd2 add the useCache option to the java wrappers;
add tests for the MaxMin picker to the java wrappers
2016-02-26 08:07:03 +01:00
Greg Landrum
1c730b489e fix a typo, cleanup some (but not all) whitespace 2016-02-17 18:09:59 +01:00
Greg Landrum
27a267bd6c Fixes #781 2016-02-17 16:19:01 +01:00
Greg Landrum
3db6d874ba fix SWIG wrappers for the resonance mol suppliers 2015-11-04 05:29:50 +01:00
Paolo Tosco
ffa524c87b - added SWIG Java wrappers for ResonanceMolSupplier and
getResonanceSubstructMatches()
- added a few tests
2015-11-02 22:45:41 +00:00
Brian Kelley
2d9a1c6791 Use class based Deserialize method 2015-09-10 08:18:24 -04:00
Brian Kelley
d16df573a8 Fix Serialize/Deserialze 2015-09-10 08:01:37 -04:00
Brian Kelley
5f62a5f62f Properly use shared_ptrs 2015-09-09 16:49:08 -04:00
Brian Kelley
d03656c56e Add getMatches interface 2015-09-09 10:54:03 -04:00
Brian Kelley
8ccb583dc0 Add serialization check 2015-09-04 09:11:19 +02:00
Brian Kelley
84c8e7df32 Add initial version of swig wrapper 2015-09-03 16:35:23 +02:00
Greg Landrum
96e86036fe add basic java tests 2015-08-23 06:57:43 +02:00
Greg Landrum
d778060bcf Merge branch 'master' into mol_hash_and_fmcs_Feb2015 2015-04-11 06:44:22 +02:00
Alexander Savelyev
b0177a4ea1 restore java and python wrappers. New parameter (matchChiralTag) was added. New function findFMCS_P() receives json parameters 2015-04-10 16:24:58 +03:00
Greg Landrum
2cad2e05aa update expected results in java 2015-04-10 09:29:26 +02:00
Greg Landrum
c3751181b1 add a couple SVG tests to the java wrappers 2015-02-06 03:21:04 +01:00