computer science


Software by Shawn Martin
GENERAL NOTE: Some of the below files are *.tar.gz.  For some reason these files are sometimes altered when using Internet Explorer, e.g. unzipped.  If you have trouble try renaming the file *.tar or *.tar.gz or try a different browser.

iQSAR Solver: Inverse Molecular Design

This code accompanies the article "Lattice Enumeration for Inverse Molecular Design using the Signature Descriptor" in publications. It enumerates solutions to a Diophantine system of equations used for molecular design. It uses the PARI library (2.5.1) for arbitrary precision integer calculations. Please let me know if there any problems. (source, contact)

NMTRI: Non-Manifold Surface Reconstruction

I have implemented a toolbox for triangulating non-manifold point clouds in high dimensional vector spaces, as described in detail in "Non-Manifold Surface Reconstruction from High Dimensional Point Cloud Data" in publications.  The toolbox can handle 2-manifolds, 2-manifolds with boundary, and 2-manifolds with self-intersections (double curves, no cusps).  The code is written in Matlab.  Also included is code used in the cyclo-octane project "Topology of Cyclo-Octane Energy Landscape" in publications.  Please let me know if you have any problems.  (source, cyclo-octane example, contact)

OpenOrd: Large-scale Graph Layout (formerly DrL)

We have developed a force-directed graph layout toolbox focused on real-world large-scale graphs.  This toolbox includes:
  • Standard force-directed layout of graphs using algorithm based on the popular VxOrd routine (used in the VxInsight program).
  • Parallel version of force-directed layout algorithm.
  • Recursive multilevel version for obtaining better layouts of very large graphs.
  • Ability to add new vertices to a previously drawn graph.

OpenOrd has been used on graphs up to 849k vertices.  It is written in C++ and can be used with Linux, Windows, and Mac, but has mostly been used in Linux.  Please email me with comments/problems.  Note: binaries have been provided in case of compilation problems -- you should still download the source code for documentation and examples.  (source, windows binaries, mac os x (intel) binaries, contact)

Matlab Autoencoder

I have revised the code found at G. Hinton's webpage for using an autoencoder for dimension reduction.  The code has been rewritten in a functional form but is otherwise the same as originally implemented in G. Hinton and R. Salakhutdinov (2006) "Reducing the Dimensionality of Data with Neural Networks," Science 5786:504-507.
  In order to use the code you will also need to download the MNIST data from and C. Rasmussen's optimizer.  After downloading our rewritten code follow the readme.txt file to install and use.  You can also download the files small_mnist_ex.mat and full_mnist_ex.mat, which contain the results mentioned in the readme (these files are separate in case of slow download speed).  Please email me if you have any trouble with this code. (download,,, contact)

Signature Products

We have developed a method for predicting protein-protein interactions (see "Predicting Protein-Protein Interactions using Signature Products" in publications) using amino acid sequences based on J.-L. Faulon's signature descriptor.  The software is written in C/C++ and is based on T. Joachim's SVM-light package V5.0.  The software has been compiled using gcc/g++ under Linux and Cygwin.  Please let me know if you have any problems compiling and/or using the software. (download, contact)

IMPORTANT NOTE: You must use SVM-light version 5, otherwise the patch won't work.  SVM-light version 5 is available from T. Joachim's web page if you scroll down to the bottom.

Training Support Vector Machines

We have also developed a method for training Support Vector Machines using a Geometric approach (see "Training Support Vector Machines using Gilbert's Algorithm" in publications).  We have implemented this approach using MATLAB.  Please let me know if you have any problems with this software. (download, contact)

Last Updated 24/5/2012.