Free Chem Drawing Software

0 views
Skip to first unread message

Rafa Ostermann

unread,
Aug 3, 2024, 5:21:44 PM8/3/24
to carrentnterres

You have exceeded the maximum number of free transactions allowed. For unlimited access, please consider our special offer for a ChemDoodle license which includes both ChemDoodle 2D and ChemDoodle 3D. Join the hundreds of thousands of professionals and students that use ChemDoodle every day to finish their work faster and more accurately.

The sketcher controls are modeled from the ChemDoodle desktop application (learn more about the desktop software here). Those familiar with the ChemDoodle desktop application will immediately be comfortable drawing structures in this web-based sketching component.

The most basic sketcher input is received from mouse events. All aspects of the ChemDoodle desktop application are present, from locking bond lengths and angles, to the optimize zone to fragment previews. More information about how to use the ChemDoodle family of sketchers can be found in the ChemDoodle user guide. Pritt Balagopal has also put together a nice tutorial on the Chemistry StackExchange.

The small grey dot that follows your cursor is an atom (carbon). All structures must begin with an atom. Click to place an atom. Hover and click on a placed atom to place a bond. You can make it so starting atoms are not required by clicking on the Require starting atom checkbox to the right of the sketcher.

There are two types of ChemDoodle Web Sketchers, the Full Sketcher and the Single Molecule Sketcher. You can choose either above in this demo. Based on the interface, you may be using one or the other or both. The Full Sketcher allows for the creation of multiple chemical structures, shapes and figures. The Single Molecule Sketcher provides a streamlined interface for drawing a single molecular structure.

The buttons presented on top of the sketcher provide functionality as described by the following list. Depending on the settings chosen you will see two rows of buttons, or one row and a floating toolbar (as shown here). The first row of buttons consists of global functions, while the second row or floating toolbar contains drawing tools.

It should also be noted, that in all states, the user can use the mouse wheel to scale the sketcher rendering. Users can also click and drag on the background, with nothing hovered, to move the entire figure. If the shift key is held while dragging the background, the entire figure will be rotated. Double-clicking on the background will center the figure.

Just like in the desktop version of ChemDoodle, the web-based sketcher implements a copious amount of keyboard shortcuts. In addition to the listed shortcuts, you can also use the arrow keys to nudge the molecule. All keyboard shortcuts will work regardless of the state or mode the sketcher is in. But keep in mind that many of these shortcuts also are shortcuts for the browser. So these shortcuts will only work if the mouse is over the sketcher.

When a shape is hovered, the following shortcuts will be active. A shape is hovered if the mouse is close enough to the control points of the shape or over the shape such that the shape control points appear. These functions will only work in the Full Sketcher, because only the Full Sketcher allows shapes.

If the website implementing the web-based sketcher does not access iChemLabs services, then important functionality that you may benefit from is missing from their implementation. Please urge the providers of that service to contact us and provide users like you with premium services.

By default a single reader thread is used to extract records from the file and asingle writer thread is used to process them. Note that due to multithreadingthe output may not be in the expected order. Furthermore, theMultithreadedSmilesMolSupplier and the MultithreadedSDMolSupplier cannot be usedas random-access objects.

Or you can add 3D coordinates by embedding the molecule (this uses the ETKDGmethod, which is described in more detail below). Note that we add Hs to themolecule before generating the conformer. This is essential to get good structures:

