Releases: ekwan/cctk
July Updates
Major changes:
cctk.quasiclassical
now permits generation of thermally-reasonable perturbations to molecules with defined vibrational modes (based on quantum harmonic oscillator approximation). Concomitantly, a newVibrationalMode
object has been defined, which can automatically be read fromfreq
output files (Gaussian only).Molecule
objects can now be initiated from name or SMILES ifrdkit
is installed.molecule.volume()
is much slower and much more accurate. The old qhull-based method can be requested if accuracy is unimportant.- Symmetric atoms can now be detected from methyl, isopropyl, and tert-butyl groups using
molecule.get_symmetric_atoms()
. topology.find_group()
can find a group within a given molecule.
Minor changes:
.xyz
trajectories can now be read.cctk.Molecule.are_isomorphic()
checks if two molecules have the same connectivity, which is handy.- NMR shifts can now be read from Orca.
June Updates
Major changes:
- Significant under-the-hood optimization of
GaussianFile.read_file()
,molecule.assign_connectivity()
, andensemble.eliminate_redundant
(3-10x improvement). Backend code is more complex, especially forread_file
, but behavior should be identical (there will probably be unforeseen consequences so email me if anything breaks). analyze.py
now uses multiprocessing for a net 100x improvement in speed. This strategy should be broadly applicable for file I/O.- Basis sets can now be loaded from the Basis Set Exchange (Gaussian only).
- J-couplings can now be read from NMR jobs in Gaussian.
- Periodic boundary conditions can be supported in
molecule.assign_connectivity
Minor changes:
- 2-letter elemental symbols are now parsed properly in
.pdb
files. - Writing a Gaussian file without
#p
in the route card now prints a warning instead of raising a job-endingValueError
.
Hotfix - Reading Incomplete Files
A variety of minor errors which emerged after last update (for both Gaussian and Orca files) have been fixed.
Rename Previous Release
pypi
does not permit "hotfix" in releases to upload.
Orca ``.out`` File Reading
This update permits reading of Orca .out
files and automated extraction of properties in much the same way Gaussian .out
files can be read. The properties that can be extracted are fairly basic right now -- energies, frequencies, etc.
Updated analyze_orca.py
and monitor_orca.py
scripts have been added to the scripts/
folder.
April Updates (v2)
Major changes:
- Speed updates to
GaussianFile
andMol2File
reading (several orders of magnitude for large files). - New functions
epimerize()
andrenumber_to_match()
have been added toMolecule
, as well as additional functions to detect chirality. - Quasiharmonic free energy calculations employing Grimme's correction are now calculated by default and stored in
Ensemble
properties
asquasiharmonic_gibbs_free_energy
.
Minor changes:
- Bugs pertaining to incomplete files and hanging filestreams from internal static data have been ironed out.
analyze.py
has been given a significant cosmetic upgrade (colors!).- Elapsed time, temperature, gradient, max force/displacement, and internal forces/displacement can now be read from Gaussian
.out
files.
April Updates
Major changes:
Documentation and theme completely overhauled. Many updates still needed.
Ensemble
access API redesigned.
Code to calculate RMSD, align structures, and eliminate redundant conformations.
NMR shieldings can be extracted, symmetry-corrected, and linearly scaled.
Charges can be read.
Minor changes:
Many docstring and bugfixes.
April Updates/Refactoring
Major changes:
- The underlying data structure of
Ensemble
has been changed from a list ofMolecules
to a dictionary of {Molecule
: property}, where properties is itself a dictionary containing information from the job. The indexing ofEnsemble
has been changed such that most list-like behavior still behave like they used to. - NMR shifts, charges, forces, and dipole moments can now be read from Gaussian files, and NMR scaling can be applied.
Ensemble
alignment and removal of redundant molecules has been refactored.
March Updates (v2)
Major changes:
- Rolling back last release,
GaussianFile
now only composesConformationalEnsemble
. To handle the case where multiple unrelated molecules have been combined in the same Link1-based output file,GaussianFile.read_file()
can now return a list ofGaussianFile
objects. - Link 0 Gaussian commands are now stored in
GaussianFile.link0
as a dictionary and are automatically read/written to files (both input and output). - To prevent ambiguity,
GaussianFile.header
is now calledGaussianFile.route_card
. - NMR isotropic shifts are now read automatically from NMR jobs in Gaussian.
.mol2
files can now be written.
Minor changes:
- Formatting on
.gjf
file writing has been changed, and there's an option to use atomic symbols instead of atomic numbers. - Varying capitalization for atomic symbols is now tolerated throughout the program.
- There is now a method to combine multiple molecules into one molecule object (
Molecule.combine_molecules
).
March Updates
Major changes:
GaussianFile
'smolecules
attribute can now be eitherEnsemble
orConformationalEnsemble
, depending on if the individual molecules are compatible or not.- Multiple structures can now be written to the same file using Link1 syntax with the
GaussianFile.write_ensemble_to_file()
command. Molecule
atomic_numbers
andgeometries
are now indexed from 1 internally using a custom subclass ofnumpy.ndarray
calledcctk.OneIndexedArray
.
Minor changes:
- Two new tutorials have been added.
- More preloaded groups have been added (Cl, Br, F, I, SF5, SO3H).