## Linker Software Summary

##### Summary

The software being developed is designed to connect two selected points on the molecule by finding the shortest path that connects them without interfering with the rest of the molecule. This is done by first finding the shortest path at a specified resolution using an extended version of Dijkstra’s Algorithm. After the shortest path has been found linkers are designed to suit the path found. The method used to generate the linkers has yet to been determined. This software will be usable through the PyMOL software to account for visual representation and interaction with the molecule of choice.

##### File Description

###### Main File

The main file interfaces with PyMOL allowing for user inputs to be used in the linker software. In addition, this file processes the inputs and manages all the function calls that coordinate the creation of the linkers.

###### Ellipsoid Fit

The ellipsoid fit module finds the tightest fitting ellipsoid to a set of points that represent the atoms that compose the molecule. This is done using an algorithm that is based on the Khachiyan Algorithm. This module returns the center, radii and rotation of the ellipsoid that encloses the points and allows for the plotting of the ellipsoid as a mesh graph.

###### Ellipsoid Points

The Ellipsoid Points algorithm generates a grid of points that are contained in an ellipsoid with a given spacing. To increase the efficiency of the algorithm the points from one of the eight quadrants are generated and the corresponding points from the other seven quadrants are calculated by including all the possible combinations of positive and negative values. Another function in this module sets up a set of points for Dijkstra’s Algorithm by checking to see if the point is an obstacle, setting the points to unvisited, setting the distance to be infinite and the previous node to be an empty list.

###### Dijkstra R3

This module implements an extended version of Dijkstra’s algorithm that allows for the shortest path through a set of points in R3. The algorithm implements a heuristic approach using the Euclidean distance of the current point to the end of the proposed linker site.