Skip to content

Releases: grimme-lab/MindlessGen

v0.5.1

16 Dec 11:52
a6d5b6c
Compare
Choose a tag to compare

Changed

  • correct License classifier in pyproject.toml in commit a6d5b6c

Full Changelog: v0.5.0...v0.5.1

v0.5.0

16 Dec 11:42
be00e49
Compare
Choose a tag to compare

What's Changed

Taken from CHANGELOG.md. Categorization according to Keep a Changelog.

Changed

  • vdW radii scaling parameter can now be adjusted via mindlessgen.toml or CLI
  • check_distance function now checks based on the sum of the van der Waals radii and a scaling factor acessible via mindlessgen.toml or CLI
  • better type hints for Callables
  • clearer differentiation between the distinct scaling factors for the van der Waals radii
  • README.md with more detailed explanation of the element composition function
  • Default max_cycles for the generation & refinement set to 200
  • Allow fixed molecule compositions in a simpler way
  • check_config now ConfigClass-specific
  • modify atom list adaption to element_composition such that a random integer in the given range is taken and not the lower/upper bound

Fixed

  • unit conversion for (currenly unused) vdW radii from the original Fortran project
  • minor print output issues (no new line breaks, more consistent verbosity differentiation, ...)
  • bug in postprocess_mol which led to an unassigned return variable in the single-point case
  • bug leading to UnicodeDecodeError when reading xtb output files
  • bug with all atom lists being initialized with a length of 102 instead of 103
  • inconsistent default values for the mindlessgen.toml and the ConfigManager class
  • legacy pseudo random number generation removed and replaced by np.random.default_rng() for avoiding interference with other packages

Added

  • support for the novel "g-xTB" method (previous working title: GP3-xTB)
  • function which contracts the coordinates after the initial generation
  • function which is able to printout the xyz coordinates to the terminal similar to the .xyz layout
  • elements 87 to 103 are accessible via the element composition. If xtb is the engine, the elements will be replaced by their lighter homologues.
  • support for python-3.13
  • option to set a fixed molecular charge, while ensuring uhf = 0
  • element_composition and forbidden_elements can now be directly set to a dict or list, respectively, via API access

Breaking Changes

  • Removal of the dist_threshold flag and in the -toml file.
  • The number of unpaired electrons (Molecule.uhf) is now set to 0 if xtb is used as QMMethod and a lanthanide is within the molecule to match the f-in-core approximation.
  • "Contract Coordinates" functionality set to true by default in the mindlessgen.toml file.
  • basename.UHF and basename.CHRG are only written to disk if they differ from the default value (0 and 0, respectively).

Merged Pull Requests

  • Include PyPi installation into README.md and re-structure it by @marcelmbn in #41
  • Make scaling factor for van-der-Waals radii for fragment detection adjustable by @marcelmbn in #45
  • Add support for the new "g-xTB" method (working title: GP3-xTB) and minor bug fixes by @marcelmbn in #49
  • Implemented the van der Waals radii inside the check distance function by @jonathan-schoeps in #51
  • A new function to contract the coordinates after the random generation to ensure that the atoms are not to far apart. by @jonathan-schoeps in #53
  • An update in the ReadMe.md to be more specific with the element composition function. by @jonathan-schoeps in #58
  • Changed the uhf value when xtb calculates with lanthanides by @jonathan-schoeps in #60
  • Elements 87 to 103 are now accessible via the element composition by @jonathan-schoeps in #62
  • Bunch of technical fixes by @marcelmbn in #65
  • Fix bug with Lr leading to an by @marcelmbn in #69
  • Update Docs by @marcelmbn in #72
  • Fix random number generation by removing legacy random number generation by @marcelmbn in #78
  • Remove deprecated tests that are not strictly true by @marcelmbn in #79
  • A fixed molecular charge for the molecule generation. by @jonathan-schoeps in #73
  • atlist to ati and back conversion by @marcelmbn in #81
  • Bug fix were uhf was always 0 if a fixed charge were given by @jonathan-schoeps in #80
  • Update CODEOWNERS by @marcelmbn in #82
  • The .UHF file is now written if the molecule has a uhf larger than 0 by @jonathan-schoeps in #74
  • CHANGELOG.md fixed for previous commit by @marcelmbn in #83
  • Remove dummy code by @marcelmbn in #85
  • Add example for usage of Python API by @marcelmbn in #87
  • Update citation and include Python 3.13 into CI by @marcelmbn in #94
  • Random integer in element_composition range by @marcelmbn in #97
  • Full pythonization of element_composition and forbidden_elements by @marcelmbn in #98
  • fixed_composition feature by @marcelmbn in #95
  • update CHANGELOG.md for commits 433bcff and b570b62 by @marcelmbn in #99

