Tuesday, December 11, 2018

Upgrade to SSL site and addition of user accounts

Release 3.0.0

Although this update does not bring any interesting interface or search engine changes, it nevertheless is a pretty major milestone for the site as a whole as it involves a transition to the secure https protocol as well as the introduction of user logins.

In order to use the most secure login tools, it was necessary to migrate the site to use the ASP.NET Core framework. Once this migration was finished, two login processes were created: 1) The process to allow the user to log in with an account specifically for the site. 2) The process to allow the user to use open authentication to log in with a Google account. The hope is that this flexibility will allow the user to log in in his or her preferred manner.

I am excited about the doors that having user logins will open such as personalized stored pathways and the ability to interact with other site users! The login page can be reached at: https://www.organicchemmaster.com/Identity/Account/Login and the register for account page can be reached at: https://www.organicchemmaster.com/Identity/Account/Register .

Sunday, November 4, 2018

Introduction of Intermediate Molecule Design and Intermediate Pathway Search Tutorials, fix of nomenclature bug

Release 2.11.1

A shorter update than last time, two more new tutorials were added: 1) An intermediate molecule design tutorial and 2) An intermediate pathway search tutorial.

The goals for the new intermediate level tutorials were:

  1. Get the user comfortable with designing a molecule with a more complex base skeleton.
  2. Familiarize the user with the two methods of changing types of bonds between two atoms in a molecule: clicking on the existing bond, and selecting a new bond type from the drop down list in the inspector.
  3. Familiarize the user with the New (+), Undo, Redo, Copy, and Paste control buttons.
  4. Introduce the process of adding more complex side chains to the molecule, such as acetyl groups, to the user.
  5. Familiarize the user with the process of using the zoom in, zoom out, and drag controls to edit/create more complex molecules.
  6. Familiarize the user with a more complicated pathway search. This includes using the MolGen Reaction database as a source for the pathway search and a longer time limit, of one minute, to perform the search. 
  7. Introduce the user to a pathway search that has real world applications as part of the tutorial. 
The chosen molecules for the tutorials were benzene and aspirin (2-acetoxybenzoic acid). Fortunately, the framework was already in place for creating the two new tutorials, so not much of the interface needed to be modified at all. The two new tutorials are up as the Intermediate Molecule Design tutorial and the Intermediate Pathway Search tutorial.

Additionally, one nomenclature bug was fixed. Previously, a molecule that contained a side chain of methyl that in turn contained two or more of the same functional group would NOT properly display the multiple group prefix (di, tri) in the radical name. One example of this (dihydroxymethyl)cyclohexane. This was previously, incorrectly named as (hydroxymethyl)cyclohexane, even with two hydroxyl groups attached to the methyl radical.This bug was actually discovered while creating the molecule 2-acetoxy-1-(dihydroxymethyl)benzene, a molecule the user will create on the way to creating aspirin.

Thanks! Again, keep the comments and emails support@organicchemmaster.com coming!


Friday, October 19, 2018

Introduction of Basical Molecule Design and Basic Pathway Search Tutorials, Undo/Redo feature, and create molecule by IUPAC name feature

Release 2.11.0

This update was directly inspired by a comment on the previous post:

Hi, is there any intro-level text or blog post you recommend before using your tool?

Great question! I think it was indeed high time some sort of introductory text or tutorial was, for lack of better word, introduced. I played with a few options: creating a blog post detailing how to get started, creating some sort of slide based demonstration, and finally implementing an interactive tutorial. I still might add the first two options, but I was most excited about the interactive tutorial; not only would it provide the most hands on way to introduce the tool to a new user, it would also serve as a great way to clean up/test the interface while designing the tutorial. Which in fact it did quite a bit.

