* initial support for wiggly and wedged bonds in cxsmiles
add CX_ALL_BUT_COORDS convenience option to CXSMILES writer
* move ClearSingleBondDirFlags to MolOps
* do a better job of handling the wiggly bonds
* mark 3D conformers from CXSMILES
* remove some extraneous printing
* test wD as well
* remove non-applicable test
* basic tests (not passing) for parsing t/c/ctu
* remove test for unimplemented feature
* changes in response to review
* changes in response to review
check for attempt to set the wedging more than once
testing for invalid w blocks
fix a bad comment
* slow steps towards a string_view experiment
* Move first set of file-handling code to use string_view
This is about 12% faster on my machine
* oops, yaehmop had not been updated to C++17
* start moving v3000 over
* disable storing string_views in Dicts.
* a bit more optimization
* get windows builds working
* fix a couple leaks in the test code
* changes in response to review
* changes suggested in review
+ more refactoring
* fix an oversight
* remove another one
* remove debugging numbers
* Improved regex whitespace handling
Change was made in the parseEnhancedStereo function
* Files for Github #5165 test case
Both files use enhanced stereochemistry, but differ in whitespace content
* Test case for Github Issue #5165
Catches whitespace parsing error
* Improves test case check
Makes test case more specific, less prone to potential invalid access to container
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Improves test case check
Makes test case more specific, less prone to potential invalid access to container
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* Update test case "Github #5165"
Add 'require(mol)' to confirm valid molecule before additional testing
* Cleans up test for Issue #5165
* Cleans up test for Issue #5165
Co-authored-by: Greg Landrum <greg.landrum@gmail.com>
* - adds normalizeDepiction() and Python wrappers
- adds straightenDepiction() and Python wrappers
- adds an early check for R-labels to be in the accepted range to avoid throwing an exception later on
- adds a kekulize flag to process_details() to enable depicting molecules which fail to kekulize from JavaScript
- adds JavaScript functions to get fingerprints as Uint8Array
- adds JavaScript function to generate pickled molecule as Uint8Array
- adds JavaScript function to restore molecule from Uint8Array pickled
- adds has_coords() JavaScript function
- adds set_new_coords() to set JSMol coordinates in-place
- adds get_mol_copy() to obtain a JSMol copy
* fix build failures
* changes in response to review
Co-authored-by: Tosco, Paolo <paolo.tosco@novartis.com>
* preliminary
* all tests pass
* cleanup
* more testing!
* we do still want to raise errors for aromatic atoms not in rings
fix one missed change for mol blocks
* update expected results for psql test
* stop removing substance groups with replaceAtom()
change default for keepSGroups argument to replaceBond()
* enable logging output for the fileparserscatch
* basics of parsing SMARTSQ SubstanceGroups
* Fixes#4476
test coming in the next commit
* handle multi-atom SMARTS as recursive
more testing
Test #4476
* a bit of cleanup
* get the tests working
* additional testing
* Update Code/GraphMol/FileParsers/MolFileParser.cpp
Co-authored-by: Ric <ricrogz@users.noreply.github.com>
Co-authored-by: Ric <ricrogz@users.noreply.github.com>
* make sure atom and bond bookmarks survive replaceAtom/Bond
* fixes oss-fuzz #30572
* fix possible memory-access error in error reporting
* more defensive deserialization
* switch that recursive smarts error handling to not use an exception
* - eliminate some documentation ambiguity about the role of the strictParsing flag
- fix some inconsistencies between SGroup parsing function prototype declarations and implementations
- add a workaround for accepting malformed V2000 'M SAP' entries affecting older version of MarvinJS (only if strictParsing is set to false)
- if strictParsing is set to false, malformed V2000/V3000 SGroups are ignored rather than causing the parsing to fail
- fix a couple typos in warnings
* changes in response to review
* - fixes a bug with the MDL MolParser (M ALS queries clobber previously existing queries)
- fixes a regression introduced by #3389 (duplicate formal charge queries may arise)
* changes in response to review
* forgot to commit
* move replaceAtomWithQueryAtom() and completeMolQueries() to QueryOps namespace
* support ring bonds from cxsmiles
* add a test that is still failing
* update nonHydrogenDegree query, add SMARTS extension for that
* some cleanup
* unsaturation and substitution count
* fix typo in test
* update expected result
* add linknodes
* add variable attachment points
* improve documentation of supported cxsmiles features
* clarifying the docs
* support leaving out the outer atoms in LN specs
* fix ossfuzz issue 24074
* fix ossfuzz issue 23896
* switch to throw exceptions when reading ints/floats
* remove extraneous benchmarking code
* change type of AH query
* confirm an invariant while finding rings
* no sense in adding these tests to github
* switch to use fail() instead of failbit
switch to acceptSpaces by default
* allow CXSMILES generic query atoms to be parsed from mol;
need more tests here
* remove vestigial directory
* Add d_queryType to Query
This opens up additional flexibility with customizing the way queries are handled
Also includes some assorted cleanups in the Query directory
* remove the MolFileSymbol hack added in #3235
We don't need it anymore
* Add support for additional ChemAxon extensions and document them
Signed-off-by: greg landrum <greg.landrum@gmail.com>
* bump pickle version
* add an additional test
* make sure LINKNODE is saved from v3k mol files
v2k still needs work since the format is different
* write v3k linknodes
* support reading V2000 mol blocks too
* add documentation
* backup
* first pass at 5-rings working
* add a static method to initialize an empty parameter object
* expose static method to python
* additional testing
* support the single bond adjustments
* cleanup
* preserve the symbol used in the query from a CTAB
* support the way the MDL code adjusts five-ring aromaticity in query rings
* in-code documentation
* while we're at it, cleanup the way Q and A atoms are handled in the v3k parser
* changes in response to review
* make this C++14 again.
* change in response to review
* Deprecation: planned removal of .message() and .getMessage() methods
* Deprecation: planned removal of old MolHash code
* document deprecations
* output the diffs when the psql tests fail
* remove .message() from SWIG wrappers
note that the KeyError doesn't work properly. We should clean up the the exceptions here anyway
* typo
* Add convenience functions for generating v3K mol blocks and mol files
* first pass at parsing/writing the remaining atom properties from the CTAB spec
* handle SUBST
* write out the bond props that were being read but not written
* add an additional test
* fix a couple of problems caught in review
* get fileparsers catch tests building faster
should use this same approach across all of the catch2 tests
* Fixes#2916
* support parsing of STBOX for atoms and bonds in v3K mol files
add molStereoCare to common_properties
STBOX is translated to the molStereoCare property
* add stereocare support to adjustQueryProperties
make building the catch2 tests faster for the GraphMol package
* copy in AdjustQueryParameters JSON parsing from adapter.cpp
(That still needs to be ported to use the new code)
* get the cartridge using the new parsing code
* update test to reflect new parser behavior
* add a v2000 test
* changes in response to review
* run clang-tidy with readability-braces-around-statements
clang-format the results
clean up all the parts that clang-tidy-8 broke
* fix problem on windows
* first round of cleanups based on PVS-studio suggestions
* a couple more
* a few more cleanups
* another round of cleanups
* undo one of those cleanups
we want the integer rounding behavior here
* add a comment to make that clear
* Fix for filter catalog PRECONDITION redundancy
* Add tests for #1868
* Fix github bug number
* Fix#2 for correcting issue number
* Fixes#1868
The primary problem here was that when v3K reactions were being processed,
a bunch of "finalization" steps were being skipped for the reactants and products.
This remedies that.
* update the python test so that it tests the actual problem
* Fixes#2277
* changes in response to review
the big one is to move the PXA parser into the normal mol file parsing
* move the PXA changes to the writer as well
* SCN actually only needs 7 characters
* add test
* fixes in response to review
* handle blanks (instead of zeros) in the counts line.
The ctfile.pdf doc says we should do this
* Make the SGroup reader more robust w.r.t. bad data
The current behavior leads to uncaught exceptions when a line is too short.
This should clear that up so that we always throw the usual FileParseException
* make error messages a bit easier to read