logo

Menu:



Updates:

Apr 18, 2017:
The ArbAlign paper and code is published at JCIM.

Dec 15, 2016:
An updated version of ArbAlign and documentation is posted here.

Nov 01, 2016:
An updated version of ArbAlign is made available here. Please send in any questions, comments and suggestions.



Print
Source The necessary source code can be downloaded as a compressed folder at
├── Supporting-Information/Code.zip

or a list of files at
├── Supporting-Information/Code
│   ├── Supporting-Information/Code/README
│   ├── Supporting-Information/Code/ArbAlign-driver.py
│   ├── Supporting-Information/Code/ArbAlign.py
│   ├── Supporting-Information/Code/RMSD-Kabsch.py
│   ├── Supporting-Information/Code/PrinCoords.py
│   ├── Supporting-Information/Code/genTypes.csh
│   ├── Supporting-Information/Code/genConn.csh

What is Needed to Run the Commandline Tool?

 A web server provides a convenient way to access all the functionalities of ArbAlign, but the commandline tool is a better option for many users. The following tools are provided to enable commandline use:

  1. ArbAlign-driver.py - A Python driver script the calls the necessary script to do the alignments based on the options the user selects.
  2. ArbAlign.py - A Python script the ArbAlign-driver.py calls to to the alignments.
  3. PrinCoords.py - A Python script that converts molecules from an arbitrary coordinate system to their principal coordinate system.
  4. genTypes.csh - a small shell script which converts XYZ file to SYBYL Mol2 (sy2) format and recasts the atom label to contain atom type information.
  5. genConn.csh - a small shell script which converts XYZ file to NMA (nma) format and recasts the atom label to contain atom's bonding/connectivity information.

While this tool is kept as standalone as possible in order to ensure ease of use and portability, it does require these two Python packages beyond what's included in standard python installations.

 

Python Modules
  1. Python Numpy module
  2. Python Hungarian module by Harold Cooper
    (Hungarian: Munkres' Algorithm for the Linear Assignment Problem in Pytho
    (https://github.com/Hrldcpr/Hungarian) This is a wrapper to a fast C++ implementation of the Kuhn-Munkres algorithm. The installation instructions are described clearly at https://github.com/Hrldcpr/Hungarian.
    Alternatively, one can use Brian Clapper's Munkres module or another similar module includeded in SciNumpy. This could require one to make small changes to the current script. We'll provide an version that uses SciNumpy's Munkres module at a later time.
Other Tools Needed to Align by Atom Type or Connectivity
  1. OpenBabel - We use OpenBabel to convert Cartesian coordinates (XYZ) to formats containing atmm types including connectivity and hybridization information. It is necessary to use OpenBabel to convert the Cartesian coordinates to SYBYL Mol2 (sy2) and MNA (mna) formats. 
  2. genTypes.csh - a small shell script which converts XYZ file to SYBYL Mol2 (sy2) format and recasts the atom label to contain atom type information.
  3. genConn.csh - a small shell script which converts XYZ file to NMA (nma) format and recasts the atom label to contain atom's bonding/connectivity information.
As an example, you can look at the different castings of atoms to contain bonding and connectivity information.
alignment

If you find this tool useful for any publishable work, please cite the companion paper:

  Berhane Temelso, Joel M. Mabey, Toshiro Kubota, Nana Appiah-padi, George C. Shields.  J. Chem. Info. Model.. 2017, 57 (5), 1045–1054