Molecular structure can naturally be represented by a graph where atoms are the nodes and bonds are the edges. However, encoding the graph is also non-trivial. Several line notations (string-based representations) have been developed for this purpose, wherein atoms are represented by specific characters and the bonds can be either explicit or implicit. SMILES captures both the topology and connectivity of atoms, enabling programmatic comparison and manipulation of molecular structures. SELFIES (Self-Referencing Embedded Strings) is a new system aimed at generative models in particular. Unlike SMILES which can have many invalid strings, every string of SELFIES characters is inherently valid. Recently, graph neural networks (GNN) have demonstrated state of the art performance on chemical regression tasks. Molecules are represented as graphs; node and edge features are vectors associated with each atom or bond, describing properties of the node (ie. atomic number, hybridization, aromaticity etc.) or edge (ie. bond order, conjugation, stereochemistry). Global features contain information about the entire molecule. The GNN then aggregates the features for each node based on the graph connections into messages, which are then used to learn updated nodes and edges. The global node allows for message-passing between all the nodes in the graph, pooling the edge and node features into global features, and can be thought of as a node that is connected to all other nodes. A final aggregation layer takes the updated graph and outputs the final prediction.