Normally molecules are stored in the RDKit with the hydrogen atoms implicit (e.g. not explicitly present in the molecular graph.When it is useful to have the hydrogens explicitly present, for example when generating or optimizing the 3D geometry, the :py:func:rdkit.Chem.rdmolops.AddHs function can be used:

The RDKit has a library for generating depictions (sets of 2D) coordinates for molecules.This library, which is part of the AllChem module, is accessed using the rdkit.Chem.rdDepictor.Compute2DCoords() function:

Another option for Compute2DCoords allows you to generate 2D depictions for molecules that closely mimic 3D conformers.This is available using the function rdkit.Chem.AllChem.GenerateDepictionMatching3DStructure().

More fine-grained control can be obtained using the core functionrdkit.Chem.rdDepictor.Compute2DCoordsMimicDistmat(), but that isbeyond the scope of this document. See the implementation ofGenerateDepictionMatching3DStructure in AllChem.py for an example ofhow it is used.

Note that the conformers that result from this procedure tend to be fairly ugly.They should be cleaned up using a force field. This can be done within the RDKitusing its implementation of the Universal Force Field (UFF). [2]

More recently, there is an implementation of the ETKDG method of Riniker andLandrum [18] which uses torsion angle preferences from the CambridgeStructural Database (CSD) to correct the conformers after distance geometry hasbeen used to generate them. With this method, there should be no need to use aminimisation step to clean up the structures.

The RDKit also has an implementation of the MMFF94 force field available.[12], [13], [14], [15], [16] Please note that the MMFFatom typing code uses its own aromaticity model, so the aromaticity flags of themolecule will be modified after calling MMFF-related methods.

Note the calls to Chem.AddHs() in the examples above. By defaultRDKit molecules do not have H atoms explicitly present in the graph,but they are important for getting realistic geometries, so theygenerally should be added. They can always be removed afterwardsif necessary with a call to Chem.RemoveHs().

With the RDKit, multiple conformers can also be generated using thedifferent embedding methods. In both cases this is simply a matter ofrunning the distance geometry calculation multiple times fromdifferent random start points. The option numConfs allows the user toset the number of conformers that should be generated. Otherwise theprocedures are as before. The conformers so generated can be alignedto each other and the RMS values calculated.

rmslist contains the RMS values between the first conformer and all others.The RMS between two specific conformers (e.g. 1 and 9) can also be calculated.The flag prealigned lets the user specify if the conformers are already aligned(by default, the function aligns them).

By default AllChem.EmbedMultipleConfs and AllChem.MMFFOptimizeMoleculeConfs()run single threaded, but you can cause them to usemultiple threads simultaneously for these embarassingly parallel tasksvia the numThreads argument:

The RDKit pickle format is fairly compact and it is much, much faster to build amolecule from a pickle than from a Mol file or SMILES string, so storingmolecules you will be working with repeatedly as pickles can be a good idea.

Atoms in a molecule can be highlighted by drawing a coloured solid oropen circle around them, and bonds likewise can have a colouredoutline applied. An obvious use is to show atoms and bonds that havematched a substructure query

Atoms and bonds can also be highlighted with multiple colours if theyfall into multiple sets, for example if they are matched by morethan 1 substructure pattern. This is too complicated to show in thissimple introduction, but there is an example indata/test_multi_colours.py, which produces the somewhat garish

As of version 2020.03, it is possible to add arbitrary small strings to annotateatoms and bonds in the drawing. The strings are added as propertiesatomNote and bondNote and they will be placed automatically close to theatom or bond in question in a manner intended to minimise their clash with therest of the drawing. For convenience, here are 3 flags in MolDraw2DOptionsthat will add stereo information (R/S to atoms, E/Z to bonds) and atom and bondsequence numbers.

The PNG files generated by the MolDraw2DCairo class by default includemetadata about the molecule(s) or chemical reaction included in the drawing.This metadata can be used later to reconstruct the molecule(s) or reaction.

Starting with the 2020.03 release, the RDKit allows you to provide an optionalfunction that is used to check whether or not a possible substructure match shouldbe accepted. This function is called with the molecule to be matched and the indicesof the matching atoms.

The RDKit contains a number of functions for modifying molecules. Notethat these transformation functions are intended to provide an easyway to make simple modifications to molecules.For more complex transformations, use the Chemical Reactions functionality.

There are 2 methods for finding maximum common substructures. The first, FindMCS,finds a single fragment maximum common substructure (MCS) of two or more molecules:The second, RascalMCES, finds the maximum common edge substructure (MCES) between twomolecules and can return a multi-fragment MCES. The difference is demonstrated with thefollowing pair of molecules:

It returns an MCSResult instance with information about the number ofatoms and bonds in the MCS, the SMARTS string which matches theidentified MCS, and a flag saying if the algorithm timed out. If noMCS is found then the number of atoms and bonds is set to 0 and theSMARTS to ''.

The options for the atomCompare argument are: CompareAny says that anyatom matches any other atom, CompareElements compares by element type,and CompareIsotopes matches based on the isotope label. Isotope labelscan be used to implement user-defined atom types. A bondCompare ofCompareAny says that any bond matches any other bond, CompareOrderExact saysbonds are equivalent if and only if they have the same bond type, andCompareOrder allows single and aromatic bonds to match each other, butrequires an exact order match otherwise:

c80f0f1006
Reply all
Reply to author
Forward
0 new messages