The three goals for the first round of tutorials were: 
  1. Get the user able to create/design a simple molecule via the interface by physically adding and attaching the atoms of the molecule. In this case, ethanol (ethan-1-ol) was chosen as a good example molecule because it is simple in structure, a very well known molecule, and very readily reactive. 
  2. Get the user able to use the create molecule by IUPAC name feature. This feature involves the user typing the IUPAC (or common) molecule name in the appropriate field, then viewing the resulting molecule in the interface. Essentially, this is the opposite of the first goal: going from the IUPAC name to the molecule structure rather than vice versa. Ethanal (commonly acetaldehyde) was chosen as it also has a simple structure and can be formed via an oxidation of ethanol.
  3. Get the user able to perform a simple pathway search between two molecules. In this case, ethanol and ethanal, logically chosen because they were created in the first two steps.
The second goal actually required adding the feature of creating a molecule by IUPAC name to the main molecule workspace page. This feature was already on the home/splash page in the first section, so it just needed to be added to the molecule workspace page as well. The user can now click on the molecule name, enter a new molecule name, press enter, and see the new molecule created in the workspace.

After the create molecule by IUPAC name feature was finished, it became clear during the tutorial implementation process that having undo functionality would be VERY helpful. Namely to provide step by step instructions on successfully completing each tutorial, it would be necessary to undo a user's step if it was incorrect. That is, for the first goal of creating ethanol, if the user added a Chlorine atom to ethane, for example, we would want to undo the addition of Chlorine and instead instruct the user to add an Oxygen/Hydroxyl group. Undo/redo functionality had been on the plate for a while now, so it seemed like a perfect time to implement it. For now, the maximum amount of undos/redos allowed was set to five, though this may be changed in the future.

With both the undo/redo feature and the create molecule by IUPAC name feature implemented, it was possible to finish the tutorials in mind to accomplish the three goals listed above. The first two goals were accomplished with the Basic Molecule Design and Creation tutorial. The third goal was accomplished with the Basic Pathway Search tutorial.

Standards: No significant new standards were introduced. Per normal, all existing IUPAC naming rules were followed.

Controls: The controls for the undo/redo functionality should be straightforward. The icons at the top control bar of the workspace are now enabled to allow the user to click undo and redo when desired. In the case of an undo or a redo not being possible/allowed, that particular icon will be disabled.

The user can utilize the create molecule by IUPAC name feature as follows: 1) Click on the molecule name or the text "Click to enter molecule name" if one the workspace is currently blank. 2) Enter the IUPAC or common name of the desired molecule. (Note: this feature does not yet support EVERY possible molecule, but that indeed is the goal eventually.) 3) Click "enter".

Beginning the two tutorials that were added should be straightforward. The user can either click the "Open Tutorials" button in the Instructions panel, or click on one of the tutorial links on the Help page.

Future Considerations: The two added tutorials seem to be enough to get the user started. However, of course more tutorials for advanced molecule creation/design and pathway searches need to be added. Also, we MAY increase the possible number of undo steps. Finally, the create molecule by IUPAC name feature will eventually be improved to add a certain level of tolerance. That is, we would expect the user entering "1, 3-dichlorobutane" to result in the same molecule as "1,3-dichlorobutane". That extra space should be considered a tolerable discrepancy.

I greatly appreciate the user's comment and absolutely welcome more! Please go ahead and comment!


Monday, August 13, 2018

Addition of support for Cumene process, introduction of timeout feature for search engine, redesign of search engine result display, and addition of copy search link feature

Release 2.10.0

The impetus for this update was to enhance the user experience with the search engine interface. This was realized by three main improvements:

  1. More detailed information and feedback on the results of the pathway search. The results panel now shows: the result status, the start and goal molecules of the search, the number of steps in the pathway found (if one was found), the total search time, the search tools used, and the optimization.
  2. Addition of get link to pathway search button, which results in copying a link containing the search parameters to the user's clipboard. Similar to the get link to molecule button, the user can paste the generated link in a browser URL window and repeat the search with the same parameters. 
  3. Introduction of the search time limit feature. As searches are getting more and more complex with support for additional reactions, the timeout feature serves as sort of a "safety limit" to allow control over how long a search runs and if necessary stop it. The current limit choices are: 15 seconds, 30 seconds, 1 minute, and no limit. 
