Skip to content

Releases: pumken/chemcreator

v1.3.0

31 Mar 01:01
90906a1
Compare
Choose a tag to compare

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

Full Changelog: v1.2.1...v1.3.0

  1. 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

27 Mar 01:40
5b272f2
Compare
Choose a tag to compare
v1.3.0-beta Pre-release
Pre-release

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:

  1. the one with the most occurrences of the primary functional group (which appears in the suffix).
  2. the one with the most occurrences of multiple bonds, regardless of type.
  3. the longest.
  4. the one with the most occurrences of non-primary functional groups (which appear in the prefix).
  5. the one with the most single bonds (not yet implemented yet).
  6. randomly selected.

Carbon chain indices should begin such that, in order of precedence:

  1. the primary functional group has the lowest locant1 sequence.
  2. multiple bonds have the lowest locant sequences starting with double bonds.2
  3. 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

Full Changelog: v1.2.1...v1.3.0-beta

  1. 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.

  2. For example, the name "hex-2-en-4-yne" will always be given precedence over "but-4-en-2-yne".

v1.2.1

22 Mar 17:44
f3474c7
Compare
Choose a tag to compare

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

Full Changelog: v1.2.0...v1.2.1

v1.2.0

21 Mar 03:44
047033b
Compare
Choose a tag to compare

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

21 Mar 03:37
e5c637f
Compare
Choose a tag to compare

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

19 Mar 18:14
5a83af1
Compare
Choose a tag to compare

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

17 Mar 19:08
ebbd108
Compare
Choose a tag to compare
v0.2.0-beta Pre-release
Pre-release

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.)