Releases: grimme-lab/MindlessGen
Releases · grimme-lab/MindlessGen
v0.5.1
v0.5.0
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 readingxtb
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 theConfigManager
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
andforbidden_elements
can now be directly set to adict
orlist
, 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 ifxtb
is used asQMMethod
and a lanthanide is within the molecule to match thef-in-core
approximation. - "Contract Coordinates" functionality set to
true
by default in themindlessgen.toml
file. basename.UHF
andbasename.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
toati
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
andforbidden_elements
by @marcelmbn in #98 fixed_composition
feature by @marcelmbn in #95- update
CHANGELOG.md
for commits433bcff
andb570b62
by @marcelmbn in #99
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's changed
Changed
- Default file name of
.xyz
file contains prefixmlm_
- 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
andelement_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
andmax_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
andmax_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 writingxyz
filesPyPi
andTestPyPi
upload of releases (new workflow)
Merged pull requests
- Create more guidelines and update README.md links by @marcelmbn in #8
- Fix markdown typos by @marcelmbn in #9
xyz
file changes and more DFT options in post-processing by @marcelmbn in #10- Change default basis set to def2-SVP by @marcelmbn in #11
- Exclude
mindlessgen.toml
from CI by @marcelmbn in #12 - Enable debugging of post-processing step explicitly by @marcelmbn in #14
- Check for consistency of the min/max constraint of the number of atoms by @marcelmbn in #15
- add Ln support by adaptive UHF recognition by @marcelmbn in #16
- Enhance documentation and code style by @marcelmbn in #20
- Fix bug in isomerization mode that doesn't allow giving the exact atom number by @marcelmbn in #21
- Include one-pager by @marcelmbn in #22
- Re-introduce HOMO-LUMO gap check by @marcelmbn in #25
- Better defaults, config description and CI check skips by @marcelmbn in #28
- Continuous
xyz
file writing by @marcelmbn in #29 - Bug fix: Hydrogen and organic elements were ignored by the
forbidden_elements
by @marcelmbn in #31 - Fix
test_iterative_optimization
by @marcelmbn in #32 - introduce more general fragmentation test by @marcelmbn in #34
- GFN level now accessible by @jonathan-schoeps in #35
- Append to 'mindless.molecules' and better printout per molecule by @marcelmbn in #37
- Add release workflow by @marcelmbn in #38
- Make release.yml more consistent by @marcelmbn in #39
- Prepare
v0.4.0
release by @marcelmbn in #40
New Contributors
- @marcelmbn made their first contribution in #8
- @jonathan-schoeps made their first contribution in #35
Full Changelog: v0.3.0...v0.4.0
v0.3.0
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 inConfigManager
- 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
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 usingnetworkx
(graph theory) - Check for HOMO-LUMO gap
- -> Only valid molecules are returned
- Parallelization of try-and-error part to speed-up mindless molecule search
- Generate an initial random molecule:
- 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
Full Changelog: https://github.com/marcelmbn/MindlessGen/commits/v0.1.0