Additionally, support for the Cumene process reaction, a reaction allowing the hydroxylation of benzene to produce phenol, was added. This reaction is useful for extending the possible syntheses pathways of both Tylenol and Aspirin to begin with benzene. 

Standards: Similar to modeling for other support reactions, support for the Cumene process reaction was modeled after the description found here: https://en.wikipedia.org/wiki/Cumene_process. Otherwise no new IUPAC naming rules were added.

Controls: The additional information and feedback of the results are included in the same modal that shows the progress bar and the link to the pathway (if the search was a success). The get link to pathway search button was added to that same modal. The search time limit feature was added to the settings/options drop up menu of the reaction interface below the Optimize and Search settings. The user can select the time limit from the select list.

Future Considerations: It is clear after this update the pathway search engine can benefit from refinement to improve the speed and the robustness of the search algorithms. Of course the goal is to ultimately deliver all possible synthesis pathways in a short amount of time!

And finally a HUGE encouragement to go ahead and comment in the blog if you are so inclined, and/or to visit our contact page. We appreciate it!


Thursday, July 26, 2018

Introduction of two new features to the Interface: Locked Mode and Get Link to Molecule

Release 2.9.2

This release introduces two new, relatively minor Interface features: edit locked mode and get link to molecule functionality.

The edit locked mode will allow the user to view and inspect the created molecule without being concerned about inadvertently modifying it. I anticipate that this will be useful for larger, more complex molecules where the user might wish to pan and zoom in on a particular part of the molecule. In particular the user can drag the view of the molecule on the screen without worrying about clicking an atom to alter stereochemistry or a bond to change the bond type. I also anticipate this will be useful eventually on a mobile interface that does not support a hover event; the user can click on an atom to inspect it without modifying it.

The get link to molecule button is straightforward. Clicking on the button will copy a link to the current molecule to the operating system clipboard.

Controls - Use of the lock/unlock icon in the workspace toolbar will allow the user to toggle between edit locked mode and edit unlocked mode. Simply clicking the share icon in the molecule properties panel (next to the PubChem and Google search icons) will copy a link to the molecule.

Future Considerations - The link feature will likely be expanded to also allow the user to quickly get a link to a reaction pathway calculation.

Thursday, May 24, 2018

Support for Additional Reactions, bug fixes, and more feedback for reaction testing

Release 2.9.1

This update was actually fun! In order to support the Reactions section introduced in the last update, much of the search engine modeling had to be overhauled. Fortunately, this overhauling also made the process of introducing support for new rule defined reactions MUCH easier. In fact, this new modeling will make the future goal of allowing the user to add support for a new rule defined reaction easier as well.

The rule defined reactions that are now supported are as follows:

With the introduction of support for the five reactions above, a few stereochemistry bugs presented themselves and needed to be fixed. One involved R/S stereochemistry found in cyclic carbon skeletons. Another involved the rendering of attachments to terminal carbons in the interface to show proper E/Z stereochemistry concerning vinyl groups ((1E)-1,2-dibromoprop-1-ene).

Finally, feedback was added to the Test Reaction part of the Reactions section to let the user know when a particular reaction could NOT be applied to the input molecule. 

Future Considerations - Fortunately the overhaul of the search engine modeling system provides an implementation path for creating a feature that allows users to generate, test, and save their OWN rule defined reactions. 

Saturday, April 14, 2018

Introduction of Reactions section including search and individual reaction view/testing

Release 2.9.0

The primary goal of this release was to add an interactive, visual representation of the reaction modeling used by the search engine to the interface. This goal was accomplished by adding two new sections: 1) a search page where the user can provide parameters and keywords to search both name defined reactions and rule defined reactions (see below) 2) a page where the user can then view the details about one specific reaction.