Full Changelog: v0.4.0...v0.5.0

v0.4.0

19 Sep 14:07
03830e2
Compare
Choose a tag to compare

What's changed

Changed

  • Default file name of .xyz file contains prefix mlm_
  • Comment line of .xyz file contains the total charge and number of unpaired electrons
  • Default ORCA calculation changed from r2SCAN-3c to PBE/def2-SVP
  • verbosity = 3 always prints full QM output
  • Adapted generation of number of unpaired electrons; thereby, support for Ln's
  • Shifted group / element sorting definitions to miscellaneous
  • xyz files are written on the fly, and not post-generation
  • GFN-xTB level can now be set
  • mindless.molecules file is written continuously during generation

Fixed

  • test_iterative_optimization more deterministic
  • wrong atom range check in for the isomerization mode (#21)
  • forbidden_elements and element_composition influences hydrogen and organic element addition
  • more realistic default mindlessgen.toml entries

Added

  • Optimization via DFT in the post-processing step
  • Detailed input of ORCA settings (functional, basis, grid size, SCF cycles, ...) possible
  • min_num_atoms and max_num_atoms consistency check
  • Maximum number of optimization cycles are an argument for the QMMethod.optimize base function
  • Debug option for the refinement and post-processing step specifically
  • Return type for single_molecule_generator
  • Check for consistency of the min_num_atoms and max_num_atoms constraint
  • Similar to the <basename>.CHRG file, also a <basename>.UHF is printed
  • HOMO-LUMO gap check within the refinement step and corresponding Config option called "refine_hlgap"
  • GeneralConfig switch for writing xyz files
  • PyPi and TestPyPi upload of releases (new workflow)

Merged pull requests

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

20 Aug 15:10
242bc9a
Compare
Choose a tag to compare

Basic functionality complete

  • defined composition, ranges of atom type occurrences, forbidden elements possible to fine-tune the desired list of atom types for the molecule. Available via the toml configuration file.
    • refactored the whole atom list generation
  • orca post-processing (default: r2SCAN-3c)
  • different engines for different steps
  • better order of different configuration subgroups in mindlessgen.toml as well as in ConfigManager
  • iterative optimization of fragments until self-consistency is achieved
  • enhanced verbosity handling (-1) for silent mode
  • more tests for all deterministic parts of the code
  • make coordinate generation-specific settings accessible via ConfigManager
  • generate a given number of molecules via one generator call
  • load Molecule instance from .xyz and .CHRG file

Full Changelog: v0.2.0...v0.3.0

v0.2.0

15 Aug 17:05
b57d412
Compare
Choose a tag to compare

First working version based on xtb

Functionality

Contains the following functionalities:

  • Workflow:
    • Generate an initial random molecule:
      • semi-random atom types and occurrences (rule-based, such that valid molecules can emerge)
      • fully-random atom positions
    • Iterative workflow of xtb optimization and fragment detection using networkx (graph theory)
    • Check for HOMO-LUMO gap
    • -> Only valid molecules are returned
    • Parallelization of try-and-error part to speed-up mindless molecule search
  • Configuration can be provided via CLI or via a mindlessgen.toml file
  • Molecules are saved using the sum formula and a random hash from hashlib

Usage

Currently, there is an API access possible via from mindlessgen.generator import generator but the code was mainly tested via CLI access.
For help regarding the CLI access and possible configurations, check the following ressources:

  • README.md
  • mindlessgen -h
  • mindlessgen.toml

Full Changelog: marcelmbn/MindlessGen@v0.1.0...v0.2.0

v0.1.0-alpha

12 Aug 08:44
452b8df
Compare
Choose a tag to compare