Releases: pumken/chemcreator
v1.3.0
1.3.0
All of the changes from 1.3.0-beta have been fully implemented with new features!
Since 1.2.1, a new UI, branch (side chain) naming1, parent chain highlighting, text wrapping, and new macros were added!
What's Changed
- Change start mode behavior by @pumken in #21
- Add new UI by @pumken in #22
- Update UI and error messages by @pumken in #23
- Add proper branching by @pumken in #24
- Clean up code by @pumken in #25
- Fix parent chain rule by @pumken in #26
- Extend numerics by @pumken in #27
- Add parent chain highlighting by @pumken in #29
- Change parent chain highlighting colors by @pumken in #30
- Update CI.yml by @pumken in #31
- Fix text wrapping and highlighting by @pumken in #32
- Update macro system by @pumken in #33
Full Changelog: v1.2.1...v1.3.0
-
Side chains must not be connected by multiple bonds or contain any suffix groups to work properly. This will be fixed in future versions. ↩
v1.3.0-beta
1.3.0-beta
A new UI has been created! This provides slightly more information than the previous UI. It has text wrapping so extremely long molecule names don't break the entire grid when it exceeds some number of characters.
Branches have been mostly implemented! The primary chain identifier and the carbon chain index correction algorithm have been updated to account for the added complexity of branch naming. Because of how error-prone and untested this version is, it has been set as a pre-release.
I could not find a definitive source on how to precisely identify and number the parent chain, so the rules implemented in this release have been taken from this Wikipedia article accessed today (26 Mar 2023). In summary, the parent chain ChemCreator identifies is, in order of precedence:
- the one with the most occurrences of the primary functional group (which appears in the suffix).
- the one with the most occurrences of multiple bonds, regardless of type.
- the longest.
- the one with the most occurrences of non-primary functional groups (which appear in the prefix).
- the one with the most single bonds (not yet implemented yet).
- randomly selected.
Carbon chain indices should begin such that, in order of precedence:
- the primary functional group has the lowest locant1 sequence.
- multiple bonds have the lowest locant sequences starting with double bonds.2
- non-primary functional groups have the lowest locant sequences in alphabetical order.
If anyone finds the actual IUPAC rules, please let me know.
What's Changed
- Change start mode behavior by @pumken in #21
- Add new UI by @pumken in #22
- Update UI and error messages by @pumken in #23
- Add proper branching by @pumken in #24
Full Changelog: v1.2.1...v1.3.0-beta
-
A locant is a number specifying the index of the carbon to which a given functional group is attached in the chain. For example, in "1,1-dichloropropane," the numbers "1,1" are the locants, indicating that the chloro groups are attached to the first carbon in the chain. ↩
-
For example, the name "hex-2-en-4-yne" will always be given precedence over "but-4-en-2-yne". ↩
v1.2.1
1.2.1
A bunch of new groups were introduced, including amines and nitriles! Aldehydes are now correctly recognized as a compound group (probably not a real term) of carbonyl and hydrogen (not a group). This allows for the distinguishment of:
- Acid halides (carbonyl + halide, e.g. chlorine)
- Amides (carbonyl + amine)
New macros were added which allow for easier molecule creation, which will be documented later.
Side chains are not fully implemented, nor are variable-length chains needed for proper amines (currently recognized as NH₂ only), esters, ethers, etc.
Name shortening is not yet implemented (eth-1-en-1-one is not substituted for ethenone), so care still must be taken to ensure that the generated name is correct in cases where ambiguity and isomers are not present.
Some versions may be unable to receive certain keyboard inputs; see #14 if you experience this issue.
What's Changed
- Add nitrile group by @pumken in #17
- Add carbonyl compound groups by @pumken in #18
- Add amine group by @pumken in #19
- Add more macros by @pumken in #20
Full Changelog: v1.2.0...v1.2.1
v1.2.0
1.2.0
Side chains are now supported! (well, sort of.) Side chains currently must be alkyl groups (i.e., no functional groups attached). ChemCreator will also now reverse chain indexes based on primary suffix group locants (multiple bond locants and prefix locants are not yet supported).
The UI was also improved ("overhaul" is a bit of an overstatement), with molecule naming calculations only taking place after the grid is changed. Macro mode has also been introduced (F7) with the first being automatic placement of hydrogen around carbon.
What's Changed
Full Changelog: v1.1.0...v1.2.0
v1.1.0
1.1.0
New atoms were added! The halogens (bromine, chlorine, fluorine, iodine) are now added and are recognized as functional groups on their own (the acid halide compound group will come in a later release). Nitrogen was also added but currently has no recognized functional groups.
What's Changed
Full Changelog: v1.0.0...v1.1.0
v1.0.0
1.0.0
ChemCreator is finally released! In addition to organic molecules identifiable in pre-release 0.2.0, functionality to identify the following molecules has been added:
- Alcohols
- Carboxylic acids
- Ketones
In the release, ChemCreator can also recognize functional groups that are not the primary functional group. However, carbon indices (locants) always start from the right. In the future, this will be automatic. Branches are not yet recognized; alkyl, alkenyl, and alkynyl groups (e.g. methyl) are not yet supported as these are considered branches by the group-finding algorithm.
What's Changed
- Clean up several files and remove mockall dev-dependency. by @pumken in #9
- Add name decider algorithm. by @pumken in #8
- Release v1.0.0 by @pumken in #10
Full Changelog: v0.2.0...v1.0.0
v0.2.0-beta
0.2.0-beta
In this release, ChemCreator is able to identify three basic organic molecule classes:
- Alkanes
- Alkenes
- Alkynes
This is accomplished by counting atoms, so it may misidentify molecules with the same formula. This release can detect invalid graph structures, including but not limited to:
- Discontinuities
- Cycles (this is invalid for now)
- Atoms with incorrect numbers of bonds
- Dangling bonds
Much of the groundwork for identifying functional groups and branches is already laid out, so a production release is coming soon! (Also a bunch of commits were made before this so this release's changelog doesn't mean much.)