Skip to content

Selfies v2.0.0 - 21.10.2021

Compare
Choose a tag to compare
@MarioKrenn6240 MarioKrenn6240 released this 20 Oct 22:48
· 59 commits to master since this release
eb1ac63

Changed

  • Improved SMILES parsing (by using adjacencey lists internally), with tighter error handling (e.g. issues #62 and #60).
  • Faster and improved kekulization algorithm (issue #55 fixed).
  • Support for symbols that are constrained to 0 bonds (e.g., [CH4]) or >8 bonds (users can now specify custon bond constraints with over 8 bonds).
  • New strict=True flag to selfies.encoder, which raises an error if the input SMILES violates the current bond constraints. True by default, can be False for speed-up (if SMILES are guaranteed to be correct).
  • Added bond constraints for B (max. 3 bonds) to the default and preset constraints.
  • Updated the syntax of SELFIES symbols to be cleaner and more readable. (Removing expl from atomic symbols, e.g., [C@@hExPL] becommes [C@@h], Cleaner branch symbols, e.g., [BranchL_2] becomes [=BranchL], Cleaner ring symbols, e.g., [Expl=RingL] becomes [=RingL], If you want to use the old symbols, use the compatible=True flag to selfies.decoder, e.g., sf.decoder('[C][C][Expl=Ring1]',compatible=True) (not recommended!))
  • More logically consistent behaviour of [Ring] symbols.
  • Standardized SELFIES alphabet, i.e., no two symbols stand for the same atom/ion (issue #58), e.g., [N+1] and [N+] are equivalent now.
  • Indexing symbols are now included in the alphabet returned by selfies.get_semantic_robust_alphabet.

Removed

  • Removed constraints flag from selfies.decoder; please use selfies.set_semantic_constraints() and pass in "hypervalent" or "octet_rule" instead.
  • Removed print_error flag in selfies.encoder and selfies.decoder, which now raise errors selfies.EncoderError and selfies.DecoderError, respectively.

Bug Fixes

  • Potential chirality inversion of atoms making ring bonds (e.g. [C@@h]12CCC2CCNC1): fixed by inverting their chirality in selfies.encoder such that they are decoded with the original chirality preserved.
  • Failure to represent mismatching stereochemical specifications at ring bonds (e.g. F/C=C/C/C=C\C): fixed by adding new ring symbols (e.g. [-/RingL], [/RingL], etc.).