A clarification of the difference between the two types of reactions that are used by the search engine follows. The first type of reaction, the name defined reaction, is modeled by using the IUPAC names of both the start and end molecules, along with the name of a reagant or catalyst used for the reaction, and any additional reactant or product molecules. It is meant to apply SPECIFICALLY to the one molecule named as the starting molecule. An example of a reaction modeled this way is the first reaction of the Calvin cycle. This particular reaction can only be applied to Ribulose 5-phosphate. In general the pattern of this reaction type is used for specific biochemical life reactions. It is also a MUCH simpler type of reaction to model because the search engine will only need to look for reactions with a matching start molecule name.

The second type of reaction, the rule defined reaction, is modeled as two sets of two types of rules and is more complex. The first type of rule, the location rule, determines whether or not the particular reaction can be applied to a particular molecule. The criteria used to make this conclusion are that the particular molecule contains all of the special conditions listed in the location rule (such as that the molecule is aromatic) and that the molecule contains one or more of the functional groups listed in the rule. The location rule allows the reaction type to apply to a BROAD class of molecules as opposed to just one molecule like the first type of reaction.

The second type of rule for the rule based type of reaction, the reaction rule, defines what applying the reaction to a particular molecule actually does (as opposed to simply listing the name of the product molecule). It consists of four parts: 1) an action verb, such as "add", "replace", or "remove" describing the overall action of the rule, 2) the first functional group involved in the reaction including the type of Carbon that functional group is found on, 3) any specific location instructions for the action, and an optional 4) second functional group involved in the reaction (for the "replace" action this is the functional group that will replace the functional group from the second part).

This second type of reaction, based on the two previously explained rules, can contain one or more instances of both types of rules. An example of a reaction modeled using the second type is the oxidation reaction involving Potassium Permanganate. The location rule for the oxidation reaction in this case is to find any molecule containing a primary alcohol. The reaction rule for the reaction is to replace any primary alcohol with a carboxylic acid functional group. As this type of reaction requires the search engine to match a molecule by rules (in this case a molecule containing a primary alcohol) rather than by name, this process is more complex. This second type of reaction ALSO is modeled additionally by keeping track of any reagants/catalysts used.

The page to view the details of the first type of reaction, one example being the first reaction of the Calvin cycle, is pretty self explanatory. It contains all information involved in the reaction including the IUPAC names of the start and end molecules. It is also possible to view the molecules involved in the reaction by clicking the "View Reaction" button at the bottom of the screen.

The page to view the second type of reaction, one example again being the oxidation reaction involving Potassium Permanganate, is slightly more involved. In addition to being able to view the details, you are able to view further details about each rule involved by clicking on the particular rule. This further granularity was added to the interface anticipating support for a user to edit and add rules of both the location and reaction types in the future. Also, the page supports a functionality to test the reaction. By clicking on the "Test Reaction" button the user is able to enter a molecule name, click the search icon to view it, and then click the reaction icon (beaker) to view the molecule resulting from applying the reaction.

Standards - IUPAC naming standards again were followed. No further new standards have been applied for this update.

Controls - Use of the search page is generally self-explanatory. It was designed to use functionality similar to search bars found in other modern web sites. The user is also able to refine a search by the type of category of the reaction and the reagant used in the reaction. Clicking on the pencil/edit icon allows the user to view the more detailed view page of each rule. Use of the view page is also pretty straightforward. For the type of rule based on the start and end IUPAC names of molecules, the user can click on the "View Reaction" to see a visualization of the molecules involved. For the type of rule based on the location and reaction rules, the user can click on each location and reaction rule for further detail. The user can also click on "Test Reaction" to view the result of applying the particular reaction to a molecule.

Future Considerations - An obvious future plan is to allow the user not only to view reactions of both types, but also edit them and create NEW reactions. The "Test Reaction" functionality in this case will provide useful for exploring how a new rule will apply to a particular molecule. Finally, I anticipate refining the search page a bit more.









Introduction of Bond Addition Tool

Release 4.6.1 With this update, the user is now able to add bonds of the single, double, and triple variety to the molecule as well as updat...